Desktop · Windows + macOS · Free

The résumé tool that talks to ATS in their own language.

Builds a comprehensive profile from every résumé you've ever written, then tailors a fresh document to each job description, scored exactly the way the ATS will score it on submission. No more guessing. No more sending résumés into a black box.

v1.4.1 / Free under PolyForm Noncommercial / Source on GitHub

01

What it does

Seven things, all of them load-bearing. Skim or read the technical detail underneath each.

  1. F1

    Comprehensive AI-built profile

    Upload every résumé, LinkedIn export, paste, and URL you have. The app extracts every employer, every bullet, every credential. Deduplicates only at the literal-fact level. No summarizing, no compression. The output is intentionally massive: a 30-year career produces a 30+ employer encyclopedia. That's the point. The tailored résumés that follow draw from this complete picture, not a lossy summary.

  2. F2

    ATS-faithful match scoring

    The match score uses the exact algorithm Workday, Greenhouse, Lever, Taleo, and iCIMS run on your submitted résumé: interval-merged date ranges, keyword coverage, semantic equivalents, must-have hard gates, three-tier rubric classification. The number you see equals the number the ATS will compute. No inflation. No flattering. If you score 8.4 here, you score 8.4 there.

  3. F3

    15-item ATS format compliance

    Standard section headings. Parseable date ranges on every tenure. ASCII bullets only. No tables, images, columns, emoji, smart quotes. Reverse chronological order. Length sanity. Every check passes or fails individually with a visible or . You see exactly what an ATS will accept and what it will reject.

  4. F4

    Bring your own AI

    OpenAI, Anthropic, Google Gemini, Ollama (local), LM Studio (local). Use whatever you already pay for, or run entirely on your own hardware with a local model. The app records token usage per provider so you know what each draft cost.

  5. F5

    Per-section refinement that never regresses

    Refine one tenure, one bullet, one skill. The score verifier short-circuits per section: untouched sections cannot move, byte-for-byte. Additive operations are guaranteed monotonic. Refining never makes your score go down. You just keep adding context to your library; the next résumé is always better-informed than the last.

  6. F6

    Stretch level dial

    Conservative, Balanced, Aggressive. Three settings, three honest interpretations of the same corpus. Conservative uses your phrasing as-is. Balanced bridges aliases and surfaces defensible inferences. Aggressive maximizes JD vocabulary density. Fabrication is forbidden at every level. The dial only changes which truthful interpretations get surfaced, never invents what isn't there.

  7. F7

    Token analytics dashboard

    Every AI call is logged: provider, model, kind (writer / analyzer / chat-to-refine / refresh / profile build), prompt and completion tokens, duration, success. Filter by date range, model, kind, granularity. Counter cards, time-series, model donut, paginated call log. Know exactly what each résumé cost and where the tokens went.

02

How it works

Four steps. The loop gets stronger every time you use it.

  1. 1

    Upload everything you've written

    Old résumés, LinkedIn exports, project descriptions, bios. The more raw material the better. The app reads PDF, DOCX, plain text, URLs.

  2. 2

    AI builds the encyclopedia

    One AI pass extracts every employer, every bullet, every credential into a structured profile. Code dedupes by company+date overlap and bullet token similarity. Output is a comprehensive markdown profile you can read and edit.

  3. 3

    Paste a JD, get a tailored draft

    The writer composes a résumé tailored to that specific job, drawing from your full profile. The analyzer extracts a frozen rubric. The deterministic scorer computes the ATS-faithful match score. You get a DOCX, an ATS plain-text preview, and a full breakdown.

  4. 4

    Refine without ever regressing

    Chat tells the AI about gaps. Accept additions and they go into a new chained version. Per-section scoring guarantees the score holds or rises, never drops. Every accepted addition is also persisted to your corpus, so next time you generate against any other JD, the new context is already there.

03

Your data never leaves your machine.

Resume Tailor is a desktop app, not a SaaS. Everything lives in a local SQLite database in your user folder. There is no backend. There is no telemetry. Your AI calls go directly from your computer to the provider you chose.

storage

SQLite, in your OS user data folder. Nothing on a server we control.

telemetry

None. No analytics events, no error reports, no pings.

api_keys

Stored locally. Used only for direct calls to the AI provider you chose.

offline_mode

Run Ollama or LM Studio locally and the app makes zero outbound calls.

source

Open under PolyForm Noncommercial. Read every line of the code.

04

Pick your platform.

All builds are versionless URLs that resolve to the latest release.

First-launch security prompts: macOS will say "cannot be verified" — right-click the app, choose Open. Windows will show SmartScreen — click More info, then Run anyway. One time per machine. The binaries are unsigned because code-signing certificates cost real money and this app is free.