Reference for developers
Available on Enterprise plans. Lets your own systems (ATS, HR tooling) submit candidate CVs and get back AI matching results against a job description you send directly — you don't need to post the job on Orixa at all. Same scoring the dashboard's "Match with AI" button runs, callable headlessly.
Keep the key secret: it authenticates as your company and its use is billed against your account's credits.
Send the key on every request as the X-API-Key header:
X-API-Key: oxa_live_xxxxxxxxxxxxxxxxxxxxxxxxPOST /api/v1/cv-pooling/match
Request body
POST /api/v1/cv-pooling/match
Content-Type: application/json
X-API-Key: oxa_live_xxxxxxxxxxxxxxxxxxxxxxxx
{
"job_title": "Senior Backend Engineer",
"job_description": "We're looking for an engineer with 5+ years of Node.js, PostgreSQL, and AWS experience...",
"candidates": [
{
"candidate_ref": "your-ats-id-123",
"candidate_name": "Jane Doe",
"cv_file_name": "jane-doe.pdf",
"cv_url": "https://your-storage.example.com/cvs/jane-doe.pdf"
},
{
"candidate_ref": "your-ats-id-124",
"cv_file_name": "resume.pdf",
"cv_base64": "JVBERi0xLjQK..."
}
]
}job_title / job_description — required. The CV is matched directly against these — nothing needs to exist in Orixa first.candidates — 1 to 25 per request. Each candidate needs exactly one of:cv_url — a publicly reachable URL to the CV (preferred for larger files)cv_base64 — the raw file, base64-encoded (for CVs without a public URL)candidate_ref is your own identifier — echoed back on the result so you can match it up on your side (these CVs aren't stored in Orixa, so there's no internal id to return).Response
{
"success": true,
"message": "CVs matched successfully. 1 credit used, 42 remaining.",
"data": {
"job_title": "Senior Backend Engineer",
"results": [
{
"candidate_ref": "your-ats-id-123",
"candidate_name": "Jane Doe",
"match_percentage": 87,
"matched_skills": ["Node.js", "PostgreSQL", "AWS"],
"missing_skills": ["Kubernetes"],
"summary": "Strong backend experience with directly relevant stack...",
"recommendation": "strong_fit"
}
],
"credits_used": 1,
"credits_remaining": 42
}
}If a specific CV couldn't be scored (unreachable URL, unsupported format, malformed AI response), that candidate's result carries an error field instead of scores — it doesn't fail the rest of the batch.
Same pricing as the dashboard feature: 1 credit per 5 CVs matched, rounded up, deducted from your subscription before matching runs.
| Status | Meaning |
|---|---|
| 401 | Missing, invalid, or revoked API key |
| 402 | Not enough credits remaining |
| 403 | Your plan doesn't include API access |
| 400 | Invalid request body (see message for details) |