How to pass ATS in 2026: a developer’s guide.
The Applicant Tracking System is the first filter between you and a job. It is dumb on purpose. Once you understand how it works, passing it becomes a checklist, not a mystery.
TL;DR
- 1. Save your CV as a single-column PDF. No tables, no text boxes, no images.
- 2. Use the exact keywords from the job description: “Kubernetes”, not “K8s”.
- 3. Use standard section headings: Experience, Education, Skills, Projects.
- 4. Verify against the specific job description with an ATS checker before submitting.
1. Format your CV for plain-text parsing
The ATS extracts raw text from your PDF. It does not see your design. If your skills are in a fancy box, listed in a sidebar, or rendered as part of an image, the ATS often does not catch them at all.
The fix is structural, not aesthetic. A single-column layout with standard headings reads cleanly to both the ATS and the recruiter who comes next.
Format traps to avoid
- - Multi-column layouts (skills in a sidebar, experience in the main column)
- - Tables for experience or skills sections
- - Text boxes, callouts, or speech-bubble graphics
- - Images with embedded text (logos, icons containing skill names)
- - Headers and footers (parsed inconsistently or skipped entirely)
- - Decorative fonts or font sizes below 10pt
2. Mirror the job description’s exact phrasing
The ATS scores keyword overlap. It does not understand that “K8s” and “Kubernetes” are the same thing, at least not reliably. It does not know that “React” and “React.js” mean the same. Match the exact tokens the JD uses.
This is not stuffing. This is alignment. If you have used the technology, write it in the JD’s language. The recruiter scanning your CV next will not penalize you for matching the role’s vocabulary.
Where to place keywords
- - A dedicated Skills section listing the JD’s hard skills you have
- - Inside experience bullets, where the keyword has context (“Built X with Kubernetes and Helm”)
- - In your title or summary if the JD repeats it (e.g. “Backend Engineer”)
- - Not in white text or hidden fields, which modern ATS detect and penalize
3. Use standard section headings
ATS parsers map content into structured fields by looking for known section labels. “My Journey”, “Tech I Love”, “Things I’ve Shipped” sound personal but they may not map cleanly.
Use these labels
- - Experience (or Work Experience / Professional Experience)
- - Education
- - Skills (or Technical Skills)
- - Projects (especially valuable for junior devs)
- - Certifications if relevant
Skip the guesswork
Run your CV through the ATS checker against the actual job you want. You get the missing requirements, format flags and the reasons you’d be screened out. Free, no signup.
Check a job for free →4. Verify before you submit
The match is per-job. A CV that fits one posting may miss the next. Before you click submit, run an ATS check tailored to the specific job description. What is missing is usually short and concrete: a few of the job’s terms plus one or two structural flags.
A few minutes of checking before applying changes the math. You go from blind shots to aimed iterations. Each rejection becomes a data point you can act on, not a silent failure.
After the ATS, three more layers
Passing the ATS is necessary, not sufficient. Your CV next reaches an HR recruiter who skims it quickly for red flags, then a hiring manager checking GitHub, LinkedIn, and seniority signals. A CV optimized for the ATS but stuffed with red flags still gets rejected, just one stage later.
The full breakdown of all three layers is here: Why developers get rejected.
FAQ
Do all companies use ATS?
Most medium-to-large companies do, especially in tech. A posting can draw hundreds of applications, and recruiters search and rank them inside the ATS rather than read every one.
Will using exact keywords feel like keyword stuffing?
No, if it is honest. The ATS rewards exact matches because it cannot judge meaning. If the JD says "Kubernetes" and you have used it, write "Kubernetes", not "K8s", not "container orchestration". The recruiter who reads next will not penalize you for matching the language they used.
Should I have a different CV per job application?
You should at minimum tune the skills and bullet phrasing to mirror the JD. Same content, different surface. The match is per-job: a CV tuned for one role is not tuned for another.
PDF or DOCX: what does the ATS prefer?
Most modern ATS handle both. The format is less important than the structure: single column, standard headings, no images, no text boxes. A clean PDF beats a fancy DOCX every time.
How do I know if my CV passes the ATS?
Run it through an ATS checker against the specific job description. With RejectCheck you get the missing requirements, format flags and the reasons you’d be screened out.
Now run the check on your CV.
A few minutes. No signup. Tailored to one specific job description.
Check a job for free →