Skip to content

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

A resume with photo, profile, skills, experience and education, sent through the parser engine and returned as JSON: candidate photo, candidate information, soft and hard skills, work experiences and education.

Products

Six products, from raw documents to ranked candidates

Three structure your inputs. Two find the closest resumes and jobs. Resume Scorer scores and ranks.

All products
  1. CV filePDF, DOCX, image…
    Resume ParserResume Parsing API→ application_id · resume
    Job RecommendationsJob Recommendation APIresume → closest open jobs
    Resume ScorerCandidate & Job Matching APIjob + resumes → score · verdict
  2. Job descriptionText or file
    Job Criteria ExtractorJob Parsing API→ job_id · criteria[]
    Talent Pool SearchTalent Pool Search APIjob → closest stored resumes
    Resume ScorerCandidate & Job Matching API+ precise_ranking → ranking_reason
  3. Free-text skillsFrom CVs, jobs or users
    Skills NormalizerSkills Matching API→ taxonomy skill ids

    Store skill ids on profiles and jobs for search and facets.

Resume Parser and Job Criteria Extractor store what they read. The searches find the closest resumes or jobs; Resume Scorer explains the fit. One API key and one credit balance cover every call.

Capabilities

What each product returns

Example inputs and responses for all 6 products.

Send a CV file and get candidate details, experience, education, languages and typed skills back as normalized JSON.

Candidate photo, cropped from the CV

An image URL, or null when the CV has no photo. With do_not_store_data, the link expires after 10 minutes.

A CV page with the candidate photo in its header. HireLayer Resume Parser detects the photo, crops it and returns it as a separate image URL in resume.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 resume.info_candidate.experience_level

    "5 to 10 years"

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

    Returned as resume.languages[].level

    "Full Professional Proficiency (C1)"

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

    Returned as resume.work_experiences[].contract_type

    "Freelance"

  • In the CV: “Available from September”

    Returned as resume.info_candidate.availability_date

    "2026-09-01"

HireLayer Job Criteria Extractor

POST/api/v4/jobs/extract-criteria

Send a job description and get back the requirements a CV can prove, each typed, weighted and marked required, preferred or bonus. Free.

About Job Criteria Extractor
Three sentences of a French job ad become three criteria: LLM integration in production, required, weight 3; English at B2 minimum, required, weight 2; technical leadership, bonus, weight 1.

HireLayer Resume Scorer

POST/api/v4/resumes/score

Send a job and one or more resumes. Each resume gets a score from 0 to 1, a verdict and evidence for every criterion, best first.

About Resume Scorer
A resume file scored 0.90, highly_relevant, against the job: LLM in production met, Node.js partial, AWS met, English met, on-call duty unknown and left out.

HireLayer Talent Pool Search

POST/api/v4/resumes/search

Send a job and get back the resumes of your database closest to it, sorted by similarity, with location and date filters. Then score the ones you pick.

About Talent Pool Search
A stored job searched in the resume database within 30 km of Paris returns two resumes, with similarities of 0.81 and 0.77.

HireLayer Job Recommendations

POST/api/v4/jobs/search

Send a resume, stored or as a file, and get back your open jobs closest to it, sorted by similarity. Then score the ones you pick.

About Job Recommendations
A stored resume returns the two closest open jobs: an AI and Node.js backend engineer role with a similarity of 0.78, and a senior NLP data scientist role with 0.74.

HireLayer Skills Normalizer

POST/api/v4/skills/normalize

Send one skill or a whole CV skills section and get back every taxonomy skill it names, with a stable id, a type, families and domains.

About Skills Normalizer
The text “React, Node, Cobol, gestion de projet”, resolved in English, returns four taxonomy skills in text order: React, Node.js, COBOL and Project management, each with its id.

Use cases

For recruiting software and recruiting firms

5 workflows for software platforms, 3 for recruiting firms.

All solutions

Build parsing and matching into the product you sell.

Speed up intake and shortlists for client roles.

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/v4/resumes/parse
curl -X POST https://hirelayer.co/api/v4/resumes/parse \
  -H "X-API-Key: $HIRELAYER_API_KEY" \
  -F "file=@resume.pdf"
API requests processed
2M+
In production since
2024
Parse success rate
~99.7%

Pricing

One credit per resume or search, job criteria free

All plans include access to all APIs, all supported formats and API key management. Resume Scorer counts 1 credit per resume evaluated, plus 1 per resume file parsed, and its precise_ranking option 1 per call; a pair already scored is free. Failed work is not billed.

  • 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: the file is not stored and the photo link expires after 10 minutes.

What are the file size limits?

A file of about 4.5 MB: the encoded request must stay under 6 MiB. Documents above 100,000 extracted characters return HTTP 422 with the code resume_unreadable.

How long is the candidate photo URL valid?

With do_not_store_data set to true, face_url is temporary: it expires 10 minutes after parsing, at the time given in face_url_expires_at, so download and store the image if you need to keep it. Otherwise the photo is stored and face_url does not expire.

Can I receive parsing results by webhook?

Yes. Pass a webhook_url with the request: the call answers 202 Accepted at once and the parsed resume is posted to your URL, signed with the HireLayer-Signature header. A delivery your server does not acknowledge within 10 seconds is retried for 24 hours.

In which language are criteria and explanations written?

In the job’s language, detected from the description: English, French, German, Spanish or Portuguese, and English for any other language. Criteria, summaries and explanations all follow it, and evidence quotes the resume in its own language. Each resume gets one score, a number from 0 to 1.

Does a mandatory criterion exclude a candidate?

No. A required criterion clearly missing multiplies the score by 0.75 and is listed in required_missing, but never eliminates the candidate. Your application decides how to treat it.

Start with 50 free credits a month.

Valid on all six products. No card required.