mcpField
J
jobhunt

jobhunt

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

关于 jobhunt

jobhunt 是连接 Jobven 的本地桥接程序,用于搜索从公司招聘网站收集的职位和雇主资料。它适用于求职者及职位数据工作流,支持细致筛选、职位详情、公司查询和示例 Webhook,并将调用转发而非自行搜索。

主要功能

  1. 01使用多种条件搜索职位
  2. 02获取完整职位描述
  3. 03搜索雇主并获取公司资料
  4. 04生成示例 Webhook 投递
  5. 05将调用转发至 Jobven

适用场景

  1. 01按地点、技能或薪资查找职位
  2. 02阅读选定职位的完整信息
  3. 03查询雇主资料
  4. 04使用示例数据测试 Webhook 接收端

MCP 相关

向 MCP 客户端提供五种 Jobven 工具,用于职位与公司查询及 Webhook 示例。它将工具调用转发至托管的 Jobven MCP 服务,并返回上游结果。

配置

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

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

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

安装包
npm@reneturcios/jobhunt0.1.0
ocighcr.io/cloudcorprecords/jobhunt:0.1.0

工具

5

收录的工具列表 · 更新于 2 天前

参数类型必填说明
qstring否按完整单词搜索职位名称。单词按任意顺序进行 AND 匹配;"double quotes" 用于匹配精确短语,OR 匹配任意一侧,前置 - 用于排除单词。不区分大小写。不搜索描述(参见 descriptionQuery)。
citystring否城市,多个值以逗号分隔;不区分大小写和重音符号
limitinteger否每页职位数,默认 10,最多 25
orderenum否默认 DESCASC | DESC
statestring否州、省或地区,多个值以逗号分隔:全名("Ontario"),或美国和加拿大的邮政代码("ON")
cursorstring否来自上一次 search_jobs 结果的 nextCursor,筛选条件相同
skillsarray否技能,任意匹配(最多 10 项),例如 ["typescript", "react"]
sortByenum否排序字段(默认 postedAt)postedAt | listedAt | title | company
statusenum否"active"(默认值)或 "closed"active | closed
countrystring否ISO 3166-1 alpha-2 国家/地区代码,例如 "US"、"CA"、"GB"。"XX" 匹配完全没有地点信息的职位。
industryarray否行业,任意匹配(最多 10 项)
languagestring否所需口语语言,ISO 639-1 代码,例如 "fr"
locationstring否自由文本地点:城市、地区或国家/地区
maxSalarynumber否年度起始薪酬上限,格式与 minSalary 相同
minSalarynumber否最低年薪;时薪、日薪、周薪和月薪会按年薪进行比较。除非设置 salaryCurrency,否则使用各职位自身的货币
remoteTypearray否远程类型,任意一种
listedAfterinteger否列出时间不早于此时间(Unix 秒),按 listedAt 筛选:用于增量同步
postedAfterinteger否发布时间不早于此时间(Unix 秒)
includeTotalboolean否同时统计所有匹配项(较慢)
postedBeforeinteger否发布时间早于此时间(Unix 秒)
hasRelocationboolean否true:提供搬迁帮助的招聘信息;false:明确表示不提供搬迁帮助的招聘信息
employmentTypearray否雇用类型,任意一种
salaryCurrencystring否薪资的 ISO 4217 货币代码,例如 USD、EUR、PLN
experienceLevelarray否经验级别,任意一种
descriptionQuerystring否按完整单词短语搜索职位描述,按字面匹配且不区分大小写。比其他筛选条件慢;请与 postedAfter 搭配使用。
hasVisaSponsorshipboolean否true:提供签证担保的招聘信息;false:明确表示不提供签证担保的招聘信息

详细介绍

jobhunt

jobhunt 是一个小型本地桥接工具,用于连接托管的 Jobven MCP 服务。该服务从公司招聘网站收集职位信息和雇主 资料。你可以通过它使用一系列丰富的筛选条件搜索职位,包括职位名称和 描述中的短语、远程类型、经验水平、 雇佣类型、技能、行业、语言、地点、 薪资范围、签证担保和发布日期;选择一个 职位以阅读全文;按名称查找雇主; 打开某位雇主的资料;或获取一个示例 webhook 投递,用于测试接收端。

此软件包本身不执行任何搜索。它会在本地返回工具 列表,内容与从在线端点捕获的内容完全一致,并将每次工具调用转发至上游, 原样返回收到的内容。根据捕获的说明,搜索返回的职位以及 单个职位或公司查询都会计入你自己的 Jobven 账户月度额度,而 公司搜索免费。此软件包中的任何功能都无法 申请职位、提交申请、发送消息、 开始结账或创建密钥:它只会通过以下五个调用读取数据, 此外还有一个示例 webhook,不会发送任何内容,也不会生成任何真实签名。

工具

  • search_jobs — 使用 GET /v1/public/jobs 的筛选条件搜索 Jobven 职位信息。默认返回 10 个职位(最多 25 个),每个职位描述附带纯文本摘要;get_job 可获取完整文本。使用相同筛选条件将 nextCursor 作为 cursor 传回,即可获取下一页。每个返回的职位都会计入月度配额。所有参数均为可选:q(职位名称关键词;按任意顺序进行 AND 匹配,使用 "double quotes" 精确匹配短语,使用 OR 匹配任一词项,使用前导 - 排除;不区分大小写;不搜索职位描述)、descriptionQuery(职位描述中的完整词语短语,按字面匹配;不区分大小写;速度较慢,建议与 postedAfter 搭配使用)、remoteType(onsite、remote、hybrid、flexible)、experienceLevel(entry、mid、senior、lead、executive)、employmentType(full_time、part_time、contract、internship、seasonal、volunteer、temporary、per_diem、other)、skills、industry、language(ISO 639-1 代码)、location、country(ISO 3166-1 alpha-2;XX 可匹配没有地点信息的职位)、state、city、minSalary、maxSalary、salaryCurrency(ISO 4217 代码)、hasVisaSponsorship、hasRelocation、status(active 为默认值,或 closed)、postedAfter、postedBefore、listedAfter(Unix 秒)、sortBy(postedAt、listedAt、title、company)、order(ASC 或 DESC,默认值为 DESC)、includeTotal、cursor 和 limit(1-25,默认值为 10)。
  • get_job — 根据 id 获取一条 Jobven 职位信息及完整描述(GET /v1/public/jobs/{id})。必填:id(来自 search_jobs 的职位 ID,UUID 格式)。可选:descriptionFormat(plain 为默认值,或 markdown)。每条职位计入月度配额。
  • search_companies — 按名称查找 Jobven 收录职位的雇主(GET /v1/public/companies)。返回 id、name 和 website;get_company 可获取公司资料。免费:公司搜索不计入配额。所有参数均为可选:search(名称包含此文本)、status(active 或 inactive;未设置时两者均包含)、isVerified、sortBy(name、foundedYear、totalJobsPosted、activeJobsCount、createdAt)、sortOrder(ASC 或 DESC)、page(从 1 开始)和 limit(1-25,默认值为 10)。
  • get_company — 根据 id 获取一位雇主的资料(GET /v1/public/company-profiles/{id}):业务内容、行业、规模、成立年份、总部和社交链接。必填:id(来自 search_companies 的公司 ID)。每条计入月度配额。
  • webhook_example — 一个 Jobven webhook 事件的示例投递:接收方实际收到的原始请求正文和标头,使用示例密钥签名,并附带 webhook 文档中的 TypeScript、Python 或 Go 签名验证器。验证器可接受该示例,因此可以端到端测试接收方。不调用 API,无需密钥,免费。必填:event(job.created、job.updated、job.closed、job.deleted)和 language(typescript、python、go)。

配置

  • JOBVEN_MCP_URL(可选)— 覆盖上游端点。默认值为 https://api.jobven.com/mcp。(此覆盖钩子是本次重建自行标注的还原内容。)
  • JOBVEN_API_KEY(可选)— 设置后,每个上游请求都会携带 X-API-Key: <value> 标头,其中包含调用方自己的 Jobven API 密钥。未设置时,不会发送密钥标头。(原始注册记录指定了必需的 X-API-Key 密钥标头,因此标头名称是确定的;该记录未指定包的环境变量名称,因此从此环境变量转发密钥是经过标注的还原内容——原始接口是在不提供密钥的情况下捕获的。)
转发机制

首次调用工具时,客户端会在上游打开一个可流式传输的 HTTP 会话:先发送 JSON-RPC initialize 请求(protocolVersion 为 2025-03-26,clientInfo 名称为 jobhunt),然后发送 notifications/initialized 通知,最后发送携带调用方参数且保持不变的 tools/call 请求。当上游在 initialize 的响应中返回 Mcp-Session-Id 标头后,该值会附加到此会话的每个后续请求中;此会话会在进程运行期间一直复用。 响应可能是普通 JSON,也可能是服务器发送的事件;两种格式都会读取。

上游的成功结果会原样传递,包括上游设置的任何 isError 标志。 失败情况——JSON-RPC 错误、非 2xx 状态、无法读取响应,或无法完成的请求——会作为 isError 结果返回,其文本以 jobhunt error: 开头(此呈现方式是本次重建中特意标注的内容)。

命令行界面

每个工具也可作为子命令使用,并接受一个 JSON 参数字符串:

npx @reneturcios/jobhunt search_jobs '{"q":"typescript","remoteType":["remote"]}'
npx @reneturcios/jobhunt get_job '{"id":"00000000-0000-0000-0000-000000000000"}'
npx @reneturcios/jobhunt search_companies '{"search":"acme"}'
npx @reneturcios/jobhunt get_company '{"id":42}'
npx @reneturcios/jobhunt webhook_example '{"event":"job.created","language":"python"}'
npx @reneturcios/jobhunt --version

退出代码:成功时为 0,结果为 isError 时为 1,用法错误时为 2。

MCP 服务

npx -y @reneturcios/jobhunt mcp

MCP 客户端配置:

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

Docker

docker run -i ghcr.io/cloudcorprecords/jobhunt
docker run --rm ghcr.io/cloudcorprecords/jobhunt --version

容器的默认命令是 mcp,因此第一种形式是 stdio MCP 服务;其他参数则会正常传递给命令行界面。

开发

npm install
npm run build
npm test
npm run dev

测试套件完全使用存根 JSON-RPC 上游运行,不会发起实时网络调用。

许可证

MIT——请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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