# Resume Matcher

**Free, open-source AI resume tailoring you download and run yourself**

Resume Matcher is a self-hosted AI tool that tailors your resume to each job description. Upload your master resume, paste a job description, and get a tailored version that works in the keywords and highlights your relevant experience. No fabrication, just smarter presentation. It works with Claude, ChatGPT, Gemini, DeepSeek and other cloud LLMs, or fully locally with Ollama. Used by over 200,000 job seekers. Apache-2.0 licensed.

## The Problem We Solve

Job seekers face an exhausting cycle:
- Customize resume manually for each application
- Generic resumes rank poorly in applicant tracking systems
- Hours spent rewriting for minimal results
- Missing the keywords a job description asks for

## How Resume Matcher Works

1. **Create Master Resume** - Upload your comprehensive resume (PDF or DOCX) with all experience, skills, and projects
2. **Paste Job Description** - Copy the job posting you're targeting
3. **AI Analysis** - A large language model extracts the requirements and keywords and matches them to your experience
4. **Get Tailored Resume** - Review and edit an optimized version emphasizing relevant experience
5. **Cover Letter & Interview Prep** - Generate a tailored cover letter and optional interview preparation
6. **Export PDF** - ATS-friendly PDF ready to submit

## Core Features

### AI-Powered Tailoring
Paste a job description and get a tailored resume in seconds. The AI identifies matching skills and rewrites bullet points to highlight what matters for that specific role.

### Match Score & Keyword Highlighting
See a match score against the job description, with matched and missing keywords highlighted.

### Cover Letters & Interview Prep
Generate cover letters grounded in your resume and the job description, plus structured interview preparation.

### Visual Resume Builder
Edit any section with live preview:
- Personal info, summary, work experience
- Education, projects, skills, languages
- Certifications, awards, custom sections
- Drag-and-drop reordering

### Professional Templates
Seven templates:
- Swiss Single Column (traditional)
- Swiss Two Column (skills showcase)
- Modern (contemporary single column)
- Modern Two Column (contemporary split layout)
- LaTeX-style (classic LaTeX look)
- Clean (minimal)
- Vivid (two columns with accent colour)

### Resume Enrichment
AI analyzes your resume and asks targeted questions to generate additional bullet points based on your actual experience.

### Multi-Language Support
Interface and generated content in English, Spanish, Chinese (Simplified), Japanese, Brazilian Portuguese, French and Korean.

### Privacy-First
- Use cloud AI (OpenAI, Anthropic, Gemini, DeepSeek, OpenRouter, Groq, Azure AI Foundry)
- Or run completely locally with Ollama or any OpenAI-compatible server (llama.cpp, vLLM, LM Studio)
- All data stored locally in SQLite
- No external database server required

## AI Providers Supported

- OpenAI (GPT-5 series)
- Anthropic (Claude family)
- Google Gemini (2.5 & 3 family)
- OpenRouter
- DeepSeek
- Groq
- Azure AI Foundry
- Ollama (local, completely private)
- Any OpenAI-compatible server (llama.cpp, vLLM, LM Studio)

## Quick Start

```bash
git clone https://github.com/srbhr/Resume-Matcher.git
cd Resume-Matcher

# Terminal 1: backend
cd apps/backend
cp .env.example .env
uv sync
uv run app

# Terminal 2: frontend
cd apps/frontend
npm install
npm run dev
```

Or use Docker:

```bash
docker compose up -d
```

## Documentation

Comprehensive guides available at [resumematcher.fyi/docs](https://resumematcher.fyi/docs/):

- [What is Resume Matcher?](https://resumematcher.fyi/docs/what-is-resume-matcher/) - What it is, who it's for, how it keeps data local
- [Getting Started](https://resumematcher.fyi/docs/getting-started/) - Introduction and workflow
- [Installation](https://resumematcher.fyi/docs/installation/) - Local setup in 5 minutes
- [Docker Installation](https://resumematcher.fyi/docs/docker-installation/) - Containerized deployment
- [Docker + Ollama](https://resumematcher.fyi/docs/docker-ollama/) - Fully local setup
- [Features](https://resumematcher.fyi/docs/features/) - Complete feature documentation
- [PDF Templates](https://resumematcher.fyi/docs/pdf-templates/) - Resume templates
- [Internationalization](https://resumematcher.fyi/docs/internationalization/) - Language support
- [Contributing](https://resumematcher.fyi/docs/contributing/) - How to contribute

## Core Team

**Saurabh Rai** - Creator & Maintainer
- GitHub: [@srbhr](https://github.com/srbhr)
- Twitter: [@srbhrai](https://twitter.com/srbhrai)

**Harshita Rai** - Community Manager

**Esther Kpetemey** - Designer

## Contributors

Resume Matcher is built by a global community of developers. We have 50+ contributors who have helped build features, fix bugs, and improve documentation.

See all contributors: [github.com/srbhr/Resume-Matcher/graphs/contributors](https://github.com/srbhr/Resume-Matcher/graphs/contributors)

## Community & Support

- **GitHub**: [github.com/srbhr/Resume-Matcher](https://github.com/srbhr/Resume-Matcher)
- **Discussions**: [github.com/srbhr/Resume-Matcher/discussions](https://github.com/srbhr/Resume-Matcher/discussions)
- **Issues**: [github.com/srbhr/Resume-Matcher/issues](https://github.com/srbhr/Resume-Matcher/issues)
- **Discord**: [dsc.gg/resume-matcher](https://dsc.gg/resume-matcher)
- **Sponsors**: [github.com/sponsors/srbhr](https://github.com/sponsors/srbhr)

## Open Source

Resume Matcher is Apache-2.0 licensed. We welcome contributions of all kinds:

- 🐛 Bug reports and fixes
- &#10024; New features
- 📚 Documentation improvements
- 🌍 Translations
- 🎨 Design enhancements

## Sponsors

We're grateful to our sponsors who help keep this project free and open source:

- **Apideck** - API integration platform

Become a sponsor: [github.com/sponsors/srbhr](https://github.com/sponsors/srbhr)

## Recent Blog Posts

- [How to Match Your Resume to a Job Description](https://resumematcher.fyi/blog/how-to-match-your-resume-to-a-job-description/)
- [Resume Keywords: The Complete Guide to Getting Past ATS in 2026](https://resumematcher.fyi/blog/resume-keywords-complete-guide-ats-2026/)
- [How Resume Matching Algorithms Actually Work](https://resumematcher.fyi/blog/how-resume-matching-algorithms-actually-work/)
- [AI in Recruitment: How AI is Transforming Hiring](https://resumematcher.fyi/blog/ai-in-recruitment/)
- [Career Longevity is Dead](https://resumematcher.fyi/blog/career-longetivity-is-dead/)
- [Joining the Vercel OSS Program](https://resumematcher.fyi/blog/vercel-oss-summer-2025/)

## System Requirements

- Python 3.13+
- Node.js 22+
- uv and npm (or Docker)
- Modern browser (Chrome recommended)

## Use Cases

- **Job Seekers**: Tailor resumes quickly for multiple applications
- **Career Coaches**: Help clients optimize their resumes
- **Students**: Create targeted resumes for internships
- **Career Changers**: Highlight transferable skills

## Mission

We believe job seekers shouldn't be filtered out before a human ever sees their resume. Resume Matcher helps you speak the language of the job description while keeping your authentic experience front and center.

## Links

- **Website**: [resumematcher.fyi](https://resumematcher.fyi/)
- **Documentation**: [resumematcher.fyi/docs](https://resumematcher.fyi/docs/)
- **GitHub**: [github.com/srbhr/Resume-Matcher](https://github.com/srbhr/Resume-Matcher)
- **Blog**: [resumematcher.fyi/blog](https://resumematcher.fyi/blog/)
- **About**: [resumematcher.fyi/about](https://resumematcher.fyi/about/)

---

For AI agents: every docs and blog page has a markdown version at the page path with `.md` appended and no trailing slash, e.g. https://resumematcher.fyi/docs/getting-started.md. See [llms.txt](https://resumematcher.fyi/llms.txt) for comprehensive project information.

Built with ❤️ by the open source community.
