API - External Profiles

There are two possible ways for external profiles to be integrated into an applicant portal:

  • Login with external profile
  • Link with external profile

Login with external profile

Prerequisites

The following prerequisites need to be met, if authentication via external profiles should be supported through the eRecruiter API.

  1. In the eRecruiter application an applicant portal needs to be created if it does not exist.
  2. In the eRecruiter application the OAuth consumer keys and secrets need to be provided for an applicant portal.

The configuration information is part PortalSettings object in the API mandator response (http://api.erecruiter.net/Help/Api/GET-Api-Mandator)

Login with external profile

You have the possibility to let applicants login to your applicant portal via an external profile. The authentication with the external profile platform must be handled by yourself. We offer an open source library for connecting to XING and LinkedIn for the .NET platform, which we use in our applicant portal (https://github.com/eRecruiter/eRecruiter.SocialConnector).

The login process with an external profile is divided into the following steps:

  1. Authorize with third party to retrieve the external profile identifier.
  2. Use the following request to with the retrieved external profile identifier for either XING or LinkedIn

    Get an applicant by their third party identifier
    GET Api/Applicant?identifier={identifier}&thirdParty={thirdParty}

    The request checks if the applicant profile already exists in the eRecruiter and returns the profile if found.

  3. If the profile was found you can successfully authenticate the applicant in your applicant portal.

Link with external profiles

Two parameters are mandatory for linking the external profiles to your applicant profile:

  • identifier: The unique identifier as provided by XING or LinkedIn
  • profileUrl: The URL to the profile as provided by XING/LinkedIn

After the applicant has been authenticated with the external platform the basic data of the external profile has to be fetched.

XING

Use the resource https://api.xing.com/v1/users/me to retrieve the basic user profile  (see XING User Profile).

XING sample JSON response
"users": [
    {
      "id": "123456_abcdef",
      "first_name": "Max",
      "last_name": "Mustermann",
      "permalink": "https://www.xing.com/profile/Max_Mustermann"
    }
]

To link your applicant profile the properties "id" as identifier and "permalink" as profileUrl are required for the resource below.

Link XING profile
POST Api/Applicant/Xing/{applicantId}?identifier={identifier}&profileUrl={profileUrl}

LinkedIn

The resource https://api.linkedin.com/v1/people/~:(id,first-name,last-name,public-profile-url)?format=json can be used to retrieve the basic user profile (see Sign-In with LinkedIn)

LinkedIn sample Json response
{
  "id": "1R2RtA",
  "firstName": "Frodo",
  "lastName": "Baggins",
  "public-profile-url": "http://www.linkedin.com/pub/frodo-baggins/..."
}

To link an applicant profile the external profile identifier (identifier) and the URL to the external profile (profileUrl) are required for the resource below.

Link LinkedIn profile
POST Api/Applicant/LinkedIn/{applicantId}?identifier={identifier}&profileUrl={profileUrl}

If the the XING or LinkedIn connection should be removed the following to endpoints can be used.

Unlink external profiles
DELETE Api/Applicant/Xing/{applicantId}
DELETE Api/Applicant/LinkedIn/{applicantId}

 

Fill applicant's profile with data from the external profile

This is a recommendation on how to fill the applicant's profile with the data from the external profile. Our applicant portal maps the third party information to the eRecruiter entities as seen in the table below. As some entities in the eRecruiter require some properties, we describe how we managed the mapping from the third party profile to the applicant's profile.

eRecruiter entityXING propertyLinkedIn propertyHints
photo

"photo_urls": { 

  "large": { ... }

}

"picture-url" 
experiences

"professional_experience": { 

  "primary_company": { ... },

  "non_primary_companies": { ... }

}

 "positions"  
educations

"educational_background": { 

  "Schools": { ... }

}

"educations"The "Type" property is required. Since no type is provided from any third party, we try to match the name of the provided education with any of the possible education types.
certificates

"educational_background": { 

  "qualifications": { ... }

}

"courses": { ... },

"certifications": { ... }

 
The "Type" property is required. Since no type is provided from any third party, set any of the possible certificate types, if you create the entity automatically.
knowledge-"Skills"The "Level" property is required. Since LinkedIn provides no level, set any of the possible knowledge levels if you create the entity automatically.
languages

"languages"

"languages" 
publications-"publications" The "Type" property is required. Since no type is provided from any third party, use any of the possible publication types if you create the entity automatically.