Skip to main content
A mandate is the job Record checks candidates against: its skills, screening questions and checks. Record writes the questions in the background. Before you create one, pick its skills and, if you want, its place, employment type and shift.

Rules the server checks

  • 5–10 skills (max 10). Fewer than 5 is accepted with a warning.
  • At most 3 skills with verify: true, and only skills that are verifiable.
  • At most 5 screening questions (10 when data_enrichment is the only method, as in the playground), each a yes_no (Yes / No) or voice (the candidate answers in their own words) question. Any other type, or an options field, answers 400 VALIDATION_FAILED.
  • If skill_verification is on, you need at least 1 verified skill.
  • If data_enrichment is on, you need at least 1 question.
  • The job is in India (location) or abroad (location_type: "abroad" + 1–10 countries), never both.
  • Experience is whole years, 0–50.

Preparing and ready

A new mandate answers 202 Accepted with status: "preparing" while Record writes the skill questions:
Repeat GET /mandates/{mandate_id} until status is ready. A campaign created while the mandate is still preparing waits and goes out by itself once it is ready. Each change makes a new flow_version.

After it is created: what can you change?

Any change is refused with 409 CONFLICT while the mandate is preparing (wait for Retry-After), and a mandate takes at most 10 changes an hour. Only mandates created through the API can be changed; playground mandates answer 403 FORBIDDEN.

Close the job

Archive the mandate when the job is filled: no new campaigns start, running ones finish, and results stay readable. DELETE does the same. Nothing is erased.

Endpoints

Create a job mandate

POST /mandates Create the job Record verifies candidates against. Returns mandate_id; questions are prepared in the background. Scope: mandates:write · Idempotency-Key: required
Save data.mandate_id for the next step. Can also return idempotency errors (IDEMPOTENCY_KEY_REQUIRED, IDEMPOTENCY_IN_PROGRESS, IDEMPOTENCY_KEY_REUSED) and the common errors. Full schema

Get a job mandate

GET /mandates/{mandate_id} Read the mandate. Repeat until status is ready (questions prepared) before expecting candidates to be contacted. location_type says where the job is: for india, location holds the place; for abroad, countries lists { code, name } and location is null. location_names is every place or country name as the playground shows it. Scope: mandates:read or mandates:write
For a job abroad, location is null and countries lists each country:
Can also return the common errors. Full schema

List job mandates

GET /mandates List your organisation’s job mandates (made here or in the playground). Scope: mandates:read or mandates:write
Can also return the common errors. Full schema

Get mandate questions

GET /mandates/{mandate_id}/questions See what a candidate will be asked, in en ta hi kn te or ml (English where a translation is not ready). Read-only: change them with PUT …/questions. Scope: mandates:read or mandates:write
Can also return the common errors. Full schema

Update mandate questions

PUT /mandates/{mandate_id}/questions The write side of GET …/questions: replace the screening questions, or ask Record to write new skill questions. One part per call. Scope: mandates:write · Idempotency-Key: required
Can also return idempotency errors (IDEMPOTENCY_KEY_REQUIRED, IDEMPOTENCY_IN_PROGRESS, IDEMPOTENCY_KEY_REUSED) and the common errors. Full schema

Replace a job mandate

PUT /mandates/{mandate_id} Replace the whole mandate (send the full body again). An identical resend changes nothing. Scope: mandates:write · Idempotency-Key: optional
Can also return idempotency errors (IDEMPOTENCY_IN_PROGRESS, IDEMPOTENCY_KEY_REUSED) and the common errors. Full schema

Update mandate checks

PUT /mandates/{mandate_id}/methods Change only which checks run on the mandate. Scope: mandates:write · Idempotency-Key: optional
Can also return idempotency errors (IDEMPOTENCY_IN_PROGRESS, IDEMPOTENCY_KEY_REUSED) and the common errors. Full schema

Replace mandate skills

PUT /mandates/{mandate_id}/skills Replace only the skill list. Changing the verified skills regenerates the skill questions. Scope: mandates:write · Idempotency-Key: optional
Can also return idempotency errors (IDEMPOTENCY_IN_PROGRESS, IDEMPOTENCY_KEY_REUSED) and the common errors. Full schema

Replace screening questions

PUT /mandates/{mandate_id}/enrichment-questions Replace only the screening questions (1 to 5, or 10 with enrichment only). Scope: mandates:write · Idempotency-Key: optional
Can also return idempotency errors (IDEMPOTENCY_IN_PROGRESS, IDEMPOTENCY_KEY_REUSED) and the common errors. Full schema

Archive a job mandate

POST /mandates/{mandate_id}/archive Close the job when it is filled: no new campaigns start, running ones finish, results stay readable. Scope: mandates:write · Idempotency-Key: required
Can also return idempotency errors (IDEMPOTENCY_KEY_REQUIRED, IDEMPOTENCY_IN_PROGRESS, IDEMPOTENCY_KEY_REUSED) and the common errors. Full schema

Delete a job mandate

DELETE /mandates/{mandate_id} Same as archive. Nothing is erased; collected results stay readable. Scope: mandates:write · Idempotency-Key: optional
Can also return idempotency errors (IDEMPOTENCY_IN_PROGRESS, IDEMPOTENCY_KEY_REUSED) and the common errors. Full schema