JobMatchAI API

The JobMatchAI API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Use this API to programmatically parse PDF resumes, extract structured ATS data, and generate AI-driven match scores directly within your own ATS or HR platform.

Base URL
https://api.jobmatchai.in/v1

Authentication

The JobMatchAI API uses API keys to authenticate requests. You can view and manage your API keys in the JobMatchAI Enterprise Dashboard.

Authentication to the API is performed via HTTP Bearer Auth. Provide your API key as the bearer token value.

Keep your keys secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.
Example cURL Request
curl https://api.jobmatchai.in/v1/resumes/parse \
  -H "Authorization: Bearer sk_live_your_token_here"
POST

Parse Resume

Uploads a resume file (PDF, DOCX) and returns a highly structured JSON object containing extracted contact info, skills, education, and work experience.

Parameters

file
Required

The binary file of the resume (multipart/form-data).

extract_skills
Optional (Boolean)

Set to true to run the deep NLP extraction engine for contextual skill mapping. Defaults to true.

Request (Node.js)
const formData = new FormData();
formData.append('file', fs.createReadStream('resume.pdf'));

const response = await fetch('https://api.jobmatchai.in/v1/resumes/parse', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_live_...'
  },
  body: formData
});

const data = await response.json();
Response
{
  "id": "res_8dfx9210",
  "contact": {
    "name": "Jane Doe",
    "email": "jane@example.com"
  },
  "skills": ["React", "Next.js", "TypeScript", "Node.js"],
  "experience_years": 5,
  "status": "success"
}
POST

Job Match Score

Compare an array of previously parsed resume IDs against a specific job description to retrieve ranked AI match scores and gap analysis.

Parameters (JSON)

job_description
Required (String)

The full text of the job description.

resume_ids
Required (Array)

Array of resume strings returned from the parse endpoint.

Request (Node.js)
const response = await fetch('https://api.jobmatchai.in/v1/jobs/match', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_live_...',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    job_description: "Looking for a Senior React Developer...",
    resume_ids: ["res_8dfx9210", "res_9aab212"]
  })
});
Response
{
  "matches": [
    {
      "resume_id": "res_8dfx9210",
      "score": 92,
      "missing_skills": ["GraphQL"]
    },
    {
      "resume_id": "res_9aab212",
      "score": 45,
      "missing_skills": ["React", "TypeScript"]
    }
  ]
}