Skip to main content

Candidates

Updated over 5 months ago

When a candidate applies for a job, it can be a new or an existing candidate on SuccessFactors. Both cases are handled by Convert.

New candidates

Candidates are created by making an upsert request to the SAP OData API.

Convert does not allow creating job applications on which the candidate has not agreed to the privacy statement and terms of service.

The SAP visibility option of the candidate can be set to "any company recruiter worldwide" when the candidate has agreed to be contacted for future job opportunities. Otherwise this option defaults to "only recruiters managing jobs I applied to".

Checkbox options in the Convert Registration Form

Example request to the SAP OData API:

curl -X POST .../odata/v2/upsert \
-H 'Authorization: Bearer AccessToken' \
-d '{
"__metadata": {
"type": "SFOData.Candidate",
"uri": "Candidate(<candidateId>)",
},
"firstName": "Alex",
"lastName": "Wilson",
"country": "SE",
"primaryEmail": "[email protected]",
"cellPhone": "+46000000000",
"agreeToPrivacyStatement": "true",
"shareProfile": "1"
}'

Existing candidates

Before creating a candidate, Convert checks if the candidate already exists on SuccessFactors. This is done by performing the HTTP request:

curl .../odata/v2/Candidate?$filter=tolower(primaryEmail) eq tolower([email protected]) \
-H 'Authorization: Bearer AccessToken' \

The returned candidate id is used to perform an upsert request and update the candidate fields firstName, lastName, country, cellphone and shareProfile.


Example request to the SAP OData API:

curl -X POST .../odata/v2/upsert \
-H 'Authorization: Bearer AccessToken' \
-d '{
"__metadata": {
"type": "SFOData.Candidate",
"uri": "Candidate(<candidateId>)",
},
"firstName": "Alex",
"lastName": "Wilson",
"country": "SE",
"cellPhone": "+46000000000",
"shareProfile": "1"
}'

Did this answer your question?