Job Hunt Copilot
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Job Hunt CopilotMatch my resume to the newest job and show missing skills."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Job Hunt Copilot (MCP server)
An MCP (Model Context Protocol) server that turns any MCP-capable AI app into a personal job-search assistant. You paste your resume and job postings; the server stores them, matches skills, tracks applications, and shows which skills the market asks for most.
Designed to work with any MCP client. Tested with MCP Inspector and the included client using OpenAI. The Anthropic and Gemini adapters and the Claude Desktop config are included but not yet tested.
Architecture
You -> AI model (Claude / OpenAI / Gemini)
| tool calls
v
MCP client (Claude Desktop, Cursor, or client/chat_client.py)
| MCP over stdio
v
MCP server (jobhunt/server.py) -> core.py -> SQLite (data/jobhunt.db)jobhunt/core.pyholds all the logic and has no MCP code, so it is unit tested on its own.jobhunt/server.pyis a thin MCP layer exposing tools, resources and prompts.client/chat_client.pyis a client showing how tool calling works with three model providers.
Related MCP server: CareerPilot
What the server exposes
Type | Name | Purpose |
Tool |
| Store the resume and detect skills |
Tool |
| Load the resume from a PDF, Word, or text file in the |
Tool |
| Delete a saved job (needs |
Tool |
| Save a pasted job posting; returns required skills and work-pass hints |
Tool |
| List saved jobs with status |
Tool |
| Score, matched skills, missing skills |
Tool |
| Resume + job + honesty rules for tailoring and cover letters |
Tool |
| Set status and follow-up reminder |
Tool |
| Applications needing follow-up |
Tool |
| Most requested skills across saved jobs, and what to learn next |
Resource |
| Read-only data |
Prompt |
| Reusable request templates |
Setup
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # add your API key(s); never commit .env
python -m unittest discover -s tests -v # core logic testsTry it three ways
1. MCP Inspector (no AI needed; best for debugging)
npx @modelcontextprotocol/inspector python -m jobhunt.serverCall save_resume with the text from data/sample_resume.txt, then add_job_from_text with data/sample_job.txt,
then match_resume_to_job.
2. The included client (uses your API key)
python client/chat_client.py --provider anthropic # or openai / geminiThen chat, for example: "Save this resume: ..." then "Save this job: ..." then "How well do I match job 1?"
3. Claude Desktop - add this to its MCP config file (use absolute paths, and the Python from your venv):
{
"mcpServers": {
"job-hunt-copilot": {
"command": "/absolute/path/to/.venv/bin/python",
"args": ["-m", "jobhunt.server"],
"cwd": "/absolute/path/to/job-hunt-copilot"
}
}
}Restart the app. If your version ignores cwd, set "env": {"PYTHONPATH": "/absolute/path/to/job-hunt-copilot"} instead.
Design decisions
Manual paste as the job source. Big job sites restrict scraping and lack open search APIs, so the server takes text you paste. A future
JobSourceadapter can add official feeds.Honest tailoring.
get_tailoring_contextreturns rules telling the model to reword real experience only.Work-pass hints, not decisions. Postings mentioning citizens, PR or work passes are flagged; you decide.
Rough matching. The score uses a keyword skill list (
jobhunt/skills.py). It is transparent and testable, but it misses skills outside the list. Semantic matching with embeddings is a planned upgrade.Privacy. Data stays in a local SQLite file, git-ignored. Use sample data in public demos.
MCP SDK version. The code targets the MCP Python SDK v1, so
requirements.txtpinsmcp<2. Version 2 renamedFastMCP, so a migration is needed before upgrading.
Known limitations
Keyword matching only. The score counts skills from a fixed list, so a posting that uses concepts instead of technology names can show a misleadingly high score (a 100% result on a role with few recognized skills). Semantic matching is planned.
AI output needs review. Even with rules in
get_tailoring_context, models sometimes stretch claims in suggested resume bullets and then report that they were unsure of nothing. Always check suggestions against your real resume.No duplicate detection. Saving the same posting twice creates two jobs; use
delete_jobto clean up.Applied date is today's date.
track_applicationcannot record an earlier date yet.Privacy. When an AI client calls tools, your resume text is sent to that AI provider.
Roadmap
Semantic matching with embeddings
Email-alert import (parse JobStreet / LinkedIn / Indeed alert emails)
JobSourceadapters for open job feedsStreamable HTTP transport + auth, deployed remotely
Evaluation: compare the match score with a human rating on 20 real postings
This server cannot be deployed
Maintenance
Related MCP Connectors
AI job search MCP — fact-checked jobs, application tracker, alerts. ChatGPT, Claude, Cursor.
Resume builder with native MCP — create and edit resumes from your AI assistant.
Persistent personal memory for AI assistants — save, search, and recall across every MCP client.
Generate tailored, ATS-optimized resume PDFs and cover letters from a job description, over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAI job search, resume builder, and career advice via MCP2MIT
- AlicenseAqualityAmaintenanceAn AI job-hunt copilot that enables searching live job boards, shortlisting openings, tracking application pipelines, and generating tailored resumes and cover letters from any MCP client.14Apache 2.0
- FlicenseAqualityCmaintenanceEnables searching job listings, tracking applications, managing resumes, and tailoring resumes to job posts, all locally via MCP.20-

HireFrog MCPofficial
AlicenseNot gradedqualityBmaintenanceEnables MCP-compatible AI assistants to securely access a user's job-search account, letting them search and save jobs, analyze job fit, and retrieve job queue and profile summaries with links back to the web app.MIT