Skip to content

获取 Google Jobs Advanced 结果

通过任务 ID 获取已提交的 Google Jobs SERP Advanced 结果。

接口说明

  • 请求方式GET
  • 请求地址https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/$id

该接口用于按任务 ID 拉取已完成任务的高级结果。任务提交成功后,您只会在创建任务时被扣费;任务结果在 30 天可重复获取。

实扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

路径参数

字段类型说明
idstring任务唯一标识,UUID 格式。任务结果可在 30 天随时通过该 ID 获取。

沙箱调试

如需查看该端点可返回的字段结构,可使用沙箱地址:

https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/00000000-0000-0000-0000-000000000000

说明:

  • 沙箱响应会返回该接口支持的所有结果项与字段;
  • 字段值为模拟数据;
  • 调用沙箱接口不会产生费用。

响应结构

接口返回 JSON 数据,顶层 tasks 数组。

顶层字段

字段类型说明
versionstring当前 API 版本。
status_codeinteger通用状态码。完整错误码可参考 /v3/appendix/errors。建议对异常状态建立完整处理机制。
status_messagestring通用状态信息。
timestring执行耗时,单位秒。
costfloat本次请求总成本,单位 USD。
tasks_countintegertasks 数组中的任务数量。
tasks_errorinteger返回错误的任务数量。
tasksarray任务结果数组。

tasks[] 字段

字段类型说明
idstring任务 ID,UUID 格式。
status_codeinteger任务状态码,范围通常为 10000-60000
status_messagestring任务状态信息。
timestring任务执行耗时,单位秒。
costfloat任务成本,单位 USD。
result_countintegerresult 数组中的数量。
patharray请求路径。
dataobject与创建任务时 POST 请求中指定的参数一致。
resultarray结果数组。

result[] 字段

字段类型说明
keywordstringPOST 请求中提交的。返回时会对 %## 做解码,+ 会被解码为空格。
typestringPOST 请求中的搜索引擎类型。
se_domainstringPOST 请求中的搜索引擎域名。
location_codeintegerPOST 请求中的地区编码。
language_codestringPOST 请求中的语言编码。
check_urlstring对应搜索结果的直达链接,可用于人工校验结果准确性。
datetimestring抓取结果时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
spellobject搜索引擎自动纠错信息。如被纠正,将返回纠正后的及纠错类型;否则为 null
refinement_chipsobject搜索细化筛选项。
item_typesarray当前 SERP 中的结果类型。
se_results_countintegerSERP 总结果数。
items_countintegeritems 数组中的结果数量。
itemsarraySERP 中识别出的结果。

refinement_chips 字段

字段类型说明
typestring素类型,固定为 refinement_chips
xpathstring素的 XPath。
itemsarray细化筛选项列表。

refinement_chips.items[] 字段

字段类型说明
typestring素类型,固定为 refinement_chips_element
titlestring筛选项标题。
urlstring带筛选参数的搜索 URL。
domainstringSERP 中显示的域名。
optionsarray进一步细化的筛选选项。

refinement_chips.items[].options[] 字段

字段类型说明
typestring素类型,固定为 refinement_chips_option
titlestring选项标题。
urlstring带筛选参数的搜索 URL。
domainstringSERP 中显示的域名。

结果类型

item_types 可能以下值:

  • google_jobs_item

items[] 字段说明

google_jobs_item

字段类型说明
typestring素类型,固定为 google_jobs_item
rank_groupinteger分组排名。在相同 type 的结果中计算。
rank_absoluteintegerSERP 绝对排名,即在所有中的位置。
positionstring素在页面中的位置,可为 leftright
xpathstring素的 XPath。
job_idstringGoogle Jobs 中的职位 ID。
titlestring职位标题。
employer_namestring雇主名称。
employer_urlstring雇主官网 URL。
employer_image_urlstring职位所使用的图片地址。
locationstring招聘地点。
source_namestring职位原始来源名称。
source_urlstring原始职位页面 URL。
salarystring薪资信息;如未标注则为 null
contract_typestring合同/雇佣类型。
timestampstring职位发布时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
time_agostring距离发布时间的相对时间描述。
rectangleobjectSERP 中该结果区域的坐标与像素尺寸;本接口场景下通常为 null

调用示例

cURL

bash
id="02261816-2027-0066-0000-c27d02864073"

curl --location --request GET "https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"

Python

python
import requests

task_id = "02231256-2604-0066-2000-57133b8fc54e"

url = f"https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/{task_id}"
headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

response = requests.get(url, headers=headers)
data = response.json

print(data)

TypeScript

typescript
import axios from "axios";

const taskId = "02231256-2604-0066-2000-57133b8fc54e";

axios({
 method: "get",
 url: `https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/${taskId}`,
 headers: {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
 }
})
 .then((response) => {
 // 结果数据
 console.log(response.data);
 })
 .catch((error) => {
 console.error(error);
 });

通过 tasks_ready 拉取已完成任务

在接中,通常调用 /v3/serp/google/jobs/tasks_ready 获取已完成任务列表,再逐个请求 /v3/serp/google/jobs/task_get/advanced/$id 获取结果。

Python 示例

python
import requests

headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

# 1. 获取已完成任务列表
ready_url = "https://api.seermartech.cn/v3/serp/google/jobs/tasks_ready"
ready_resp = requests.get(ready_url, headers=headers)
ready_data = ready_resp.json

results = []

if ready_data.get("status_code") == 20000:
 for task in ready_data.get("tasks", []):
 for item in task.get("result", []):
 endpoint = item.get("endpoint_advanced")
 if endpoint:
 # 2. 拉取每个已完成任务的高级结果
 resp = requests.get(f"https://api.seermartech.cn{endpoint}", headers=headers)
 results.append(resp.json)

print(results)

响应示例

json
{
 "version": "0.1.20220428",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.0680 sec.",
 "cost": 0,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "id": "02231256-2604-0066-2000-57133b8fc54e",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.0312 sec.",
 "cost": 0,
 "result_count": 1,
 "path": [
 "v3",
 "serp",
 "google",
 "jobs",
 "task_get",
 "advanced",
 "02231256-2604-0066-2000-57133b8fc54e"
 ],
 "data": {
 "api": "serp",
 "function": "task_get",
 "se": "google",
 "se_type": "jobs",
 "keyword": ".net developer",
 "language_code": "en",
 "location_code": 2840,
 "depth": 10,
 "employment_type": null,
 "device": "desktop",
 "os": "windows"
 },
 "result": [
 {
 "keyword": ".net developer",
 "type": "jobs",
 "se_domain": "google.com",
 "location_code": 2840,
 "language_code": "en",
 "datetime": "2022-06-08 08:44:34 +00:00",
 "spell": null,
 "se_results_count": 0,
 "items_count": 10,
 "items": [
 {
 "type": "google_jobs_item",
 "rank_group": 1,
 "rank_absolute": 1,
 "position": "right",
 "xpath": "/html/body/div/div/div/div/div/div/div/div/div/div/div/div/ul/li",
 "job_id": "DfhOEnE2FFkAAAAAAAAAAA==",
 "title": ".NET Developer (SR/SSR)",
 "employer_name": "Upwork",
 "employer_url": "http://www.elance.com/",
 "employer_image_url": null,
 "location": "United States",
 "source_name": "via Upwork",
 "source_url": "https://www.upwork.com/freelance-jobs/apply/NET-Developer-SSR_~015f52b11d62a99be1/?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic",
 "salary": null,
 "contract_type": "Contractor",
 "timestamp": "2022-06-07 21:44:32 +00:00",
 "time_ago": "11 hours ago",
 "rectangle": null
 },
 {
 "type": "google_jobs_item",
 "rank_group": 2,
 "rank_absolute": 2,
 "position": "right",
 "xpath": "/html/body/div/div/div/div/div/div/div/div/div/div/div/div/ul/li",
 "job_id": "RQeiSXggZy4AAAAAAAAAAA==",
 "title": ".NET Developer/ Java Developer",
 "employer_name": "People Tech Group Inc",
 "employer_url": "http://peopletech.com/",
 "employer_image_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTOiqLgAlZk4lD0TTkK8YevbUBDL0GhBBK7M5cv&s=0",
 "location": "United States",
 "source_name": "via LinkedIn",
 "source_url": "https://www.linkedin.com/jobs/view/net-developer-java-developer-at-people-tech-group-inc-3113958650?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic",
 "salary": null,
 "contract_type": "Full–time",
 "timestamp": "2022-06-07 18:44:32 +00:00",
 "time_ago": "14 hours ago",
 "rectangle": null
 }
 ]
 }
 ]
 }
 ]
}

状态码说明

  • 顶层 status_code 表示整次请求的处理状态;
  • tasks[].status_code 表示单个任务的处理状态;
  • 建议同时检查:
  • 顶层 status_code == 20000
  • tasks_error == 0
  • tasks[].result 是否存在
  • 单任务状态码是否为成功状态

完整状态码与错误说明可参考 /v3/appendix/errors

使用建议

  1. 通过创建任务接口创建 Google Jobs 抓取任务;
  2. 再通过 /v3/serp/google/jobs/tasks_ready 轮询已完成任务;
  3. 使用本接口按 id 拉取高级结果;
  4. job_idtitleemployer_namelocationsalarysource_url 等字段库,便于后续分析与监控。

实用场景

  • 监控职位排名:定期抓取目标下的职位列表,跟踪不同招聘信息在 Google Jobs 中的位置变化。
  • 汇总招聘来源:提取 source_namesource_url,识别职位主要分发平台,评估渠道覆盖。
  • 分析薪资分布:基于 salarylocationcontract_type 等字段构建薪资对比报表,行业研究或招聘报分析。
  • 识别竞品招聘动态:按 employer_name 监控特定企业的岗位发布频率、岗位类型和地域布局,洞察竞品扩张方向。
  • 构建职位数据仓库:将 job_id、职位标题、雇主、发布时间与来源链接标准化库,为 SEO选题、人才市场分析和行业趋势研究提供数据基础。

统一入口:官网 · LLM API · 控制台