# HireLayer API documentation

> Five recruiting APIs behind one API key: parse resumes, extract job criteria, match and rank candidates, and normalize skills.

Source: https://onlineresumeparser.com/api-docs · Markdown: https://onlineresumeparser.com/api-docs.md

- [HireLayer CV Extract](https://onlineresumeparser.com/api-docs/extract.md): Resume file → structured candidate JSON
- [HireLayer Job Extract](https://onlineresumeparser.com/api-docs/job-extract.md): Job description → weighted criteria
- [HireLayer Match](https://onlineresumeparser.com/api-docs/match.md): One candidate vs. one job, criterion by criterion
- [HireLayer Rank](https://onlineresumeparser.com/api-docs/rank.md): Up to 10 candidates ranked for one job
- [HireLayer Skills](https://onlineresumeparser.com/api-docs/skills.md): Free-text skills → reference catalog

## Start here

- [Quickstart](https://onlineresumeparser.com/api-docs/quickstart.md): Get a key and parse your first resume in five minutes.
- [Screening pipeline](https://onlineresumeparser.com/api-docs/screening-pipeline.md): Parse, extract criteria, rank and explain, end to end.
- [Build with AI agents](https://onlineresumeparser.com/api-docs/ai-agents.md): llms.txt, Markdown pages, OpenAPI and ready-made agent rules.
- [Errors and retries](https://onlineresumeparser.com/api-docs/errors.md): Every status code, error message and retry rule.

## Basics

- **Base URL:** `https://onlineresumeparser.com/api`
- **Authentication:** `X-API-Key` header on every call except the health check
- **Format:** JSON in and out; CV Extract takes a `multipart/form-data` file upload
- **Versions:** Per product, in the path: `/v3` for CV Extract, `/v1` for the others
- **Billing:** 1 successful API call = 1 credit across every API. Failed calls are free.
- **Execution:** Synchronous: every result comes back in the HTTP response
- **SDK:** None needed: plain HTTPS from any language

## All endpoints

| Method | Path | Description | Reference |
| --- | --- | --- | --- |
| `POST` | `/api/v3/parser` | Upload one resume file and receive the structured candidate profile in the same response. | [CV Extract](https://onlineresumeparser.com/api-docs/extract.md#parse-resume) |
| `POST` | `/api/v1/jobs/extract-criteria` | Turn a job description into weighted criteria that can be checked against a resume. | [Job Extract](https://onlineresumeparser.com/api-docs/job-extract.md#extract-criteria) |
| `POST` | `/api/v1/matching/job-candidate` | Evaluate one resume against each job criterion and get an explained 0–1 score. | [Match](https://onlineresumeparser.com/api-docs/match.md#match-job-candidate) |
| `POST` | `/api/v1/matching/job-candidates/rank` | Order up to 10 candidates for one job description, with a score and a rationale for each. | [Rank](https://onlineresumeparser.com/api-docs/rank.md#rank-job-candidates) |
| `POST` | `/api/v1/skills/match` | Map free-text skills, one or up to 100 at a time, to the closest catalog skills. | [Skills](https://onlineresumeparser.com/api-docs/skills.md#skills-match) |
| `GET` | `/api/v1/skills` | Download the whole reference catalog used for matching. | [Skills](https://onlineresumeparser.com/api-docs/skills.md#skills-catalog) |
| `GET` | `/api/v1/health` | Check that the Job Extract, Match, Skills and Rank service is up. No API key needed. | [Health check](https://onlineresumeparser.com/api-docs/health.md#health) |
| `POST` | `/api/v2/parser` | Legacy asynchronous contract: the request is accepted with `202` and the result is posted to `webhook_url`. (legacy) | [CV Extract V2](https://onlineresumeparser.com/api-docs/extract-v2.md#parse-resume-v2) |

## Machine-readable docs

Every page is also available as Markdown by adding `.md` to its URL. [`/llms.txt`](https://onlineresumeparser.com/llms.txt) indexes them, [`/llms-full.txt`](https://onlineresumeparser.com/llms-full.txt) contains all of them, and [`/openapi.json`](https://onlineresumeparser.com/openapi.json) describes every endpoint. All are generated from the same source as these pages.

## Next

- [Quickstart](https://onlineresumeparser.com/api-docs/quickstart.md): Create an API key, check connectivity and parse a resume with cURL, Python or TypeScript in about five minutes.
- [HireLayer CV Extract](https://onlineresumeparser.com/api-docs/extract.md): Parse a resume file into structured candidate JSON with one multipart request: contact details, experience, education, languages and typed skills.
