Upcoming as a key-authenticated partner API. This page defines the
surface. Jobs and candidates are managed today in the Exterview app and
through the MCP server. See Authentication &
Scopes.
Purpose
The base CRUD for jobs and candidates. These are the entities every evaluation module runs on. Reads publish first, writes sit behind awrite scope, and destructive deletes sit behind a separate destructive scope or may be omitted from public docs entirely.
Reads
job, jobs, questionsByJob, jobFormOptions, candidate, candidates, candidatesByJob, getBulkUploadJob.
Writes (write scope)
createJob, updateJob, publishJob, closeJob, addCandidate, updateCandidate, advanceCandidate, rejectCandidate, updateCandidateEligibility, updateCandidateVerdict, importCandidatesFromPool, getResumeUploadUrl.
Candidate status writes record a human decision, made by the authenticated
user. No automated step sets a candidate to hired, rejected, or withdrawn.
Destructive (separate scope, or omitted)
deleteJob, bulkDeleteJobs, deleteCandidate, bulkDeleteCandidates.
FAQs
What is the minimum needed to start?
What is the minimum needed to start?
Create a job, then add candidates to it. The intelligence modules run on those two entities.
How are writes protected?
How are writes protected?
Writes require the
write scope. Destructive deletes require a separate destructive scope and are not granted by default.How do we load many candidates at once?
How do we load many candidates at once?
Use Bulk Ingest for batches rather than repeated single writes.
Related
- Bulk Ingest. Load candidates and jobs in batches over REST.
- EX Scan. Score and analyze the candidates you create here.

