Disqualify candidate
Disqualify a candidate from one job with a reason from your workspace list.
POST https://cotlet.dev/api/v1/recruiterflow/jobs/{job_id}/candidates/{candidate_id}/disqualify
Disqualifies one candidate from one job. reason must be one of the names under Workspace Settings → Disqualification Reasons; any other value fails and the error lists the valid ones. Only that job is affected: the candidate stays in the database and on other jobs. Recruiterflow does not notify the candidate itself, but a Recipe with the trigger Candidate is disqualified can email them. Undo it in Recruiterflow with Re-qualify on the job card, which returns the candidate to the previous stage. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| job_id string required | string | Job id from list_jobs. |
| candidate_id string required | string | Candidate id from list_job_candidates. |
| reason string required | string | A disqualification reason of your workspace, e.g. Not enough experience. |
Request
curl -X POST https://cotlet.dev/api/v1/recruiterflow/jobs/48213/candidates/771204/disqualify \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"reason":"No response"}' result = client.call("recruiterflow", "disqualify_candidate", {"job_id":"48213","candidate_id":"771204","reason":"No response"}) const result = await cotlet.call('recruiterflow', 'disqualify_candidate', {"job_id":"48213","candidate_id":"771204","reason":"No response"}); cotlet call recruiterflow disqualify_candidate --data '{"job_id":"48213","candidate_id":"771204","reason":"No response"}' Example response
{
"candidate_id": "771204",
"job_id": "48213",
"status": "disqualified",
"reason": "No response",
"previous_stage": "Phone Screen",
"disqualified_at": "2026-10-23T09:02:00Z"
}