How to write an ATS-friendly resume
What applicant tracking systems do with your resume, the formatting choices that help them read it correctly, and how to check your own resume before you apply.
Most medium and large employers collect applications through an applicant tracking system (ATS). When you upload a resume, the ATS turns the file into plain text and tries to fill a structured profile from it: your name and contact details, each job with its title, employer and dates, your education, and your skills. Recruiters then search and filter those profiles.
If the text comes out scrambled, or a field lands in the wrong place, a strong resume can be hard to find. The good news is that the fixes are simple and mostly about formatting.
1. Send a PDF with real, selectable text
An ATS reads text, not pictures. A PDF exported from a design tool as an image, or a scanned page, gives the parser nothing to read.
- Open your PDF and try to select a sentence. If you can highlight individual words, the text is real.
- Avoid putting key details inside images, logos or charts.
- Some symbols and emoji cannot be stored as text in standard PDF fonts. In Resume Studio, Download PDF writes real text; the review warns you if a character would force an image-only file.
2. Keep one column
Parsers usually read a page line by line across its full width. With two columns side by side, a line from the left column is followed by a line from the right column, and sections get mixed together.
A single column is the safest layout. If you prefer two columns, test the exported file: Resume Studio's ATS check rebuilds your PDF, reads it back line by line, and tells you whether the reading order survives.
3. Use standard section headings
ATS software splits a resume into sections by recognising their headings. Creative headings like "Where I've been" or "My toolbox" may not be recognised. Prefer the plain names:
- Experience (or Work Experience, Professional Experience)
- Education
- Skills
- Projects, Certifications, Publications, Awards where relevant
4. Make every role easy to parse
For each position, include the job title, the employer, and start and end dates. A few habits make these reliable:
- Write months and years:
Mar 2023 – Presentor03/2023 – 05/2024. Seasons ("Summer 2024") and two-digit years ("'21") are often misread. - List roles newest first.
- Keep the title and employer on their own line or in their own column, rather than buried in a sentence.
5. Make contact details visible text
Your email, phone number and city should appear as plain text near the top of the page, not only inside a link labelled "Email" and not in the page header or footer, which some parsers skip. Show your LinkedIn URL as text too, for example linkedin.com/in/yourname.
6. Write skills the way recruiters search for them
Recruiters search an ATS for specific terms. Two habits help:
- List skills as short, comma-separated terms ("Python, SQL, Tableau") rather than sentences or rating bars.
- Spell out important acronyms once, for example Search Engine Optimization (SEO) or Machine Learning (ML), so a search for either form matches.
7. Show your skills in your experience
Listing a skill is a claim; a bullet that shows you using it is evidence. "Built a churn model in Python that lifted retention 8%" tells a recruiter far more than "Python" in a list. Resume Studio's Domain fit and Job fit reviews point out skills you list but never show in a role.
Check your resume before you apply
Open your resume in Resume Studio and click Review. The ATS check tab shows the profile an ATS would extract from it, field by field, scores how reliably it parses, and lists anything that could break, each linked to the line in your resume. It also tests the PDF you would actually send, including one you built elsewhere.
No tool can promise how a particular employer's system will rank you, since every ATS is configured differently. Following the points above removes the formatting problems that cause the most trouble.
See also: Tailor your resume to a job posting and the resume templates, which all use a parser-friendly layout except the deliberately two-column example.