API Live · Railway · Neon

AI-powered Job Matching & Resume Intelligence

Match candidates to jobs, rank applicants, analyse resumes, detect skill gaps, and generate cover letters — all via a single REST API. Scores delivered in under 3 seconds.

POST ai-job-match-api.up.railway.app/v1/match
// Response — candidate matched to job in 2.1s { "match_score": 92, "match_level": "EXCELLENT", "summary": "Strong fit — 5 yrs React + Node.js aligns with role requirements. Leadership experience is a standout.", "strengths": ["React expertise", "Team leadership", "Scalable APIs"], "missing_skills": ["PostgreSQL", "Docker"], "interview_probability": 0.90, "component_scores": { "skill_overlap": 100, "experience": 95, "ats_keywords": 77, "semantic_similarity":88 }, "meta": { "latency_ms": 2143, "tokens_used": 644 } }
5
AI Endpoints
<3s
Avg Latency
50
Candidates / Batch
10+
Languages
0
Setup Required
Try it right now — no sign-up required
Paste a resume and job description and see real AI match results in seconds.
Everything you need to automate hiring
One API key. Five AI-powered endpoints. No ML infrastructure to manage.
🎯
Hybrid Match Scoring
Combines LLM analysis, semantic embeddings, and keyword overlap into a single 0–100 score with POOR → EXCELLENT level and interview probability.
🏆
Candidate Ranking
Submit up to 50 candidates at once and get them ranked by fit score. Batch processing with concurrent LLM calls for fast results.
📄
Resume Analysis
ATS compatibility score, format, content quality, detected skills, estimated experience, and actionable improvement suggestions.
📈
Skill Gap Detection
Compare any resume against a target role. Get missing skills ranked by hiring impact, with learning resources and a readiness score.
✍️
Cover Letter Generator
Generate personalised, role-specific cover letters with key selling points highlighted. Supports tone and language customisation.
📎
PDF Resume Upload
Upload a PDF directly — the API extracts the text and runs analysis in one request. No client-side parsing needed.
Full API reference
Method Endpoint Description Auth
GET
/v1/auth/usage
Today's request count and token usage
API Key
GET
/v1/auth/history
Recent request log — endpoint, status, latency, tokens
API Key
POST
/v1/match
Match a candidate to a job — returns score, strengths, missing skills, recommendations
API Key
POST
/v1/match/pdf
Same as /v1/match but accepts a PDF file upload instead of resume text
API Key
POST
/v1/match/cover-letter
Generate a personalised cover letter for a candidate + job pair
API Key
POST
/v1/rank-candidates
Rank up to 50 candidates for a job — batch scored and sorted by fit
API Key
POST
/v1/analyze-resume
ATS score, format, content, detected skills, experience estimate, improvements
API Key
POST
/v1/analyze-resume/pdf
Resume analysis from a PDF upload — text extraction handled server-side
API Key
POST
/v1/skill-gap
Compare resume against a target role — missing skills, learning priorities, readiness score
API Key
GET
/health
Liveness + database connectivity check
Public
Up and running in 60 seconds
JavaScript
Python
cURL
// Subscribe on RapidAPI — no registration step needed
const result = await fetch('https://ai-job-match1.p.rapidapi.com/v1/match', {
  method: 'POST',
  headers: {
    'X-RapidAPI-Key': 'your-rapidapi-key',
    'X-RapidAPI-Host': 'ai-job-match1.p.rapidapi.com',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    candidate: {
      name: 'Jane Dev',
      resume_text: '5 years React developer, led team of 4, built Node.js APIs...',
      skills: ['React', 'Node.js', 'TypeScript'],
      experience_years: 5
    },
    job: {
      title: 'Senior Frontend Developer',
      description: 'Looking for React + TypeScript expert with 3+ years...'
    }
  })
}).then(r => r.json());

console.log(result.match_score);   // 92
console.log(result.match_level);   // "EXCELLENT"
import requests

# Subscribe on RapidAPI — no registration step needed
BASE = "https://ai-job-match1.p.rapidapi.com/v1"
headers = {
    "X-RapidAPI-Key": "your-rapidapi-key",
    "X-RapidAPI-Host": "ai-job-match1.p.rapidapi.com"
}

result = requests.post(f"{BASE}/match", headers=headers, json={
    "candidate": {
        "name": "Jane Dev",
        "resume_text": "5 years React developer, led team of 4, built Node.js APIs...",
        "skills": ["React", "Node.js", "TypeScript"],
        "experience_years": 5
    },
    "job": {
        "title": "Senior Frontend Developer",
        "description": "Looking for React + TypeScript expert with 3+ years..."
    }
}).json()

print(result["match_score"])   # 92
print(result["match_level"])   # EXCELLENT
print(result["missing_skills"]) # ['PostgreSQL', 'Docker']
# Subscribe on RapidAPI — no registration step needed
# Match candidate to job
curl -X POST https://ai-job-match1.p.rapidapi.com/v1/match \
  -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: ai-job-match1.p.rapidapi.com" \
  -H "Content-Type: application/json" \
  -d '{"candidate":{"name":"Jane Dev","resume_text":"5 years React developer...","skills":["React","Node.js"],"experience_years":5},"job":{"title":"Senior Frontend Developer","description":"Looking for React expert with 3+ years..."}}'

# Analyse a resume
curl -X POST https://ai-job-match1.p.rapidapi.com/v1/analyze-resume \
  -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: ai-job-match1.p.rapidapi.com" \
  -H "Content-Type: application/json" \
  -d '{"resume_text":"6 years software engineer, React, TypeScript, Node.js..."}'

# Skill gap to target role
curl -X POST https://ai-job-match1.p.rapidapi.com/v1/skill-gap \
  -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: ai-job-match1.p.rapidapi.com" \
  -H "Content-Type: application/json" \
  -d '{"resume_text":"3 years analyst, Excel, SQL, Tableau...","target_role":"Data Scientist"}'
Simple, transparent pricing
Available on RapidAPI. No credit card required to start.
Free
$0/mo
Try every endpoint, no card needed

  • 10 requests / day
  • All 5 AI endpoints
  • PDF resume upload
  • Multi-language support
  • Usage dashboard
Get Started Free
Enterprise
Custom
High-volume or white-label integration

  • 10 000+ requests / day
  • Everything in Pro
  • Custom rate limits
  • SLA guarantee
  • Direct Slack support
Contact Us
FAQ
How is the match score calculated?
It's a hybrid: an LLM scores skill overlap, experience alignment, seniority fit, and ATS keyword density. Semantic embeddings measure conceptual similarity between the resume and job description. A keyword overlap score cross-checks the LLM. All components are weighted and combined into a final 0–100 score.
What languages are supported?
Pass a "language" field (e.g. "es", "fr", "de") and the API will analyse the content in that language. JSON keys and skill names are always returned in English for consistency.
Can I upload a PDF resume instead of raw text?
Yes. POST /v1/match/pdf and POST /v1/analyze-resume/pdf accept a multipart file upload. Text extraction is handled server-side — only PDF files are accepted.
How many candidates can I rank in one request?
Up to 50 candidates per request. They are scored in parallel batches of 5, so a full batch of 50 typically completes in 20–30 seconds.
Are requests counted per endpoint call or per candidate?
Per API call. Ranking 50 candidates counts as 1 request against your daily quota, not 50.

Ready to build?

Free tier available. No credit card required.

Get your API key →