Skip to main content

Quickstart

The ZenHire API is one platform with four modules — CV DeepMatch, CV DeepSearch, Interview, and Speech — behind a single base URL and a single auth model. This page gets you from zero to your first call, then points you at the module you need.

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

1. Get an API key

Create an API key in the ZenHire dashboard. Keys look like zh_api_… and every request sends it as an X-API-Key header. Each key is scoped to your client and to the modules your client has enabled.

See Authentication for rotation and per-module permissions.

2. Learn the shared model

Every module works the same way, so what you learn once applies everywhere:

  • One auth headerX-API-Key on every request.
  • Async submit → poll — you submit a job and get back an id, then poll GET …/{id} until it reaches a terminal status (success / partial / failed). An optional webhook_url can deliver the result instead of polling.
  • Universal concepts — the id model, error envelope, credits, and health are identical across modules. Read them once in the Universal section.

3. Pick your module

ModuleWhat it doesStart here
CV DeepMatchScore a CV against a job description.CV DeepMatch overview
CV DeepSearchSearch a corpus of parsed CVs for the best-matching candidates against a position.CV DeepSearch overview
InterviewRun an AI voice interview and retrieve the recording + transcript.Interview quickstart
SpeechScore interview audio for vocabulary, fluency, and accent (CEFR).Speech overview

A first call (Speech example)

Here is the submit → poll shape end to end, using the Speech module. CV DeepMatch, CV DeepSearch, and Interview follow the same pattern against their own endpoints.

# Submit — returns an id
curl -X POST "https://platform.zenhire.ai/api/v1/speech/analyze" \
-H "X-API-Key: zh_api_YOUR_KEY_HERE" \
-F "audio=@interview.mp3" \
-F "language=en"

# Poll — until status is success / partial / failed
curl "https://platform.zenhire.ai/api/v1/speech/analyze/req_1705412345678_abc123" \
-H "X-API-Key: zh_api_YOUR_KEY_HERE"

The id is the run's canonical identifier and never expires — you can stop and resume polling later. Don't poll a given id faster than every 10 seconds.

Next steps