关于 Skillmatch Mcp
SkillMatch MCP 面向以项目和简历展示能力的求职者,帮助 Claude 根据本地资料与 GitHub 作品集分析职位匹配度,并管理申请记录。
主要功能
- 01分析职位描述匹配度
- 02查看 GitHub 作品集
- 03构建目标职位搜索词
- 04本地跟踪求职申请
- 05管理多个简历版本
- 06发送排名职位报告邮件
适用场景
- 01依据项目经历和简历评估职位
- 02按求职资料查找合适职位
- 03跟踪申请状态与后续跟进日期
- 04通过邮件接收排名后的职位报告
MCP 相关
通过 stdio 向 Claude Code 和 Claude Desktop 提供 SkillMatch 工具,包括匹配度分析、搜索词构建、简历与资料管理以及申请跟踪。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
SkillMatch MCP
由 Claude 驱动的职位匹配分析器,适用于通过工作而非学历证明自身技能的人。
功能
SkillMatch 是一个 MCP 服务,可让 Claude 访问你的 GitHub 作品集、简历和求职偏好。它可以:
- 根据你的实际项目和简历,分析你与特定职位描述的匹配程度
- 根据你的目标和限制,构建优化的求职搜索查询
- 在本地 SQLite 数据库中跟踪你提交的每份申请
- 获取你的公开 GitHub 仓库,以便在匹配分析中突出相关作品
所有数据都保留在你的计算机本地。除调用公开 GitHub API 获取你自己的仓库外,不会向任何地方发送数据。
设置
1. 安装依赖
cd skillmatch-mcp
pip install -r requirements.txt
通过标准输入/输出使用 MCP 协议修订版 2026-07-28,并使用 SDK mcp>=2.0,<3。该服务无状态:
无需 initialize 握手,也没有会话 ID,每个请求都会携带自己的协议版本
和客户端身份。tools/list 和 server/discover 会返回 ttlMs/cacheScope 新鲜度
提示,并且工具顺序在各次调用间保持稳定,因此客户端缓存和提示词缓存可以持续命中。
从 1.x 升级: 2.0.0 移除了
initialize握手,因此需要支持2026-07-28的客户端。工具名称、架构和结果均未改变——只有传输方式发生变化。 如果需要为较旧的客户端提供服务,请继续使用 1.x。
2. 添加到 Claude
Claude Code(CLI):
claude mcp add --scope user skillmatch -- python /path/to/skillmatch-mcp/server.py
然后重启 Claude Code。
Claude Desktop:
打开 Claude Desktop 配置文件,并将 SkillMatch 添加到 mcpServers 部分:
{
"mcpServers": {
"skillmatch": {
"command": "python",
"args": ["/path/to/skillmatch-mcp/server.py"]
}
}
}
将 /path/to/skillmatch-mcp/server.py 替换为计算机上 server.py 的实际路径,然后重启 Claude Desktop。
3. 开始使用
重启后,SkillMatch 工具就会在你的对话中可用。可在 Claude Code 和 Claude Desktop 中使用。
引导设置
首次使用 SkillMatch 时,Claude 会引导你完成设置对话。大致如下:
You: Help me find a new job.
Claude: I don't have your profile set up yet. Let me ask you a few questions first.
What is your name?
You: Jordan
Claude: What is your current role?
You: Senior frontend developer
Claude: What roles are you targeting?
You: Staff frontend engineer, senior full-stack engineer
Claude: What is your minimum acceptable salary?
You: 180000
Claude: Are you only looking for remote positions?
You: Yes
Claude: Where are you located?
You: Portland, OR
Claude: Any dealbreakers?
You: No on-call rotations, no defense contractors
Claude: What is your GitHub URL?
You: https://github.com/jordan-dev
Claude: Where is your resume file?
You: C:/Users/jordan/Documents/resume.md
Claude: Got it. Your profile is saved. Let me search for jobs matching your targets.
完成引导设置后,你的个人资料会保存在本地,并在之后的每次对话中重复使用。
扩展个人资料(可选)
你可以随时让 Claude 更新个人资料,以补充更多信息。这些字段有助于 Claude 判断更细致的匹配情况:
| 字段 | 类型 | 示例 |
|---|---|---|
work_style | 对象 | {async_preferred: true, ic_vs_leadership: "ic", client_facing_tolerance: "none", team_size_preference: "small"} |
optimizing_for | 数组 | ["comp", "autonomy", "interesting_problems"] |
unlisted_skills | 数组 | ["MCP protocol implementation", "Windows installer packaging"] |
developing_skills | 数组 | ["TypeScript", "RAG pipelines"] |
dealbreaker_detail | 数组 | [{dealbreaker: "on-call", hardness: "absolute"}, {dealbreaker: "relocation", hardness: "strong_preference"}] |
rejection_patterns | 数组 | ["roles that sounded like automation but were actually IT support"] |
这些字段可以在初始设置时填写,也可以稍后通过 update_profile 工具添加。
工作原理
search_jobs 根据你的个人资料和提供的关键词构建搜索查询。随后,Claude 会使用该查询和自身的网页搜索功能查找真实的职位信息。该工具本身不会搜索网页。
analyze_fit 分两步进行。首先,它通过 Claude API 将职位描述解析为结构化信号(硬性要求、加分项、风险信号、薪酬信号、职位类型)。然后,它会获取你的作品集,并根据检测到的职位类型自动选择最合适的简历版本。Claude 会先看到结构化信号,再看到原始营销文案。
parse_jd 是独立的 JD 解析器。你可以单独使用它预处理职位描述,而无需运行完整的匹配度分析。
log_application、get_applications 和 update_application 构成了求职 CRM。跟踪状态(已申请、筛选中、面试中、已获 Offer、已拒绝、无回应),设置跟进日期并记录结果。
get_follow_ups 会显示需要跟进的申请——跟进日期已过,但你仍在等待回复。
get_application_patterns 会分析你的全部申请记录(至少需要 10 条),以找出哪些职位类型能获得回复、哪些技能更受认可,并推荐搜索调整方案。
email_ranked_jobs.py 是一个独立的 Conductor 工作脚本,用于通过电子邮件发送最新的职位排名报告。配置方法请参阅下文的电子邮件工作脚本设置。
save_scouted_job 会保存寻访过程中找到的职位信息。它会验证 URL,拒绝搜索结果页面,并与现有的已寻访职位和申请记录去重。
get_scouted_jobs 会返回所有已寻访的职位信息,也可以筛选出尚未排名的职位。生成排名报告后,mark_jobs_ranked 会将所有尚未排名的职位标记为已排名。
add_resume 和 list_resumes 用于管理多个简历版本。每个版本都针对特定职位类型(例如,“AI Engineering”针对 ai_engineering 和 ml_engineering)。进行匹配度分析时,系统会根据职位描述检测到的职位类型自动选择最合适的版本。
update_profile 会将新增或变更的字段合并到你的现有个人资料中,无需重新运行设置流程。
如果你只想让 Claude 查看代码仓库或简历,可以单独调用 get_portfolio 和 get_resume。
快速开始(无需文件路径)
最简单的设置方式是直接粘贴简历——无需本地文件:
You: Help me find a job.
Claude: What is your name?
You: Alex
Claude: What roles are you targeting?
You: AI engineer, ML engineer
Claude: Paste your resume or provide a file path.
You: [paste resume text here]
Claude: Profile saved. Let me search for jobs.
Email Worker 设置
email_ranked_jobs.py 通过 Gmail 发送排名后的职位报告。它设计为按计划作为 Conductor worker 运行。
凭据存放在被 git 忽略的配置文件中,绝不能放在源代码里。 复制模板并填写:
cp data/email_config.example.json data/email_config.json
然后编辑 data/email_config.json:
{
"gmail_user": "[email protected]",
"gmail_app_password": "your-16-char-app-password",
"email_to": "[email protected]",
"email_cap": 15
}
| 键 | 必填 | 默认值 |
|---|---|---|
gmail_user | 是 | — |
gmail_app_password | 是 | — |
email_to | 否 | 回退为 gmail_user |
email_cap | 否 | 15 |
整个 data/ 文件夹都会被 git 忽略(只有 .gitkeep 和 email_config.example.json 会被跟踪),因此 email_config.json 绝不会意外提交。
为什么使用配置文件,而不是环境变量? 这取决于 worker 进程的启动方式——尤其是通过 Windows 上的 Conductor 启动时——环境变量可能不会被子进程继承,导致发送失败却没有提示。配置文件会通过相对于脚本的路径读取,因此无论进程如何启动都能正常工作。若配置文件中缺少某个键,仍会将环境变量(GMAIL_USER、GMAIL_APP_PASSWORD、EMAIL_TO、EMAIL_CAP)作为回退选项;这对于 CI 或容器化运行很方便。如果两种来源都未提供凭据,脚本会以代码 2 退出并打印设置说明,而不是静默失败。
要生成 Gmail 应用专用密码:依次进入 Google 帐号 → 安全性 → 两步验证 → 应用专用密码。为“邮件”创建一个密码。这不是你的常规帐号密码。如果不小心将其粘贴到源文件中,请在同一页面撤销该密码。
脚本会读取 data/ranked_jobs.md,将邮件内容限制为排名前 15 的职位列表,发送邮件,然后删除 ranked_jobs.md,以免下次运行时重复使用过期排名。
文件结构
skillmatch-mcp/
server.py # MCP server (stdio JSON-RPC)
requirements.txt # python-docx dependency
CLAUDE.md # Instructions for Claude
README.md # This file
email_ranked_jobs.py # Conductor worker: emails ranked job reports
cowork_monitor.py # Conductor worker: monitors Cowork VM, auto-recovers
cowork_tab.png # Reference image for Cowork tab UI automation
data/ # Entire folder gitignored except the two tracked files below
.gitkeep # Keeps the folder in git (tracked)
email_config.example.json # Credential template (tracked, no real secrets)
email_config.json # Your real Gmail credentials (gitignored)
profile.json # Created on first setup (gitignored)
applications.db # Created on first log (gitignored)
scouted_jobs.json # Scouted listings (gitignored)
ranked_jobs.md # Latest ranked report (gitignored)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。