mcpField
J
jobboard

jobboard

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

关于 jobboard

jobboard 是连接 JobYap 托管求职搜索的只读桥接服务,提供职位、匹配结果、公司和讨论串查询。它通过 MCP 工具和命令行转发请求,无需账号或 API 密钥。

主要功能

  1. 01按条件筛选职位
  2. 02按候选人资料匹配职位
  3. 03读取职位详情与评论
  4. 04查询公司和职位统计
  5. 05自然语言搜索并获取文档

适用场景

  1. 01按地点和远程模式筛选职位
  2. 02依据简历或技能排列职位
  3. 03查看职位讨论与申请链接

MCP 相关

提供九种 MCP 工具,将调用转发至 JobYap 托管的 MCP 端点,并返回上游结果。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-jobboard": {
"command": "npx",
"args": [
"-y",
"@reneturcios/jobboard"
]
}
}
}
启动命令npx -y @reneturcios/jobboard

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

安装包
npm@reneturcios/jobboard0.1.0
ocighcr.io/cloudcorprecords/jobboard:0.1.0

工具

9

收录的工具列表 · 更新于 1 周前

参数类型必填说明
sortenum否recent(默认)或 popular(讨论最多)。recent | popular
querystring否仅对职位名称进行子串匹配。
cursorstring否来自先前 next_cursor 的不透明游标。
companiesarray否来自 list_companies 的准确公司名称。
locationsarray否来自 search_locations 的地点标识符,例如 city-US-CA-san_francisco。
page_sizeinteger否此页要返回的职位结果数量。
work_modeenum否工作模式筛选条件:远程或混合办公职位。remote | hybrid
has_commentsboolean否仅包含有社区讨论的职位。
include_totalboolean否同时计算匹配总数(速度较慢)。
posted_withinenum否按发布日期进行严格的新鲜度筛选。24h | 7d | 30d

详细介绍

jobboard

jobboard 是一个小型的无密钥桥接工具,可连接 JobYap 托管的 求职搜索服务。JobYap 汇总招聘信息及其相关社区讨论;此软件包将 该搜索封装为九个 MCP 工具(以及对应的 CLI 子命令),并将每次调用转发到托管的 JobYap MCP 端点。只读,无需账户,也无需 API 密钥。

其中两个工具承担了主要工作。search_jobs 使用结构化筛选条件浏览招聘信息(职位名称文本、 公司、地点、远程/混合办公、发布时间、 讨论活跃度),并在一秒内返回结果。 match_jobs 会读取每条招聘信息的完整描述,为一位特定候选人 (依据简历,或对其经验、技能和签证需求的描述) 排列职位;因此可能需要 10 到 15 秒。其他工具包括:get_job 完整读取一条招聘信息,get_job_comments 读取 其讨论串,search_locations 将地点名称解析为筛选器 接受的地点标识符,list_companies 列出所有受跟踪的公司 及其有效职位数量,get_job_stats 报告汇总数量,以及 用于深度研究的组合 search/fetch(自然语言搜索,然后 根据结果 ID 获取完整文档)。

工具

  • search_jobs — 使用结构化筛选条件浏览、列出、计数或分页查看 招聘信息。可选参数:query (仅对职位名称进行子字符串匹配)、 companies(来自 list_companies 的精确名称)、 locations(来自 search_locations 的标识符)、 work_mode(remote 或 hybrid)、posted_within (24h、7d、30d)、has_comments、sort (默认为 recent,也可为 popular)、page_size、 cursor、include_total。
  • match_jobs — 为一位候选人排列最匹配的有效招聘信息。titles(职位名称词;除非提供 companies,否则必填)、exclude_titles、companies、 exclude_companies、locations、include_anywhere (默认为 true)、work_mode、posted_within (默认为 7d)、candidate_years、 needs_sponsorship、skills(用于排序,绝不用于筛选)、 limit(默认为 15)。
  • get_job — 获取一条招聘信息的完整内容:Markdown 描述、薪资范围、含工作模式的地点、申请 URL、发布日期和标准 讨论 URL。必填:id(数字职位 ID、jobyap.com 职位 URL,或 页面 slug)。
  • get_job_comments — 获取某条招聘信息的讨论串,按时间顺序排列并保留线程结构, 附带点赞数。必填:id,同上。评论由用户生成。
  • search_locations — 将自由文本地点名称解析为地点标识符(country-XX、 state-XX-YY、city-XX-YY-name)。必填: query(至少 2 个字符);可选:limit。
  • list_companies — 列出 JobYap 跟踪的所有公司, 及其有效职位数量和公司页面 URL。
  • get_job_stats — 跟踪的公司数量、有效职位 数量、最新招聘信息的发布日期。
  • search — 使用自然语言搜索招聘信息; 返回结果 ID、职位名称和可供 fetch 引用的 URL。必填:query。
  • fetch — 获取搜索结果 ID 对应的完整 JobYap 文档:完整招聘信息的 Markdown 内容,以及热门社区评论。必填:id。

MCP 层会在本地验证每次调用,然后再进行转发:未知工具名称、 参数不是 JSON 对象,或缺少必填参数,都会作为无效参数被拒绝。格式正确的参数 会按原样转发,上游结果也会原样返回——包括内容、structuredContent 和 任何 isError 标志。

配置

  • JOBYAP_MCP_URL(可选)— 覆盖托管端点。默认为 https://mcp.jobyap.com/mcp。

失败会作为错误结果报告,文本以 jobboard error: 开头(由此重建版本自行生成):传输失败、非 2xx HTTP 响应、 JSON-RPC 错误,以及无法解析的上游响应,都会采用这种格式;前缀后附上上游的 错误消息或状态码。

转发机制

桥接器内部采用带标签的重建方式 (Streamable HTTP 会话模式):首次调用时, 客户端会 POST 一个 initialize 请求 (protocolVersion 2025-03-26,空 capabilities, clientInfo 名称为 jobboard),并在收到 mcp-session-id 响应头时将其捕获,然后 POST notifications/initialized,接着 POST tools/call 请求,并在捕获到会话头时附加该头。 会话会在进程的整个生命周期内复用。每个 POST 都会携带 Content-Type: application/json 和 Accept: application/json, text/event-stream,且 响应可能是普通 JSON 或 SSE。tools/list 会使用从托管端点捕获的工具定义在本地提供,因此列出工具不会访问网络。

CLI

每个工具都是一个子命令,接受一个 JSON 参数 字符串:

npx @reneturcios/jobboard search_jobs '{"query":"engineer","work_mode":"remote"}'
npx @reneturcios/jobboard match_jobs '{"titles":["software engineer"],"skills":["typescript","node"]}'
npx @reneturcios/jobboard get_job '{"id":42}'
npx @reneturcios/jobboard --version

输出是转发结果内容的 JSON。退出 代码:成功时为 0,isError 结果时为 1,用法 错误时为 2。

MCP 服务

npx -y @reneturcios/jobboard mcp

MCP 客户端配置:

{
  "mcpServers": {
    "jobboard": {
      "command": "npx",
      "args": ["-y", "@reneturcios/jobboard", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/jobboard
docker run --rm ghcr.io/cloudcorprecords/jobboard get_job '{"id":42}'

开发

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev     # run the CLI from source

许可证

MIT — 版权所有 (c) 2026 Rene Turcios

评论

支持 Markdown

第一次接触 MCP?

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

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