Skip to content

Career11 min read

How to Make an ATS-Friendly CV in 2026 (Free Tool)

How to make an ATS-friendly CV: the format, sections and keywords that parse cleanly, how to test your PDF in one command, and a free CV generator to build it.

An ATS-friendly CV is a single-column document with standard section headings, real selectable text, a common font and consistent dates, so applicant tracking software can turn it into clean fields without losing anything. The fastest way to make one is to start from a template that already follows those rules, fill in achievement-focused content with the keywords from the job ad, and test the final PDF by extracting its text. You can do all three for free with my ATS-friendly CV generator.

I built that generator after rebuilding my own resume for parsers and people. To make sure the templates really work, I wrote automated tests that generate a PDF from every template and paper size, extract the text, and check it word for word. Some of what those tests caught surprised me, so this guide covers both the usual advice and the details that only show up when you look at the PDF the way software does.

Key takeaways

  • Use one column, standard headings and real text. Design is fine as long as it does not change the reading order.
  • Wide letter-spacing and small caps can break the text inside your PDF, even when the page looks perfect.
  • Test your PDF: if copy and paste gives you clean text in the right order, a parser will get the same.
  • Write achievement lines that start with a verb, keep real numbers and use the exact skill names from the job ad.
  • Keep it to one or two pages. The software reads everything, but a person reads it next.
  • A free tool with tested templates saves you from guessing. Mine runs in the browser and uploads nothing.

What an ATS actually does with your CV

An applicant tracking system (ATS) is the software companies use to receive applications, store candidates and move them through a hiring pipeline. When you upload a CV, the system extracts its text and tries to split it into fields: your name, email, phone, each job with its title, employer and dates, your skills and your education. Recruiters then search and filter those fields, for example "React" plus "Next.js" plus a location.

That means the real risk is not a robot reading your CV and deciding you are not good enough. The risk is a parser getting your CV wrong: a job title glued to the wrong employer, dates missing, or skills lost because they sat in a sidebar the parser read last. A CV that parses badly is hard to find in a search, and it looks messy when a recruiter opens the parsed profile.

You may have seen a precise percentage of CVs that an ATS supposedly "rejects". I have not found a solid source behind those numbers, so I would not plan around them. Plan around what you can control: make your CV easy to parse and easy to read.

The ATS-friendly CV format

These are the format rules every template in my generator follows:

  1. One column. Two-column layouts, tables and text boxes can be read across rather than down, which mixes sections together.
  2. Standard section headings. Use names parsers expect: Professional Summary, Skills, Professional Experience, Projects, Education, Certifications, Languages.
  3. Real text. Export from a word processor or a web-based builder. Never send a scan, a photo or a PDF made from an image.
  4. Common fonts. Arial, Helvetica, Calibri, Georgia or Times New Roman all embed and extract reliably.
  5. Contact details in the body. Some parsers skip page headers and footers, so put your name, email and phone at the top of the page itself.
  6. Consistent dates. Use month and year for every role, in one format, for example "Oct 2022 – Present".
  7. No icons, skill bars or photos. A five-star rating for "JavaScript" means nothing to a parser and little to a recruiter.

On file type: a text-based PDF works with most modern systems and keeps your layout intact. If a job portal asks for a Word file, send a Word file.

What I learned testing CV PDFs

The usual advice above is easy to agree with. The interesting part came when I tested the PDFs my templates produced. A PDF stores positioned characters, not words, and the extraction tool has to guess where words begin and end. Small design choices change that guess.

  • Wide letter-spacing breaks words. An early version of my Modern template used generous tracking on its section titles. On screen it looked elegant. In the extracted text it read "P R O F E S S I O N A L S U M M A R Y". I now keep letter-spacing small on every template.
  • Small caps can split words too. My Executive template used small caps for headings, which came out as "P rofessional S ummary". I replaced it with regular uppercase text.
  • CSS uppercase is real uppercase. If a heading is styled in capitals, the PDF contains capitals. That is fine for headings. Most parsers handle it, but it is worth knowing.
  • Hyphenated words can be rejoined. A word like "Bagh-Chal" that wraps at its hyphen may come back as "BaghChal". It is a minor issue, but it is a good reason to avoid long hyphenated keywords at the end of a line.

You can run the same check on your own CV in a few seconds. Copy all the text from the PDF and paste it into a plain text editor, or, if you have Poppler installed, run:

Terminal
pdftotext -layout my-cv.pdf - | less

Read the output from top to bottom. Your name should come first, every section heading should be intact, each job title should sit next to its employer and dates, and nothing should be spaced out letter by letter. If it reads well as plain text, it will parse well.

How to write each section

Put your full name, a headline that matches the role you want, then one line of contact details: city and country, phone with country code, email, portfolio, LinkedIn and GitHub if you are a developer. Leave out your full address, date of birth and photo unless the job ad asks for them.

Professional summary

Write three to five sentences: your role and years of experience, your core skills, the kind of products or results you are known for, and what you are looking for. Mirror the language of the job ad where it is honestly true. My generator checks that your summary is between 30 and 120 words, which keeps it focused.

Skills

Group skills so a person can scan them, for example Frontend, Backend, Mobile, Tools. Use the exact names employers use: "TypeScript", "Next.js", "PostgreSQL", not abbreviations or nicknames. If a job ad lists a tool you know, make sure the same spelling appears on your CV.

Professional experience

List roles newest first, each with job title, company, location, employment type and dates. Under each, write two to six achievement lines. A simple formula works well: action verb, what you did, and the result or scale.

Here is a generic example of the same work written two ways:

  • Weak: "Responsible for the frontend of the booking platform."
  • Stronger: "Built the booking flow in Next.js and cut page load time by moving search filters to the server."

Only use numbers you can back up in an interview. A specific, true result beats an impressive invented one every time.

Projects

Projects matter a lot for developers, especially side projects and open source. Give each one a name, a type, your role, a link and the technologies used. If space is tight, drop the descriptions and keep the tech line: the generator's "Short projects" option does exactly that.

Education, certifications and languages

Add degree, field, institution and years. List certifications with the issuer and date. Languages need only a name and a level, such as "English (Professional)".

Keywords without stuffing

Recruiters search an ATS with keywords, so your CV needs the right words in the right places. Read the job ad, note the skills and tools it repeats, and make sure each one you genuinely have appears in your skills section and, ideally, in an achievement line that shows you used it. Do not paste a hidden block of keywords or copy the job description into your CV. A recruiter reads the CV after it is found, and keyword stuffing is obvious to people.

If you work in tech, the same thinking applies to your interviews. My senior React developer interview questions post covers what tends to come up once the CV has done its job.

Build your CV with the free generator

I made the ATS-friendly CV generator so you do not have to guess any of the above. It is free, needs no account and runs entirely in your browser, so your CV never leaves your device.

  1. Start. Fill in the form, import a JSON Resume file, or load my CV as an example to see a finished one.
  2. Write. The live ATS check flags missing contact details, long or passive achievement lines, inconsistent dates, emoji and the page count as you type.
  3. Style. Pick one of eight templates, any font and accent color, A4 or US Letter. Dashed lines in the preview show exactly where pages break, and "Fit to pages" can squeeze it onto one or two.
  4. Tailor. Paste a job description to see which of its keywords your CV matches and which are missing, then duplicate your CV for that job and write a matching cover letter.
  5. Export. Download a text-based PDF or a Word file, plus JSON, Markdown and plain-text copies. You can also import your LinkedIn data export or an existing PDF CV to start.

Every template has passed the same automated test on every paper size: the text extracted from the PDF must be complete, with embedded fonts and no images, and in reading order for the seven single-column templates. The Classic template produces the same text as my own CV, character for character.

Under the hood the generator stores your CV as JSON Resume, an open standard for CV data. A minimal file looks like this:

JSON
{
  "basics": {
    "name": "Jane Doe",
    "label": "Frontend Developer",
    "email": "[email protected]",
    "location": { "city": "Kathmandu", "countryCode": "NP" }
  },
  "work": [
    {
      "name": "Example Ltd",
      "position": "Frontend Developer",
      "startDate": "2023-04",
      "highlights": ["Built the checkout flow in React and TypeScript"]
    }
  ],
  "skills": [{ "name": "Frontend", "keywords": ["React", "TypeScript", "Next.js"] }]
}

Because the format is open, you can keep it in a Git repository, move it to other tools, or have an AI assistant produce it for you.

Using ChatGPT or Claude to write your CV

AI assistants are good at turning a messy old CV into structured data and at tightening wordy achievement lines. They are also good at making things up, so the instructions matter. The generator gives you two ready-made prompts:

  • Convert my CV. Paste it with your old CV into ChatGPT, Claude or Gemini. It returns JSON Resume that you import in one click.
  • Improve my CV. It copies your current CV with instructions to sharpen the wording without adding any employer, date, number or skill you did not list.

Both prompts tell the assistant not to invent facts, but read the result anyway. I use AI the same way at work, as a fast first draft that still needs a careful review. I wrote more about that habit in my post on AI coding assistants for React developers.

Common ATS CV mistakes

  • Two-column designs with skills in a sidebar.
  • Contact details only in the page header or footer.
  • Job titles and dates in a table.
  • Fancy headings like "Where I've been" instead of "Professional Experience".
  • Skill bars, icons, emoji and photos.
  • A scanned or image-based PDF.
  • Achievement lines that start with "Responsible for".
  • Five pages of every task you ever did.

FAQ

What is an ATS-friendly CV?

An ATS-friendly CV is one that applicant tracking systems can turn into clean text and fields: name, contact details, job titles, employers, dates, skills and education. In practice that means one column, standard section headings, real text instead of images, common fonts and a consistent date format.

Is PDF or Word better for an ATS?

A text-based PDF works with most modern applicant tracking systems and keeps your layout intact. If a job portal or recruiter asks for a .docx file, send that instead. Never send a scanned PDF or a PDF exported as an image.

Can I check whether my CV is ATS-friendly for free?

Yes. Copy all the text from your PDF and paste it into a plain text editor, or run pdftotext on it. If the text comes out complete, in reading order and without spaced-out letters, an ATS will be able to read it too.

Should I use a CV template with two columns?

It is safer not to. Some parsers read two-column layouts across the columns, which mixes your skills into your job history. A single column gives you predictable results with every system.

How long should an ATS-friendly CV be?

One page early in your career and two pages for most experienced professionals. Length does not matter much to the software, but a recruiter reads the CV after it passes, so keep it focused.

Can I use ChatGPT to write an ATS-friendly CV?

Yes, as long as it only rewrites facts you give it. Ask it to keep every employer, date and number unchanged, and read the result before you send it. Inventing achievements is the fastest way to fail an interview.

Wrapping up

An ATS-friendly CV is mostly about removing obstacles: one column, standard headings, real text, consistent dates and honest, keyword-rich achievement lines. Then check the PDF the way software sees it, because a page that looks perfect can still hide spaced-out or broken words.

If you want to skip the guesswork, build yours with the free ATS-friendly CV generator. It is one of the free tools I am building, and more are on the way. If you are a developer planning your next move, my senior React developer roadmap is a good next read.

  • #career
  • #cv
  • #resume
  • #ats
  • #job-search
  • #ai

Career8 min read

Lok Sewa Photo and Signature Size: How to Resize

Lok Sewa photo and signature size explained: KB limits, pixels, passport size 35x45 mm, why uploads fail and how to resize on your phone for free, privately.

Read article

Career8 min read

How to Make an Invoice as a Freelancer in Nepal

How to make an invoice as a freelancer in Nepal: what to include, PAN and 13% VAT, invoicing foreign clients, numbering, payment details and a free generator.

Read article