Candidates

Candidates

The people you invite, one record per email.

You rarely need to create candidates directly: creating an invitation creates or updates the candidate for you. Use these endpoints to keep your own ids and tags in sync.

The candidate object

FieldType
idstringcand_…
object"candidate"
emailstringUnique within your organisation
namestring
phonestring or null
external_idstring or nullYour id, for example from your ATS
tagsstring[]Up to 20
metadataobjectYour own key-value data
livemodeboolean
created_at, updated_attimestamp

List candidates

GET /candidates needs candidates:read. Filters: email, external_id, created_gte, created_lt, plus pagination.

Create a candidate

POST /candidates needs candidates:write.

Field
emailrequired
namerequiredUp to 200 characters
phoneoptionalUp to 40 characters
external_idoptionalUp to 200 characters
tagsoptionalUp to 20 strings
metadataoptionalObject

An email that already exists in the other mode returns 409 candidate_exists_in_other_mode.

Retrieve a candidate

GET /candidates/{id} needs candidates:read.

Update a candidate

PATCH /candidates/{id} needs candidates:write. Send any of name, phone, external_id, tags, metadata. The email cannot change.

Delete a candidate

DELETE /candidates/{id} needs candidates:write. Only a candidate who was never invited can be deleted; otherwise you get 409 candidate_has_sessions.