career-ops

Greenhouse

career-ops 直接调用 Greenhouse 的公开 boards API:不抓取 HTML,没有触发速率限制的风险,扫描过程本身也不消耗任何 AI token。

更新于

功能简介

providers/greenhouse.mjs 中的 greenhouse provider 会向 boards-api.greenhouse.io/v1/boards/{slug}/jobs 发送 HTTP 请求,并把返回的 JSON 解析成 career-ops 的职位格式。slug 是公司在 Greenhouse 上的招聘页面标识符(例如 Notion 对应 'notion')。

适用场景

如果你的目标公司用 Greenhouse 作为 ATS,就用 Greenhouse 扫描。员工规模在 50–10,000 人之间的美国科技公司大多都用它。templates/portals.example.yml 自带 70 多个预先配置好的 Greenhouse slug,你可以直接启用。

示例

In your portals.yml: `- provider: greenhouse\n  slug: notion\n  careers_url: https://job-boards.greenhouse.io/notion` — then `/career-ops scan` picks up all open Notion roles.

扫描器做了什么

扫描器从 portals.yml 中读取你已启用的 Greenhouse slug,逐个调用公开的 boards API,再把标题匹配的新职位加入你的 pipeline。整个过程不抓取网页,获取数据时也不消耗任何 LLM token。运行一次 node scan.mjs,就能一并处理你的 Greenhouse、Ashby 和 Lever 招聘页面,然后按你配置的职位名称关键词筛选结果。

Terminal
node scan.mjs
Output
Portal Scan - 2026-07-06
Offers found: 58 total
Filtered by title: 9 relevant
Duplicates: 6 (already evaluated or in pipeline)
New added to pipeline.md: 3

  + Notion | AI Product Engineer | greenhouse
  + OpenAI | Applied Engineer    | greenhouse

career-ops 如何对接 Greenhouse

career-ops 请求 boards-api.greenhouse.io/v1/boards/{slug}/jobs,从 JSON 中读取 jobs 数组,取出每个职位的标题和 absolute_url。这个 boards 端点只返回职位的元数据(标题、地点和部门),不包含完整的职位描述。因此,career-ops 会在评估步骤中为每个职位再发一次请求来获取完整的职位文本;如果该招聘页面支持,也可以在请求后追加 ?content=true。扫描本身只是对公开端点发起一次普通的 HTTPS GET 请求,所以不会超出速率限制,也不消耗任何模型 token。重复运行扫描是安全的:每个 URL 都会与你的扫描历史、已评估的申请以及当前的 pipeline 进行去重,你已经看过的职位绝不会被重复添加。

注意事项

通过 Greenhouse API 获取的职位,在 boards 端点中只包含标题、地点和部门。完整的 JD 文本需要针对每个职位再发一次请求,career-ops 会在评估步骤中自动处理。

相关页面

本页内容