Skip to main content
Glama
Servation

job-search-mcp

by Servation

job-search-mcp

一个面向 Claude Desktop 的个人求职助手。你让 Claude 找工作;它会搜索真实的招聘网站,为每个职位按 0–100 打分,评估它有多适合你,并显示在一个可排序的看板上,你可以一键筛选。一切都在本地运行——无需 API 密钥,无需注册账号。

这是一个 MCP 应用:一个 Claude Desktop 与之通信的小型服务器,外加一个直接渲染在聊天中的内联看板。

适用范围: 它针对美国软件工程岗位进行了调优(内置数据源和职位筛选器面向美国科技雇主)。其他领域或地区会返回稀疏的结果。

适用环境:Claude Desktop 构建和测试。它也应该能在其他同时运行本地(stdio)服务器渲染 MCP 应用界面的 MCP 客户端中工作,例如 VS Code(Copilot)、Cursor 或 Goose(未测试)。仅远程的客户端(ChatGPT、网页/移动端 Claude)无法启动本地服务器,因此无法使用。

Claude Desktop 内的排序职位看板——每个职位按 0–100 打分评估匹配度,带有已申请/跳过按钮


它能做什么

  • 搜索真实的招聘网站 —— LinkedIn 加上 8 个 ATS/职位数据源(Greenhouse、Lever、Ashby、Workday、SmartRecruiters、Hacker News、RemoteOK、Remotive),使用你的目标职位和地点。

  • 给每个职位打分 —— Claude 阅读完整职位描述,给出 0–100 的匹配分数并附一行理由,综合考量你的技能、工作年限、职级匹配度和职位本身。

  • 让你快速筛选 —— 在每张卡片上点击"申请/跳过",或批量操作("把 60 分以下的全部忽略")。

  • 有记忆 —— 维护一个持续更新的候选清单、一个你已申请职位的追踪器,并且不会向你重复展示同一个职位(6 个月内)。


Related MCP server: Jobless MCP

设置

1. 告诉 Claude Desktop 这个应用。 打开你的配置文件:

  • Windows:%APPDATA%\Claude\claude_desktop_config.json

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json

"mcpServers" 下添加以下内容——npx 会为你获取已发布的包,无需克隆或构建:

{
  "mcpServers": {
    "job-search": {
      "command": "npx",
      "args": ["-y", "@servation/job-search-mcp"]
    }
  }
}

2. 完全退出并重新打开 Claude Desktop(在 Windows 上,从系统托盘退出——仅关闭窗口是不够的)。就这样。

npm install
npm run build

然后将配置指向此文件夹的 dist/main.js

{
  "mcpServers": {
    "job-search": {
      "command": "node",
      "args": ["D:\\job-search-mcp\\dist\\main.js"]
    }
  }
}

如何使用

直接和 Claude 对话即可。例如:

  • "保存我的档案" —— 先粘贴你的简历;Claude 会提取你的技能、职位、工作年限和地点,以便搜索和评分为你量身定制。

  • "找加州的高级后端工程师职位,本周发布的。"

  • "找申请人数少的职位" —— 添加 LinkedIn 的早期申请者筛选。

  • "把 60 分以下的全部忽略。"

  • "显示我已申请的职位。"

  • "重新给看板打分。"

典型的首次使用流程:保存你的档案 → "找工作" → Claude 打分并显示排序看板 → 你点击申请/跳过。


看板

看板是一个持续更新的候选清单。一个职位会一直留在上面,直到你申请(移入你的追踪器)或跳过(永久隐藏)。新的搜索会自动跳过已在看板上、追踪器中、已忽略的职位,以及过去 6 个月内展示过的职位——所以你永远不会连续两次看到同一个职位。

点击卡片上的已申请跳过,或让 Claude 来做。在组件中完成筛选后,状态会持久保存。


工具(供参考)

你很少需要直接调用它们——Claude 会选择合适的工具——但以下是底层实现:

工具

功能

find_jobs

在招聘网站上搜索你的职位/地点(可选的筛选条件:职级、类型、发布时间、远程、薪资、申请人数、数据源)。

evaluate_jobs

Claude 为找到的职位按 0–100 打分评估匹配度(搜索后自动运行)。

show_board

显示排序看板(或你的 saved 追踪器)。

set_status

申请 / 跳过 / 保存单个职位(也是卡片按钮的功能)。

bulk_status

按分数或数据源批量筛选,例如把 60 分以下的全部忽略

whats_promising

以文本形式列出当前看板(所有已打分职位 + 任何尚未打分的职位)。

review_saved

你的追踪器——你已保存或已申请的职位。

rescore_board

从头重新为看板上的每个职位打分。

clear_jobs

整理:清除未打分的遗留职位或整个看板(绝不会触碰已申请/已忽略的职位)。

save_profile

保存你的简历档案(驱动搜索 + 打分)。


你的数据存放在哪里

你机器上的一个 JSON 文件——无云端,除了你搜索的招聘网站外,不会向任何地方发送任何内容:

  • 已安装:~/.job-search-mcp/jobs.json

  • 从源码运行:./data/jobs.json

  • 可通过 JOB_SEARCH_MCP_DATA 环境变量覆盖。


可选:LinkedIn Premium 模式

默认情况下,LinkedIn 使用其公开访客端点:无需登录,也没有账号登录风险,而且你仍然能获得完整的职位描述。请注意,即使以访客模式运行,自动化访问仍然来自你自己的 IP,并且违反 LinkedIn 的用户协议,因此请自行斟酌使用。如果你想要更丰富/Premium 的数据,可以通过在服务器配置中添加一个 env 块来使用你已登录的账号:

"job-search": {
  "command": "npx",
  "args": ["-y", "@servation/job-search-mcp"],
  "env": {
    "LINKEDIN_LI_AT": "<your li_at cookie>",
    "LINKEDIN_JSESSIONID": "ajax:1234567890123456789"
  }
}

从已登录的 linkedin.com 标签页 → DevTools → Application → Cookies 中获取这两个 cookie。

⚠️ 注意: 这违反 LinkedIn 的服务条款,可能导致你的账号被标记或限制。Cookie 大约每月过期,而且 LinkedIn 的内部端点会随时更改,恕不另行通知。如果任何操作失败,它会自动回退到访客模式。不添加 env 块以保持完全安全(仅访客模式)。


评分机制

Claude(宿主模型)直接进行评分——它阅读每份职位描述并判断匹配度,这具有良好的校准性。一个确定性公式(scoring.ts 中的 computeMatchScore)被保留作为回退方案,供那些运行较弱本地模型、倾向于给所有内容过高排名的用户使用;默认情况下不启用。

开发

npm run typecheck    # type-check UI + server + harness
npm run build        # build the UI bundle (vite single-file) + compile the server (tsc)
npm run serve:stdio  # run the server from source (tsx) for local testing
npm run harness      # work on the review UI without Claude Desktop (see harness/)
npm run canary       # check every job source is still returning postings

服务器仅支持 stdio(main.tsserver.ts);界面是一个 React 应用,打包为单个内联 HTML 文件(src/mcp-app.tsxdist/mcp-app.html),由服务器作为 ui:// 资源提供。

开发界面时,使用 harness/。它是 Claude Desktop 的本地替代品,针对合成职位存储和真实的 ui/* 桥接渲染组件。在浏览器标签页中打开 dist/mcp-app.html 只会看到"正在连接……",而且最可能出问题的部分(链接打开、主题、挂载后的刷新)都由宿主中介,因此只有在另一端有宿主时才会显现。

如果某个职位数据源失效,npm run canary 会告诉你哪一个。公司 slug 经常失效,因此修复通常应放在 updateCompanyDirectoriesFromRegistry() 在运行时重新读取的远程 slug 注册表中,而不是发布新版本。

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables job search and scraping across multiple job boards (LinkedIn, Indeed, Glassdoor, etc.) with advanced filtering, directly from Claude Desktop or other MCP clients.
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Personalized job search inside Claude. Get ranked job matches based on your actual skills, not keywords.
    2
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Transforms Claude into an AI job-hunting assistant that searches remote job boards, scores roles against your CV, generates tailored cover letters, and logs everything to a Notion tracker.
    11
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching and evaluating job postings from LinkedIn and freehire.me directly through Claude Desktop. Provides tools to search jobs, fetch full posting details, and assess candidate fit using eligibility scans and a scoring rubric.
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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/Servation/job-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server