// the find
srbhr/Resume-Matcher
Improve your resumes with Resume Matcher. Get insights, keyword suggestions and tune your resumes to job descriptions.
Resume Matcher is a self-hosted tool that takes your master resume and a job description, then uses an LLM to produce a tailored resume, cover letter, and keyword match score. It runs locally via Ollama or against cloud providers (OpenAI, Anthropic, etc.), and targets job seekers who want ATS-aware resume tailoring without sending their data to a SaaS product.
The multi-provider LLM backend via LiteLLM is the right call — users pick their own model and the app doesn't care. The e2e monitoring setup (e2e_monitor/ with baseline fixtures and a judge layer) is unusually mature for a project at this star count; most projects this size have zero regression infrastructure. Docker images for amd64 and arm64 with a single public port and volume for persistence make self-hosting genuinely straightforward. The test suite is broad: unit, integration, service, and eval layers with golden cases for the tailoring pipeline.
TinyDB as the database is a hard ceiling — it's a JSON file, no concurrent writes, no real query capability, and there's already a migration script to SQLite in the repo which signals the team knows this is a problem they're actively running away from. The 'master resume' model means you maintain one source-of-truth resume and let the tool produce variants, but there's no diff tracking between the tailored output and your master, so after a few applications you lose track of what you actually sent to whom. PDF export goes through headless Chromium via Playwright, which is a heavyweight dependency that adds 150MB+ to the install and is a common source of rendering flakiness in CI. The AI suggestions are only as good as the system prompts in apps/backend/app/prompts/, and there's no visibility into how keyword matching handles synonyms or skill variants — the vector search is absent here, replaced by simpler keyword matching despite the repo topics advertising it.