Resumes Coach

A complete job-search operating system, from first draft to offer.

Resumes Coach
Full-Stack Web App  ·  AI Product  ·  Live in Production
Visit Resumes Coach ↗
Resumes Coach analysis view showing an 82% match against a Principal PM role, a note that gaps could cost the interview, and a button to see what to fix

The problem

In the age of GPT, every resume is polished now. Anyone can paste their experience into a chat assistant and get back clean, confident, professional copy in seconds. So polish stopped being a signal. When every applicant sends the same smooth, capable-sounding resume, they all blur into one, and the achievements that made a candidate specific get sanded into language that could describe anyone.

The thing that is still missing is the thing that always mattered: fit to the actual job. A resume is an argument for one role, but most people send one generic version everywhere, now polished to a high shine and aimed at no one in particular. Meanwhile the 2026 funnel is unforgiving. Automated screening filters a resume before a person ever reads it, and when a recruiter does look, they decide in seconds. Polish is table stakes. Relevance is what gets the interview.

The product

Resumes Coach optimizes for fit, not polish. It treats the job search as one connected workflow rather than a single tool: it scores a resume, tailors it to a specific role without inventing experience, generates a matching cover letter, then tracks every application through to its outcome and feeds what it learns back into sharper coaching. The user stays in control of every change, so they can defend each line in the interview.

Why not just use ChatGPT?

This is the question every resume product has to answer in 2026, and it is where the real design work is. A general chat assistant is built for conversation, so the rules that matter for resume work ("don't fabricate," "preserve the facts," "match the role without copying it") live inside a prompt, where the model weighs them against everything else and quietly makes judgment calls. Ask it to "make this better" and it optimizes for the only thing it can measure: polish. The result reads well and says nothing, which is exactly why so many AI-written resumes now sound identical and get ignored.

Resumes Coach moves those rules out of the prompt and into the system. Grounding is enforced rather than requested, so reframing your real experience is the default and inventing facts is the exception. Each pass is scoped to one job (your experience, your summary, your positioning against a specific role) instead of one chat trying to balance all of it at once. And because every change traces back to something you actually did, you can defend each line in the interview rather than discovering in the room that you cannot explain your own resume. That difference is architecture, not a smarter model.

What we built

Analyze and score. The Resumes Coach Score (RCS) is a single interview-readiness number covering readability, bullet-by-bullet strength, section quality, and career-trajectory clarity. A separate match score shows how well the resume aligns to a specific job description.

Tailor without fabrication. Resumes Coach reshapes the whole resume into a coherent argument for a specific role, from the summary and positioning down to individual lines. It reframes the experience you already have rather than inventing any, across four control levels (Conservative, Balanced, Creative, Aspirational), with iterative refinement and a one-click cover letter. Exports to clean PDF and Word, with working hyperlinks.

Career profile. A persistent profile of who the user is and where they want to go (level, function, industries, target paths, kind of move) that steers every rewrite toward a coherent trajectory instead of one-off edits.

Capture a job in one click. A browser bookmarklet we built lets users save any posting straight from the job board they are already on. Click it on a LinkedIn, Indeed, or company careers page and it reads the page, pulls out the role, company, location, work type, salary, and full job description, and drops the job into the tracker, with no copy-paste. A manual save form covers mobile, where bookmarklets do not run.

Application tracker (CRM). A full pipeline from saved to applied, screening, interviewing, and offer, as a table or a drag-and-drop board. Each application carries a frozen snapshot of the job and the exact resume version sent, an append-only timeline of events and interview rounds, a contacts list, and smart nudges when something has been sitting too long. When an application closes, a short reflection captures why.

The Resumes Coach application board: a kanban pipeline from Saved through Applied, Recruiter Screen, Interviewing, Offer, Negotiating, and Accepted, with role and company on each card, match-score chips, and nudges flagging applications that have gone quiet
The application pipeline, from saved to offer, with nudges when something goes quiet. Click to enlarge.

The outcome loop. That closing reflection is the point. By linking each resume version to what actually happened (screen, interview, offer, rejection), the product can learn which kinds of edits move the needle for which kinds of moves. The outcome data is the long-term moat.

Building an AI product

The interesting decisions in this product are not features, they are the constraints that come with building on a language model. The first is trust: a tool that quietly invents experience is worse than useless, because the cost lands on the user in the interview, not in the app. So grounding is enforced in the system rather than asked for in a prompt, and the user reviews and owns every change. That single choice shapes the whole product.

The second is the economics, which are unusual for software. Every analysis, rewrite, and capture has a real per-use cost, so the work was matching each task to the right size of model: a fast, cheap pass for scoring and quick categorization, a stronger model only where the quality difference is worth paying for. Prompts live in configuration rather than code so they can be tuned without a deploy, and we measure cost and latency per call. Getting that balance right is what makes a usable free tier and a sustainable paid one possible at all, which matters more than any specific price.

The third is that models are non-deterministic and they drift. The same input can produce different output, and a provider update can shift behavior overnight, so every run is validated against an expected schema and logged, which makes quality measurable over time instead of a matter of vibes.

Where the product goes next follows the same workflow it already owns. The job-capture surface extends from the bookmarklet toward richer browser tooling that can both pull a job in and help fill the application out, and outcome signals from the tracker get fed back to make the coaching sharper for each kind of move. The discipline is sequencing: ship the capability, prove it against real outcomes, then build the next layer on top of what is working.

How it is built

React and TypeScript on the front end, Cloudflare Workers for the API, Supabase (Postgres, Auth, Storage) for data, and Claude for the language work. It ships with the rigor of a real production service: row-level security and authorization checks on every endpoint, prompt-injection defenses on all user content, idempotent payment webhooks, tracked database migrations, automated tests gated in CI/CD, and error and uptime monitoring.

Status

Live in production and free to try, no credit card required. See it at resumescoach.com ↗