Getting Past the Resume Screen
What applicant tracking systems look for, what a recruiter sees in six seconds, and the signals that actually move your resume up the pile.
The number that gets thrown around is that 75% of applicants get rejected before a human ever sees their resume. Whatever the exact figure, the first reader of your resume is usually software. So write for the software first, then the human.
What the ATS actually does
An applicant tracking system (Workday, Greenhouse, Lever, Taleo) extracts the text from your resume, compares it to the job description, and produces a match score. Below a threshold, often around 60–70%, you get auto-rejected. It weighs:
- Keyword matches. Exact terms from the posting. "React.js," not just "React." "CI/CD," not "deployment."
- Section structure. The standard headers it expects: Education, Experience, Skills, Projects.
- Recency and relevance. The last year or two counts most.
- Skills density. How many of the required skills show up.
Then a human gives it about 6 seconds
If you pass the ATS, a recruiter skims. In those few seconds they look at:
- Company names and your school, top-left.
- Job titles and progression.
- The first bullet of each section, so make it your strongest.
- Any standout signal: a hackathon win, known open source, a competition.
Signals that get you noticed
Projects and coursework don't differentiate much anymore. Everyone has them. These do:
- Hackathons. Wins or even participation show you ship fast under pressure.
- Competitive programming. USACO, Codeforces (1400+), LeetCode contests, ICPC. It shows raw problem-solving.
- Math olympiads or chess. AIME/USAMO, a chess rating of 1800+, physics olympiad.
- Research. Papers, lab work, undergrad research. Shows you can go deep.
- Open source. Merged PRs to known repos prove you can read real code and work in a team.
- A prior internship. The strongest signal and the hardest for freshmen. Even non-tech ones show professional readiness.
- School name. Unfair but real. If you're not at a target school, lean harder on the signals above.
Format rules
Bad formatting can tank great content. Keep it to one page, no graphics or icons, no tables or columns, standard section headers, a 10–12pt readable font, PDF (not DOCX), consistent dates, and bullets that start with an action verb.
Why no graphics or columns? Older parsers like Taleo can't read text inside images, tables, or multi-column layouts. They see blank space where your content should be.
Write better bullets
Formula: action verb + what you did + quantified result.
| Weak | Strong (illustrative) |
|---|---|
| Worked on the frontend of a web application | Built a React dashboard serving 2,000 daily users, reducing page load time by 40% |
| Helped with database stuff | Designed and optimized PostgreSQL queries, cutting API response time from 800ms to 120ms |
| Made a machine learning project | Trained a BERT sentiment model reaching 94% accuracy on 50K product reviews |
Only use numbers you can defend in an interview. They will ask.
The 4-step keyword method
Mirroring the job description's language is the highest-leverage thing you can do.
- Paste the job description into a text file and highlight every skill, tool, framework, and methodology.
- Match their exact phrasing. ATS does string matching, so "CI/CD pipelines" beats "deployment automation."
- Use standard headers. "What I've Built" confuses parsers. "Projects" doesn't.
- Add a skills section with comma-separated keywords. That's your keyword dump zone.
The best approach is a master resume with everything, then a tailored one-page version per application. It takes 10 to 15 minutes per app and makes a real difference in match rate.
Test it before you send it
HackerRank open-sourced their resume evaluation agent, hiring-agent. It scores your resume against a job description with detailed feedback, the same way recruiters using HackerRank see it. It's Python, MIT licensed, and runs locally, so your resume stays on your machine.
Drafted by AI from my notes and guides, reviewed by me.