Resume Matcher 1.4: Short Circuit
Short Circuit makes the resume itself better, not only better matched. Every tailoring run now critiques its own writing and rewrites the weak lines without adding a single fact, you can push a missing job keyword in when you confirm you have it, and you can watch each stage of the work as it happens. It also brings agent mode, an MCP server, new templates and multi-page resumes, and a round of security hardening.
Named after Short Circuit from Daft Punk's Discovery, this release continues the v1 series after 1.3 Crescendolls.
What's new
Writing that holds up
- Critique and rewrite in every tailoring run. Fixed rules and an AI critic check each bullet and the summary. Lines with an em dash, a weak opener such as "Responsible for", or no stated outcome get one rewrite. A fact check drops any rewrite that adds or loses a number, name, tool or skill, so your work stays on the page and nothing is invented. Light nudge only critiques.
- Writing score. A 0 to 100 score from the fixed rules (the same with every AI provider), with before and after, the lines to fix and the reviewer's notes.
- Improve writing in the Builder. A new Writing tab scores any resume, master included, and rewrites its weak lines. You review every change before it goes into the editor.
- Heavy rewrite. A fourth tailoring mode for bigger edits: full Challenge, Action, Result rewrites, a new summary and reordered bullets, with a clear hallucination warning.
- Evidence-based cover letters. One page, usually 200 to 300 words: a hook tied to the job, two or three matching examples, a company-fit paragraph grounded in the job description and a specific close. Contributed by @AlexanderMorris2k.
Keywords on your terms
- Add missing keywords. In the review dialog, missing job keywords become chips. Keywords your master shows are applied directly; a keyword it does not show needs your "I have this". Each one goes into your skills plus at most two lines where it fits, and nothing else is added around it.
- See where they went. The dialog lists where every keyword landed, marks it in the changed lines and shows the ATS score before and after. JD Match highlights the keywords you added in blue, and interview prep asks about them first.
- One match number. JD Match now shows the same keyword match as the ATS score, and keeps C++, .NET, Node.js and CI/CD whole.
- A sharper ATS score. It now scores the job title and date consistency, and the builder keeps the last calculated score with a Recalculate button. Contributed by @himalyansailor.
- ATS parse check. A new ATS CHECK tab shows whether a plain text extractor can read your exported PDF in the right order.
Watch it work
- Live progress. Tailoring shows each real stage as it runs, with a note when a slow model needs a minute.
- Tailoring queue. Queue several job descriptions and tailor them one after another, with cooldowns that respect rate limits. Contributed by @coolb0y.
Use it your way
- Agent mode. Open Claude Code, Codex, Cursor, Copilot or Antigravity in the repo and ask it to tailor your resume: no API key, and the web app updates live as the agent saves.
- MCP server. Its tools let any MCP client drive Resume Matcher against the same database as the app. Contributed by @rrvrs.
- Claude Code and ChatGPT plans as providers. Run on a Claude Code install with no API key (contributed by @GongYuanCaiJi), pick its model, or sign in with a ChatGPT plan, with a clear note on subscription risk.
- Optional PostgreSQL for larger or shared setups.
More control over the resume
- Several master resumes. Keep up to five, one per career track; tailoring picks the strongest bullets with code, not the AI.
- Page limit and bullet cap settings for tailoring. Contributed by @himalyansailor.
- New templates: Deedy, Modern Deedy and Vivid Single Column, plus multi-page resumes with predictable page breaks and an academic CV mode.
- The PDF matches the preview, and each resume keeps its own formatting.
- Reorder everything: projects, custom section items (contributed by @Bdysj) and the bullets within an entry.
Security
- Saved API keys can no longer be sent to arbitrary servers (#1045, reported and fixed by @MahediBuilds). An unauthenticated caller could point a stored key at their own server; a saved custom Base URL is now bound to the key that confirmed it.
- Local by default (#1048). The app has no login, so it now listens on loopback only and rejects unexpected
Hostheaders. - LiteLLM. Resume Matcher pins
litellm==1.104.2and was not affected by the compromised LiteLLM 1.107.0 release of 2026-10-21. Keep that pin in mind before upgrading LiteLLM. - Dependency updates: cryptography 50.0.0, Next.js 16.3.3, DOMPurify 3.4.13, undici 7.30.0, sharp 0.35.4, js-yaml 4.3.2 and Vitest.
Upgrading from 1.3
Back up the complete data directory first, as always: the database, config.json, uploaded files and the hidden .secret_key together.
- The app now listens on
127.0.0.1only. If you open it from another machine or a reverse proxy, setBIND_ADDRESS(Docker Compose) orHOST(source installs) and add the host name toALLOWED_HOSTS, for exampleBIND_ADDRESS=0.0.0.0 ALLOWED_HOSTS=192.168.1.20 docker compose up -d. See SETUP.md for details. - Database changes are additive and run on startup: new columns for ATS scores, per-resume formatting and forced keywords.
- Source installs still need Node.js 22+ and Python 3.13+; reinstall dependencies after pulling.
Docker images
Release tag: v1.4.0. Versioned images for Linux amd64 and arm64 publish to GHCR and Docker Hub:
docker pull ghcr.io/srbhr/resume-matcher:1.4.0
# or
docker pull srbhr/resume-matcher:1.4.0The image tags are 1.4.0 and 1.4.
Verification
The release passed 1,944 backend tests and 1,596 frontend tests with type checking. The writing loop, live progress and keyword forcing were also run end to end against a real model through the app's proxy.
Thank you
Thank you to everyone who contributed code, reported bugs on Discord and GitHub, tested fixes and reviewed this release.
Contributors to this release: @576657922, @AlexanderMorris2k, @Bdysj, @coolb0y, @Frankli9986, @gingeekrishna, @GongYuanCaiJi, @himalyansailor, @HT-Moh, @kobihikri, @MahediBuilds, @rrvrs, @srbhr.
Automation contributions are credited to @dependabot.
All changes and first-time contributors
What's Changed
New Contributors
Full Changelog: v1.3.0...v1.4.0