LinkedIn profiles can give you valuable information that you can’t always get from a resume, so you can make the best hiring decisions. Plus, applicants will appreciate a simple way to apply using their professional profile.

Use Apply with LinkedIn to:

  • Round out your knowledge about a candidate’s background, their recommendations, interests and who’s in their network
  • Incorporate a candidate’s full profile data in your careers site
  • Make it easy for qualified candidates to apply to your company’s jobs

 

Request access to this API

This API is intended for you to use on your company’s career site, to help candidates easily apply for jobs. To protect our members’ privacy, before we give access to this API, we need to review your application to verify you’ll be using it for that purpose.

Please note that applicants requesting access to this data for any reasons other than this purpose will not be accepted.

How will you integrate Apply with LinkedIn?

  • Before you get started …

    Please make sure to read the Getting Started with the REST API guide.  It contains important information to successfully incorporate applying in with LinkedIn within your application.

    Step 1 - Authenticate the user

    In order to request profile data on behalf of an applicant, you must have permission to access their account in the form of a valid OAuth 2.0 access token.  If you do not have a previously stored access token for the current user, follow the steps outlined in the Authenticating with OAuth 2.0 Guide to acquire a new access token that can be used in the next step of the Apply with LinkedIn process.

    In required, you can download official LinkedIn button images to you in your project from the Image Resources section.

    Step 2 - Retrieve profile data

    Once you have obtained a valid access token for the user, you can use the following REST API call to retrieve whichever fields you require from the member's profile.

    There is no pre-canned call you can make to return everything available about a given user.  You must specifically request each member field that you want returned in the response.  Refer to the complete list of all available Member Profile Fields and provide a comma-delimited list of each field identifier in place of the fields of interest placeholder in the sample API call shown here:

    GET
    https://api.linkedin.com/v1/people/~:(fields of interest)?format=json

    For example:

    GET
    https://api.linkedin.com/v1/people/~:(id,first-name,skills,educations,languages,twitter-accounts)?format=json
    sample api response
    {
      "educations": {
        "_total": 1,
        "values": [
          {
            "activities": "",
            "degree": "",
            "endDate": {
              "year": 2980
            },
            "fieldOfStudy": "Farming",
            "id": 12345,
            "notes": "Raised vegetables, pipe-weed and ponies.",
            "schoolName": "Shire Community College",
            "startDate": {
              "year": 2976
            }
          }
        ]
      },
      "firstName": "Frodo",
      "id": "1R2RtA",
      "languages": {
        "_total": 2,
        "values": [
          {
            "id": 987654321,
            "language": {
              "name": "English"
            },
           {
            "id": 987654320,
            "language": {
              "name": "Elvish"
            }
         }
        ]
      },
      "skills": {
        "_total": 2,
        "values": [
          {
            "id": 9998,
            "skill": {
              "name": "Questing"
            }
          },
          {
            "id": 9999,
            "skill": {
              "name": "Gardening"
            }
          }
        ]
      },
      "twitterAccounts": {
        "_total": 1,
        "values": [
          {
            "providerAccountId": "0110011001100010",
            "providerAccountName": "fbaggins"
          }
        ]
      }
    }

    Following these basic steps, you can now enhance your company's job applications with additional high-quality professional profile information from LinkedIn.

    Requesting alternate profile languages

    LinkedIn members have the opportunity to provide their profile information in multiple languages. To specify the language you would prefer to have returned, you include an Accept-Language HTTP header with your call.  The value of the header should be a comma separated list of Language Codes, ordered from highest to lowest priority of preference.

    Sample http header
    Accept-Language: es-ES, en-US, it-IT 

    The header value is not strictly enforced, so the API will always try to return data whenever possible.  If you specify a particular language and the member doesn't have matching profile data, it will fall back to returning data in the member's primary language rather than returning nothing at all.

  • Before you get started …

    Please make sure to read the Getting Started with the JavaScript SDK guide. It contains important information to successfully incorporate applying in with LinkedIn within your application.

    Step 1 - Initialize the SDK

    In order to use any of the functionality provided by the JavaScript SDK, it must be included in your webpage's <head> section.  Follow the directions in the getting started guide to initialize the SDK.

    Step 2 - Create the "Sign In with LinkedIn" button

    In order to request profile data on behalf of an applicant, you must have permission to access their account in the form of a valid access token.  The JavaScript SDK provides an easy mechanism for your applicants to sign in to their LinkedIn account and authorize you to access their complete profile.

    Place the following code in your HTML wherever you want the "Sign in with LinkedIn" button to be rendered:

    javascript
    <script type="in/Login"></script>

    This will generate a button that looks like the image below.  Note that the text on the button is presented in English by default, but can be localized to other languages using the lang argument when initializing the SDK.

    • Sign in with LinkedIn

    Step 3 - Handle async authentication & retrieve member data

    When a user clicks the sign in button, a pop-up window containing the LinkedIn authentication dialog will be presented.  Once the user has accepted the request and provided their LinkedIn account credentials, the window will be dismissed and the SDK will perform the back-end call to LinkedIn to silently complete the authentication process for you.  Since this request happens asynchronously, you must define a function that will listen for an auth event to be thrown so that you know that the authentication process has completed and that it is safe for your application to make further API calls.

    Use the onLoad argument in the SDK's <script> block when you initialize the SDK to choose a function to execute once the SDK has finished loading.  This function should then setup the auth event listener, as shown below.  Once an auth event is thrown, it's safe to use the SDK's generic API call wrapper, IN.API.Raw(), to make a REST API call to fetch the member's profile data to include with the applicant's job application.

    For a complete list of all profile fields available to be requested as part of the API call, see the Member Profile Fields list.

    javascript
    <script type="text/javascript" src="//platform.linkedin.com/in.js">
        api_key: YOUR_API_KEY_HERE
        authorize: true
        onLoad: onLinkedInLoad
    </script>
    
    <script type="text/javascript">
        
        // Setup an event listener to make an API call once auth is complete
        function onLinkedInLoad() {
            IN.Event.on(IN, "auth", getProfileData);
        }
    
        // Handle the successful return from the API call
        function onSuccess(data) {
            console.log(data);
        }
    
        // Handle an error response from the API call
        function onError(error) {
            console.log(error);
        }
    
        // Use the API call wrapper to request the member's profile data
        function getProfileData() {
            IN.API.Raw("/people/~:(id, first-name, skills, educations, languages, twitter-accounts)")
    .result(onSuccess).error(onError);
        }
    
    </script>

    Once you've received the user's LinkedIn profile data via JavaScript, you do several things with it, including:

    • Pre-populate field values in your job application form.
    • Store the values in hidden form elements to be passed along with other user-provided data.
    • Securely submit the data back via AJAX calls to your server.
  • Before you get started …

    Please make sure to read the Getting Started with the Mobile SDK for Android guide. It contains important information to successfully incorporate applying in with LinkedIn within your application.

    Step 1 - Authenticate the user

    In order to request profile data on behalf of an applicant, you must have permission to access their account in the form of a valid access token. The Mobile SDK provides an easy mechanism for your applicants to sign in to their LinkedIn account and authorize you to access their complete profile.

    Authenticating a user in a mobile Android environment is described in detail in the Authenticating using the Mobile SDK for Android guide.  Once you have successfully authenticated your mobile user, you can continue to the next step and request the specific member profile fields that you want to use to supplement your job application.

    java
    String url = "https://api.linkedin.com/v1/people/~:(id, first-name, skills)";
                    
    APIHelper apiHelper = APIHelper.getInstance(getApplicationContext());
    APIHelper.getRequest(this, url, new ApiListener() {
        @Override
        public void onApiSuccess(ApiResponse apiResponse) {
            // Success!
        }
    
        @Override
        public void onApiError(LIApiError liApiError) {
            // Error making GET request!
        }
    });

    Finally, with the member's profile data now available to you, you can incorporate it as part of the job or resume submission portion of your company's mobile application.

  • Jobs You Might Be Interested In

    Display a list of potential jobs of interest to your visitors using the Jobs You May Be Interested In plugin.  The positions displayed by this plugin can be restricted to show only open positions for your company, or any relevant position available through LinkedIn.

    • Jobs You Might Be Interested In plugin

Image Resources

Download official Apply with LinkedIn button images in high and low res, large and small formats from the LinkedIn Brand Resources archive for use in your project.

Permissions and Limits

Required permission: r_fullprofile (and r_contactinfo)

Whether set as a default permission in your app settings or requested specifically via the scope argument during your authentication process, you will need to request the r_fullprofile member permission in order for your application to successfully make the API call to Apply with LinkedIn.

If your application requires access to the contact info member fields as part of your Apply with LinkedIn integration, you must additionally request the r_contactinfo member permission.

Throttle Limits

Throttle Type
Daily Call Limit (UTC)
Application maximum                                                                        
100,000
Per individual usern/a
Per individual developern/a

Some of the companies using Apply with LinkedIn

  • Oracle/Taleo
  • IBM/Kenexa
  • Jobvite
  • Netflix