Job Matcher MCP
Job Matcher MCP
🎯 基于AI的求职与简历定制MCP(模型上下文协议)服务器
一分钟内自动化求职并为每个职位定制简历。由职位API和Claude LLM提供支持。
📋 目录
🚀 快速开始
目标: 5分钟内让服务器运行并使用模拟数据(无需API密钥)。
1. 克隆仓库
\bash
cd job-matcher-mcp
\
2. 安装依赖
\bash
pip install -r requirements.txt
\
3. 使用模拟数据运行
\bash
export USE_MOCK_DATA=true
python mcp_server.py
\
预期输出: \
=== Testing search_jobs === { "success": true, "job_listings": [ { "id": "mock_1", "title": "Senior Product Manager", "company": "TechCorp Inc", "location": "San Francisco, CA", ... } ], ... }
=== Testing customize_resume === { "success": true, "customized_resume": "# John Doe...", ... } \
✅ 成功! MCP服务器已正常工作。现在添加真实API密钥。
✨ 功能特性
功能 | 状态 | 描述 |
职位搜索 | ✅ MVP | 通过Adzuna API查询数千个职位列表 |
简历定制 | ✅ MVP | 使用Claude进行AI驱动的简历优化 |
技能匹配 | ✅ MVP | 识别匹配/缺失的技能 |
ATS优化 | ✅ MVP | 自动注入关键词以通过ATS |
模拟数据模式 | ✅ MVP | 无需API密钥即可测试 |
多API支持 | 🔜 v1.2 | 添加Indeed、LinkedIn、AngelList |
求职信生成 | 🔜 v1.2 | 自动生成求职信 |
申请跟踪 | 🔜 v2.0 | 跟踪申请与面试 |
🔧 安装
前提条件
Python 3.10或更高版本
pip(Python包管理器)
Git
步骤1:克隆仓库
\bash
git clone https://github.com/yourusername/job-matcher-mcp.git
cd job-matcher-mcp
\
步骤2:创建虚拟环境(推荐)
\bash
macOS/Linux
python3 -m venv venv source venv/bin/activate
Windows
python -m venv venv .\venv\Scripts\Activate.ps1 \
步骤3:安装依赖
\bash
pip install -r requirements.txt
\
⚙️ 配置
1. 获取API密钥
Adzuna API(免费)
创建一个账户
创建一个应用以获取App ID和App Key
免费层:约100次请求/天
Anthropic Claude API(付费,每月0.50-5美元)
创建一个账户
生成一个API密钥
定价:约每1000个输入token 0.003美元,每1000个输出token 0.015美元
2. 创建.env文件
\bash
cp .env.example .env
\
3. 将API密钥添加到.env
\env
ADZUNA_APP_ID=你的实际应用ID
ADZUNA_APP_KEY=你的实际应用密钥
ANTHROPIC_API_KEY=sk-ant-你的实际API密钥
USE_MOCK_DATA=false
LOG_LEVEL=INFO
\
4. 加载环境变量
\bash
macOS/Linux
export $(grep -v '^#' .env | xargs)
Windows PowerShell
Get-Content .env | ForEach-Object { $name, $value = $_.Split('=') if ($name) { Set-Item -Path env:$name -Value $value } } \
💻 使用说明
运行服务器
\bash
python mcp_server.py
\
使用curl测试(示例)
\bash
搜索职位
curl -X POST http://localhost:8000/tools/search_jobs
-H "Content-Type: application/json"
-d '{
"role": "Product Manager",
"location": "San Francisco, CA",
"experience_years": 5,
"max_results": 10
}'
定制简历
curl -X POST http://localhost:8000/tools/customize_resume
-H "Content-Type: application/json"
-d '{
"base_resume": "...",
"job_description": "...",
"template": "modern"
}'
\
Python示例
\python
from mcp_server import JobMatcherMCPServer
server = JobMatcherMCPServer()
搜索职位
jobs = server.search_jobs( role="Product Manager", location="San Francisco, CA", experience_years=5, max_results=10 ) print(jobs)
定制简历
resume = server.customize_resume( base_resume="你的简历文本...", job_description="职位描述...", template="modern" ) print(resume) \
🛠️ MCP工具参考
工具1:\search_jobs\
根据条件搜索职位列表。
输入模式
\json
{
"role": "Product Manager", // 必填:职位名称
"location": "San Francisco, CA", // 必填:地理位置
"experience_years": 5, // 必填:工作经验年数
"max_results": 10, // 可选:结果限制(默认:10)
"use_mock_data": false // 可选:使用模拟数据(默认:false)
}
\
输出模式
\json
{
"success": true,
"job_listings": [
{
"id": "12345",
"title": "Senior Product Manager",
"company": "TechCorp",
"location": "San Francisco, CA",
"link": "https://...",
"salary_min": 120000,
"salary_max": 160000,
"posted_date": "2026-08-17T10:00:00Z",
"description_snippet": "我们正在寻找..."
}
],
"total_found": 123,
"search_time_ms": 1234,
"error": null
}
\
示例
\python
jobs = server.search_jobs(
role="Product Manager",
location="Remote",
experience_years=3,
max_results=5
)
\
工具2:\customize_resume\
使用AI为特定职位定制简历。
输入模式
\json
{
"base_resume": "# Jane Doe...", // 必填:你的简历文本
"job_description": "我们正在寻找...", // 必填:职位发布内容
"template": "modern", // 可选:modern|classic|minimal
"use_mock_data": false // 可选:使用模拟数据
}
\
输出模式
\json
{
"success": true,
"customized_resume": "# Jane Doe...",
"match_analysis": {
"skills_match_percentage": 82,
"matched_skills": ["Product Management", "Leadership"],
"missing_skills": ["Machine Learning", "Cloud"],
"suggestions": ["如果适用,添加ML经验"],
"keywords_added": ["Data-driven", "Cross-functional"]
},
"generation_time_ms": 2345,
"error": null
}
\
示例
\python
customized = server.customize_resume(
base_resume=open("resume.txt").read(),
job_description=open("job_posting.txt").read(),
template="modern"
)
\
🏗️ 架构
┌─────────────────────────────────────────────────────┐ │ User/AI Agent (Chat, Script, API Client) │ └────────────────┬────────────────────────────────────┘ │ MCP Protocol ┌────────────────▼────────────────────────────────────┐ │ Job Matcher MCP Server │ │ ┌──────────────────────────────────────────────┐ │ │ │ Tool: search_jobs() │ │ │ │ - Query Adzuna API │ │ │ │ - Parse & structure results │ │ │ └──────────────────────────────────────────────┘ │ │ ┌──────────────────────────────────────────────┐ │ │ │ Tool: customize_resume() │ │ │ │ - Send to Claude API │ │ │ │ - Parse & return customized resume │ │ │ └──────────────────────────────────────────────┘ │ │ ┌──────────────────────────────────────────────┐ │ │ │ External APIs │ │ │ │ - Adzuna Job Search API │ │ │ │ - Anthropic Claude API │ │ │ └──────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────┘
🔍 故障排除
问题:\ModuleNotFoundError: No module named 'anthropic'\
解决方案: 安装依赖
\bash
pip install -r requirements.txt
\
问题:\API request failed: Unauthorized\
解决方案: 检查.env中的API密钥
\bash
验证密钥是否已设置
echo $ADZUNA_APP_ID echo $ANTHROPIC_API_KEY \
问题:\No jobs found\
解决方案: 尝试不同的职位/地点,或增加max_results
\python
尝试更广泛的搜索
jobs = server.search_jobs( role="Manager", # 更通用的术语 location="New York, NY", experience_years=5, max_results=50 ) \
问题:\Claude API response too slow\
解决方案: 使用模拟数据进行测试
\python
resume = server.customize_resume(
base_resume="...",
job_description="...",
use_mock_data=True # 跳过API调用
)
\
问题:\Rate limit exceeded\
解决方案: Adzuna免费层有限制。实现缓存:
\python
存储职位搜索结果
cached_jobs = {} key = f"{role}{location}{experience_years}" if key not in cached_jobs: cached_jobs[key] = server.search_jobs(...) \
🚢 部署
部署到Vercel
\bash
1. 在https://vercel.com创建Vercel账户
2. 安装Vercel CLI
npm install -g vercel
3. 部署
vercel
4. 在Vercel仪表板中添加环境变量
Settings → Environment Variables
\
部署到Railway
\bash
1. 在https://railway.app创建Railway账户
2. 连接你的Git仓库
3. 在Railway仪表板中添加环境变量
\
📊 性能指标(目标)
操作 | 目标时间 | 实际时间 |
职位搜索 | <5秒 | 约2-3秒 |
简历定制 | <10秒 | 约3-5秒 |
模拟职位搜索 | <100ms | 约50ms |
模拟简历定制 | <500ms | 约200ms |
📚 API参考
Adzuna API: https://developer.adzuna.com/docs
Claude API: https://docs.anthropic.com/
MCP Protocol: https://modelcontextprotocol.io/
📝 许可证
MIT许可证 - 详见LICENSE文件
👨💼 作者
为正在求职转型的技术产品经理构建。
版本: 1.0.0
最后更新: 2026-08-17
状态: MVP就绪
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for AI job search — find jobs, track applications, get alerts. Claude, ChatGPT, Cursor.
GetJobzi MCP server for job search, application tracking, and career forecasting.
Job search and interview prep MCP. 11 tools, OAuth 2.1, cross-LLM. four-leaf.ai.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SRP-alohamora/JobMatcherMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server