SkillMatch MCP
克劳德为那些通过工作而不是证书证明自己技能的人提供了工作适合度分析器。
它的作用
SkillMatch是一个MCP服务器,允许Claude访问您的GitHub作品集、简历和求职偏好。这让克劳德:
- 根据你的实际项目和简历,分析你与特定职位描述的匹配程度
- 根据您的目标和限制构建优化的求职查询
- 在本地SQLite数据库中跟踪您提交的每个应用程序
- 在拟合分析期间,拉取您的公共GitHub仓库以突出显示相关工作
所有数据都保留在您的计算机上。除了公共GitHub API调用以获取您自己的转发外,不会向任何地方发送任何内容。
设置
1.安装依赖项
cd skillmatch-mcp
pip install -r requirements.txt2.添加到克劳德
克劳德代码(CLI):
claude mcp add --scope user skillmatch -- python /path/to/skillmatch-mcp/server.py然后重新启动Claude Code。
克劳德桌面:
打开您的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将工作描述解析为结构化信号(硬需求、细节、红旗、补偿信号、角色类型)。然后,它会获取您的投资组合,并自动为检测到的角色类型选择最佳简历变体。克劳德在原始营销文案之前看到了结构化的信号。
parse_jd 是独立的JD解析器。独立使用它来预处理职位描述,而无需运行完全匹配分析。
日志应用程序, 获取应用程序,以及 update_应用程序 形成求职CRM。跟踪状态(申请、筛选、面试、录用、拒绝、代笔),设置跟进日期,并记录结果。
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工程”目标 ai_engineering 和 ml_engineering).在拟合分析过程中,根据JD检测到的角色类型自动选择最佳变体。
update_profile 将新的或更改的字段合并到现有的配置文件中,而无需重新运行安装程序。
get_portfolio 和 get_sume 如果你想让克劳德只查看你的回复或简历,可以单独致电。
快速入门(无文件路径)
为了最简单的设置,直接粘贴简历——不需要本地文件:
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_ranked_jobs.py 通过Gmail发送排名工作报告。它被设计为作为一个 导体 工人按计划工作。
Gmail凭据必须直接硬编码在文件中。 环境变量在这里不可靠——根据工作进程的启动方式,环境变量可能不会被继承,从而导致无声的失败。打开 email_ranked_jobs.py 并将这三条线设置在顶部:
GMAIL_USER = "you@gmail.com"
GMAIL_APP_PASSWORD = "xxxx xxxx xxxx xxxx" # Gmail App Password, not your account password
EMAIL_TO = "you@gmail.com"要生成Gmail应用程序密码:谷歌帐户→ 安全→ 2-步骤验证→ 应用程序密码。为“邮件”创建一个。
脚本如下 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/
.gitkeep # Keeps the folder in git
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)