Skip to main content

ZenHire API Platform

The ZenHire API Platform is organized into four modules plus a set of Universal concepts shared across all of them:

  • Speech Analysis — CEFR-aligned vocabulary, fluency, and accent scores from a raw interview recording, plus a full transcript with speaker diarization and automatic candidate detection.
  • Interview — real-time AI interview sessions. The AI conducts a live spoken interview, streams bidirectional audio, and produces a recording and transcript when the session ends.
  • CV DeepMatch — structured match scoring between a candidate's CV and a job description.
  • CV DeepSearch — the inverse of CV DeepMatch: ingest a corpus of parsed CVs once, then run repeated searches that return the best-matching candidates for a position.

Speech Analysis is asynchronous: you submit audio, get an id back immediately, then poll for results. Typical processing time is 2–5 minutes. Interview is real-time: sessions are driven over a live channel with sub-second AI response latency. CV DeepMatch is asynchronous: submit a CV + JD, poll (or get a signed webhook) for the match. CV DeepSearch is asynchronous: ingest a corpus, then submit a search and poll (or get a webhook) for the best-first candidates.

Every module shares one set of Universal rules — authentication, the run id model, the standard error envelope, credits, and health. Learn them once and they apply across all four.

Across all modules, the public surface is request-only: API keys and Projects are created and managed in the ZenHire dashboard, not via the API. See Authentication for how keys and Projects work.

Speech Analysis endpoints

Base URL: https://platform.zenhire.ai

MethodPathWhat it does
POST/api/v1/speech/analyzeSubmit an audio file — returns id. See Quickstart.
GET/api/v1/speech/analyze/{id}Poll for the result. See Async polling flow.
GET/api/v1/speech/runsList your runs with optional filters.

For full end-to-end example code, see Your first request.

CV DeepMatch endpoints

Base URL: https://platform.zenhire.ai

MethodPathWhat it does
POST/api/v1/cvdeepmatch/submitSubmit a CV + JD — returns id.
GET/api/v1/cvdeepmatch/{id}Poll a single match.
GET/api/v1/cvdeepmatch/requestsList your matches.

See the CV DeepMatch overview to get started.

CV DeepSearch endpoints

Base URL: https://platform.zenhire.ai

MethodPathWhat it does
POST/api/v1/cvds/candidatesIngest parsed CVs into a corpus (idempotent batch upsert).
GET/api/v1/cvds/candidates[/{external_id}]Check per-candidate embedding status.
POST/api/v1/cvds/searchTrigger a search for one position — returns a run id.
GET/api/v1/cvds/runs/{id}Poll a search run.

See the CV DeepSearch overview to get started.

Universal endpoints

Credits and health belong to no single module and live directly under /api/v1:

MethodPathWhat it does
GET/api/v1/creditsCheck your shared balance. See Credits.
GET/api/v1/healthService status (no authentication). See Health.

Interview API endpoints

Base URL: https://platform.zenhire.ai

Run AI voice interviews for your candidates — create a persona, start a per-candidate session, hand the candidate a single-use link, and review the recording + transcript in-platform.

MethodPathWhat it does
POST/api/v1/interview/personasCreate a reusable interviewer persona (role + language).
GET/api/v1/interview/personasList your personas.
POST/api/v1/interview/personas/{personaId}/sessionsStart a session — returns id and a candidate link.
GET/api/v1/interview/sessionsList your sessions.
GET/api/v1/interview/sessions/{sessionId}Fetch session status and metadata.
GET/api/v1/interview/sessions/{sessionId}/recordingThe session recording (streamed audio/wav).
GET/api/v1/interview/sessions/{sessionId}/transcriptThe session transcript.

See Interview API overview to get started.

The full contract is also available as a raw OpenAPI 3.1 file: → Download openapi.yaml

🤖 Building with AI?

Download llms-full.txt — the entire documentation compiled into a single plain-text bundle you can paste into Claude, GPT, or any LLM as context. Regenerated on every docs build, so it's always in sync with the live API.

There's also a short index at llms.txt if you only want the table of contents.