Case study · Independent
Tailoring a résumé without inventing anything
I designed and built a web app that rewrites a résumé for one job posting, using only what's already in it, and shows the proof before you pay.
Request access- Role
- Designer and builder, solo, with AI
- Organization
- Independent
- When
- Jul 2026 to now, a personal tool for now
- Platform
- Web app: Next.js, Supabase, Stripe and Claude

In short
- 01Generic AI résumés get rejected, and the tools that write them happily invent experience to hit a posting's keywords.
- 02I designed and built Tailored. (a working name): it rewrites a résumé for one posting, never adds what isn't there, and scores the match with plain code, free, before anyone pays.
- 03The hard part was honesty. The score, the colours, the prompts and the checks are all designed so the product can't overstate what it did.
- prototyping · single-file React
- interaction design
- information design · the colour contract
- prompt design and evals
- building with AI · Claude Code
- pricing and paywall design
01Problem
Screeners filter on the posting's own words
Screeners and the software in front of them look for the job description's own vocabulary. A good résumé written in different words gets filtered out.
AI tools fix that by stuffing in the posting's keywords, including skills the person doesn't have. That gets past the filter and fails the interview, or worse.
02Promise
Rewrite hard, invent nothing, prove it for free
Tailored. pulls the screening keywords from one posting, rewrites the résumé against them, and shows a before and after with every keyword highlighted. The preview and the score are free. Paying $5 unlocks the clean text.
Two rules pull against each other. The rewrite may never invent an employer, title, date, tool or result. But it must also change enough to be worth paying for: rewrite the summary, rework and reorder bullets, re-rank skills. A timid rewrite fails as surely as a dishonest one.
03Proof
The score is counted by code, never claimed by the model
The match score is plain string matching of the rewritten résumé against the extracted keywords. The model never reports its own score, so the number can be reproduced and can't be inflated. That's what makes the free preview credible.
Colour carries the same meaning everywhere: green for keywords the rewrite gained, light green for ones you already had, red for honest gaps. A coloured number counts only things of that colour, and each keyword is highlighted once, so the count matches what you can see. Red also gets a strikethrough, so colour is never the only signal.
04Prototype to app
From a one-file prototype to a product
I validated the loop first in a single-file React prototype: paste, extract, tailor, score, preview, a mock paywall. The production app ported its logic rather than reinventing it.
The prototype marked gained keywords in yellow and stamped a watermark across the preview. The app moved to two greens, made the extracted keywords editable so you can add one it missed and re-run, and replaced the watermark with a short readable preview where every rewritten line can show the original lines it came from.

05Honesty
Showing the work, including what it wouldn't do
Every edit is listed with the original line it came from and why it changed. A posting's requirements are matched to the evidence in your résumé, even where the wording differs. Keywords with no support are listed under "What we didn't fake", each with a one-line suggestion.
The prompts learned the line the hard way. One live run invented a whole skills section from the posting. The fix was removing the five places the prompt permitted borrowing the posting's language, not adding another ban. Matching vocabulary is allowed only as a rename: the résumé must already contain the thing. Skills lists are now checked line by line against the original, and a caught invention gets one silent retry, then an honest error.


06Phone
One pane at a time on a phone
Side-by-side panels don't fit a narrow screen, so on phones a Before and After switch shows one full-width pane, opening on the rewrite. Desktop keeps the real side-by-side view.

07Formats
Three ways to send it, priced as a ladder
Beyond the $5 text, a $19 tier delivers the résumé in three designed formats: ATS-safe to submit, human-friendly to email a recruiter, and a showcase for networking. A cover letter comes with it, or costs $1 on its own.
I designed a set of templates, then rebalanced it to keep five ATS-safe layouts and rebuild six two-column ones. The cover letter has its own rules: its first paragraph puts what the role needs beside what the candidate did, and leaves the fit for the reader to see.


08Pricing
A proposed model: pay per posting, not per month
The business model is a proposal, built and tested end to end in Stripe's test mode but not live. The match score and a watermarked preview are free. The tailored résumé is $5, the three designed formats are $19 with the cover letter included, and the letter alone is $1.
The tools I compared charge a monthly subscription whether you apply to one job or twenty. Tailoring is worth doing for the few postings you care most about, so I priced the unit of value: one posting. At $5 each it costs less than a $29 plan until about six tailored résumés a month, and there's nothing to cancel once you're hired. Someone applying to dozens of jobs a month would do better on a subscription, and that's fine; it isn't who this is for.
The upgrade path charges the difference: $14 to go from the $5 text to the designed formats, so nobody pays for the text twice.


09Where it stands
A personal tool, for now
For now Tailored. is a personal tool, not a public product. The site stays private: uploaded résumés are personal data, and I'd rather finish the go-live checks than leave anything reachable while it's still being built.
Payments run through Stripe and are confirmed on the server. Results are stored in Supabase, and the model calls happen only on the server. I ran a full code audit and fixed what it found.