List job candidates

Candidates of one job with their stage, the date they entered it and the last activity.

GET https://cotlet.dev/api/v1/recruiterflow/job-candidates

read

Lists the candidates on one job, one page at a time, oldest in stage first. stage takes a stage name from get_job. status active is the default, disqualified returns candidates removed from the job with their reason. stage_since is when the candidate entered the current stage. last_activity is the newest entry in the Activity Log.

Parameters

Parameters: list_job_candidates
NameTypeDescription
job_id string required string Job id from list_jobs.
stage string string Stage name as get_job shows it.
status enum enum active (default) or disqualified.
limit integer integer 1 to 50. Default: 25.
cursor string string Next page cursor from the previous call.

Request

cURL
curl "https://cotlet.dev/api/v1/recruiterflow/job-candidates?job_id=job_8c41d2" \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("recruiterflow", "list_job_candidates", {"job_id":"job_8c41d2"})
Node.js
const result = await cotlet.call('recruiterflow', 'list_job_candidates', {"job_id":"job_8c41d2"});
CLI
cotlet call recruiterflow list_job_candidates --data '{"job_id":"job_8c41d2"}'

Example response

JSON

{
  "candidates": [
    {
      "candidate_id": "771204",
      "name": "Priya Nair",
      "stage": "Phone Screen",
      "stage_since": "2026-09-02",
      "last_activity": {
        "type": "email",
        "direction": "outgoing",
        "at": "2026-09-04T10:30:00Z"
      }
    },
    {
      "candidate_id": "771390",
      "name": "Marcus Lee",
      "stage": "Phone Screen",
      "stage_since": "2026-10-14",
      "last_activity": {
        "type": "email",
        "direction": "incoming",
        "at": "2026-10-21T08:05:00Z"
      }
    }
  ],
  "next_cursor": null
}

Sign in once. Your agent does the rest.

Sign up and add the apps you need. Free 7-day trial with 2,000 credits, no card needed.