HireLayer logoHireLayer

Resume Parser API Comparison: A Fair Benchmark for ATS Teams

Compare public resume parser API specifications, then use a reproducible test plan to measure extraction quality, latency, failures, and cost on your own CVs.

Published · 11 minutes read

A comparison matrix for resume parser APIs

“Which resume parser API is best?” is only answerable after you define the documents, fields, integration constraints, and failure tolerance that matter to your ATS. Public product pages help narrow a shortlist; they do not establish which parser will extract your candidates’ experience or dates most accurately.

What this comparison can and cannot establish

This article compares public product specifications checked on October 1, 2026. It does not claim a same-document accuracy or speed winner: no independent, matched-corpus benchmark was run for this comparison. Where a vendor publishes a performance or language figure, treat it as a vendor statement unless its corpus, metric, and method can be reproduced.

HireLayer supports 70 languages, a figure based on its internal tests. Like the other vendors’ figures, it is a vendor statement rather than an independent benchmark result. Use your own reference set to validate any vendor’s claims before relying on them in production.

Public product specifications

ProductPublic integration informationInputs and operating details visible publiclyWhat to confirm directly
HireLayerV3 is POST /api/v3/parser; one file per multipart request and a synchronous response.PDF, DOC/DOCX, ODT, PPT/PPTX, ODP, XLS, RTF, TXT, JPG/JPEG, PNG, and BMP; encoded request limit 6 MiB. One successful API call uses one shared credit.Suitable concurrency for the account, data-retention configuration, and field-level quality on your corpus.
AffindaPublic API documentation describes a hosted parse endpoint and also discusses self-hosted deployment.Documentation lists PDF, Word, OpenDocument, images, plain text, HTML, and RTF inputs, with a documented 20 MB limit. Its pricing page lists hosted pay-as-you-go at US$0.10 per document and a trial of up to 1,000 documents for 14 days.Plan, deployment, currency, volume terms, and whether your expected OCR and support needs are included.
RChilliIts documentation describes bulk upload through FTP and webhook delivery.Cost documentation states one credit for resume parsing and an additional credit for OCR.Commercial quote, supported format and size limits, callback behavior, and account-specific throughput.
TextkernelThe product page describes a resume parser for recruiting workflows.The vendor product page lists support for 29 resume languages; this is a published vendor specification.Supported file limits, API contract, quote, and measured performance for your documents.

The table is a shortlist aid, not a ranking. “Supported format” can mean different things in practice, and published file-size limits are not necessarily measured at the same request layer. Verify details against the version and plan you will actually use.

For a vendor-by-vendor view with pricing, field mappings and migration steps, see HireLayer vs Affinda, HireLayer vs RChilli, HireLayer vs Textkernel or all resume parsing API alternatives.

Pricing units are covered in the separate cost-per-1,000 pricing guide. To test a specific implementation path, use the PDF-to-JSON examples and run the same source files through each shortlisted parser.

Build a repeatable benchmark

1. Make a representative, permissioned corpus

Use synthetic, licensed, or appropriately anonymized resumes. Select examples from the formats, languages, industries, and layouts you receive—not only clean one-column PDFs. Include selectable-text PDFs, image scans, DOCX, multi-column layouts, tables, unusual date formats, missing end dates, and documents with similarly named sections.

2. Create a field-level reference

Have a reviewer record the correct value and its source span for each field you care about: candidate name, email, phone, employer, job title, start and end dates, school, degree, and selected skills. Define normalization before testing. For example, state whether “Jan 2020” and “2020-01” count as the same month and how to score a genuinely absent end date.

3. Run every product on the same files

Freeze the input set, parser version or plan where available, request options, and test date. Record request IDs and raw responses securely. If a provider requires a different upload flow, document that difference and keep the measured parser path consistent with your planned production setup.

4. Publish the method with the result

Report sample count, formats, languages, inclusion rules, field definitions, normalization, excluded cases, date of test, and whether vendors supplied the environment. A score without this context cannot be reliably repeated or applied to another ATS.

Use the same sample to inspect the live response

Try a representative file in the demo, then send your own benchmark cases through the documented API after choosing a secure test process.

Measure extraction quality and operating cost

MeasureSuggested definitionWhy it matters
Field precisionCorrect extracted values divided by all extracted values for that field.Shows how often a populated value is right.
Field recallCorrect extracted values divided by reference values present in the documents.Shows how much of the information you needed was found.
Missing-value rateReference values present but not returned, by field and document cohort.Highlights omissions hidden by a single aggregate score.
p50 / p95 latencyMedian and 95th-percentile end-to-end parse time.Separates typical response from slower cases.
Cost per successful resumeTotal vendor charges divided by completed, usable results.Includes retries, OCR, and plans in a workload-relevant unit.

Calculate quality separately for names, contact fields, employment dates, employers, education, and skills. If you combine these into a single summary, publish the weighting. A parser that fills more fields is not necessarily better if it also inserts more incorrect values; measure false positives as well as missing values. The resume parsing accuracy guide walks through building the labeled test set and scoring each field.

Choose based on your integration constraints

  • API shape: synchronous or callback flow, one document or batch, response schema, and correlation IDs.
  • Coverage: the exact formats, languages, file limits, scan quality, and fields in your corpus.
  • Operations: documented errors, throughput guidance, retries, support, and deployment location.
  • Data handling: retention options, access controls, deletion behavior, and your own storage obligations.
  • Commercial fit: billable unit, OCR treatment, shared credits, minimum terms, and total cost at peak volume.

Shortlist two or three products from the published contract, then run your matched test set and review failure cases with the teams who will operate the ATS integration. That evidence is more useful than choosing from a generic “best parser” list.

Frequently asked questions

Which resume parser API is the most accurate?

This comparison does not establish an accuracy winner. Run each shortlisted parser against the same permissioned corpus with field-level ground truth and publish the method.

Can I compare vendor accuracy percentages directly?

Only if the test corpus, fields, metric, normalization rules, and scoring method are comparable. Otherwise treat each percentage as a vendor-reported claim, not a shared benchmark.

How many resumes should a benchmark include?

Use enough examples to cover your document cohorts and the cost of errors. Report sample size and limitations; a small convenience sample should not be presented as a universal result.

Sources and further reading

  1. HireLayer API documentation
  2. HireLayer product page and product claims
  3. Affinda Resume Parser API documentation
  4. RChilli resume parser plan and cost documentation
  5. RChilli bulk upload integration documentation
  6. Textkernel Resume Parser product information
  7. Affinda Resume Parser pricing

Louis Desclous

Published on · Reading time: 11 minutes