Resume Tips

How to Build an ATS-Optimized Resume From Scratch

A step-by-step guide to building an ATS-optimized resume from scratch — structure, formatting, bullets, and the sections that actually matter.

T

Team PassTheBot

May 3, 2026

7 min read

Resume Tips

7 min read read


Most resume guides tell you to "tailor your resume for each job." That's good advice, but it assumes you already have a strong base resume to tailor from.

This guide is about building that base — a resume that is structurally correct, ATS-parseable, and clearly communicates your value before you ever tailor it for a specific role.


Step 1: Choose the Right Format

Before you write a single word, your format needs to be correct. ATS parsers are sensitive to layout.

Use a single-column layout. Multi-column resumes look clean to a human but confuse most ATS parsers — text gets read in the wrong order, or columns get merged.

Use standard section headings. "Work Experience" is safe. "My Career Journey" is not. ATS systems are trained on common headings — unusual names cause parsing failures.

Use a standard font. Arial, Calibri, Garamond, or similar. 10-11pt body, 12-14pt section headings.

Save as PDF. Unless the job specifically requests DOCX, PDF is the right format — it preserves your layout across different systems.

Keep it to one or two pages. For under 7 years of experience: one page. For 7+ years: two pages is acceptable.


Step 2: Order Your Sections Correctly

The order of sections affects both ATS parsing and human scanning. The standard order that works:

  1. Contact Information (name, email, phone, LinkedIn, GitHub if relevant)
  2. Summary (2-3 lines — optional but useful)
  3. Skills
  4. Work Experience (reverse chronological — most recent first)
  5. Projects (if relevant, especially for junior engineers)
  6. Education
  7. Certifications (if relevant)

Put your Skills section near the top. ATS systems scan for skill keywords early, and a recruiter doing a 6-second scan wants to see your stack immediately.


Step 3: Write Your Skills Section Correctly

This is the section most resumes do wrong. Two failure modes:

Too sparse: "Python, JavaScript, SQL" — gives the ATS almost nothing to work with

Too dense: A comma-separated list of 50 technologies — signals no prioritization and looks like keyword stuffing

The right approach: categorized, specific, and relevant.

Languages: Python, Go, TypeScript, SQL
Frameworks: FastAPI, Django, React, Next.js
Infrastructure: Docker, Kubernetes, AWS (EC2, S3, Lambda, RDS)
Databases: PostgreSQL, Redis, MongoDB
Tools: Git, GitHub Actions, Terraform, Datadog, Jira

List your strongest/most-used technologies first within each category. If you're applying for a Python role, Python should be the first word in the Languages line.


Step 4: Write Experience Bullets That Communicate Impact

This is where most resumes fail. There are two types of bullet points:

Responsibility bullets (weak): - "Developed and maintained backend services" - "Participated in code reviews" - "Worked on improving application performance"

Impact bullets (strong): - "Reduced API p95 latency from 1.2s to 180ms by rewriting the query layer and adding Redis caching" - "Reviewed 200+ PRs over 18 months, catching 3 production incidents before they shipped" - "Improved checkout page load time by 40% through lazy loading and asset optimization, reducing cart abandonment by 12%"

The formula: what you did + how you did it + the measurable result.

You don't need a number for every bullet — but aim for at least 60% of your bullets to have a quantifiable outcome.


Step 5: Write a Summary That Adds Value

Most summaries are wasted space. "Results-driven engineer with 5+ years of experience seeking a challenging role" is found on 90% of resumes and says nothing.

A good summary does one of two things:

Option 1: Lead with your strongest credential.

"Backend engineer with 6 years building distributed systems at scale. Led the migration of a monolithic Rails app to Go microservices serving 2M requests/day."

Option 2: Synthesize your stack and level.

"Full-stack engineer specializing in Python and React. 4 years building SaaS products with async backend APIs, PostgreSQL data models, and React frontends. Strong on performance optimization and system design."

Two to three sentences maximum. Specific to you, not generic.


Step 6: Structure Each Role Correctly

For each job in your experience section:

Job Title — Company Name                    Month Year – Month Year
Location (or Remote)

• Bullet 1 — most impactful achievement first
• Bullet 2
• Bullet 3
• Bullet 4 (3-5 bullets per role is the right range)

Put your strongest bullet first within each role. Recruiters read the first bullet — if it's weak, they move on.

If you have a role older than 7-8 years, condense it to 2-3 bullets or remove it entirely unless directly relevant.


Step 7: Check ATS Compatibility Before Applying

Once your base resume is complete, don't apply to anything until you've checked its ATS compatibility:

  1. Run an ATS score check against a few target job descriptions to understand your baseline keyword match
  2. Fix formatting issues — the ATS checker will flag tables, columns, or unusual formatting that causes parsing failures
  3. Identify gaps — see which required skills from the job description are missing from your resume

For each application after that, you'll be tailoring your base resume by adjusting keywords to match that specific job description — not rewriting from scratch.


The Resume-Building Checklist

Before your resume goes out anywhere:

  • [ ] Single-column layout, standard font, PDF format
  • [ ] Standard section headings (Experience, Education, Skills)
  • [ ] Skills section organized by category, most relevant first
  • [ ] Every experience role has 3-5 bullets
  • [ ] At least 60% of bullets have a quantifiable result
  • [ ] No bullet starts with "Responsible for" or "Worked on"
  • [ ] Summary is specific to you, not generic
  • [ ] Contact information is in the body (not header/footer)
  • [ ] ATS score checked against target job descriptions

Common Mistakes When Building From Scratch

Copying a template with columns. Most free resume templates have multi-column layouts. They look great but fail ATS parsing. Start with a blank document or a confirmed single-column template.

Writing responsibilities instead of achievements. This is the most common mistake. Every engineer writes code, does code reviews, and attends stand-ups. What did you specifically deliver?

Putting education first. Unless you're a new graduate, work experience should come before education.

Using graphics or icons. Headshots, skill bar graphs, star ratings — these don't parse and waste space.


The Bottom Line

Building a strong base resume takes 2-4 hours and pays dividends for every application you send after that. Get the structure and content right once, then tailor for each role.

The biggest investment: rewriting your experience bullets from responsibilities to achievements. That single change has more impact on your interview rate than anything else on this list.


Want a second opinion on your draft? Get a free Resume Roast for specific, section-by-section feedback on what's working and what needs fixing.

T

Team PassTheBot

The PassTheBot team builds tools to help job seekers beat ATS systems and land more interviews.

Ready to put this advice into action?

Upload your resume and get an instant ATS score with specific, actionable improvement suggestions.

Analyse My Resume Free