Skip to content
CareerHawk

Résumés

How to Write an ATS-Friendly Résumé as a Software Developer

What applicant tracking systems actually do with your résumé, the format that parses cleanly, and how to list your tech stack so the right recruiters find you.

By Daud Samim · · 9 min read

“Your résumé was rejected by a robot” is one of the most repeated lines in job-search advice, and one of the least accurate. Most applicant tracking systems (ATS) don’t reject anyone on their own. What they do is turn your résumé into searchable text and fields, and recruiters then search, filter and skim that text.

So an ATS-friendly résumé isn’t about tricking software. It’s about making sure the text that comes out the other side is complete, correct and easy to scan. Here’s how to do that as a developer.

What happens to your résumé after you click submit

When you apply through an employer’s careers page, your résumé typically goes through three steps:

  1. Parsing. The system extracts text from your PDF or Word file and tries to split it into fields: name, contact details, work history, education, skills.
  2. Storage and search. Your application joins a pool. Recruiters can search the pool by keyword, for example “TypeScript” or “Kubernetes”, and sort or filter candidates.
  3. Human review. A recruiter or hiring manager reads the parsed profile, the original file, or both, often for less than a minute on the first pass.

Things go wrong at step one more often than people think. Text in images is invisible. Multi-column layouts can come out scrambled, with your job titles attached to the wrong dates. Fancy fonts can turn into gibberish, and ligatures like “fi” can become unsearchable symbols.

Format: boring wins

  • Use a single column. Two-column designs look great and parse badly. If you must use a sidebar, keep only non-critical content in it.
  • Use real text. No skills as icons, no logos, no charts of “Python ████░”.
  • Use standard section headings: Summary, Experience, Skills, Education, Projects.
  • Export to PDF from a word processor or code, not from a design tool that turns text into shapes. Then test it: open the PDF, select all, copy, and paste into a plain text editor. If the result reads in the right order, a parser will be fine.
  • One or two pages. One for most people under eight years of experience.
  • File name: Firstname-Lastname-Resume.pdf. It sounds trivial, but recruiters download files.

Contact details at the top, in plain text

Name, email, phone with country code, city and country, LinkedIn and GitHub. Write the links as text, such as github.com/yourname, not just as clickable words. Parsers and humans both need to see them.

For remote roles, your location matters more than ever, because it decides which jobs you’re eligible for. State it clearly, and if you have work authorisation somewhere that isn’t obvious from your city, add a line: “Authorised to work in the EU and UK; no sponsorship needed.”

The skills section: be specific and honest

Recruiters search for technologies by name, and so does every matching tool, CareerHawk included. Your skills section is the single most important part of your résumé for being found.

  • Name technologies the way job descriptions do: “TypeScript”, “React”, “Node.js”, “PostgreSQL”, “AWS”, “Docker”. Include both the acronym and the full name where people use either, such as “Amazon Web Services (AWS)”.
  • Group them so a human can scan them: Languages, Front end, Back end, Data, Infrastructure, Testing.
  • Only list what you could discuss in an interview. Keyword stuffing gets you calls you can’t convert, and it’s obvious to anyone technical.
  • Include the adjacent tools that move you up shortlists. Our analysis of remote jobs found cloud, containers and LLM experience mentioned in a large share of postings across every stack.

Experience: technologies in context

Every role should answer three questions: what you built, what you used, and what changed because of it.

Senior Full Stack Engineer, Harbor Analytics (2023–present)

  • Rebuilt the reporting product in Next.js and TypeScript; median page load down 45%.
  • Designed Node.js and PostgreSQL services behind a public REST API used by 300 business customers.

Notice that the technologies appear inside the achievements. That does two jobs at once: keyword matches for search, and evidence for the human reading it. A skill listed only in the skills section reads as a claim. The same skill in a bullet point reads as experience.

Use numbers where you honestly have them: latency, load time, cost, users, team size, release frequency. Don’t invent precision.

Tailor without rewriting

You don’t need a new résumé for every application. You need the skills each job cares about to be easy to find on yours. A practical approach:

  1. Keep one master résumé with everything.
  2. For each type of role you apply to, such as front-end, full-stack or back-end, keep a version whose summary and skill order lead with what those roles ask for.
  3. For a job you really want, adjust the summary’s first sentence to mirror the role.

CareerHawk’s match screen helps here: it shows which of your technologies a job names, and whether they’re in the title or the body, so you know what to put first.

Common mistakes developers make

  • Listing every technology ever touched. Twenty-five logos says “I’ve done tutorials”. Ten well-chosen ones says “I know my stack”.
  • No dates, or vague dates. Use month and year.
  • Leaving out location and work authorisation when applying for remote roles.
  • A GitHub link to an empty profile. Pin two or three repositories with a good README, or leave it out.
  • Photos, age, marital status. Unnecessary in most markets, and they invite bias.

How CareerHawk uses your résumé

If you use CareerHawk’s auto-apply, your résumé is attached to each application exactly as you uploaded it, so everything above applies directly. When you upload, you can optionally let AI read it to pre-fill your profile, and you confirm every suggested field before it’s saved. Nothing is rewritten or invented. Employers receive your real résumé and the answers you entered. More on that approach on our AI job application assistant page.

Checklist

  • Single column, real text, standard headings
  • Copy-paste test passes in a plain text editor
  • Contact details, location and work authorisation at the top
  • Skills grouped, named the way job ads name them, all interview-safe
  • Technologies appear inside achievement bullets
  • Numbers where you honestly have them
  • Sensible file name, one or two pages

Keep reading

Let your next application go out while you sleep

Download CareerHawk, pick your stack, and see your matches in seconds. Five applications are on us when you create an account.