ZenHire Jobs API
A saved-jobs catalog: store a job's description and requirements config once, then reference it from both CV DeepMatch and CV DeepSearch instead of re-sending the full content on every run.
A saved job carries:
position_id— your own job identifier (the sameposition_idcontract the run APIs use). Optional, unique per client among active jobs.job_id(theidfield) — the platform-assigned identifier, usable as an alternative reference on run submits.job_description— the JD prose.config— the structured requirements config, strictly validated on every save with the same contract CV DeepMatch validates at submit (see the Position config reference).
One saved job serves both services: CV DeepMatch consumes
job_description + config directly; CV DeepSearch composes its
position_metadata from the same job as {...config, job_description}.
See the Jobs guide for the reuse-by-reference flow.
Authentication & permission
All endpoints require an X-API-Key header. The calling client's
permissions[] must contain cvdeepmatch or cvdeepsearch — either
unlocks the whole Jobs surface (403 MISSING_PERMISSION otherwise).
Tenancy
Jobs are strictly scoped to your client. A job id that does not exist for
your client — including another tenant's id — answers 404 NOT_FOUND.
Deleting = archiving
DELETE is a soft delete: the job disappears from list and lookup, run
submits can no longer reference it, and its position_id becomes free
for reuse.
Authentication
- API Key: ApiKeyAuth
API key issued in the ZenHire dashboard. Format: zh_live_… or zh_test_….
Security Scheme Type: | apiKey |
|---|---|
Header parameter name: | X-API-Key |