Skip to main content
Glama
johnisanerd

JazzHR Jobs API

by johnisanerd

💼 JazzHR Jobs API:搜索爵士爵士数据

A Python and MCP quick-start for the JazzHR API on Apify.

翻译版本:


💼 JazzHR Jobs API:搜索 JazzHR 上正在招聘的所有公司

这是一个适用于 Apify 上 JazzHR API 的 Python 与 MCP 快速入门指南。一次搜索即可覆盖平台上的所有雇主,你再也无需为了先找到某家公司的招聘岗位 URL 而费心。

大多数 JazzHR 工具都必须先拿到一个公司的招聘页面 URL,才能开始工作。但这个工具已经认识里面的所有页面。把整个平台交给它,它会以结构化方式返回招聘岗位数据:职位名称、雇主、地点、任职类型、真实发布时间、官网申请链接,以及职位描述(Markdown、HTML 或纯文本)。它还会返回一份所有正在使用 JazzHR 招聘/组织的公司名录,这份名录在你决定哪家最具代表性之前会非常有用。

观看演示

文字演示

JazzHR API 会读取 JazzHR 在 applytojob.com 上托管的公开招聘页面。所有输入都是可选的:什么都不填直接运行,便会返回一个发现,来自整个平台的数据;也可以使用 keywords、location、employmentType、remoteOnly 和 postedAfter 等参数筛选结果。关键词会在抓取岗位前依据职位 URL 启动匹配,所以这样做也就能降低运行成本。每一条记录都会返回 title、companyName、locationText、employmentType、datePosted、validThrough、applyUrl 和 descriptionMarkdown 这些字段。将 outputMode 切换为 companiesOnly,就能得到每个雇主一行记录,并附带有在该雇主的职位数量,这是你构建“使用 JazzHR 的公司清单”的方式。若把 outputMode 换成 urlsOnly,则会返回整个职位索引,而且是极少的几个上游请求——这也是了解市场上有什么职位最便宜的方案。再开 newJobsOnly,每次定时运行就只会返回之前未曾见过的职位。

快速开始

运行前的条件:Python 3.11 或更新版本, uv 环境,以及从 apify.com 获取一个免费的 Apify API 令牌。

git clone https://github.com/johnisanerd/Apify-JazzHR-Jobs-API.git
cd Apify-JazzHR-Jobs-API
uv sync
cp .env.example .env          # paste your token into .env
uv run python jazzhr-jobs-api-example.py

每个示例对应一个独立的 flag:

uv run python jazzhr-jobs-api-example.py --example jobs        # full job records
uv run python jazzhr-jobs-api-example.py --example companies   # employer directory
uv run python jazzhr-jobs-api-example.py --example urls        # job index, no descriptions
uv run python jazzhr-jobs-api-example.py --example new-jobs    # delta mode
uv run python jazzhr-jobs-api-example.py --example all

所以,每个示例都故意只请求较少的行数。我们按返回的数据行数来收费,因此请先在自己系统里确认数据的格式,再适当调大 maxItems 的值。

Related MCP server: simplyapply-jobs-mcp

为什么使用这个 API

无需提供公司 URL。 其他工具在你给出招聘页面之前不会做任何事。这里只需要让输入保持为空,搜索便会覆盖平台上每一个雇主。

别人都没有的名目。 companiesOnly 模式会返回所有在 JazzHR 上招聘的公司,以及每一家公司的职位数量。它是一种直接的名单,可以帮你向使用 JazzHR 的公司进行推销。

为 LLM 提供的职位描述。 直接请求 Markdown,然后可以把结果直接交给模型,不需要先进行任何 HTML 清理。

每种帖子有两次解析。 大约有一半的活跃且公开的职位发布没有任何结构化数据。这些记录会改用 HTML 标记中的内容来读取,因此你也获得包含职位名称、公司、地点和描述的记录,而不是毫无价值的空值。parseStatus 字段会显示出当前记录属于哪种解析方式。

过期的招聘信息会被跳过,不会产生费用。 平台索引中大约有五分之一都会指向已关闭的职位。你只为真实获得的职位数量付费,不会被无效的链接也就是失效的 URL 拉低。

有信息流,不只是快照。 增量模式会记住它已经返回过的内容,所以定时运行就只会返回新出现的职位。

Recipes(可执行的例子)

这个 Actor 目前还没有 Store 示例页面展示。它由上面四个脚本式例子组成:一个过滤后的职位搜索、一个雇主目录、一个低成本职位索引,以及一个增量信息流。

调度提示。 可以用 Apify Console 把你的输入保存为一个“Task(任务)”,勾选 newJobsOnly,再以天或周为单位定时运行它。其实在运行之前,任务也会只保存自上次运行以来新出现的记录,这样你的数据管道就不需要任何人干预,保持到位。

用法示例

基本,和默认运行一致:

{
  "keywords": ["nurse", "registered nurse"],
  "location": "TX",
  "employmentType": "FULL_TIME",
  "postedAfter": "2026-01-01",
  "descriptionFormat": "markdown",
  "maxItems": 10
}

高级用法,一个只支持远程的搜索,并跳过招聘中介,但返回每个描述格式的三类内容:

{
  "keywords": ["software engineer"],
  "remoteOnly": true,
  "excludeCompanies": ["someagency"],
  "descriptionFormat": "all",
  "maxConcurrency": 25,
  "maxItems": 100
}

输入参数

每个参数都可选。

Parameter

Type

Default

Description

startUrls

array

empty

公司的官方页面,如 https://company.applytojob.com,或者具体的招聘岗位 URL。空表示所有雇主。

keywords

array

empty

保留哪些职位名称关键词。它在打开职位前用于匹配,所以会降低本次工作成本。

outputMode

string

jobs

jobs 返回完整记录,urlsOnly 返回职位索引,companiesOnly 返回哪些雇主正在招聘。

descriptionFormat

string

markdown

markdown、html、text 或 all。

companies

array

empty

只保留这些公司 slug。例如 acme.applytojob.com 的 slug 是 acme。

excludeCompanies

array

empty

跳过这些公司 slug。

location

string

empty

与城市、州、邮政编码或国家进行文本匹配。

employmentType

string

ANY

FULL_TIME、PART_TIME、CONTRACTOR、TEMPORARY、INTERN、OTHER。

remoteOnly

boolean

false

只要远程工作。

postedAfter

string

empty

格式为 YYYY-MM-DD。使用雇主的真实发布求职信息。

maxItems

integer

100

数据行上限。平台持有超过 100,000 条实时职位,因此默认会让第一次运行保持轻量。

newJobsOnly

boolean

false

只返回之前的旧任务中出现过的职位。

firstRunBehavior

string

emitAll

增量模式下,第一次运行时返回全部,或只记录当前已有的内容。

deltaStoreName

string

jazzhr-seen-jobs

命名存储,用来记住已经处理过的职位 ID。

maxConcurrency

integer

10

并行同时读取页面,最多 25。

proxyConfiguration

object

direct

代理配置可选。使用 Apify 代理设置。

输出格式

一条完整的职位记录:

{
  "id": "job_20260617184930_ZL9U2ROWTQWMZDDD",
  "jobId": "vMHpWDZa3l",
  "title": "Account Executive",
  "companyName": "Ease Inc",
  "companySlug": "easeinc",
  "companyWebsite": "http://www.ease.io",
  "boardUrl": "https://easeinc.applytojob.com",
  "applyUrl": "https://easeinc.applytojob.com/apply/vMHpWDZa3l/Account-Executive",
  "canonicalUrl": "https://careers.easeinc.com/apply/vMHpWDZa3l/Account-Executive",
  "city": "Irvine",
  "region": "CA",
  "postalCode": "92618",
  "country": "US",
  "locationText": "Irvine, CA, US",
  "isRemote": true,
  "employmentType": "FULL_TIME",
  "experienceLevel": "Mid Level",
  "datePosted": "2026-06-17",
  "validThrough": "2026-09-15",
  "descriptionMarkdown": "Ease is hiring an Account Executive...",
  "parseStatus": "full",
  "scrapedAt": "2026-08-24T18:22:04Z"
}

公司名录输出的行格式更小:

{
  "companySlug": "10pearls",
  "boardUrl": "https://10pearls.applytojob.com",
  "jobCount": 21,
  "sampleJobTitles": ["AI Solutions Architect", "Associate Account Executive Intern"],
  "scrapedAt": "2026-08-24T18:22:04Z"
}

大家还在搜

看起来这是要对 Jazz来抓吗?

它类似 scraper 的方式去读取公共页面,但更准确地说,它提供的是 API:结构化 JSON、过滤、稳定的字段名,并且不包含任何 HTML,除非你明确要求。如果你一直想抓取职位信息,这里就是已经由别人维护解析器的实现。

什么是 applytojob.com?

JazzHR 在其上为入驻公司托管招聘页面的域名。公司通过 JazzHR 创建自己的 company.applytojob.com 页面;同样来自这个域名下发 Payroll 邮件。很多人在完成申请后会在网上搜索它。

如何找出哪些公司正在使用 JazzHR?

将 outputMode 设为 companiesOnly;此时每个雇主返回一行,包含职位页面 URL 和实际在招的人数。--example companies 脚本描述的就是这一点。

如何用 Python 使用 JazzHR API?

克隆此仓库,运行 uv sync,在 .env 中填入你的 Apify API token,然后运行示例。rows() 辅助函数展示你认为完整的工作流:调用这个 Actor,然后遍历 dataset。

我可以按计划运行,或通过 MCP 集成吗?

两种都可以。在 Apify Console 中将输入保存为 Task,然后设置计划运行;最好再打开 newJobsOnly。对于通过 MCP 集成,下面的各安装部分把这个这个 Actor 作为工具添加进 Claude、Cursor 或 ChatGPT 中。

在 Claude Desktop 中安装

在 Claude 桌面端安装

Cowork 是该桌面应用的 automation 模式。要让它把 JazzHR Jobs API 作为工具,请将 Apify MCP server 添加为连接器。

  1. 打开 Claude 桌面应用,在弹出的 Settings → Connectors 中添加(也可以直接到 Settings → Developer → Edit Config 修改 claude_desktop_config.json)。

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

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

  2. 添加 Apify MCP server,并只预加载这个 Actor:

{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.apify.com/?tools=actors,docs,johnvc/jazzhr-jobs-api"
      ]
    }
  }
}
  1. 重启应用。当 Cowork 第一次调用该工具时,完成浏览器中的 OAuth 登录,或在连接器设置中填写 Apify API token,以跳过 OAuth。

  2. 现在你在 Cowork 对话框中确认这个实词,然后让它运行 JazzHR Jobs API。

下载桌面应用并开始免费试用: https://claude.ai/referral/uIlw7nPLg 更多帮助: https://docs.apify.com/platform/integrations/claude-desktop


在 Claude Code 中安装

在Claude Code 安装

Claude Code 是命令行使用工具,只需通过一条命令进来的这个 Actor 的 MCP server:

claude mcp add --transport http apify \
  "https://mcp.apify.com/?tools=actors,docs,johnvc/jazzhr-jobs-api"

想要使用 token 而不是浏览器 OAuth:

claude mcp add --transport http apify \
  "https://mcp.apify.com/?tools=actors,docs,johnvc/jazzhr-jobs-api" \
  --header "Authorization: Bearer YOUR_APIFY_TOKEN"

然后通过 claude mcp list 验证,或在会话中运行 /mcp。再让 Claude Code 调用 JazzHR Jobs API 即可。

免费试用 Claude Code: https://claude.ai/referral/uIlpa7nPLg Claude Code MCP 文档: https://code.claude.com/docs/en/mcp


安装到 Claude(Web 版)

在 Claude(网页) 上安装

在 claude.ai 中,把 Apify 设为连接器,然后只用这个 Actor 的工具。

  1. 打开 Settings → Connectors → Browse connectors,搜索 Apify MCP server。安装它(如果系统提示就进行 enable 或 update)。

  2. 连接时,通过你的 Apify API 令牌进行身份验证,然后启用 johnvc/jazzhr-jobs-api 工具。

  3. 在任何对话中输入:打开 + → Connectors,并开启 Apify。

  4. 或可改选 Add custom connector,然后粘贴以下完整 MCP URL:https://mcp.apify.com/?tools=actors,docs,johnvc/jazzhr-jobs-api,按提示完成 OAuth 授权。

  5. 告诉 Claude 调用 JazzHR Jobs API。

在 web 端打开 Claude: https://claude.ai


在 Cursor 中安装

在 Cursor 中安装

Cursor 会从项目文件 .cursor/mcp.json 中读取 mcp server。

  1. 在你的项目里创建 .cursor/mcp.json:

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=actors,docs,johnvc/jazzhr-jobs-api"
    }
  }
}
  1. 如果你从来想用 token 验证而不是浏览器 MCP page,可以都加一个 header:

{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com/?tools=actors,docs,johnvc/jazzhr-jobs-api",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
  1. 打开 Cursor → Settings → MCP,并确认 apify 服务器已连接(绿点)。

  2. 在 Composer 或 Chat 中,请求 Cursor 调用 JazzHR Jobs API。

第一次使用 Cursor? 在这里获取: https://cursor.com/referral?code=http://...


在 ChatGPT 中安装

https://chatgpt.com

https://apify.com/apify-mcp-server

Use "apify-mcp-server-and-install" If it helps:

复制或自动导入上面创建的MCP配置文件(Connection profile),ChatGPT即可以通过“Action”调用 JazzHR Jobs API. 更具体步骤会动态列出。

在 ChatGPT 中安装

ChatGPT 通过开发者模式连接到 Apify MCP 服务器(适用于 ChatGPT Pro、Plus、Business、Enterprise 和 Education 计划)。

  1. 点击个人资料图标,然后转到 设置 > 应用。如果看不到 创建应用 按钮,请打开 高级设置 并启用 开发者模式。

  2. 点击 创建应用 并填写表单:

    • 名称: Apify

    • MCP 服务器 URL: https://mcp.apify.com/?tools=actors,docs,johnvc/jazzhr-jobs-api

    • 认证: OAuth

  3. 点击 创建 并授权与 Apify 的连接。

  4. 要在对话中使用该应用,请在聊天中点击 +,选择 开发者模式,再选择 Apify。

更多帮助:https://docs.apify.com/platform/integrations/mcp


由 johnvc 在 Apify 上 用心制作。

最后更新:2026.08.24

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables users to retrieve live job postings from any iCIMS career site, providing structured data including title, requisition ID, employer, locations, employment type, dates, salary, and apply links.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables real-time job search across thousands of companies' open roles from Greenhouse, Lever, Ashby, and SmartRecruiters, with full-text filtering and company-specific queries, no API key required.
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables querying job boards for a company's open roles, pulling from Greenhouse, Workday, and an opt-in LinkedIn source and normalizing the results into one shape. It discovers boards, searches one or many companies at once, and returns full postings with title-based AI/ML and junior filtering.
    7
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables searching job postings across multiple boards like Indeed and LinkedIn from a single request, returning titles, companies, and salaries as JSON.
    -