- What ATS actually does (and does not do)
- Format: the foundation everything else depends on
- Software engineer resume keywords: use them honestly, not aggressively
- Writing bullets that survive both the ATS and the recruiter
- The sections that matter for software engineers
- Pre-submit checklist
- Frequently asked questions
What ATS actually does (and does not do)
Most advice about ATS systems is based on a misunderstanding of what they actually do. Most people imagine ATS systems aggressively rejecting resumes based on missing keywords. The reality is more straightforward, and less adversarial. But that does not make it less consequential. A technically strong engineer can disappear from recruiter searches entirely because of resume formatting mistakes that have nothing to do with their qualifications.
An ATS is a hiring system that stores and manages candidate applications. Capabilities vary by platform and employer configuration. Many systems parse resumes into structured fields and let recruiters search or filter candidates. Some also include matching, ranking, recommendations, knockout questions, or configurable workflows. A search for "Python," "senior," or "distributed systems" is one way recruiters may find candidates, but there is no single workflow shared by every employer. If the system interprets your experience incorrectly, relevant qualifications can become harder to find or review.
What this means practically: the ATS needs to be able to read your resume accurately. If it cannot parse your file, key experience may be missing or difficult to find in the structured record. That is a real risk, separate from whether you used enough keywords.
Formatting failures are one avoidable reason qualified candidates become harder to find or review in an ATS. Complex layouts can interfere with parsing, while missing qualifications, knockout questions, and recruiter decisions can also determine whether an application advances. Multi-column layouts, tables, text inside graphics, and information buried in headers or footers are common parsing pitfalls. Fix the format first. The keyword conversation comes second.
Format: the foundation everything else depends on
For software engineers, the temptation is to build a resume that looks as good as the products you ship. Resist it. Resumes created with highly visual templates in tools such as Figma or Canva can create parsing and reading-order problems, particularly when important information is placed in graphics, columns, or text boxes.
The format rules are not creative constraints. ATS platforms and parsing engines vary, but nonstandard layouts increase the risk of incorrect field extraction or reading order. Standard formatting reduces that avoidable risk and makes the resume easier for recruiters to review.
- Single-column layout throughout
- Standard section headings: Work experience, Skills, Education, Projects
- Text-based PDF or DOCX export from Google Docs or Word
- Standard fonts: Calibri, Arial, or Helvetica at 10 to 12pt
- Simple bullet points, no icons or graphics
- Contact info in the body of the document, not in a header or footer
- Multi-column or two-panel layouts
- Tables to organize sections or skills
- Exporting from Figma, Canva, or Photoshop
- Skill bars, progress indicators, or icons
- Text boxes or shapes with content inside them
- Headshot photos or logos
A quick way to check how your resume might parse: open the PDF and try to select and copy text. Selectable text is a useful first check, but it does not guarantee that an ATS will extract every field or interpret the reading order correctly. If it selects as an image block or nothing highlights at all, the file will not parse.
Left: single-column text-based PDF. Right: Canva or Figma export rendered as an image. Both look identical to the human eye, but image-based exports can create serious parsing problems in an ATS.
Software engineer resume keywords: use them honestly, not aggressively
Keyword optimization does matter, but not in the way most guides describe it. You are not trying to stuff your resume with every term from the job description. You are making sure that the language you use matches the language a recruiter would search for when looking for someone with your background.
The distinction is important. A recruiter searching for a "Kubernetes" engineer may not find you if you only wrote "container orchestration." Those phrases describe related experience, but search and matching behavior varies by system and configuration. When it is truthful, use the specific technology name reflected in the job description.
Software engineer resume keywords by role
Use these as categories to compare with the actual job description, not as a universal checklist. Include a term only when it accurately reflects your experience, and prioritize the language used in the specific role you are targeting.
JavaScript, TypeScript, React, Next.js, HTML, CSS, accessibility, web performance, unit testing, and end-to-end testing.
Python, Java, Go, Node.js, REST APIs, GraphQL, gRPC, SQL, PostgreSQL, microservices, and distributed systems.
Frontend frameworks, backend services, APIs, relational or NoSQL databases, cloud platforms, authentication, testing, and deployment workflows.
AWS, Azure, GCP, Docker, Kubernetes, Terraform, CI/CD, observability, incident response, reliability, and infrastructure as code.
Python, SQL, Spark, Airflow, ETL, data pipelines, data warehousing, model deployment, machine learning frameworks, and MLOps.
System design, architecture, technical strategy, mentoring, cross-functional leadership, stakeholder management, roadmap influence, and incident ownership.
When I was reviewing engineering candidates, keyword stuffing was immediately visible and immediately off-putting. A skills section with 40 technologies reads as someone who has heard of everything and knows nothing deeply. The engineers who stood out had specific, honest stacks and bullets that proved they could use them.
For each role you apply to, read the job description and note the specific technologies, methodologies, and role-specific language it uses. Then check that your resume reflects those terms where they genuinely apply to your experience. If they do not apply, do not add them. A gap in your resume is manageable. Claiming experience you cannot speak to in an interview is not, and a keyword-optimized resume that still gets no callbacks is a separate problem worth understanding.
Where software engineer resume keywords belong
- Skills section: Use exact names for languages, frameworks, tools, and platforms you can genuinely discuss.
- Experience bullets: Show how you used the technology, what you owned, and what changed because of your work.
- Summary: Name your specialization and level only when a summary adds context the rest of the resume does not provide quickly.
- Projects: Use project details to demonstrate relevant technologies when professional experience is limited.
- Job titles: Preserve your real title. Do not rewrite it solely to imitate the posting.
Writing bullets that survive both the ATS and the recruiter
This is where most engineering resumes fall apart, and fixing it has the biggest impact on interview callback rates.
The default mode for most engineers is to write bullets that describe responsibilities: what your role was, what the system did, what you worked on. Recruiters already know what a software engineer does. What they are looking for is evidence of what you specifically contributed and what happened as a result. HireKey's five-part recruiter resume review framework explains how that evidence fits into the broader screening decision.
The formula is simple: action verb, what you built or changed, the outcome in measurable terms. Every bullet should answer the question "so what?"
Responsible for developing and maintaining backend services for the payments platform.
Rebuilt the payments retry logic in Python, reducing failed transaction rate from 4.2% to 0.8% and recovering approximately $180k in monthly revenue.
Worked on improving the performance of the data pipeline used by the analytics team.
Optimized the Spark-based ETL pipeline by introducing incremental processing, cutting daily job runtime from 6 hours to 40 minutes and reducing infrastructure cost by 35%.
The examples below are illustrative. Use only technologies, scope, and outcomes you can substantiate.
Worked on improving the performance of the customer-facing web application.
Reduced median page load time from 3.2 to 1.8 seconds by implementing route-level code splitting and image optimization in React, improving checkout completion by 9%.
Helped improve the deployment process and service reliability.
Designed a Kubernetes deployment standard with automated rollback and service-level alerts, reducing failed releases by 40% across 12 services.
If you do not have a specific number, that is okay. A qualitative outcome is still better than a description of duties. "Eliminated a class of race conditions that had caused 3 production incidents in the prior quarter" is a strong bullet even without a percentage attached.
On quantity of bullets
Three to five bullets per role is enough for most positions. More than five and you are padding. Each bullet should be worth its space. If you cannot articulate what was different or better after you did the work, cut the bullet.
The sections that matter for software engineers
Keep the structure simple and make the most relevant evidence easy to find. The exact order can vary by career stage, but standard labels and a clear reading order reduce unnecessary friction.
- Contact information: Name, location, email, phone number, and relevant portfolio or GitHub link in the document body.
- Targeted summary, when useful: A concise statement of specialization, level, stack, and the problems you solve. Skip it when it would only repeat generic language.
- Technical skills: A focused list of languages, frameworks, tools, and platforms you can genuinely discuss in an interview.
- Professional experience: Reverse-chronological roles with company, title, dates, and outcome-driven bullets.
- Projects, when relevant: Credible technical evidence for early-career candidates or work that demonstrates skills not visible in recent roles.
- Education: Degree, school, and graduation information, generally placed after experience for established professionals.
Pre-submit checklist
Before you send any application, run through this list. It takes two minutes and catches the most common issues.
- Resume is a single-column layout with no tables or multi-column sections
- File is a text-based PDF or DOCX (confirmed by selecting text in the document)
- Contact information is in the body of the document, not in a header or footer
- All section headings use standard labels (Work experience, Skills, Education)
- Each bullet starts with a strong action verb and includes an outcome or result
- Technology names match the specific terms used in the job description
- Skills section reflects only technologies you can speak to in an interview
- No graphics, icons, photos, or skill bars anywhere in the document
- Resume length reflects relevant experience and remains easy to scan; one to two pages is appropriate for most candidates
- Every role includes a company name, title, and date range
After checking the format and keywords, use HireKey's free recruiter resume review tool to see whether your positioning, evidence, scan visibility, and seniority signals are clear.
Frequently asked questions
Make your next move with confidence.
See how HireKey helps you understand your fit, tailor your resume, and prepare for interviews.
Start with a free plan. Choose Premium when you need more.