CV DeepMatch overview
CV DeepMatch runs asynchronous CV ↔ job-description matching. You
upload a candidate's CV (PDF) plus a job description and a requirements
config, and ZenHire returns a structured score breakdown.
Base URL: https://platform.zenhire.ai/api/v1/cvdeepmatch
One unified surface
Every CV DeepMatch operation lives under a single /api/v1/cvdeepmatch/*
namespace:
| Method | Path | What it does |
|---|---|---|
POST | /api/v1/cvdeepmatch/submit | Submit a CV + JD — returns id. |
GET | /api/v1/cvdeepmatch/{id} | Poll a single match by its id. |
GET | /api/v1/cvdeepmatch/requests | List your matches, newest first. |
Credits and health are Universal endpoints
(/api/v1/credits, /api/v1/health), shared with the other modules.
How you get the result
You choose how to receive the match:
- Poll only — omit
webhook_urland pollGET /api/v1/cvdeepmatch/{id}until the run is terminal. No public endpoint required. - Poll + webhook — supply a
webhook_urland ZenHire also POSTs a signed callback when the match finishes. The poll endpoint still works; the webhook is an additional push channel, not a replacement.
Identifiers, errors, credits
CV DeepMatch follows the shared Universal model:
- The match
id— poll, fetch, and correlate with it. - Your
externalIdcorrelation tag — your own reference, echoed back. - The standard error envelope on every 4xx/5xx
(
{ error: { code, message, timestamp, requestId, details? } }). - One shared credit ledger — 3 credits per match.
Get started
- CV DeepMatch integration guide — submit, poll, and verify the webhook signature end-to-end.
- Position config reference — how
to shape the
requirementsconfig (importance scale, cardinality, education). - CV DeepMatch API reference — every endpoint, parameter, and schema with a "Try it" console.