How to tailor your resume to a job description
Every job-search guide tells you to "tailor your resume." Almost none show what that actually looks like when you sit down and do it.
So this is the worked version. One real-shaped job description. One resume that's fine, but untailored. Then the specific changes, phrase by phrase, that push the match from 54% to 86%. For each change, I'll tell you why it moved the number. No abstract advice, no bullet list of "tips." Just the edits.
If you want to run this against your own posting, paste both into resimay.ai/try and we'll do the match for you. But honestly, the value of reading this post is seeing the pattern, so you can spot what to fix before any tool needs to tell you.
The raw materials
The job description (Senior Frontend Engineer at a fintech)
We're hiring a Senior Frontend Engineer to own our customer-facing dashboard.
You will:
- Build and maintain features in React and TypeScript across a Next.js app.
- Partner with product and design to turn Figma prototypes into shippable UI.
- Own our design system and component library.
- Improve Core Web Vitals and accessibility (WCAG 2.1 AA).
- Write unit and integration tests in Jest and Playwright.
- Mentor mid-level engineers on frontend architecture.
Requirements:
- 5+ years of production frontend engineering.
- Deep TypeScript.
- Experience with React, Next.js, and a component library (Radix, ShadCN, or similar).
- Familiarity with GraphQL and REST APIs.
- Experience shipping in a regulated environment (fintech, healthcare, or similar).
The shape of this role is clear. React plus TypeScript plus Next.js, a design-system owner, someone who cares about Core Web Vitals and accessibility, and somebody who has shipped in a compliance-heavy environment. Those aren't keywords to stuff. They're the actual job.
The starting resume (one experience block, pre-tailoring)
Senior Software Engineer, FinanceCo (2022 to Present)
- Worked on the customer-facing web app, building features using JavaScript frameworks.
- Collaborated with designers to implement UI components.
- Helped improve page performance and accessibility.
- Wrote tests for new features.
- Mentored junior engineers on code reviews.
Not a bad block. Not a tailored one either. Let's walk every line and say what's wrong, then what to write instead.
Line 1: "Worked on the customer-facing web app..."
Three things off. "Worked on" is arguably the weakest verb in English (you can work on anything, including your tan). "JavaScript frameworks" is a generic phrase an ATS hunting for "React" won't match. And "customer-facing web app" is the right framing but vague enough to be invisible.
Rewrite:
Own frontend development on the customer-facing dashboard, a Next.js + React + TypeScript app serving 140K active users.
Why it lands. "Own" signals scope that matches the "you will own our dashboard" line from the JD. "Next.js + React + TypeScript" puts three exact strings from the posting into a single sentence. "140K active users" adds a real number, pulled from the actual work. And "dashboard" mirrors the noun the JD kept using.
Line 2: "Collaborated with designers..."
The JD reads: "partner with product and design to turn Figma prototypes into shippable UI." The resume version drops product, skips Figma, and swaps "ship" for "implement."
Rewrite:
Partner with product and design to ship Figma prototypes as production React components, including the 60+ components that make up our internal design system.
What changed. "Partner with product and design" mirrors the JD verbatim. "Figma prototypes" picks up a tool name the parser is indexing. "React components" is more specific than "UI components" and matches the stack. And the design-system callout, "60+ components that make up our internal design system," is the big one. The JD explicitly asks for somebody to "own our design system and component library." If you've done that work, name it.
Line 3: "Helped improve page performance..."
"Helped" is a hedge. "Page performance" reads informal next to the JD's "Core Web Vitals." "Accessibility" is generic where the JD specifies WCAG 2.1 AA.
Rewrite:
Led a Core Web Vitals initiative that moved LCP from 3.1s to 1.4s and brought the dashboard to WCAG 2.1 AA compliance.
"Led" replaces the hedge. "Core Web Vitals" is the exact phrase from the posting. "LCP from 3.1s to 1.4s" is a concrete result, and if you did the work, the numbers exist somewhere. Go find them. Check your last performance review, your team dashboards, old Slack messages bragging about the deploy. "WCAG 2.1 AA compliance" mirrors the posting's exact standard.
One rule, and I can't stress this enough. If you don't have the numbers, leave them out rather than inventing them. Made-up numbers get caught in the first technical interview, usually in the form of "walk me through how you measured that," and once you're caught, you're done. Not just for this role. The recruiter remembers the name.
Line 4: "Wrote tests for new features."
The JD names two specific tools: Jest and Playwright. The resume just says "tests."
Rewrite:
Authored 200+ unit and integration tests in Jest and Playwright, growing frontend coverage from 48% to 81%.
Names both tools the JD mentions. Distinguishes unit from integration tests (also named in the posting). Quantifies. Same rule as before: only include numbers that are true.
Line 5: "Mentored junior engineers on code reviews."
Actually pretty decent. The JD says "mentor mid-level engineers on frontend architecture." Tighten the match.
Rewrite:
Mentor 4 mid-level engineers on frontend architecture, running weekly pairing sessions and owning the onboarding curriculum for the frontend team.
"Mentor" stays, already active and present tense. "Mid-level engineers" matches the JD level. "Frontend architecture" matches word-for-word. The added detail (weekly pairing, onboarding curriculum) shows scope without turning into a buzzword parade.
Adding the missing piece
After tightening the five bullets, one big gap remains. The JD explicitly wants "experience shipping in a regulated environment (fintech, healthcare, or similar)." The starting resume names FinanceCo as the employer but never flags the regulated angle in a bullet. That's a missed signal.
Add one more line:
Shipped features across a SOC 2 + PCI-DSS environment, partnering with security and legal on every release that touched cardholder data.
That covers three things at once. The regulated-environment requirement. Specific compliance standards (which double as ATS keywords for the next fintech job you apply to). And the cross-functional collaboration the JD keeps pointing at.
Before and after, side by side
Before (keyword match roughly 54%)
Senior Software Engineer, FinanceCo (2022 to Present)
- Worked on the customer-facing web app, building features using JavaScript frameworks.
- Collaborated with designers to implement UI components.
- Helped improve page performance and accessibility.
- Wrote tests for new features.
- Mentored junior engineers on code reviews.
After (keyword match roughly 86%)
Senior Software Engineer, FinanceCo (2022 to Present)
- Own frontend development on the customer-facing dashboard, a Next.js + React + TypeScript app serving 140K active users.
- Partner with product and design to ship Figma prototypes as production React components, including the 60+ components that make up our internal design system.
- Led a Core Web Vitals initiative that moved LCP from 3.1s to 1.4s and brought the dashboard to WCAG 2.1 AA compliance.
- Authored 200+ unit and integration tests in Jest and Playwright, growing frontend coverage from 48% to 81%.
- Mentor 4 mid-level engineers on frontend architecture, running weekly pairing sessions and owning the onboarding curriculum for the frontend team.
- Shipped features across a SOC 2 + PCI-DSS environment, partnering with security and legal on every release that touched cardholder data.
Not a different candidate. The same person's same work, stated in the words the posting is actually hunting for, with scope and numbers made visible.
The principles underneath
Reading the before and after, the moves are consistent. You can apply the same pattern to any tailoring job.
Use the posting's nouns. If the JD says "Core Web Vitals," don't write "page performance." If it says React, don't write "JavaScript frameworks." An ATS matches strings, and a recruiter is scanning for the same words they wrote in the JD.
Replace hedges with verbs. "Worked on," "helped with," and "assisted" all carry less information than "led," "owned," "shipped," "built." Don't overclaim. If you assisted, say assisted. But don't undersell ownership you actually had.
Quantify when the numbers exist. "Grew coverage from 48% to 81%" is worth more than "improved test coverage." If you can't remember the exact figure, check your last performance review, your team's dashboards, old Slack threads. Don't invent the numbers.
Match level signals. "Mentor mid-level engineers" reads completely differently from "help junior engineers." The JD tells you what level to pitch. Hit it. Don't undershoot.
Fill the big asks. If the JD calls out a specific environment (regulated, enterprise, startup), a specific scale (millions of users, billions in revenue), or a specific methodology (TDD, event-driven), and you've done the work, put it in a bullet. Not mentioning it is how resumes with the right experience fail anyway.
Don't fabricate. If you've never touched Figma, don't write "shipped Figma prototypes." You'll pass the filter, flame out in the interview, and lose trust from a recruiter who might have been useful to you next year.
How to know your tailoring worked
The honest test isn't a percentage. It's whether a recruiter reading for fifteen seconds can tell you've done the work the posting describes. ATS match percentage is a proxy for that, not the target itself. People forget this and chase 100% match like it's the goal. It isn't.
If you want a quick numeric read, paste the resume and the JD at resimay.ai/try. You'll get keywords matched vs missed, side by side, under a minute. But read the output, don't just chase the number. If the missed keywords are things you've genuinely done, adjust your bullets. If they're things you haven't done, leave them out. Nobody wins when you pass the filter and flame out in the screen.
The goal isn't 100% match. It's 75% or higher, with every matched keyword backed by actual experience. That combination is what earns callbacks AND survives the interview when somebody asks you to talk about what you did.
Related reading:
- The resume keywords list for 2026, the vocabulary you're mirroring into bullets
- ATS-friendly resume: what actually matters, formatting rules, myths, and real parser behaviour
- Why we built Resimay, the broader loop this tailoring sits inside
Ready to run your resume through the matcher? Start at /try. Free, no signup, results in under a minute.
Paste a job description and a resume at /try. No signup, tailored resume in under a minute.