您需要以编程方式从可靠的来源获取完整的职位详情(标题、雇主、描述、申请链接和薪资背景),并在本周内交付。通过本文,您将能够搜索职位,通过 ID 拉取职位的详细资料,并使用单个密钥通过 Zyla API Hub 获取某个地点的估计薪资。
您可以使用此 API 构建的内容
JSearch API 从网络(包括 Google for Jobs)聚合职位并公开:
- 搜索:使用 Google for Jobs 提供的广泛过滤选项查询职位。
- 职位详情:将 job_id 扩展为完整详情,包括额外的申请选项、雇主评论背景和类似角色的估计薪资。
- 估计薪资:获取某个地点的职位标题的薪资范围。
团队使用此功能来支持职位板、招聘自动化、申请者跟踪集成和内部招聘工具。
在 Zyla API Hub 上开始
打开 Zyla API Hub 上的 JSearch API 页面并订阅。该中心使用带配额的订阅(不是按调用付费)。对于首次集成,您可以根据可用性开始 7 天试用或 50 次请求。您将收到一个 API 密钥,授权对该 API 及您在中心订阅的任何其他 API 的调用。
身份验证
在每个请求的 Authorization 头中发送您的密钥:
- Authorization: Bearer YOUR_API_KEY
端点
1) 搜索
在全球最大的职位聚合网站(Google for Jobs)上搜索发布的职位。URL 和方法:
- 方法:GET
- URL:https://zylalabs.com/api/2526/jsearch-api/2516/search
必需的查询参数:
- query (string):例如,“javascript developer”
cURL 示例(复制/粘贴):
curl -s -X GET "https://zylalabs.com/api/2526/jsearch-api/2516/search?query=javascript+developer" \
-H "Authorization: Bearer YOUR_API_KEY"
示例 JSON 响应:
{
"status": "OK",
"request_id": "9d5b1504-e1c0-43dc-ba08-7cd4ef1de4a6",
"parameters": {
"query": "javascript developer",
"page": 1,
"num_pages": 1,
"country": "us",
"language": "en"
},
"data": [
{
"job_id": "NWFBUzhCZkdmOVBVbVdKYUFBQUFBQT09OkVzc0JDb3dCUVVwcFZEUjBTMnBvWlhWUk1qUkdSRmx5TUVKNWNUSTBSRmhLTVZBdGRXeFRMVWd0ZUdwUmRtVnlNVXRYYUVOM2JIRk9jWE16ZUVka2F6a3dORmRWV2xVNFYzbHhSRGRaV1VrdE0wbFdkMHBIZGxoaU5UTkNUazVxUmpOUE5XVmlYM0E0ZEZWQk1sWnlRbWwwV2tSMGMxcE1RVTFEYUdoblVteGpTRUpXVGtjNVNtazFUMmhZUVc1R1dYb1NGbEo0TlRkaGRXbExRbEJEYTJ0UVNWQTVjVVJLU1ZFYUlrRkVjM0k1WmxJdFlsSkpkbVJRY204MFV6UTVjSEJTTkhCcmJXd3lRbU41YkVF",
"job_title": "全栈 JavaScript 开发人员 - 顶级机密许可",
"employer_name": "Metric5",
"employer_logo": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRTpqtlYyQWQ7NZ_F3cBFi24PFec2gdiTaCd_CJ&s=0",
"employer_website": "https://www.metric5.com",
"job_publisher": "LinkedIn",
"job_employment_type": "全职",
"job_employment_types": [
"FULLTIME"
],
"job_apply_link": "https://www.linkedin.com/jobs/view/full-stack-javascript-developer-top-secret-clearance-at-metric5-4447358729",
"job_apply_is_direct": false,
"apply_options": [
{
"apply_link": "https://www.linkedin.com/jobs/view/full-stack-javascript-developer-top-secret-clearance-at-metric5-4447358729",
"is_direct": false,
"publisher": "LinkedIn"
}
],
"job_description": "地点:弗吉尼亚州斯普林菲尔德 - 现场工作
Metric5 正在寻找一位积极进取的全栈 JavaScript 开发人员,负责为我们的 NGA/DoD 客户进行高度可见的项目工作。
理想的全栈 JavaScript 开发人员在真实的敏捷环境中具有实际经验,能够在多个团队中执行软件工程任务,具备前端和后端开发的专业知识。我们的软件工程师在设计、构建、测试和维护软件产品方面发挥关键作用,以确保强大的功能和优化。
作为 Metric5 的软件工程师,您将负责使用 React、NestJS、Node.js、TypeScript 和 Vite 在现代云原生生态系统中进行软件解决方案的技术设计、开发、文档和工程。您的责任…
使用内容:
- data[].job_id:将此传递给职位详情以扩展列表。
- data[].job_title、employer_name:在您的 UI 列表中显示。
- data[].job_apply_link 和 apply_options:构建“申请”按钮。
- parameters:在适用的地方用于记录和分页逻辑。
Python 示例用于搜索
此代码片段搜索“javascript developer”并打印您将在结果页面中显示的关键字段,然后捕获 job_id 以获取详细信息。
import requests
API_KEY = "YOUR_API_KEY"
BASE_URL = "https://zylalabs.com/api/2526/jsearch-api/2516/search"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
params = {
"query": "javascript developer"
}
resp = requests.get(BASE_URL, headers=headers, params=params, timeout=30)
resp.raise_for_status()
payload = resp.json()
print("状态:", payload.get("status"))
for i, job in enumerate(payload.get("data", []), start=1):
print(f"{i}. {job.get('job_title')} — {job.get('employer_name')}")
print(" 申请:", job.get("job_apply_link"))
print(" 发布者:", job.get("job_publisher"))
print()
# 捕获 job_id 以便稍后获取详细信息
first_job_id = payload.get("data", [{}])[0].get("job_id")
print("第一个 job_id 用于详细信息:", first_job_id)
2) 职位详情
获取所有职位详情,包括额外的申请选项/链接、雇主评论背景和类似职位的估计薪资。
- 方法:GET
- URL:https://zylalabs.com/api/2526/jsearch-api/2517/job-details
必需的查询参数:
- job_id (string)
cURL 示例:
示例 JSON 响应摘录:
使用内容:
- data[].job_uid 和 data[].job_id:用于去重和存储的稳定标识符。
- 完整描述和额外的申请选项以呈现您的详细页面。
3) 估计薪资
获取某个地点的职位的估计薪资。
- 方法:GET
- URL:https://zylalabs.com/api/2526/jsearch-api/2518/estimated-salary
参数:
- job_title (string, 必需)
- location (string, 必需)
- radius (string, 可选)
cURL 示例:
示例 JSON 响应:
使用内容:
- median_salary:薪资带的快速基准。
- salary_period 和 salary_currency:显示正确的单位(在此示例中为年薪 USD)。
- salaries_updated_at:您可以显示或用于缓存失效的时间戳。时间戳为 ISO 8601。
端到端流程:从搜索到详情再到薪资
- 使用文本查询调用搜索以获取职位列表和 job_id 值。
- 选择一个 job_id 并调用职位详情,以丰富您的详细页面,提供完整内容和申请选项。
- 可选地调用估计薪资,以获取用户正在查看的角色和地点的薪资背景。
存储 job_id 和 job_uid 以避免重复。搜索响应包括一个“parameters”块,您可以记录以追踪查询上下文。考虑缓存搜索和薪资响应以减少冗余调用,并保持您的用户体验流畅。
实际实施注意事项
- 授权:始终使用“Authorization: Bearer YOUR_API_KEY”。
- 单位和货币:估计薪资返回 salary_period(例如,YEAR)和 salary_currency(例如,USD)。显示两者及其金额。
- 时间戳:salaries_updated_at 为 ISO 8601;如有需要,请在您的 UI 中转换为本地显示格式。
- 配额模型:Zyla 使用订阅 + 配额,而不是按调用付费。首次使用时,预计有 7 天试用或 50 次请求,具体取决于可用性。请查看 API 页面以获取当前访问选项和定价。
- 分页和过滤:搜索示例响应包括页面和 num_pages;请查看 API 页面以获取 Google for Jobs 支持的其他过滤选项。
- 错误处理:检查状态和 HTTP 代码;记录 request_id 以关联支持问题。
通过 MCP 从 AI 代理调用 API
Zyla 上的每个 API 也可以通过支持模型上下文协议(MCP)的 AI 代理和 IDE 副驾驶进行调用。将您的客户端指向:
https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY
连接后,Claude Code、Cursor 和 Windsurf 等工具可以使用您的相同密钥调用 JSearch API。有关客户端设置的详细信息,请参阅 MCP 端点信息。
现实世界用例
- 职位板搜索:通过调用搜索并渲染 job_title、employer_name 和 job_apply_link 来实现“JavaScript 开发人员”信息流。
- ATS 丰富:给定一个抓取的职位链接,通过角色关键字搜索,然后调用职位详情以规范字段并存储 job_uid 以去重。
- 薪资带:通过 job_title 和用户选择的城市调用估计薪资,以在申请 CTA 旁边设置期望。
- 警报和摘要:运行定期搜索查询并发送个性化电子邮件摘要,包含 job_apply_link 和 employer_website。
生产检查清单
- 安全存储 API 密钥;绝不要将其提交到源代码控制。
- 记录 request_id 和参数以便于可观察性和审计。
- 遵守订阅配额;在重试时实施指数退避。
- 根据 (job_title, location, radius) 缓存估计薪资响应几个小时。
- 规范雇主名称并持久化 job_uid,以防止跨运行重复。
常见问题
我如何获取 job_id 以调用职位详情?
首先使用搜索端点。data[] 中的每个项目都包含一个可以传递给职位详情的 job_id。
我可以在查询字符串之外过滤搜索吗?
搜索端点支持类似于 Google for Jobs 的广泛过滤。请参考 Zyla 的 API 页面以获取完整的支持参数集。
薪资使用什么货币和单位?
估计薪资返回每条记录的 salary_currency 和 salary_period。在上面的示例中,值为年薪 USD。
有免费计划吗?
没有。Zyla 使用订阅 + 配额。请查看 API 页面以获取当前访问选项。首次使用时,您可以开始 7 天试用或 50 次请求,具体取决于可用性。
我可以从 IDE 代理调用这些端点吗?
可以。使用 MCP 端点 https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY 与支持 MCP 的 IDE 或代理。
准备好交付您的集成了吗?在 JSearch API 页面上订阅并获取您的 API 密钥,然后插入搜索、职位详情和估计薪资端点,以支持您的职位信息流和详细页面。 在 JSearch API 上开始 7 天试用