关于 jobboard
jobboard 是连接 JobYap 托管求职搜索的只读桥接服务,提供职位、匹配结果、公司和讨论串查询。它通过 MCP 工具和命令行转发请求,无需账号或 API 密钥。
主要功能
- 01按条件筛选职位
- 02按候选人资料匹配职位
- 03读取职位详情与评论
- 04查询公司和职位统计
- 05自然语言搜索并获取文档
适用场景
- 01按地点和远程模式筛选职位
- 02依据简历或技能排列职位
- 03查看职位讨论与申请链接
MCP 相关
提供九种 MCP 工具,将调用转发至 JobYap 托管的 MCP 端点,并返回上游结果。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
9收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sort | enum | 否 | recent(默认)或 popular(讨论最多)。recent | popular |
| query | string | 否 | 仅对职位名称进行子串匹配。 |
| cursor | string | 否 | 来自先前 next_cursor 的不透明游标。 |
| companies | array | 否 | 来自 list_companies 的准确公司名称。 |
| locations | array | 否 | 来自 search_locations 的地点标识符,例如 city-US-CA-san_francisco。 |
| page_size | integer | 否 | 此页要返回的职位结果数量。 |
| work_mode | enum | 否 | 工作模式筛选条件:远程或混合办公职位。remote | hybrid |
| has_comments | boolean | 否 | 仅包含有社区讨论的职位。 |
| include_total | boolean | 否 | 同时计算匹配总数(速度较慢)。 |
| posted_within | enum | 否 | 按发布日期进行严格的新鲜度筛选。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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。