One endpoint. Four AI signals.
A simple REST API. Upload a resume, then call /aiProcess with the analysis you want, AI detection, quality rating, fraud signal or candidate match. JSON in, JSON out.
curl --location 'https://<BASE_URL>.quantumrecruit.io/aiProcess' \ --header 'api-key: <YOUR_KEY>' \ --header 'Content-Type: application/json' \ --data '{ "resumeId": "94b84a9c-...", "analysisType": "CANDIDATE_MATCH", "jobId": "ba1e6e1b-..." }'
From resume to result in three steps.
Authenticate with your API key, upload a resume, then run an analysis.
AuthenticateSend your key in the api-key header on every request. Manage keys via the /userkeys endpoints.
POST /resumes/uploadResumeUpload a PDF or DOCX. You get back a resumeId to analyze.
POST /aiProcessPass the resumeId and an analysisType. Add a jobId for candidate matching.
curl --location 'https://<BASE_URL>.quantumrecruit.io/aiProcess' \ --header 'api-key: <YOUR_KEY>' \ --header 'Content-Type: application/json' \ --data '{ "resumeId": "94b8...", "analysisType": "AI_GENERATED" }'
import requests r = requests.post( "https://<BASE_URL>.quantumrecruit.io/aiProcess", headers={"api-key": KEY, "Content-Type": "application/json"}, json={"resumeId": "94b8...", "analysisType": "AI_GENERATED"}, ) print(r.json())
const r = await fetch( "https://<BASE_URL>.quantumrecruit.io/aiProcess", { method:"POST", headers:{ "api-key": KEY, "Content-Type":"application/json" }, body: JSON.stringify({ resumeId:"94b8...", analysisType:"AI_GENERATED" }) } ); const data = await r.json();
One call, the signal you need.
Set analysisType on /aiProcess — together or on their own.
Returns whether the resume is AI-generated and whether it is AI-assisted (true / false).
Rates resume quality as Poor, Average, Good or Excellent.
Returns a risk level from Clean to Critical, with a message.
Scores skills, experience and education out of 10 into a 0–100% match with a description. Requires a jobId.
Clean JSON for every analysis.
Simplified below; the live API also returns model and token metadata.
{
"success": true,
"analysisType": "AI_GENERATED",
"result": {
"AI-Generated": false,
"AI-Assisted": true
}
}
{
"success": true,
"analysisType": "CANDIDATE_MATCH",
"result": {
"skills_score": 9,
"experience_score": 9,
"education_score": 8,
"match_score": "92%",
"summary": "Strong fit; .NET and cloud experience align."
}
}
28 endpoints across 9 groups.
Resumes and AI processing are the core; the rest manage the workflow around them.
/resumes/uploadResumeUpload a resume (PDF, DOCX) and get a resumeId.
/aiProcessRun AI_GENERATED, RESUME_RATING, FRAUD_SIGNAL or CANDIDATE_MATCH.
Predictable by design.
# API key in the header, HTTPS only api-key: <YOUR_KEY> Content-Type: application/json Accept: application/json
Common questions.
How do I authenticate?
api-key request header over HTTPS. Keys carry role-based access; some endpoints require specific roles.What’s the basic flow?
POST /resumes/uploadResume to get a resumeId, then call POST /aiProcess with that id and an analysisType. For CANDIDATE_MATCH, also pass a jobId.How does pricing work?
What formats can I upload?
Where are the full details?
Start building with QuantumRecruit.
Book a demo to get API access and a walkthrough with our engineers.