ATS-friendly software engineer resume template
Use one column, standard headings (Experience, Projects, Skills, Education), contact details in the body of the page, and a text-based PDF. Greenhouse's own support docs name columned layouts, complex tables, text boxes, headers and footers, and graphics as reasons a resume fails to parse. Below is a layout you can copy and a short test to run on the file you already have.
Reviewed by Markus Fink
Senior Technical Recruiter · Formerly Google & Airbnb
What You'll Learn
What is the best ATS-friendly resume format for software engineers?
A single-column, reverse-chronological resume with plain section headings, your contact details in the first lines of the page, and a PDF exported from a text editor or LaTeX (not a scan or an image). That format is the safe default for every major applicant tracking system, and it is also the format engineering recruiters find fastest to skim.
The reasoning is simple once you know what an ATS does with your file. When you apply, the system tries to split your resume into fields: name, email, employers, titles, dates, education. Greenhouse's support article on unsuccessful resume parses says that when this fails, the resume is only attached to the candidate and the profile fields are not filled in. It lists the usual causes, and almost every one is a layout choice: columns, complex tables, text boxes, headers and footers, graphics, letters with spaces between them.
So an ATS-friendly software engineer resume template is mostly about what it leaves out. The content still has to do the selling, and that part is covered further down.
ATS-friendly software engineer resume template you can copy
This is a made-up engineer with realistic numbers. Copy the structure and write your own claims. Everything here is plain text in one column, so it survives parsing and a copy-paste into a text box on an application form.
Daniel Okafor
Software Engineer · Chicago, IL · daniel.okafor@example.com · (312) 555-0147 · github.com/dokafor · linkedin.com/in/dokafor
Experience
Brightline Logistics, Chicago, IL Jun 2022 - Present
Software Engineer
- Built a route-pricing service in Go and PostgreSQL that quotes about 40,000 shipments a day, replacing a nightly batch job and cutting quote time from 6 hours to under 2 seconds.
- Moved 14 services from EC2 to Amazon EKS using Terraform and Argo CD, taking deploys from a 45-minute manual runbook to 8 minutes.
- Added OpenTelemetry tracing to the checkout path and fixed 3 N+1 query hot spots, lowering p95 latency from 820 ms to 310 ms.
Cobalt Health, Remote May 2021 - Aug 2021
Software Engineer Intern
- Wrote a React and TypeScript claims review page used by 25 internal reviewers, replacing a shared spreadsheet.
Projects
pgslow (Go, open source) github.com/dokafor/pgslow
- CLI that reads pg_stat_statements and flags regressions between two snapshots; used in CI by 2 teams at Brightline.
Skills
Languages: Go, TypeScript, Python, SQL
Frameworks: React, Node.js, gRPC
Infrastructure: Amazon Web Services (EKS, RDS, SQS), Kubernetes, Terraform, Docker, GitHub Actions
Data: PostgreSQL, Redis, Kafka
Education
B.S. Computer Science, University of Illinois Chicago 2022
The settings behind it:
- Font: Arial, Calibri, Helvetica, Garamond or the default LaTeX font, 10 to 11pt for body text.
- Margins: 0.5 to 0.75 inch. Narrow margins are fine; text in the header or footer area is not.
- Dates: month and year, written the same way in every entry ("Jun 2022 - Present").
- Links: written out as text (github.com/dokafor), so they show up even if the hyperlink is lost.
- Bullets: standard round bullets or hyphens, one line or two, starting with a verb.
- File: text-based PDF, well under 2.5MB.
If you would rather not format it yourself, the free Jake's Resume template follows the same rules, and you can get it as a PDF, LaTeX source, or through our builder.
Which resume formatting is ATS-safe?
Each row below is a choice you make when you set up the document. The left column is what to pick; the right column is why.
| Element | ATS-safe choice | Why |
|---|---|---|
| Layout | One column, read top to bottom | Greenhouse lists columned layouts as a parse risk. Ladders' 2018 eye-tracking study also found multiple columns lost recruiters' attention. |
| Contact details | First lines of the page body, as text | Greenhouse specifically lists name and contact information inside a header, footer or text box. |
| Section headings | Experience, Projects, Skills, Education | Parsers and recruiters both look for the usual labels. "Things I've shipped" is clever and harder to map. |
| Job titles | Full title: Senior Software Engineer | Greenhouse lists incomplete job titles. "Sr. SWE II" saves four characters and adds risk. |
| Dates | Month and year, same format every time | Practical advice: mixed formats like "Summer 2021" and "06/22" make tenure harder to read for people and software. |
| Skills | Grouped text lines (Languages, Infrastructure, Data) | Skill bars and star ratings are graphics. The parser sees nothing; the recruiter sees a self-rating. |
| Links | github.com/you written out | Icons are images. A GitHub logo with a hidden link gives a parser nothing to read. |
| File | Text-based PDF or DOCX, under 2.5MB | Greenhouse supports .pdf and .docx, does not parse image files, and cannot parse resumes over 2.5MB. |
None of this is exciting, and it shouldn't be. A resume that looks like a well-kept README is doing its job.
What breaks ATS parsing on developer resumes?
Greenhouse's parse-failure list, with the version of each problem that shows up most often on engineering resumes:
- Columned layouts. The two-column template with a skills sidebar on the left. Text from the sidebar can end up mixed into your job history. We go through when it is acceptable in can software engineers use two-column resumes?
- Complex tables. Word and Google Docs templates that use an invisible table to put the date on the right. Turn on table gridlines to check.
- Headers, footers and text boxes. Name and email placed in the document header so they repeat on page two. Put them in the body instead.
- Graphics, photos and word art. Skill bars, tech logos, a screenshot of your GitHub contribution graph, a headshot.
- Image instead of a document. A resume exported from Figma or a design tool as a flattened image, or a scanned printout.
- Spaces between letters. Headings typed as "E X P E R I E N C E" for a letter-spaced look. Use real character spacing or none.
- Unclear or inconsistent sections. Projects mixed into Experience with no heading, or one job formatted differently from the rest.
- Incomplete titles and company names. Greenhouse even mentions company names without identifiers like Inc. or LLC. You don't need to add "Inc." everywhere, but write out the job title.
Plenty of resumes with one of these still parse. The point of an ATS-friendly template is that you don't have to find out which one failed on the job you wanted.
What section order should a software engineer resume use?
Header first, then whichever section holds your strongest evidence. For most working engineers that is Experience. The order changes by career stage:
| Situation | Section order | Notes |
|---|---|---|
| Student or new grad | Education, Experience (internships), Projects, Skills | Education sits high while it is your most recent credential. Move it down after your first full-time role. |
| 1 to 7 years | Experience, Projects, Skills, Education | Projects only if they show something your jobs don't, like a language you want to work in. |
| Senior and staff | Experience, Skills, Education | Projects usually drop off. Older roles shrink to one line each. |
| Career changer or bootcamp | Projects, Experience, Skills, Education | Lead with the work that proves you can do the new job, then show prior roles briefly. |
A summary is optional. If you use one, keep it to two lines that say what you build and at what scale, and put it under the header. Our guide to whether software engineers need a summary has examples.
How do I check if my resume is ATS-friendly?
You can find most problems in a couple of minutes without paying for a scanner.
- Select all and copy. Open the PDF, press Ctrl+A (Cmd+A on a Mac). If the text doesn't highlight, the file is an image and no ATS can read it.
- Paste into a plain text editor. Check that your name and email come first, each job's title, company and dates sit together, and nothing from a sidebar has landed in the middle of a bullet.
- Look for broken characters. Missing "fi" and "fl" pairs (ligatures), boxes where bullets were, or symbols in place of icons. These usually come from fancy fonts or icon fonts.
- Run pdftotext if you have it.
pdftotext resume.pdf -prints the raw text order, which is closer to what a parser sees than the visual page. - Check the file size. Anything near 2.5MB usually has an embedded image or font you can drop.
If you want a second opinion on structure, our free resume format checker and ATS resume scanner show how your file parses and which sections came through.
Should a software engineer submit a PDF or DOCX?
Follow the application's instructions first. If it doesn't say, a text-based PDF is the normal choice for engineering roles: it looks the same on every machine, and the large ATS platforms read it. Greenhouse names .pdf and .docx as supported and says image files are not.
Two situations where DOCX is the better pick: the posting or a recruiter asks for Word, or you are applying through an agency that edits resumes before sending them on.
What matters more than the extension is how the PDF was made. Export it from Google Docs, Word or LaTeX. Don't print to PDF from a browser preview of a design tool, and never upload a phone scan.
Do keywords matter for an ATS-friendly resume?
Yes, but not in the way most "beat the ATS" advice suggests. Recruiters can search the candidates stored in an ATS by skill and title. If the posting says Kubernetes and your resume only says K8s, a search for Kubernetes may miss you. The Tech Interview Handbook gives the same advice: mirror the job description's wording and spell out abbreviations, such as Amazon Web Services next to AWS.
- Use the exact names from the posting when they are true for you: "PostgreSQL" if it says PostgreSQL, "React" if it says React.
- Spell out an acronym once: "Amazon Web Services (AWS)", "continuous integration (CI)".
- Put the important ones in bullets as well as in Skills. A keyword attached to a result is worth more to the human reader.
- Don't paste the job description in white text or list 60 technologies. Recruiters read the resume, and it shows.
| Bullet | |
|---|---|
| Before | Worked on microservices and helped with K8s migration. |
| After | Migrated 14 Java services to Kubernetes on Amazon EKS with Helm and Argo CD, cutting deploy time from 45 to 8 minutes. |
The second version contains four searchable terms the first one is missing, and it also tells a hiring manager what you actually did. Our bullet point guide has more rewrites by role.
Are LaTeX and Google Docs resume templates ATS-friendly?
LaTeX: usually yes, if the template is single column and compiled to a normal PDF. Jake's Resume, the most common LaTeX template for software engineers, sets \pdfgentounicode=1 with a source comment saying it is there so the PDF is machine readable and ATS parsable. Deedy and similar two-column LaTeX templates carry the column risk described above. See our Overleaf template guide for single-column options.
Google Docs and Word: safe if you build in normal paragraphs. Many downloadable templates use tables, text boxes or headers for layout, so check before you fill one in. Our Google Docs and Word templates are built without them.
Canva and design tools: pages there are made of positioned text boxes and shapes, which is exactly what Greenhouse's list warns about. More detail in should software engineers use a Canva resume?
Will an ATS automatically reject my resume?
Usually not for formatting. The widely shared claim that 75% of resumes are rejected by ATS before a person sees them traces back to a 2012 sales pitch from Preptel, a resume company that closed in 2013; HR consultant Christine Assaf looked for a study behind it and found none (HiringThing).
In a small Enhancv study of 25 US recruiters, published in November 2025, 92% said their system does not auto-reject resumes based on formatting, design, keywords or match scores (IT Brief). Enhancv sells resume tools and the sample is small, so treat it as a signal rather than proof. The automatic filters recruiters did describe were knockout checks on the application: work authorization, location, required licenses, minimum qualifications.
What actually goes wrong with a badly parsed resume is quieter. Your profile has empty or wrong fields, a recruiter's search for "Go" plus "Senior Software Engineer" may not surface you, and the person who does open it sees a scrambled file. That is reason enough to use a clean template.
Does an ATS-friendly resume also work for recruiters?
Yes, the two point the same way. Ladders' 2018 eye-tracking study measured an average initial screen of 7.4 seconds, and found that simple layouts with clear section and job headings held attention, while cluttered pages, multiple columns and long sentences did not (HR Dive).
A resume can parse perfectly and still lose, though. In that first skim a technical recruiter is looking for your current title, your stack, the size of what you worked on, and whether there are numbers. Bullets like "Responsible for backend development" pass any ATS and tell the recruiter nothing.
Get the format out of the way with the template above, then spend your time on the bullets. What technical recruiters look for covers that second half.