Assessio offers a simple API for approved partners to integrate with our Recruitment Module. The API allows integrators to:
The primary use-case for this API is for Applicant Tracking Systems (ATS) or client-specific implementations to integrate our assessments and results within a third-party system as part of a broader candidate recruitment process.
The API is available in two environments:
https://sandbox.api.assessio.systems/https://api.assessio.online/Note: The sandbox environment allows integration testing without affecting live data. It may have limitations compared to production.
To establish an integration utilising the Recruitment API for testing, the following steps need to be completed:
provider-key.integrator-secret: A secret used to sign requests from the Integrator to the Assessio platform.Note: If required, Assessio can disable this signature requirement in the sandbox environment to simplify initial testing.
provider-key: Identifies your Assessio organization. This key must be included in calls to our Assessio-hosted endpoints (e.g., /recruitment/v1/config and /recruitment/v1/assessment-order). If multiple organisations are used with the integration, each one is expected to use its own key.
resultUpdateUrl), you have two options:integrator-api-key). We can either generate it and share it with you, or you can provide a token value that you want us to use.A high-level overview of how an Integrator typically uses this API:
/recruitment/v1/config endpoint./recruitment/v1/assessment-order endpoint with the chosen lens and locale.resultUpdateUrl.Some requests to our API require an HMAC to be generated from the timestamp combined with the payload. Below is an example in Java:
String encode() throws NoSuchAlgorithmException, InvalidKeyException {
var timestamp = Instant.now().getEpochSecond();
var key = "TODO"; // your integrator-secret
var payload = "{}"; // the raw JSON payload
var data = timestamp + "." + payload;
var sha256Hmac = Mac.getInstance("HmacSHA256");
var secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
sha256Hmac.init(secretKey);
return String.valueOf(Hex.encode(sha256Hmac.doFinal(data.getBytes(StandardCharsets.UTF_8))));
}
The Signature header must include:
t: The Unix timestamp (in seconds) when the signature was created.signature: The HMAC digest of t + "." + (request body).We allow a timestamp skew of up to 5 minutes (300 seconds). Requests outside that timeframe will be rejected.
Returns the list of available lenses and locales that can be specified when sending assessment orders.
{- "availableLenses": [
- {
- "id": "7922dd91-1b44-43e4-a740-7c4d9c2fba41",
- "name": "General Performance"
}
], - "availableLocales": [
- "en-US",
- "sv-SE",
- "nl-NL",
- "nn-NO"
]
}Used for sending assessment orders (candidate invites) from the Integrator to Assessio Platform.
recruitment.id and lensId will create a new recruitment in the Platform with the specified candidate.recruitment.id + lensId will add additional candidates to the existing recruitment.| Signature | string Example: t=1539756759,signature=hash_value If enabled, the header should contain comma-separated key/value pairs:
See Request Signing for more details. |
required | object (Recruitment) |
| additionalRecruitmentCollaboratorsEmails required | Array of strings Emails of users to add as recruitment collaborators.
|
| resultUpdateUrl required | string The URL to which candidate results will be sent when available. |
| resultId required | string Integrator-defined identifier included when calling
|
| lensId required | string Identifier of the Lens to be used. See |
| locale required | string Locale used to create the first recruitment in the Platform for
|
required | object (CandidateDetails) |
{- "recruitment": {
- "id": "82bd4452-bd16-4227-bce9-f1812a9db6ef",
- "title": "Developer",
- "description": "string"
}, - "additionalRecruitmentCollaboratorsEmails": [
- "recruiter@assessio.com"
], - "resultUpdateUrl": "https://www.integrator.com/api/v1/candidate-results/73273ca0-0253-4d5f-8f91-d39e298bd351",
- "resultId": "73273ca0-0253-4d5f-8f91-d39e298bd351",
- "lensId": "7922dd91-1b44-43e4-a740-7c4d9c2fba41",
- "locale": "string",
- "candidateDetails": {
- "email": "string"
}
}"string"This endpoint provides functionality similar to /assessment-order but differs in its response behavior. It provides a link to the assessment inside the response body. Additionally, it may return a 409 Conflict status code if the candidate's email already exists within the specified referenced recruitment process.
Note: If obtaining the link is not required it's recommended to use the /assessment-order endpoint instead.
Prior authorization from Assessio is required for integrators to access this endpoint.
| Signature | string Example: t=1539756759,signature=hash_value If enabled, the header should contain comma-separated key/value pairs:
See Request Signing for more details. |
required | object (Recruitment) |
| additionalRecruitmentCollaboratorsEmails required | Array of strings Emails of users to add as recruitment collaborators.
|
| resultUpdateUrl required | string The URL to which candidate results will be sent when available. |
| resultId required | string Integrator-defined identifier included when calling
|
| lensId required | string Identifier of the Lens to be used. See |
| locale required | string Locale used to create the first recruitment in the Platform for
|
required | object (CandidateDetails) |
{- "recruitment": {
- "id": "82bd4452-bd16-4227-bce9-f1812a9db6ef",
- "title": "Developer",
- "description": "string"
}, - "additionalRecruitmentCollaboratorsEmails": [
- "recruiter@assessio.com"
], - "resultUpdateUrl": "https://www.integrator.com/api/v1/candidate-results/73273ca0-0253-4d5f-8f91-d39e298bd351",
- "resultId": "73273ca0-0253-4d5f-8f91-d39e298bd351",
- "lensId": "7922dd91-1b44-43e4-a740-7c4d9c2fba41",
- "locale": "string",
- "candidateDetails": {
- "email": "string"
}
}{- "assessmentPackageLink": "string"
}A webhook endpoint (hosted by the Integrator) to receive result
payloads for a candidate. This is the URL you provide as
resultUpdateUrl when you create an assessment order.
When a candidate's results are available, Assessio calls this URL. If the call fails, it will be retried using an exponential backoff, with the final retry up to 36 hours after the initial attempt.
| resultId required | string The identifier you provided in |
| recruitmentUrl | string A link to view recruitment details in the Assessio Platform (for users with appropriate permissions). |
| assessmentReportUrl | string A link to view the candidate's report (for authorized users). |
| score | integer [ 0 .. 100 ] Overall fit score for the candidate in the context of the chosen lens. |
object Per-competency scores for the candidate, based on the chosen lens. |
{- "resultId": "6ef46985-9ca2-4c65-a184-47fa0d332246",
- "score": 71,
- "subscores": {
- "Driving Leadership": 73,
- "Influencing & Inspiring": 68
}
}