Introduction
The Assessment Links API lets an assessment provider push each candidate’s unique assessment link to Alex the moment it is generated. Alex matches the link to the candidate’s application and delivers it in the candidate’s conversation channel (e.g. WhatsApp) within seconds. The contract is deliberately thin: the payload carries an opaque ATS identifier and the link — no names, email addresses, phone numbers, scores, or results. Alex resolves candidate details and assessment outcomes from the customer’s ATS directly, so a misrouted or replayed request never exposes personal data.Unlike the rest of this reference, this endpoint lives under the
/v2 base:How it fits the assessment flow
The provider’s existing ATS integration is unchanged — this endpoint adds one push, at the moment the link is generated:- The candidate is moved to the assessment stage in the ATS, which triggers an assessment order to the provider — the existing trigger, unchanged.
- The provider generates the unique, candidate-and-job-specific assessment link, as it does today.
- The provider writes the link (and later, results) back to the ATS — the existing write-back, unchanged.
- New: at the same moment, the provider
POSTs the link to this endpoint. - Alex matches the
applicationIdto a candidate conversation and delivers the link in-channel within seconds. Links for applications Alex doesn’t manage are discarded on receipt and not retained. - Completion status and scores flow back to the ATS exactly as today — Alex reads assessment status from the ATS to follow up with candidates who haven’t completed. No assessment results ever pass through this API.
Authentication
Requests are authenticated with the customer’s API key — the same key used for the rest of the Alex API. The key determines which customer account the links apply to; a provider integrating on behalf of multiple customers holds one key per customer.Pushing an assessment link
Call once per generated link, immediately after generation — ideally in the same step that writes the link back to the ATS, never on a batch or polling schedule. Candidates are typically in a live conversation when the assessment is ordered, and delivery is expected within seconds of generation. Request fields:
Identifier requirements by ATS:
The
applicationId is the routing key: it must uniquely identify the
candidate on a specific job. A candidate ID alone is not sufficient — one
candidate can hold several applications.200 OK:
200 is returned whether or not the application is one Alex manages — the provider does not need to distinguish, and an unmatched link is not an error.
Requests are idempotent per applicationId: re-sending the same payload is harmless, and sending a new link for the same application replaces the previous one (last write wins). It is always safe to retry a request you are unsure was received.
Response codes
On network failure, timeout, or a
5xx response, retry with exponential backoff (for example 30s, 2m, 10m, then hourly for up to 24 hours). Suggested client timeout: 10 seconds — the endpoint acknowledges quickly and delivers asynchronously.