Updates an existing candidate for the authenticated company.
At least one updatable field must be present. Supplying notes creates a
note_added activity. Supplying a new stage creates a stage_changed
activity and enqueues the candidate.stage_changed webhook event.
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Numeric candidate id.
Request body for updating a candidate.
All fields are optional, but at least one recognized field must be present.
Several fields are nullable and can be explicitly cleared by sending null.
stage is not nullable in the current implementation.
Candidate name after trimming.
1 - 200"Jane Doe"
Optional candidate email. Used in duplicate detection by job.
"jane@example.com"
Candidate phone number, or null to clear it.
100"+61 412 345 678"
LinkedIn profile URL, or null to clear it.
"https://linkedin.com/in/janedoe"
Freeform location, or null to clear it.
500"Melbourne, Australia"
Optional note that creates a note_added activity row.
2000"Spoke with hiring manager"
Candidate rating from 1 to 5, or null to clear it.
1 <= x <= 55
External ATS candidate id, or null to clear it.
255"ext-456"
New candidate stage. Cannot be null in the current implementation.
prospect, applied, phonescreen, inprogress, hired, rejected "phonescreen"
Candidate updated
Wrapper for a single candidate resource.
Public representation of a candidate.
{
"id": 419,
"public_id": "e3745169-a137-4b99-8fcc-373d6d4c8d60",
"name": "Jane Doe",
"email": "jane@example.com",
"phone": "+61412345678",
"linkedin": "https://linkedin.com/in/janedoe",
"location": "Sydney, Australia",
"stage": "applied",
"rating": 4,
"fit_score": 82,
"application_source": "public_api",
"ats_candidate_id": "ext-456",
"job": { "id": 40, "title": "Senior Engineer" },
"created_at": "2026-03-11T10:21:54.289003Z",
"updated_at": "2026-03-11T10:21:54.544000Z",
"applied_at": "2026-03-11T10:21:54.289003Z",
"resume_url": "https://api.outhire.ai/storage/cv/example.pdf?token=eyJhbGciOiJIUzI1NiIs...",
"resume_data": {
"personalInfo": {
"name": "Jane Doe",
"email": "jane@example.com"
},
"summary": "Senior engineer with 8 years of experience"
},
"resume_status": "processed"
}