mcpField
S
Skillmatch Mcp

Skillmatch Mcp

本地服务
github.com/jarmstrong158商业与营销213 周前更新

关于 Skillmatch Mcp

SkillMatch MCP 面向以项目和简历展示能力的求职者,帮助 Claude 根据本地资料与 GitHub 作品集分析职位匹配度,并管理申请记录。

主要功能

  1. 01分析职位描述匹配度
  2. 02查看 GitHub 作品集
  3. 03构建目标职位搜索词
  4. 04本地跟踪求职申请
  5. 05管理多个简历版本
  6. 06发送排名职位报告邮件

适用场景

  1. 01依据项目经历和简历评估职位
  2. 02按求职资料查找合适职位
  3. 03跟踪申请状态与后续跟进日期
  4. 04通过邮件接收排名后的职位报告

MCP 相关

通过 stdio 向 Claude Code 和 Claude Desktop 提供 SkillMatch 工具,包括匹配度分析、搜索词构建、简历与资料管理以及申请跟踪。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"skillmatch": {
"command": "uvx",
"args": [
"skillmatch-mcp"
]
}
}
}
启动命令uvx skillmatch-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiskillmatch-mcp2.0.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。