Skip to Content

Actions

The three writes on the v1 surface. All of them require the candidate’s job to be inside the key’s workspace and claims (404 V1_RESOURCE_NOT_FOUND otherwise).

Move a candidate to another stage

PATCH /api/v1/applications/:applicationId/stage
curl -X PATCH https://api.reordinal.com/api/v1/applications/app_123/stage \ -H "X-API-Key: $REORDINAL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "stage": "stage_interview" }'
  • stage (alias stageId): required — the target stage’s public ID, from the job’s stages (see Get a job).

Returns the updated stage info under data.

StatusCodeWhen
400V1_INVALID_REQUESTstage missing or empty
404V1_RESOURCE_NOT_FOUNDOut of scope / not found

Tag a candidate

PATCH /api/v1/applications/:applicationId/tags

Two body forms:

Add/remove (merge) — the convenient form; merges against current tags:

{ "add": ["strong-system-design"], "remove": ["maybe"], "color": "#6366f1" }
  • add: tag names to add — newly created tags get color (or a default).
  • remove: tag names to remove, case-insensitive.

Replace — sets the full tag list; each tag needs a name and hex color:

{ "tags": [{ "name": "strong-system-design", "color": "#6366f1" }], "addToJobTags": [{ "name": "strong-system-design", "color": "#6366f1" }] }
  • addToJobTags: optional — also register these tags at the job level.

Returns { "application": { "id", "jobId", "tags": [...] } }.

StatusCodeWhen
400V1_INVALID_REQUESTNeither tags nor add/remove given; missing name; invalid hex color
404V1_RESOURCE_NOT_FOUNDOut of scope / not found

Rerun ATS scoring

POST /api/v1/applications/:applicationId/ats/rerun

Re-scores the candidate against the job’s current description and criteria — use it after the job changed.

Costs one credit, charged to the workspace. Requires the resume to be parsed and the job to have a description. With no credits available the rerun is skipped and nothing is charged.

{ "status": "success", "data": { "message": "ATS re-run triggered" } }
StatusCodeWhen
400V1_INVALID_REQUESTResume not parsed yet, job has no description, or a pipeline is already running
404V1_RESOURCE_NOT_FOUNDOut of scope / not found

Scoring is asynchronous — poll GET /api/v1/applications/:id/ats for the new result.