Stop writing a job description. Write your resume.
Most resumes fail not because the person lacks skill, but because the resume reads like a copy-paste of the JD instead of proof of what you actually did. This is the exact guide behind every template request DM.
ByAbhishek GoyalRead time ~8 minLevel Any career stageFormat Field guide + sample resume
How to use this: read top to bottom if you're starting from scratch, or jump straight to the sample resumes at the end if you just want to see the finished shape first.
On this page
01The core misconception
"More keywords = more shortlists." That's only half true.
Yes, ATS scoring rewards relevant keywords. But there's a second reader after the ATS: a human. And the fastest way to lose that human is to hand them a resume that reads like the job posting they wrote, instead of a record of what you built.
Reads like the JD
Responsible for developing and maintaining scalable microservices using industry best practices to ensure high availability and performance of backend systems.
Sounds lifted straight from a job posting. Zero proof of what was actually built, zero scope, zero outcome.
Reads like your work
Redesigned the session-sampling service using Redis + Lua scripting to fix a race condition under load, cutting license usage by 60% across 40+ enterprise customers.
Names the system, the tool, the specific problem, and a number a recruiter can picture without a follow-up question.
A recruiter should feel like they're reading a case study of your work — not a checklist you copied.
02How ATS actually reads your resume
Before a human ever opens it, software does.
An Applicant Tracking System parses your resume file into structured fields — name, contact info, work history, education, skills — before a recruiter ever sees it. Section 01 made the readability case against keyword-stuffing; this is the parseability case for why formatting choices matter just as much as wording.
Breaks parsing
Multi-column layouts, tables, text boxes for contact info, icons replacing section headers, content in headers/footers, a resume exported as a scanned image.
Any of these can scramble field order or drop content entirely before a human ever sees it.
Parses cleanly
Single-column layout, standard section headers (Experience, Education, Skills), plain-text contact info, a text-based PDF, and exact keyword phrasing matching the JD where it's actually true (e.g. "Node.js," not "NodeJS").
Boring formatting is a feature here — it's what survives the parser intact.
Fig. 1
Two resumes, same ATS, different outcomes
Same parser, same content quality — the layout alone decides which lane your resume ends up in.
03Three things to fix first
Before you touch a template.
01
Balance ATS keywords against readability
Include the technologies and terms from the JD, but weave them into sentences about real work, not as a keyword dump. If a line could sit unchanged in the job posting, rewrite it.
02
Every bullet needs a "so what"
A task without an outcome is a chore. Ask yourself what actually changed because you did this — faster, cheaper, fewer errors, less manual work, more reliable — pick the one that's true and say it plainly.
03
"I haven't worked on a real project" isn't a dead end
Almost everyone has touched a bug fix, a small enhancement, or a script. That's a project if you frame it and document it properly — exactly what section 03 below walks through.
04The bullet-writing formula
Every strong bullet is three things, stitched together.
Principle 02 says every bullet needs a "so what." That's the right instinct without a repeatable shape — so use this one:
Fig. 2
The X, measured by Y, by doing Z formula
Miss any one of the three and the bullet either sounds like a task, an unproven claim, or a brag with no substance.
Applied: Cut new-engineer ramp-up time (X) from 3 weeks to 1 week (Y) by writing an internal onboarding wiki and automating dev-environment setup (Z).
Responsible forWorked onHelped withAssisted withInvolved inParticipated inFamiliar withExposure to
One tense rule
Past tense for anything completed — including finished work in your current role. Present tense only for a responsibility that's genuinely ongoing right now (e.g. "Own the on-call rotation for payments"). Mixing the two inside one role is the single most common tell that a resume was never proofread out loud.
05"I don't have a project to show"
Turn a small fix into a resume-worthy project.
You don't need a greenfield build to have a project. You need a bug fix, an enhancement, or even a small script, plus the discipline to document it like it mattered. Here's the path, using AI at every step.
Fig. 3
Turning a small fix into a documented project, step by step
Five steps, no greenfield build required — the discipline of documenting it well is what makes it resume-worthy.
Prompt you can reuse
"Here's a bug fix / small enhancement I made: [describe it]. Help me document the high-level and low-level design of the module it belongs to, suggest a strong project name for my resume, and then ask me cross-questions an interviewer might ask about it."
The rule that overrides all of this
Only put on your resume what you can explain confidently in an interview. AI helps you frame and prepare — it doesn't get to sit in the interview for you.
06Build the architecture mental model
You can write the bullet. Can you defend it?
Here's the trap: you fix one bug in one service, write a clean resume bullet about it, and walk into the interview ready to talk about that one function. Then the interviewer asks something like "where does this request originate, what's the latency budget end to end, and what happens if that downstream service is down?" — and you've never looked past the file you touched.
Almost every real bug fix sits inside a system much bigger than the file you edited. You don't need to have built every service around it — you do need to understand how the whole thing fits together well enough to explain it out loud.
A concrete example
Say you fixed a stale-cache bug in a pricing-service — one function, maybe ten lines. That function still sits inside a flow that looks something like this:
Fig. 4
One small fix, inside a much larger request flow
The highlighted node is the one file you touched — everything else is context you're still expected to explain: request origin, latency at each hop, replica counts, and failure behavior.
"I fixed a caching bug" is a fine opening line. What separates candidates is being able to keep going: where the request actually comes from, which calls are synchronous versus async, where most of the latency lives, how many replicas each service runs, and what happens on a pod crash or a downstream timeout — even for the services you never touched.
Questions worth being ready for
Where does this request originate, and what's the full path to your service?
What's the latency budget at each hop — and where does most of it actually go?
How many pods/replicas does each service run, and what happens if one goes down?
Which calls are synchronous, and which are async (queue, event, callback)?
What's the retry, timeout, or fallback behavior if a downstream dependency fails?
Let AI build the map for you
This is exactly the kind of research AI is good at, given the right inputs: the actual code around your change, and any existing internal documentation — design docs, wikis, READMEs, architecture decision records. Point it at both, and ask for an in-depth, conference-talk-style architecture write-up covering the whole system around your change, not just the file you touched.
Prompt you can reuse
"I'm preparing to discuss a change I made in [service/module name] for an interview. Here is the relevant code: [paste the files/functions you touched, plus the services that call it and that it calls]. Here is our existing internal documentation: [paste or link any design docs, wikis, or READMEs you have access to]. Please act as a principal engineer writing an in-depth, conference-talk-style architecture guide for this module and the system around it. Cover: what each service does and who owns it, the end-to-end request flow with a sequence diagram, where caching and queuing happen, expected latency at each hop, deployment topology (replicas, autoscaling, health checks), what happens when a dependency fails or times out, and a glossary of any internal terms. Also identify and explain every engineering concept actually used in this module — e.g. caching strategy, concurrency/locking model, retry and idempotency handling, consistency guarantees, rate limiting, partitioning or sharding — so I can speak to the 'why' behind the design, not just the 'what.' Add flow diagrams and sequence diagrams wherever they clarify the design, and format the whole thing as a single self-contained HTML page I can review before an interview."
That last instruction matters twice over: naming the concepts (not just the services) is what makes the difference between "we use Redis" and "we use Redis as a write-through cache with a 5-minute TTL to protect the pricing DB from read amplification" — the second is the sentence that survives a follow-up question. And asking for the output as a single HTML page, the same way every guide on this site is one, turns a wall of chat responses into something you can actually navigate, bookmark, and re-read the night before an interview.
Why this is worth the extra hour
This is what turns "I fixed a bug" into "I understand this system." It's the same discipline as section 03 — except instead of documenting just your own change, you're mapping the architecture around it, which is exactly what a senior interviewer is testing for when they keep asking "and then what happens?"
07Quantify everything
If it's not measured, it didn't happen.
Recruiters skim. A number stops the skim. Even a clearly reasoned estimate beats a vague adjective every time.
"Improved performance of the API"
"Cut P95 API latency from 800ms to 210ms by adding a Redis caching layer"
"Automated manual testing process"
"Automated 85% of test cases, cutting execution time by 70%"
"Worked on cost optimization"
"Reduced license usage by 60% across 40+ enterprise accounts"
"Led a migration project"
"Migrated 10+ microservices to AKS with zero downtime"
Prompt you can reuse
"Here's what I did: [describe the work]. Help me estimate a realistic, defensible metric for the impact — time saved, cost reduced, error rate improved, or scale handled — that I can confidently explain if asked how I calculated it."
See it applied
The sample resumes at the end of this guide use these exact four examples as real bullets in the experienced-professional version — worth opening side by side with your own draft.
08Section order by career stage
Lead with your strongest evidence, not a fixed template.
Both sample resumes at the end of this guide use the same section names, but not the same order — that's deliberate. A resume should open with whatever most directly proves you can do the job, and that answer changes with experience.
Fig. 5
Section order for a fresher versus an experienced professional
Education leads for a fresher because it's the strongest proof available. Experience leads once there's a track record to point to instead — Projects becomes optional, per the note on Sample B below.
Why the order flips
Recruiters spend the first few seconds confirming you're worth reading further. For a fresher, that proof is the degree and the coursework behind it. A couple of years in, that proof is what you actually shipped — so lead with it instead.
09Red flags that get resumes rejected
None of these disqualify on their own — together, they add up fast.
✕
Unexplained employment gapsA gap rarely disqualifies by itself — an unexplained one paired with thin content around it invites the worst assumption.
✕
Inconsistent verb tenseMixing past and present within the same role reads as careless, even when the work itself wasn't.
✕
A generic objective or summary statement"Hardworking team player seeking growth opportunities" says nothing a real bullet couldn't say better.
✕
No GitHub, LinkedIn, or portfolio linkFor technical roles, an easy way to verify your work is expected, not optional.
✕
Length mismatch for your experienceOne page under roughly 5 years; two pages beyond that — never a lonely half-page third sheet.
✕
An unprofessional email handleA five-minute fix with a disproportionate first impression.
✕
Technology you can't defend for 5 minutesTies directly to section 06 — if it's on the resume, it's fair game in the interview.
✕
Soft skills with no proof"Excellent communicator" is an adjective. "Presented migration risk to 3 VPs and got sign-off in one meeting" is evidence.
10The final pass
Before you hit export.
✓
No bullet reads like the job postingRead each line and ask: could this sentence appear unchanged in the JD? If yes, rewrite it as something you did.
✓
Every project bullet has a numberTime, cost, scale, error rate, or percentage — pick the one that's true and defensible.
✓
Every technology listed is one you can talk about for 5 minutesDon't list a tool you touched once. Interviewers will ask, and it will show.
✓
You've used AI to cross-question yourselfRun each project through an AI-generated mock interview before a human does it for real.
✓
Time spent on the resume ≈ time spent applyingA hundred applications with a weak resume converts worse than twenty with a strong one. Fix the resume first.
11FAQ
The questions that come up every time.
Should I include a low GPA?
Include it if it clears a reasonable bar for your field — informally often 3.0/4.0 or 7/10 — or if the application explicitly asks for it. Below that, omit it and let projects and experience carry the argument instead.
One page or two?
One page under roughly 5 years of experience. Two is acceptable beyond that. Never a lonely third page with two lines on it.
What if I have an employment gap?
A gap is rarely disqualifying by itself. Be ready to explain it briefly and honestly if asked — the real risk isn't the gap, it's pairing it with thin, unconvincing bullets right around it.
Do freshers need an objective or summary statement?
Usually no. It's the section recruiters skip fastest, and that space is almost always better spent on one more quantified project bullet.
Should I list soft skills separately?
Only if a bullet actually demonstrates it — "led a cross-functional team of 5 through a production incident" proves leadership. A bare adjective list next to "Skills" proves nothing.
Next steps
See a filled-in example, watch the walkthrough, or get a second pair of eyes.
Two fictional but realistic resumes built from the advice above — one for a college graduate with no full-time experience, one for an engineer a few years in with multiple employers. Every bold number below is quantified the way section 05 argues for: a real percentage or figure, never just a direction.
Templates to adapt — names, employers, and metrics are illustrative.
Sample A — College graduate, no full-time experience
Coursework and projects carry the resume here — one short internship, three quantified projects, and nothing claimed that a final-year student couldn't defend in an interview.
Built a data-validation microservice in Python/FastAPI that checked incoming client feeds against 12 schema rules, cutting downstream data errors by 38%.
Wrote unit and integration tests covering 90% of the new service, reducing regression bugs reported by QA by 25%.
Projects
CampusConnect↗| Personal Project
Jan 2024
Built a full-stack event discovery platform for college clubs, adopted by 600+ students within the first month of launch.
Implemented JWT-based authentication and role-based access control across 3 user roles (student, club admin, moderator).
Designed a distributed cron-style job scheduler in Go using Raft-based leader election, tolerating up to 2 node failures without missing a scheduled job.
Benchmarked across a 5-node cluster, achieving 99.6% on-time job execution under simulated network partition.
1.Redesigned the session-sampling service using Redis + Lua scripting to fix a race condition affecting reads under concurrent load.
2.Cut P95 API latency from 800ms to 210ms — a 74% reduction — by introducing a Redis caching layer in front of the sampling endpoint.
3.Reduced license usage by 60% across 40+ enterprise customers by eliminating redundant sampling calls.
Impact: Cut platform-team on-call incident volume by 42% and freed backend capacity for new customer onboarding.
Test Automation Framework
1.Built a Selenium + TestNG framework to replace manual regression testing across three product lines.
2.Automated 85% of test cases, cutting full regression execution time by 70% (6 hours → 1.8 hours).
Impact: Shortened the release cycle by 50% (bi-weekly to weekly) without adding QA headcount.
AKS Migration Initiative, migrated 10+ microservices from self-managed VMs to Azure Kubernetes Service, coordinating across 4 teams to sequence cutover with zero downtime.
Impact: Cut infrastructure cost by 35% and cut average deployment time by 85% (40 min → 6 min).
Monitoring & Alerting Overhaul — Rebuilt on-call alerting on Prometheus + Grafana, cutting false-positive pages by 45%.
Migrated the logging pipeline from a self-hosted ELK stack to a managed provider, cutting ops overhead by roughly 30%.
Clearwater Labs
Jan 2022 – Jun 2022
Software Engineer Intern
Remote
Built a Python/Flask internal tool that auto-generated API client SDKs from OpenAPI specs, cutting integration time per new client by roughly 40%.
Implemented a CI linting and formatting pre-commit hook adopted by 5 engineering teams, cutting review-cycle nitpicks by roughly 50%.
Projects
Note: Projects (if any, and only if your company experience isn't enough to showcase your skills — otherwise avoid adding this section for an experienced resume).
DriftWatch↗| Personal Project
Mar 2023
Built a CLI tool that diffs live Kubernetes cluster state against a declared GitOps source of truth and flags drift within 30 seconds.
Distributed Rate Limiter| Academic Research Project
Nov 2021
Implemented and benchmarked three distributed rate-limiting algorithms — token bucket, sliding window, and GCRA — against a simulated multi-region deployment.
Presented findings at the department systems seminar; write-up available on request ↗.
Received the internal "Impact Award" at Nimbus Systems (2023) for the session-sampling redesign that cut license costs company-wide by 60%.
Ranked in the top 2% of 4,000+ participants in a national-level competitive programming contest.
Every quantified line above traces back to the before → after examples in section 05 — worth reading side by side with your own draft, whichever sample is closer to where you are.