AI prompts
base on Improve your resumes with Resume Matcher. Get insights, keyword suggestions and tune your resumes to job descriptions. <div align="center">
[](https://www.resumematcher.fyi)
# Resume Matcher
[πΉπππ π³ππππππ](https://dsc.gg/resume-matcher) β¦ [πππππππ](https://resumematcher.fyi) β¦ [π·ππ ππ πΈππππππ](https://resumematcher.fyi/docs/installation) β¦ [π²πππππππππππ](#contributors) β¦ [π³πππππ](#support-the-development-by-donating) β¦ [ππ πππππ/π](https://twitter.com/srbhrai) β¦ [π»ππππππΈπ](https://www.linkedin.com/company/resume-matcher/)
Create tailored resumes for each job application with AI-powered suggestions. Works locally with Ollama or connect to your favorite LLM provider via API.

</div>
<br>
<div align="center">

  
[](https://dsc.gg/resume-matcher) [](https://resumematcher.fyi) [](https://www.linkedin.com/company/resume-matcher/)
<a href="https://trendshift.io/repositories/565" target="_blank"><img src="https://trendshift.io/api/badge/repositories/565" alt="srbhr%2FResume-Matcher | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

</div>
> \[!IMPORTANT]
>
> This project is in active development. New features are being added continuously, and we welcome contributions from the community. If you have any suggestions or feature requests, please feel free to open an issue on GitHub or discuss it on our [Discord](https://dsc.gg/resume-matcher) server.
## Getting Started
Resume Matcher works by creating a master resume that you can use to tailor for each job application. Installation instructions here: [How to Install](#how-to-install)
### How It Works
1. **Upload** your master resume (PDF or DOCX)
2. **Paste** a job description you're targeting
3. **Review** AI-generated improvements and tailored content
4. **Cover Letter & Email** generator for the job application
5. **Customize** the layout and sections to fit your style
6. **Export** as a professional PDF with your preferred template
### Stay Connected
[](https://dsc.gg/resume-matcher)
Join our [Discord](https://dsc.gg/resume-matcher) for discussions, feature requests, and community support.
[](https://www.linkedin.com/company/resume-matcher/)
Follow us on [LinkedIn](https://www.linkedin.com/company/resume-matcher/) for updates.

Star the repo to support development and get notified of new releases.
## Sponsors

We are grateful to our sponsors who help keep this project going. If you find Resume Matcher helpful, please consider [**supporting us**](https://github.com/sponsors/srbhr) to ensure continued development and improvements.
| Sponsor | Description |
|---------|-------------|
| [APIDECK](https://apideck.com?utm_source=resumematcher&utm_medium=github&utm_campaign=sponsors) | One API to connect your app to 200+ SaaS platforms (accounting, HRIS, CRM, file storage). Build integrations once, not 50 times. π [apideck.com](https://apideck.com?utm_source=resumematcher&utm_medium=github&utm_campaign=sponsors) |
## Support the Development by Donating

If you would like to support the development of Resume Matcher, you can do so by donating. Your contributions will help us keep the project alive and continue adding new features.
| Platform | Link |
|-----------|----------------------------------------|
| GitHub | [](https://github.com/sponsors/srbhr) |
| Buy Me a Coffee | [](https://www.buymeacoffee.com/srbhr) |
## Key Features

### Core Features
**Master Resume**: Create a comprehensive master resume to draw from your existing one.

### Resume Builder

Paste in a job description and get AI-powered resume tailored for that specific role.
You can:
- Modify suggested content
- Add/remove sections
- Rearrange sections via drag-and-drop
- Choose from multiple resume templates
### Cover Letter & Email Generator
Generate tailored cover letters and email templates based on the job description and your resume.

### Resume Scoring (In development feature)
We are working on a resume scoring feature that will analyze your resume against the job description and provide a match score along with suggestions for improvement.

### PDF Export
Export your tailored resume and cover letter in PDF.
### Templates
| Template Name | Preview | Description |
|---------------|---------|-------------|
| **Classic Single Column** |  | A traditional and clean layout suitable for most industries. [ππ’ππ° πππ
](assets/pdf-templates/single-column.pdf) |
| **Modern Single Column** |  | A contemporary design with a focus on readability and aesthetics. [ππ’ππ° πππ
](assets/pdf-templates/modern-single-column.pdf)|
| **Classic Two Column** |  | A structured layout that separates sections for clarity. [ππ’ππ° πππ
](assets/pdf-templates/two-column.pdf)|
| **Modern Two Column** |  | A sleek design that utilizes two columns for better organization. [ππ’ππ° πππ
](assets/pdf-templates/modern-two-column.pdf)|
### Internationalization
- **Multi-Language UI**: Interface available in English, Spanish, Chinese, and Japanese
- **Multi-Language Content**: Generate resumes and cover letters in your preferred language
### Roadmap
If you have any suggestions or feature requests, please feel free to open an issue on GitHub or discuss it on our [Discord](https://dsc.gg/resume-matcher) server.
- Visual keyword highlighting
- AI Canvas for crafting impactful, metric-driven resume content
- Multi-job description optimization
## How to Install

For detailed setup instructions, see the **[SETUP.md](SETUP.md)** guide.
### Prerequisites
| Tool | Version | Installation |
|------|---------|--------------|
| Python | 3.13+ | [python.org](https://python.org) |
| Node.js | 22+ | [nodejs.org](https://nodejs.org) |
| uv | Latest | [astral.sh/uv](https://docs.astral.sh/uv/getting-started/installation/) |
### Quick Start
Fastest for MacOS, WSL and Ubuntu users:
```bash
# Clone the repository
git clone https://github.com/srbhr/Resume-Matcher.git
cd Resume-Matcher
# Backend (Terminal 1)
cd apps/backend
cp .env.example .env # Configure your AI provider
uv sync # Install dependencies
uv run uvicorn app.main:app --reload --port 8000
# Frontend (Terminal 2)
cd apps/frontend
npm install
npm run dev
```
Open **<http://localhost:3000>** and configure your AI provider in Settings.
### Supported AI Providers
| Provider | Local/Cloud | Notes |
|----------|-------------|-------|
| **Ollama** | Local | Free, runs on your machine |
| **OpenAI** | Cloud | GPT-4o, GPT-4o-mini |
| **Anthropic** | Cloud | Claude 3.5 Sonnet |
| **Google Gemini** | Cloud | Gemini 1.5 Flash/Pro |
| **OpenRouter** | Cloud | Access to multiple models |
| **DeepSeek** | Cloud | DeepSeek Chat |
### Docker Deployment
```bash
docker pull srbhr/resume-matcher:latest
docker run srbhr/resume-matcher:latest
```
See [docs/agent/60-docker/docker.md](docs/agent/60-docker/docker.md) for detailed Docker instructions.
> **Using Ollama with Docker?** See [docs/agent/60-docker/docker-ollama.md](docs/agent/60-docker/docker-ollama.md) for setup instructions. TL;DR: Use `http://host.docker.internal:11434` as the Ollama URL instead of `localhost`.
### Tech Stack
| Component | Technology |
|-----------|------------|
| Backend | FastAPI, Python 3.13+, LiteLLM |
| Frontend | Next.js 15, React 19, TypeScript |
| Database | TinyDB (JSON file storage) |
| Styling | Tailwind CSS 4, Swiss International Style |
| PDF | Headless Chromium via Playwright |
## Join Us and Contribute

We welcome contributions from everyone! Whether you're a developer, designer, or just someone who wants to help out. All the contributors are listed in the [about page](https://resumematcher.fyi/about) on our website and on the GitHub Readme here.
Check out the roadmap if you would like to work on the features that are planned for the future. If you have any suggestions or feature requests, please feel free to open an issue on GitHub and discuss it on our [Discord](https://dsc.gg/resume-matcher) server.
## Contributors

<a href="https://github.com/srbhr/Resume-Matcher/graphs/contributors">
<img src="https://contrib.rocks/image?repo=srbhr/Resume-Matcher" />
</a>
<br/>
<details>
<summary><kbd>Star History</kbd></summary>
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=srbhr/resume-matcher&theme=dark&type=Date">
<img width="100%" src="https://api.star-history.com/svg?repos=srbhr/resume-matcher&theme=dark&type=Date">
</picture>
</details>
## Resume Matcher is a part of [Vercel Open Source Program](https://vercel.com/oss)

", Assign "at most 3 tags" to the expected json: {"id":"565","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"