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 上托管的公开招聘页面。所有输入都是可选的:什么都不填直接运行,便会返回一个发现,来自整个平台的数据;也可以使用 keywordslocationemploymentTyperemoteOnlypostedAfter 等参数筛选结果。关键词会在抓取岗位前依据职位 URL 启动匹配,所以这样做也就能降低运行成本。每一条记录都会返回 titlecompanyNamelocationTextemploymentTypedatePostedvalidThroughapplyUrldescriptionMarkdown 这些字段。将 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 的值。

为什么使用这个 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

markdownhtmltextall

companies

array

empty

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

excludeCompanies

array

empty

跳过这些公司 slug。

location

string

empty

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

employmentType

string

ANY

FULL_TIMEPART_TIMECONTRACTORTEMPORARYINTERNOTHER

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

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Search a live index of millions of open jobs from employer career sites and 100+ ATS platforms.

  • Live job postings from 30+ ATS feeds and job boards, one schema. Live results need a Bearer key.

  • Semantic search over 3.5M+ live US job postings pulled straight from company ATSes. Read-only.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/johnisanerd/Apify-JazzHR-Jobs-API'

If you have feedback or need assistance with the MCP directory API, please join our Discord server