Pulsifi's Integration Team will provide the necessary client ID/client secret
Pulsifi integration API calls will be authenticated using OAuth2 Client Credentials Grant.
Prerequisite: Client need get a valid access token to call the integration API's with the provided client id and secret.
The following is a sample of OAuth2 Client Credentials Grant credentials:
CLIENT-ID: <will be provided by Pulsifi>
CLIENT-SECRET: <will be provided by Pulsifi>
The following is a sample of a Post request to get access token:
curl --request POST \
--url 'https://api.pulsifi.me/partner/oauth2/token' \
--header 'Authorization: Basic YOUR-ENCODED-CLIENT-ID-CLIENT-SECRET' \
...
Attribute | Type | Description |
---|---|---|
access_token | String | Valid access token will be generated |
scope | String | Default scope |
expires_in | Number | Access token expiry datetime in unixtimestamp |
token_type | String | Default : Bearer |
If the assessment result data need to capture and store in your ATS platform,
you can either get assessment result data based on HTTP GET https://api.pulsifi.me/partner/v1.0/ats/assessment_invitations/{invitation_code} or
provide a webhook callback url that accepts HTTP post method to Pulsifi
A client ID value will be included in the HTTP post's header with name of "client-id", which used to determine Pulsifi as the source.
For best security practice, always whitelist Pulsifi’s API platform IP by requesting IP address from Pulsifi.
- This endpoint will be used to generate a Pulsifi's assessment invitation link.
- Format: application/json
Name | Type | Required? | Description |
---|---|---|---|
job_id | String (uuid) | Y | Refer to FAQ section below |
is_anonymous_candidate | Boolean | Y |
Options:
|
ext_reference_id | String | Y |
ATS platform job application id.
|
String |
Y (non-anonymous mode) N (anonymous mode) |
Candidate's email.
|
|
first_name | String |
Y (non-anonymous mode) N (anonymous mode) |
Candidate's first name.
|
last_name | String |
Y (non-anonymous mode) N (anonymous mode) |
Candidate's last name.
|
deadline | UTC Date | N |
Pulsifi's invitation link deadline date (UTC date).
|
Attribute | Type | Description |
---|---|---|
status | String | invited, initial state |
ext_reference_id | String | ATS platform job application id. |
job_id | String (uuid) | Job ID provided by Pulsifi. |
is_anonymous_candidate | Boolean |
Options:
|
invitation_code. | String | Pulsifi's invitation code. Recommend to store this code in your database as reference for further assessment status and result query |
invitation_link | String |
Pulsifi's assessment invitation link. Example: https://candidate.pulsifi.me/invites/... |
invitation_expired_at | UTC Date |
Pulsifi's assessment invitation link expiry date. Example: 2021-08-04T23:59:59.999Z |
created_at | UTC Date |
Pulsifi's assessment invitation link created on this date. Example: 2021-08-04T23:59:59.999Z |
curl -X 'POST' \
'https://api.pulsifi.me/partner/v1.0/ats/assessment_invitations' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <access_token>' \
-H 'Content-Type: application/json' \
-d '{
"job_id": "<pulsifi job id>",
"ext_reference_id": "<ATS reference id>",
"is_anonymous_candidate": true,
"deadline": "2021-08-12T12:21:59Z"
}'
curl -X 'POST' \
'https://api.pulsifi.me/partner/v1.0/ats/assessment_invitations' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <access_token>' \
-H 'Content-Type: application/json' \
-d '{
"job_id": "<pulsifi job id>",
"ext_reference_id": "<ATS reference id>",
"is_anonymous_candidate": false,
"email": "tester@test.com",
"first_name": "Tester",
"last_name": "User",
"deadline": "2021-08-12T12:21:59Z"
}'
- This endpoint will be used to get assessment invitation status for progress tracking purpose.
- https://api.pulsifi.me/partner/v1.0/ats/assessment_invitations/{invitation_code}
- Path Param
- invitation_code, getting from generate assessment invitation response
- Format: application/json
Attribute | Type | Description |
---|---|---|
status | String |
|
ext_reference_id | String | ATS platform job application id. |
job_id | String (uuid) | Job ID provided by Pulsifi. |
is_anonymous_candidate | Boolean |
Options:
|
invitation_code. | String | Pulsifi's invitation code |
invitation_link | String |
Pulsifi's assessment invitation link. Example: https://candidate.pulsifi.me/invites/... |
invitation_expired_at | UTC Date |
Pulsifi's assessment invitation link expiry date. Example: 2021-08-04T23:59:59.999Z |
created_at | UTC Date |
Pulsifi's assessment invitation link created on this date. Example: 2021-08-04T23:59:59.999Z |
- There are 2 ways in retrieving candidate's assessment result after candidate completed all assessments.
- https://api.pulsifi.me/partner/v1.0/ats/assessment_invitations/{invitation_code}/result
- Path Param
- invitation_code, getting from generate assessment invitation response
- Format: application/json
Attribute | Type | Description |
---|---|---|
invitation_code | String | Pulsifi's invitation code |
scores | Array of score:{ display:string, value:number } |
Pulsifi's fit score. No of fit score items returned is determine by the Pulsifi Job setup. Possible display's data: - Pulsifi Role Fit Score - Pulsifi Organizational Fit Score value's data: - minimum : 0 - maximum : 100 Example: "scores": [ { "display": "Pulsifi Role Fit Score", "value": "67" }, { "display": "Pulsifi Organizational Fit Score", "value": "45" } ] |
report_url | String | Pulsifi's assessment report url with 1 year validity period. Example: https://app.pulsifi.me/share/candidate/... |
The ATS platform will be required to provide a webhook callback url
HTTP POST will be triggered when candidate assessment result is ready.
- Webhook URL to be provided by the ATS platform
- Sample Response: 200 OK
- header 'client-id: sample-client-id'
- 'sample-client-id' to be provided by Pulsifi
- Format: application/json
Name | Type | Description |
---|---|---|
event_type | String | Pulsifi's event type Example: job_application_role_fit_score_created / job_application_culture_fit_score_created |
job_id | String (uuid) | Job ID provided by Pulsifi. |
ext_reference_id | String | ATS platform job application id. |
profile_share_url | String |
Pulsifi's assessment report url with 1 year validity period. Example: https://app.pulsifi.me/share/candidate/... |
job_application_id | String (uuid) | Pulsifi's job application ID reference. |
fit_score | Number | Pulsifi's Fit Score (Role Fit Score/ Culture Fit Score). |
{
"event_type": "job_application_role_fit_score_created",
"event_body": {
"job_id": "<pulsifi job id>",
"ext_reference_id": "<ATS job application reference id>",
"profile_share_url": "https://app.pulsifi.me/share/candidate/...",
"job_application_id": "<pulsifi job application id reference>",
"fit_score": 9.4
}
}
{
"event_type": "job_application_culture_fit_score_created",
"event_body": {
"job_id": "<pulsifi job id>",
"ext_reference_id": "<ATS job application reference id>",
"profile_share_url": "https://app.pulsifi.me/share/candidate/...",
"job_application_id": "<pulsifi job application id reference>",
"fit_score": 9.4
}
}
-
By default, you can always get it by accessing job module in the Pulsifi app.
- Select a job you want the candidate apply to and view the job detail
- The job id can be found on the browser url, example : https://app.pulsifi.me/acquisition/jobs/{job_id}
-
If you are the 3rd party ATS platform who did not have access to Pulsifi app, please request from Pulsifi account manager who manage the integration project.