HR Tech API

Resume Job Match Score API — Rank Candidates Against Any Job Description

Send a CV file and a job description; get back a 0–100 match score across ~20 dimensions — skills, experience, education, tech stack, seniority, stability and more. Every dimension comes with a plain-language explanation, so your screening is rankable and defensible.

~20 scoring dimensions, 0–100 each
Explanations per dimension — no black box
Async REST API — built for batch screening

14-day trial · 100,000 words included · No credit card required

Score a Resume Against a Job — Right Now

Pick a sample CV, paste any job description, and watch the AI score the match live.

Try it live — no signup needed

Live demo

Pick a sample resume, paste a job description and watch the AI score the match.

Demo runs on bundled sample documents. Want to test your own files? Start a free trial

That was a live API response. Get your own API key and 100,000 free trial words — no credit card required.

Double opt-in, unsubscribe anytime.

Try it live — no signup needed

Live demo

Pick a sample document and watch this API process it in real time.

Demo runs on bundled sample documents. Want to test your own files? Start a free trial

That was a live API response. Get your own API key and 100,000 free trial words — no credit card required.

Double opt-in, unsubscribe anytime.

How the Match Score API Works

CV file + job description in, multi-dimensional scores out — fully asynchronous.

1

POST CV + job description

Send the resume file (PDF, DOC/DOCX, TXT, RTF or image) plus the job description text to /api/v1/hr/resume_job_match_score.

2

Get a status URL

The API responds immediately with 202 Accepted and a status_url — scoring runs asynchronously on our queue.

3

Poll or get a webhook

Poll the status URL or pass a webhook URL header and get called back when the analysis is done.

4

Read scores + explanations

Receive an overall match plus ~20 per-dimension scores (0–100) with plain-language explanations you can surface to recruiters.

What a Match Score Looks Like

A sample of the match_scores dimensions from a real API response — the full payload covers ~20 dimensions plus explanations.

Dimension Score
Overall match
65
Skills match
80
Experience match
90
Education match
0
Technical stack match
80
Job title relevance
70
Industry experience
85
Soft skills match
75
Language proficiency
100
Management experience
100
Remote work flexibility
80
Stability score
85

Also scored: certifications, project experience, methodologies, location preference, training relevance, years-of-experience weighting, recent role relevance and cultural fit potential.

Call it from any stack

Submit a job, poll the status URL, get structured JSON. SDKs available for PHP, Laravel, Python, Node.js, .NET and Flutter.

curl -X POST "https://sharpapi.com/api/v1/hr/resume_job_match_score" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file": "@resume.pdf", "content": "We are hiring a Senior Backend Developer (PHP/Laravel)..."}'
$response = Http::withToken('YOUR_API_KEY')
    ->post('https://sharpapi.com/api/v1/hr/resume_job_match_score', {"file": "@resume.pdf", "content": "We are hiring a Senior Backend Developer (PHP/Laravel)..."});

$statusUrl = $response->json('status_url'); // poll until status = success
import requests

response = requests.post(
    "https://sharpapi.com/api/v1/hr/resume_job_match_score",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={"file": "@resume.pdf", "content": "We are hiring a Senior Backend Developer (PHP/Laravel)..."},
)
status_url = response.json()["status_url"]  # poll until status == "success"
{
    "data": {
        "type": "api_job_result",
        "id": "2f17d9ef-dcbc-4521-9a20-6d9f41e58de8",
        "attributes": {
            "status": "success",
            "type": "hr_resume_job_match_score",
            "result": {
                "match_scores": {
                    "overall_match": 65,
                    "skills_match": 80,
                    "experience_match": 90,
                    "education_match": 0,
                    "certifications_match": 0,
                    "job_title_relevance": 70,
                    "industry_experience_match": 85,
                    "project_experience_match": 75,
                    "technical_stack_match": 80,
                    "methodologies_match": 60,
                    "soft_skills_match": 75,
                    "language_proficiency_match": 100,
                    "location_preference_match": 50,
                    "remote_work_flexibility": 80,
                    "certifications_training_relevance": 0,
                    "years_experience_weighting": 90,
                    "recent_role_relevance": 60,
                    "management_experience_match": 100,
                    "cultural_fit_potential": 70,
                    "stability_score": 85
                },
                "explanations": {
                    "skills_match": "The candidate has strong PHP and MySQL skills, which align well with the job requirements. However, specific mention of Laravel experience is missing.",
                    "experience_match": "The candidate has over 22 years of programming experience, which is highly relevant and exceeds the typical requirements for the role.",
                    "education_match": "No specific educational background is provided in the resume, making it impossible to assess alignment with job requirements.",
                    "certifications_match": "No certifications are listed in the resume, so alignment with any required certifications cannot be assessed.",
                    "language_proficiency_match": "The candidate has professional working proficiency in English, which matches the job requirement for English communication skills."
                }
            }
        }
    }
}

Full API documentation »

Who Builds on the Match Score API

Anywhere candidates meet job descriptions at scale.

Applicant Tracking Systems

Rank every inbound application against the opening automatically, so recruiters open the shortlist — not a pile of PDFs.

200 applicants → sorted by overall_match

Job Boards & Marketplaces

Show applicants a fit score before they apply, and send employers pre-ranked candidates instead of raw volume.

candidate ↔ posting → fit badge

Staffing & Recruitment Agencies

Match your entire candidate bench against a new client brief in one batch run — with reasoning you can forward to the client.

bench × brief → ranked longlist

HR SaaS & Talent Intelligence

Add screening scores, gap analysis and dimension breakdowns to your product without building an ML pipeline.

CV + JD → 20-dimension report

Internal Mobility Platforms

Score employees against open internal roles to surface transfer and promotion candidates objectively.

employee profile → internal role fit

Outplacement & Career Coaching

Show job seekers which requirements they miss for a target role, dimension by dimension, with concrete explanations.

gap report → coaching plan

Pairs well with the Resume Parsing API and the rest of the HR Tech API catalog.

Why Developers Pick This Scoring API

Multi-dimensional, not one number

~20 named dimensions instead of a single opaque score — weight them your way, filter by the ones the role actually needs.

Explanations built in

Each key dimension ships with a human-readable justification. Recruiters and auditors see why, not just how much.

Any CV format in

PDF, DOC/DOCX, TXT, RTF or scanned images — parsing and OCR are part of the same call, no pre-processing on your side.

80+ languages, cross-language

Resume and job description can be in different languages; request the explanations in whichever language your users read.

Async with webhooks

202-and-poll or webhook callbacks — screen hundreds of candidates in parallel without holding connections open.

Per-word pricing, GDPR & SOC 2

You pay per processed word, with no per-document fees. SOC 2 Type II audited; candidate data processed transiently, never used for training.

SharpAPI SOC 2 Type II

SharpAPI هو الآن متوافق مع SOC 2 Type II. يمكنك التحقق من التفاصيل على موقعنا بوابة مركز الثقة.

بياناتك هي بياناتك. تعرف على كيفية حمايتنا لها والامتثال لمعايير الخصوصية العالمية في موقعنا سياسة معالجة البيانات والامتثال .

Predictable pricing from $50/month

14-day free trial with 100,000 words included. No credit card required. 30-day money-back guarantee on your first payment.

Resume Job Match Score API — FAQ

A JSON object with roughly 20 scoring dimensions rated 0–100 — overall match, skills, experience, education, certifications, job title relevance, industry and project experience, technical stack, methodologies, soft skills, language proficiency, location and remote-work fit, seniority weighting, recency, management experience, cultural fit potential and stability — plus plain-language explanations for the key dimensions.

Two things: the resume file (PDF, DOC/DOCX, TXT, RTF or a scanned image, up to 100 MB) and the job description as text in the content parameter. Optionally you can pass a language for the output and an extra context string (e.g. company specifics or must-have criteria, up to 5,000 characters).

The CV is parsed into structured data first, then an LLM evaluates it against the job description dimension by dimension. Scores are integers from 0 to 100, and the explanations tell you why a dimension scored high or low — so recruiters see reasoning, not a black box.

Yes — that is the primary use case. Submit one job per resume asynchronously (each returns its own status URL or webhook callback), then sort candidates by overall_match or by the dimensions that matter for the role. The async design is built for batch screening.

Both the CV and the job description can be in any of 80+ supported languages, and they do not have to match — you can score a German resume against an English job ad and request explanations in a language of your choice.

Pricing is per processed word — plans start at $50/month with a 14-day free trial including 100,000 words, no credit card required. SharpAPI is SOC 2 Type II certified and GDPR compliant; resumes are processed transiently and never used to train models.

Screen Smarter, Not Longer

Grab an API key, send a CV and a job description, and get a 20-dimension match report back in seconds.

لا حاجة لبطاقة ائتمان