Parseable

Get past the softwareand in front of a person

A free ATS friendly resume checker. It reads your PDF the way screening software does, in your browser, and shows you what came out.

Marie Dubois

Senior Backend Engineer

marie.dubois@example.com|+33 6 12 34 56 78|Lyon, France, remote across CET

Professional Summary

Backend engineer with nine years on payment systems in Python and Go.

Led a monolith to services migration at four thousand requests per second.

Skills

Languages: Python, Go, SQL, TypeScript

Infrastructure: Kubernetes, Docker, PostgreSQL, Terraform, AWS

Practices: CI/CD, on call, incident reviews, technical writing

Experience

Senior Backend Engineer

2021 - 2026

Payfit, Paris

  • Rebuilt the billing service in Go and cut p99 latency from 800ms to 90ms.
  • Mentored four engineers through the migration and ran the on call rotation.
  • Wrote the incident review process the whole platform team now follows.

Environment: Go, Python, PostgreSQL, Kubernetes, AWS

Backend Engineer

2017 - 2021

Doctolib, Paris

  • Shipped the appointment reminder pipeline, sending two million messages a day.
  • Moved the search index to a managed cluster with zero downtime.

Education

MSc Computer Science

2015 - 2017

INSA Lyon

Languages

French (native), English (professional)

What the software read from a two column resume

The extractor reads a page in one pass and interleaves the columns. This is its output for a real resume with a skills sidebar, and the three places where the application dies are marked on it.

extracted textpdftotext, one pass
NICOLAS LECOCQ
Full Stack Developer

Skills                    Experience
WordPress                 Founder & Developer          2025 - 2026 1
HTML/CSS                  At Vayalis, my own company, I develop and
Vercel                    launch my own products, handling the full
Cloudflare                cycle from idea to release.
React                     Web Designer                   2023 - 2025
Next.js                   Trivial Mass SA, Lausanne
Node.js                   Graphic integration, website development,
PHP                       client follow up management 2, as well as
SQL                       invoicing.

Language                  client relations to understand their
French                    requirements, and monitoring the specs. 3
English
  1. 1

    The layout breaks the extractor

    "WordPress" and "Founder" land on one line, so the parser files the job title under the skills column and the employer under nothing at all.

  2. 2

    The words do not match the posting

    The posting asked for "stakeholder management". The resume says "client follow up" and "client relations", so that requirement scores zero, whatever the work was.

  3. 3

    Nobody tells you which one it was

    The rejection email is the same in both cases, so most people rewrite the cover letter and send the same unreadable file again.

Four steps, about ten minutes the first time

After that, import your JSON and a new application takes a minute, because only the job posting changes. Everything runs in the tab, nothing is uploaded.

The tool with a resume loaded: the fields on the left, and on the right the plain text a parser extracts from the page
  1. 1

    Bring what you have

    Drop in your current resume as a PDF and the text is pulled out in your browser, sorted into fields you then correct. Starting from nothing works too.

  2. 2

    See what the machine reads

    The parser view shows your document as plain extracted text, the way the employer's software receives it. Anything wrong there is wrong on their screen.

The match against a pasted job posting: the rate, the matched terms and the missing ones
  1. 3

    Answer the actual posting

    Paste the job description and see which required terms your resume already contains, and which are missing. You decide which missing ones are true of you.

  2. 4

    Download and keep the JSON

    Print to a PDF that keeps a real text layer, then export the JSON so the next application only costs you the posting step.

Frequently asked questions

Short answers, and the reasons behind them. The one on white keywords is the one most people arrive with.

Account
There is nothing to sign up to.
Storage
Your file stays in the tab and is never sent.
Cost
Free, and open source under MIT.
Questions left
Open an issue on GitHub, they are read.
What is an ATS and why does it reject resumes?

An applicant tracking system is the software an employer uses to receive applications. It extracts the text from your file, sorts it into fields such as employer, job title and dates, then scores those fields against the job requisition. Most resumes fail at the sorting step rather than the scoring step. A two column layout with a skills sidebar is the usual culprit, because the extractor reads the page in one pass and interleaves the columns, so your employer and your dates land in the wrong fields before anyone reads a word.

Does this ATS friendly resume checker store my data?

Nothing is stored, because there is no database, no account and no server that receives your file. Your resume, your photo and the job posting you paste are held in the browser tab and disappear when you close it. That is also why the JSON export exists: it is the only copy, so download it if you want to come back later.

Should I put white keywords on my resume to get past the AI?

No, and this builder will not do it. Parsers strip styling and read the raw text layer, so a block of white on white keywords lands in the middle of the recruiter screen looking exactly like what it is. Screening platforms flag the pattern, and a flagged application can be rejected automatically with a fraud marker attached to your candidate record, which follows you across every future role at that company. The same applies to hidden instructions aimed at an AI reader. Putting the same words in visibly, inside your summary and your real bullets, scores identically and survives a human reading it.

What resume format parses most reliably?

A PDF with a real text layer, in one column, with standard headings such as Professional Summary, Experience, Skills and Education. Keep your contact details in the body of the document rather than in a page header, use one date format throughout, and avoid tables, text boxes and letter spacing on headings. Letter spacing is the quiet one: it survives into the text layer and your heading comes out as a string of separated capitals that no parser recognises.

Should I put a photo on my resume?

It depends where you are applying. A photo is normal in France, Germany, Switzerland, Spain and much of continental Europe. In the United Kingdom, Ireland and the United States it is usually left off, because employers avoid material that could support a discrimination claim. The photo toggle is off by default here, so turn it on only when you know the local convention.

How long should a resume be?

One page for under about eight years of work, two pages beyond that. Cutting a fifteen year career onto one page throws away keyword surface that the requisition is scoring you on, and no recruiter has ever rejected a strong second page. What does hurt is padding, so every line should either carry a keyword the job asked for or a result worth reading.

Can I check a resume I already have against a job description?

Yes, and that is what the posting step is for. Drop your current resume in as a PDF and the text is extracted in your browser, then sorted into fields for you to correct, which takes a couple of minutes on most files. Paste the job description into the posting step and the checker lists every required term the posting asks for, marks the ones your resume already contains, and shows a match rate. You decide which of the missing terms are genuinely true of you before any of them is added.

Is it really free, and can I run it myself?

It is free and you can run your own copy. The code is MIT licensed on GitHub, there is nothing to pay for and nothing to sign up to. Since the whole thing is a static page with no backend, you can clone the repository and host your own copy anywhere that serves files.

Software reads it first, so make sure it reads it right.

or