Recruiting API platform

Resume parsing and candidate matching APIs

Turn CVs and job descriptions into structured JSON, then match and rank candidates. One API key, one credit balance.

Demo without an account · 50 free credits a month

A resume for Alex Morgan with photo, contact details, skills, experience and education, parsed by HireLayer CV Extract into JSON: info_resume.face_url with the cropped photo, info_candidate with full_name, phone_number, email and location, skills, work_experiences and educations.

Products

Five APIs, from raw documents to ranked candidates

Three APIs structure your inputs. Two compare candidates with a job.

All products
  1. CV filePDF, DOCX, image…
    CV ExtractResume Parsing API→ info_resume.text · skills[]MatchCandidate & Job Matching APIjob_text + candidate_text + matching_criteria
  2. Job descriptionPlain job_text
    Job ExtractJob Parsing API→ matching_criteria[]RankCandidate Ranking APIjob_text + up to 10 candidate_text
  3. Free-text skillsFrom CVs, jobs or users
    SkillsSkills Matching API→ catalog skill terms

    Store normalized terms on profiles and jobs for search and facets.

Match takes criteria from Job Extract and CV text from Extract. Rank only needs the job text and each candidate’s CV text. One API key and one credit balance cover every call.

Capabilities

What each API returns

Inputs and responses taken from the API reference.

Candidate photo, cropped from the CV

A temporary image URL, or null when the CV has no photo.

A CV page with the candidate photo in its header. HireLayer CV Extract detects the photo, crops it and returns it as a separate image URL in info_resume.face_url, with an expiry time in face_url_expires_at.

Free wording, normalized values

Fixed vocabularies you can filter and report on.

  • In the CV: “Developer since 2019”

    Returned as info_candidate.experience_level

    "5 to 10 years"

  • In the CV: “English, fluent (C1)”

    Returned as languages[].level

    "Full Professional Proficiency (C1)"

  • In the CV: “Freelance mission, 6 months”

    Returned as work_experiences[].contract_type

    "Freelance"

  • In the CV: “Available from September”

    Returned as info_candidate.availability_date

    "2026-09-01"

  • HireLayer Job Extract

    POST/api/v1/jobs/extract-criteria

    A job ad sentence becomes three criteria with weights 3, 2 and 1; the first two are mandatory.
  • HireLayer Match

    POST/api/v1/matching/job-candidate

    One candidate scored 0.87 against three criteria: React ideal, English potential, Paris ideal.
  • HireLayer Skills

    POST/api/v1/skills/match

    The skill “web development” matched to three catalog entries with similarity scores 0.96, 0.91 and 0.86.
  • HireLayer Rank

    POST/api/v1/matching/job-candidates/rank

    Three candidates ranked for one job: candidate_1 with 0.92, candidate_2 with 0.78, candidate_3 with 0.61.

Integration

Parse your first CV with one HTTPS request

  1. 01Create an account and generate an API key.
  2. 02Send the file from your backend with the key in X-API-Key.
  3. 03Store the JSON from the response in your own schema.
RequestPOST /api/v3/parser
curl -X POST https://onlineresumeparser.com/api/v3/parser \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@/path/to/resume.pdf" \
  -F "application_id=app_123"
API requests processed
1M+
In production since
2024
Parse success rate
~99.7%

Pricing

One credit per successful call, on every API

All plans include access to all APIs, all supported formats and API key management. Errors use no credit.

  • Free

    Try the full recruiting API platform.

    €0/ month

    50 credits / month

    No card required

  • Starter

    For teams getting started with recruiting workflows.

    €24/ month

    500 credits / month

    €48 per 1,000 credits

  • Lowest cost per credit

    Scale

    For teams processing candidates and jobs at scale.

    €89/ month

    2,000 credits / month

    €44.50 per 1,000 credits

  • Enterprise

    For organizations with custom volume and integrations.

    Custom

    Custom monthly volume and integrations

    Dedicated support

FAQ

Frequently asked questions

Where are resumes processed and stored?

Resumes are parsed in Paris, France, where uploaded files and extracted photos are also stored. AI processing stays in the EU through our in-house AI pipeline. If parsed data must not be retained, set do_not_store_data to true on the request.

What are the file size limits?

The encoded request must stay under 6 MiB. Documents above 100,000 extracted characters return HTTP 422 with the code DOCUMENT_TOO_LARGE.

How long is the candidate photo URL valid?

face_url is temporary. Its expiry time is in face_url_expires_at, so download and store the image if you need to keep it.

Can I receive parsing results by webhook?

Yes. Pass a webhook_url with the request: the V3 endpoint still returns the JSON synchronously and also sends it to your callback.

In which language are criteria and explanations written?

In the current version, Job Extract criteria, Match explanations and Rank rationales are generated in French, whatever the language of the input.

Does a mandatory criterion exclude a candidate?

No. is_mandatory is informational and does not change the status or the score returned by Match. Your application decides how to treat it.

Start with 50 free credits a month.

Valid on all five APIs. No card required.