# What is Resume Matcher?

> Resume Matcher is a free, open-source AI harness that tailors your resume to each job. Run it locally, bring Claude, ChatGPT, Gemini or Ollama.
- **Section**: Introduction
- **URL**: https://resumematcher.fyi/docs/what-is-resume-matcher/

---

Resume Matcher is a free, open-source AI harness for tailoring resumes: you run it on your own computer, connect the AI model you already use, and it rewrites your resume for each job description. It works with a model you choose, such as Claude, ChatGPT, Gemini, DeepSeek or a local model through Ollama. It keeps your data in a local database and exports clean PDF resumes from ATS-friendly templates. Code-level checks stop the AI from changing your employers or dates, or adding numbers that aren't in your original. It's used by over 200,000 job seekers and licensed under Apache 2.0.

<figure class="rm-figure">
<figcaption>Your resume and the job go to your AI model; code guardrails check every edit before you review it.</figcaption>
</figure>

## What it is, and what it isn't

**It is:**

- An open-source app (Apache 2.0) that you download and run yourself, on your laptop or in Docker.
- A "bring your own AI" harness. You plug in an LLM (a large language model, the kind of AI behind Claude or ChatGPT), and Resume Matcher handles the prompts, checks and formatting.
- A resume tailoring tool. It takes your master resume and a job description and produces a version aimed at that job.
- A resume builder with seven print-ready templates and PDF export.
- A small job-search workspace, with cover letters, outreach messages, interview prep and a Kanban application tracker.

**It isn't:**

- A website you upload your resume to. There is no hosted version; you run it yourself.
- An ATS checker or scanner. (An ATS, or applicant tracking system, is the software employers use to collect and filter applications.) Its match score is a keyword comparison, not a test against any real ATS.
- An AI model. You connect your own: a paid cloud provider or a free local model.
- A job board or auto-apply bot. It doesn't send applications anywhere.
- A tool that writes a resume from nothing. It works from facts you give it, either your uploaded resume or your answers in its interview-style wizard.

## Who it's for

**Developers and people who already use Claude or ChatGPT.** If you're comfortable cloning a GitHub repo and running a few terminal commands, or one Docker command, you can have it running with your own API key or a local model. You keep control of the model, the cost and the data.

**Technical job seekers.** Engineers, designers, data people and technical PMs who apply to many roles and want an honest, separate version of their resume for each one, without pasting their life story into a chatbot every time.

**Not for anyone who wants a website.** If you want to open a browser tab, upload a file and get a result with no setup, Resume Matcher isn't built for that. You install it (Docker, or Python and Node.js) and connect an AI model.

## How it works in 5 steps

1. **Add your master resume.** Upload a PDF or Word file (up to 4 MB), or build one by answering questions in the Resume Wizard. This full, untailored resume is your master. You can keep up to five, one per career track.
2. **Paste a job description.** The AI reads it and pulls out the required skills, preferred skills and key terms.
3. **Review the tailored draft.** The AI suggests specific edits to your summary, bullet points and skills, using the job's own wording. Code then checks every edit: your name, contact details, employers, job titles, dates and degrees can't change, and any new number that isn't in your original is undone. You see a before-and-after preview, with risky changes flagged, and choose **Confirm & Save** or **Reject & Regenerate**.
4. **Polish and add extras.** Edit anything in the builder, pick one of seven templates, adjust fonts, spacing, margins and colours, and reorder or hide sections. Generate a cover letter, an outreach message and interview prep for the same job.
5. **Download and track.** Export the resume and cover letter as PDFs. Each saved tailored resume also gets a card on the application tracker board.

## Bring your own AI

Resume Matcher doesn't include an AI model. You connect one in the Settings page, or with a few environment variables.

**Supported providers:** OpenAI (ChatGPT models), Anthropic (Claude), Google Gemini, DeepSeek, OpenRouter, Groq, Azure AI Foundry, **Ollama** (a free tool that runs open models on your own computer), and any OpenAI-compatible local server such as llama.cpp, vLLM or LM Studio.

You can use any model your provider offers. Settings suggests a default for each, for example GPT-5 Nano (OpenAI), Claude Haiku 4.5 (Anthropic), Gemini 3 Flash (Google) and Gemma 3 4B (Ollama).

- **Cost:** Resume Matcher is free. With a cloud provider, you pay that provider for your own API usage, at their prices. With Ollama or another local server there's no per-request cost.
- **Privacy:** with a cloud provider, your resume (including your name and contact details) and the job description are sent to that provider when you use an AI feature. Nothing goes to Resume Matcher's authors. With a local model, the text never leaves your machine.

## Runs on your machine

<figure class="rm-figure">
<figcaption>Everything Resume Matcher stores stays on your computer. Only the AI requests you trigger go to a cloud provider, and only if you choose one.</figcaption>
</figure>

**What stays local:** your resumes, job descriptions, tailored versions and tracker board (in a SQLite database file), your settings, and your API keys, which are saved encrypted. Everything lives in one folder on your computer, or in one Docker volume.

**What leaves your machine:** only the AI requests you trigger, sent to the provider you picked. There's no analytics or tracking code in the app. The AI library fetches a public model price list at startup; it contains none of your data and falls back to a built-in copy offline.

**Fully offline:** use Ollama or another local model server, and your resume, the job description and every AI output stay on your computer. You only need the internet to install the app and download the model.

## What you get

- **Seven resume templates:** Single Column, Two Column, Modern, Modern Two Column, LaTeX-style, Clean and Vivid, with A4 or US Letter, margins, spacing, font size, serif/sans/mono fonts, an accent colour on three templates, and drag-and-drop section order.
- **ATS-friendly PDFs:** each PDF is printed from real text by a headless Chrome browser, so every word can be selected and copied. Headings use proper tags, two-column layouts keep the main content first in reading order, and fonts are standard system fonts.
- **Cover letters and outreach messages:** short cover letters (100-150 words, downloadable as PDF) and 70-100 word outreach messages for email or LinkedIn, written from your resume for the specific job.
- **Interview prep:** role-fit analysis, likely questions about your resume and projects, skill gaps to prepare for, and talking points.
- **Match score:** the JD Match tab shows what percentage of the job description's meaningful words also appear in your resume, and highlights them. It's plain keyword overlap calculated by code, not an AI opinion and not a prediction of how any employer's system will rank you.
- **Application tracker:** a Kanban board from Saved through Applied and Interview to Accepted or Rejected.
- **Seven languages** for the interface and the AI's writing: English, Spanish, Chinese (Simplified), Japanese, Brazilian Portuguese, French and Korean.

## Get started

**Fastest path (Docker):**

```bash
docker run --name resume-matcher -p 3000:3000 -v resume-data:/app/backend/data ghcr.io/srbhr/resume-matcher:latest
```

Open `http://localhost:3000/settings`, choose your AI provider, paste your API key, and click **Test Connection**. Using Ollama on the same computer? Set the Ollama URL to `http://host.docker.internal:11434`.

**Local path** (Python 3.13+, Node.js 22+ and `uv`): see [Installation](/docs/installation/). For a private setup with a local model, see [Docker + Ollama](/docs/docker-ollama/).

**Using a coding agent?** The repo includes agent instructions: `CLAUDE.md` files and a `docs/agent/` folder with a quickstart. Claude Code reads `CLAUDE.md` automatically; with Codex or Cursor, point the agent at `docs/agent/quickstart.md` and ask it to set the project up.

## FAQ

**Is Resume Matcher an ATS checker?**
No. It tailors your resume to a job description; it doesn't scan resumes or simulate an applicant tracking system. Its match score is a simple keyword-overlap percentage, and its templates produce clean, text-based PDFs that those systems can read.

**Does it make things up?**
It's built not to. The AI can only reword your existing content, and code checks every change: names, contact details, employers, titles, dates and degrees are locked, and any new number that isn't in your original is reverted. The one deliberate exception is skills: it may add a skill the job description explicitly asks for, and flags it as a high-risk change so you can reject it.

**Which AI model should I use?**
Whatever you already have access to. Settings suggests a default for each provider, and Gemma 3 4B on Ollama is a free local option. There's no official minimum, but very small models can struggle with the structured edit format.

**Is it free?**
Yes. It's open source under the Apache 2.0 license. If you connect a paid cloud AI provider, that provider bills you for your own usage; with a local model there's no per-use cost.

**Does my resume leave my computer?**
Only when you use a cloud AI provider, and then only to the provider you chose. With a local model such as Ollama, nothing leaves your machine.

**Can I use it without coding?**
You don't need to write code, but you do need to run a command in a terminal: one Docker command, or a few setup commands for Python and Node.js. After that, everything happens in your browser.

**What's a master resume?**
Your complete, untailored resume, with all your experience, projects and skills in one place. Resume Matcher creates each tailored version from it and never overwrites it. You can keep up to five masters, for example one per career track.

**What can I upload and download?**
Upload PDF, DOC or DOCX files up to 4 MB, or build a resume with the Resume Wizard. Scanned, image-only PDFs aren't supported. You download your resume and cover letter as PDF.

## Support the project

Resume Matcher is built in the open by [Saurabh Rai](https://github.com/srbhr) and contributors. If it helps you, **[star it on GitHub](https://github.com/srbhr/Resume-Matcher)** and follow along on [GitHub](https://github.com/srbhr), [X](https://twitter.com/srbhrai) and [LinkedIn](https://linkedin.com/in/srbhr).