Engineering recruiters don't read every resume — they run boolean searches inside the ATS, something like "React AND TypeScript AND (AWS OR GCP)", and only open the profiles that match. If the exact technology names from the job description aren't in your resume as plain text, you can be a perfect fit and still never surface in that search.
Paste your resume below the fold — or go straight to the checker — and you'll get a score plus the specific stack keywords you're missing for the job you're targeting.
ATS keyword matching is mostly literal. Recruiters search for the noun, not the concept: "Kubernetes", not "container orchestration"; "PostgreSQL", not "relational databases". If the posting says TypeScript and your resume only says JavaScript, many searches will skip you. Mirror the exact names of languages, frameworks, and cloud platforms from the description — where they're genuinely part of your experience.
Abbreviations cut both ways. Some recruiters search "CI/CD", others "continuous integration". Some search "AWS", others "Amazon Web Services". For the two or three technologies most central to the role, include both forms once — e.g. "built CI/CD (continuous integration) pipelines in GitHub Actions" — and you're covered either way.
Put your working stack in context, not just in a skills list. A skills section gets you keyword matches, but recruiters rank higher the resumes where the keyword appears inside an achievement: "cut p95 latency 60% by moving the search service to Elasticsearch" beats "Elasticsearch" in a comma-separated list.
Engineers disproportionately use designed templates — two-column layouts, skill-rating bars, language icons, LaTeX exports with custom glyphs. All of these hurt parsing. Skill bars and icons carry zero text for the ATS to read, and two-column layouts often get read straight across, interleaving your skills column into your job history. A boring single-column resume parses perfectly and loses you nothing.
Keep your GitHub and portfolio links as plain URLs rather than embedded behind an icon, and keep section headings standard: "Experience", "Skills", "Education". Clever headings like "My Stack" or "Things I've Shipped" can keep whole sections from being categorized.
Paste your resume — and the job description if you have one — and get an instant ATS score with the exact keywords you're missing and what to fix first.
Check your resume free — no sign-up, instant score →No. Lead with the stack the job description asks for, plus what you've used seriously in the last few years. A long undifferentiated list dilutes your strongest matches, and interviewers will probe anything you list. Cut anything you'd be uncomfortable being quizzed on.
Not directly — the ATS doesn't crawl it. But include the URL as plain text anyway: once a recruiter opens your resume, an active GitHub is one of the strongest signals an engineering screen can see. Just don't hide the link behind an icon, which parses as nothing.
Usually, if the layout is single-column and the export is a text-based PDF. Problems come from custom glyphs (fancy bullets, ligatures) and multi-column academic templates. Run the exported PDF through the checker — if the text extracts cleanly, you're fine.
Yes — the ATS matches keywords anywhere in the document. A 'Projects' section with real detail ('built a Go API serving 200 req/s on Fly.io') is a legitimate place to cover stack keywords a day job hasn't given you yet, especially for early-career engineers.