Skip to main content
Version: 1.0.0

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 same position_id contract the run APIs use). Optional, unique per client among active jobs.
  • job_id (the id field) — 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 issued in the ZenHire dashboard. Format: zh_live_… or zh_test_….

Security Scheme Type:

apiKey

Header parameter name:

X-API-Key