ZipRecruiter 职位数据 API
Job Search by ZipRecruiter 是 ZipRecruiter, Inc. 面向美国招聘市场的 Android 客户端:求职者按关键词与地点搜索职位,阅读含薪资区间的完整职位描述,用 ZipApply 一键投递,把职位收藏进 My Jobs,并在收件箱回复招聘方消息。
作为数据源,该应用把美国职位市场呈现为结构化记录:职位卡片携带 listingKey、title、pay、benefits、company 与 location,求职者资料包含 headline、skills、resumeTemporaryUrl 与 minimumAnnualDesiredPay,另有带 radiusMiles 与 remoteBehavior 的已保存搜索提醒。集成方在此基础上构建 ATS 匹配排名、ZipApply 资料完整度检查与招聘方收件箱 SLA 跟踪。
Job Search by ZipRecruiter(包名 com.ziprecruiter.android.release,版本 26.12.0)是 ZipRecruiter, Inc. 面向美国求职市场的 Android 客户端:求职者搜索职位、用 ZipApply 一键投递、收藏职位并回复招聘方消息。这些界面背后是一套数据集:含薪资区间与福利的职位列表、带简历、技能与期望薪资的求职者资料,以及投递、已保存搜索与匹配提醒。这些数据可用于 ATS 匹配排名管道、资料完整度检查和招聘集成的提醒响应分析。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
注册设备
POST
/v1/device/registeropendata启动时注册手机,返回 encryptedDeviceId 以及用于匿名求职搜索的推断国家与经纬度。
认证方式: 无会话 Cookie。HMAC 请求签名头;请求体是设备属性的字符串映射。
- encryptedDeviceId
- location
- inferredCountryCode
- inferredLatitude
- inferredLongitude
POST /v1/device/register HTTP/1.1 Content-Type: application/json X-Request-Signature: <hmac-signature> { "platform": "android", "appVersion": "26.12.0", "pushToken": "fcm-token-example" }{ "device": {"encryptedDeviceId": "enc_dev_9f2a1c"}, "location": "Austin, TX", "inferredCountryCode": "US", "inferredLatitude": 30.2672, "inferredLongitude": -97.7431 }依据匿名启动的设备注册流程与推断位置欢迎页重建
登录联系人
POST
/v1/auth/signinopendata让求职者登录(邮箱一次性验证码、密码或 Google),返回 Contact 名片及后续调用所用的会话 Cookie。
认证方式: HMAC 请求签名头。响应中的会话 Cookie 存于设备,并在后续已登录调用中携带。
- success
- isLoggedIn
- isNew
- statusCode
- contactId
- emailAddress
- name
- phoneNumber
- zipCode
- desiredSalary
- headline
- inResumeDatabase
- resumeId
POST /v1/auth/signin HTTP/1.1 Content-Type: application/json X-Request-Signature: <hmac-signature> { "email": "[email protected]", "token": "otp-or-google-id-token", "source": "android" }{ "success": true, "isLoggedIn": true, "isNew": false, "statusCode": 200, "contact": { "contactId": "c_4412891", "emailAddress": "[email protected]", "name": "Alex Rivera", "phoneNumber": "+15125550123", "zipCode": "78701", "desiredSalary": "140000", "headline": "Staff Product Manager", "inResumeDatabase": true, "resumeId": "r_88ab" } }依据邮箱登录界面及其返回的账户名片重建
发送登录验证码
POST
/v1/auth/otp/emailopendata为求职者登录/注册流程发送一次性密码邮件。
认证方式: HMAC 请求签名头。无需会话 Cookie。
- status
- errorMessage
POST /v1/auth/otp/email HTTP/1.1 Content-Type: application/json X-Request-Signature: <hmac-signature> { "email": "[email protected]" }{ "status": "OTP_SENT", "errorMessage": "" }依据邮箱一次性验证码登录流程重建
校验验证码并注册
POST
/v1/auth/otp/validateopendata确认邮件中的一次性验证码,返回 contactId、credentialUpdateId 与 ptid,把会话绑定到求职者账户。
认证方式: HMAC 请求签名头。成功响应会签发作为已登录身份的 contactId 与 ptid。
- oneTimePassword
- listingKey
- source
- explicitOptIn
- status
- errorMessage
- contactId
- credentialUpdateId
- ptid
POST /v1/auth/otp/validate HTTP/1.1 Content-Type: application/json X-Request-Signature: <hmac-signature> { "email": "[email protected]", "oneTimePassword": "482913", "listingKey": "", "source": "android", "explicitOptIn": true }{ "status": "OK", "errorMessage": "", "contactId": "c_4412891", "credentialUpdateId": "cred_19", "ptid": "pt_7f3a" }依据创建求职者账户的一次性验证码确认界面重建
列出职位键
POST
/v1/feed/listing-keysopendata把搜索/首页职位信息流分页为 JobKey 记录(listingKey、matchId)及 totalListings,之后再水合卡片。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- placementId
- engine
- limit
- offset
- impressionLotId
- ptid
- contactId
- jobKeys
- listingKey
- matchId
- sourcePlacementId
- totalListings
- continueToken
POST /v1/feed/listing-keys HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "req": { "placementId": 12, "engine": "match-v2", "limit": 20, "offset": 0, "impressionLotId": "lot_aa12", "ptid": "pt_7f3a", "contactId": "4412891" } }{ "rsp": { "jobKeys": [{ "listingKey": "jk_9c2e1b", "matchId": "m_4412", "sourcePlacementId": 12 }], "totalListings": 1842 }, "impressionLotId": "lot_aa12", "continueToken": "ct_next_20" }依据列出匹配职位的分页首页与搜索信息流重建
水合职位卡片
POST
/v1/feed/cardsopendata把职位键转成信息流卡片,含 title、pay、benefits、company、location 与收藏状态,用于搜索与首页列表。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- jobKeys
- placementId
- impressionLotId
- contactId
- jobCards
- matchId
- listingKey
- title
- status
- pay
- benefits
- employmentTypes
- locationTypes
- company
- shortDescription
- saved
- companyLogo
- location
- isNew
POST /v1/feed/cards HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "req": { "jobKeys": [{"listingKey": "jk_9c2e1b", "matchId": "m_4412"}], "placementId": 12, "impressionLotId": "lot_aa12", "ptid": "pt_7f3a", "contactId": "4412891" } }{ "rsp": { "jobCards": [{ "matchId": "m_4412", "listingKey": "jk_9c2e1b", "title": "Staff Product Manager", "status": "ACTIVE", "pay": "$140,000 - $180,000 a year", "benefits": ["Health", "401k"], "employmentTypes": ["FULL_TIME"], "locationTypes": ["HYBRID"], "company": "Example Corp", "shortDescription": "Own the job-seeker home feed.", "saved": false, "companyLogo": "https://example.com/logo.png", "location": "Austin, TX", "isNew": true }] } }依据展示 title、pay、company 与 location 的职位卡片列表重建
获取职位详情
POST
/v1/listings/detailsopendata加载职位详情页:某个 listingKey 的完整 HTML 描述、pay、benefits、公司组件与分享链接。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- jobKey
- listingKey
- matchId
- placementId
- contactId
- jobDetails
- title
- status
- pay
- benefits
- employmentTypes
- company
- htmlFullDescription
- saved
- location
- companyLogoUrl
- shareUrls
- facebookUrl
- linkedinUrl
- shortUrl
POST /v1/listings/details HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "req": { "jobKey": {"listingKey": "jk_9c2e1b", "matchId": "m_4412"}, "placementId": 12, "impressionLotId": "lot_aa12", "ptid": "pt_7f3a", "contactId": "4412891" } }{ "rsp": { "jobDetails": { "listingKey": "jk_9c2e1b", "title": "Staff Product Manager", "status": "ACTIVE", "pay": "$140,000 - $180,000 a year", "benefits": ["Health", "401k"], "employmentTypes": ["FULL_TIME"], "company": "Example Corp", "htmlFullDescription": "<p>Own the job-seeker home feed.</p>", "saved": false, "companyWidget": {"name": "Example Corp"}, "location": "Austin, TX", "companyLogoUrl": "https://example.com/logo.png", "shareUrls": { "facebookUrl": "https://example.com/share/facebook", "linkedinUrl": "https://example.com/share/linkedin", "twitterUrl": "https://example.com/share/twitter", "emailUrl": "mailto:?subject=Staff%20Product%20Manager", "shortUrl": "https://example.com/j/jk_9c2e1b" }, "matchId": "m_4412" } } }依据含完整描述与分享链接的职位详情页重建
收藏职位
POST
/v1/lists/saved/addopendata把职位收藏进已登录求职者的收藏列表(My Jobs)。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- ptid
- contactId
- listingKey
- placementId
POST /v1/lists/saved/add HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "req": { "ptid": "pt_7f3a", "contactId": "4412891", "listingKey": "jk_9c2e1b", "placementId": 12 } }{ "ok": true }依据职位卡片上的收藏操作与 My Jobs 收藏列表重建
获取求职者资料
POST
/v1/profiles/seekerosint读取统一的求职者资料:headline、技能、教育、工作经历、简历/照片 URL 及私有的薪资/电话字段。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- contactId
- generatePresignedResumeUrl
- generatePresignedPhotoUrl
- jobseekerProfile
- headline
- executiveSummary
- experienceLevel
- hasResume
- skills
- education
- employment
- jobPreferences
- relocateOk
- remoteOk
- minimumAnnualDesiredPay
- resumeTemporaryUrl
- photoTemporaryUrl
- discoverabilityOptIn
- desiredSalaryRaw
- displayPhone
POST /v1/profiles/seeker HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "contactId": "4412891", "generatePresignedResumeUrl": true, "generatePresignedPhotoUrl": true }{ "jobseekerProfile": { "contactId": "4412891", "headline": "Staff Product Manager", "executiveSummary": "8 years in marketplace products.", "experienceLevel": "SENIOR", "hasPhoto": true, "hasResume": true, "skills": ["Android", "SQL"], "education": [{"degree": "B.S.", "school": "UT Austin"}], "employment": [{"company": "Example Corp", "title": "PM"}], "jobPreferences": {"relocateOk": false, "remoteOk": true, "minimumAnnualDesiredPay": 140000}, "resumeFilename": "alex-rivera.pdf", "resumeTemporaryUrl": "https://example.com/resume.pdf", "photoTemporaryUrl": "https://example.com/photo.jpg", "discoverabilityOptIn": true }, "private": { "engagementLevel": "HIGH", "desiredSalaryRaw": "140000", "displayPhone": "+15125550123", "location": "Austin, TX" } }依据含简历、技能与薪资偏好的求职者资料页重建
一键投递资格
POST
/v1/apply/eligibilityopendata告诉职位详情页的投递按钮 ZipApply 一键投递是否可用,或哪些资料/职位缺口会阻止它。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- listingKey
- contactId
- oneClickApply
- profileGap
- listingGap
POST /v1/apply/eligibility HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "req": { "listingKey": "jk_9c2e1b", "contactId": "4412891" } }{ "rsp": { "listingKey": "jk_9c2e1b", "oneClickApply": true, "profileGap": null, "listingGap": null } }依据检查一键投递可用性的投递按钮状态重建
投递职位
POST
/v1/apply/submitopendata为某个职位提交 ZipApply 投递,并携带来自求职者所点卡片的归因(placementId、utm*)。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- listing_key
- referrer
- source
- placementId
- trafficSourceId
- utmSource
- utmCampaign
- utmMedium
- justWebView
- applicationId
- status
POST /v1/apply/submit HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "listingKey": "jk_9c2e1b", "referrer": "android_job_details", "source": "zipapply", "placementId": "12", "trafficSourceId": "ts_1", "utmSource": "app", "utmCampaign": "home_feed", "utmMedium": "android", "justWebView": false }{ "success": true, "listingKey": "jk_9c2e1b", "applicationId": "app_5510", "status": "SUBMITTED" }依据带归因字段的一键投递确认流程重建
获取通知
POST
/v1/notifications/feedopendata分页应用内通知中心:匹配提醒含 title、body、深链 url 及关联的 jobKey。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- contactId
- ptid
- placementId
- limit
- continueToken
- notifications
- id
- createTimeUtc
- type
- title
- body
- url
- jobKey
- impressionLotId
POST /v1/notifications/feed HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "contactId": "4412891", "ptid": "pt_7f3a", "placementId": 12, "limit": 20, "continueToken": "" }{ "notifications": [{ "id": "n_9021", "createTimeUtc": "2026-09-28T14:02:11Z", "type": "NEW_MATCH", "title": "New match: Staff Product Manager", "body": "Example Corp in Austin, TX", "url": "ziprecruiter://job/jk_9c2e1b", "jobKey": {"listingKey": "jk_9c2e1b", "matchId": "m_4412"} }], "impressionLotId": "lot_n1", "continueToken": "ct_n20" }依据含匹配提醒的应用内通知中心重建
招聘方未读消息
POST
/v1/messages/unread-countopendata返回 Conversations 标签页上显示的招聘方收件箱未读角标。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- contactId
- unreadCount
POST /v1/messages/unread-count HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "contactId": "4412891" }{ "unreadCount": 3 }依据招聘方消息标签页的未读角标重建
设置已保存搜索
POST
/v1/alerts/saved-searchesopendata持久化求职者的已保存职位提醒(query、location、radiusMiles、remoteBehavior),用于推送与邮件匹配。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- savedSearches
- search
- location
- countryAlpha2
- radiusMiles
- contactId
- locid
- remoteBehavior
- lastModifiedTime
- placementId
POST /v1/alerts/saved-searches HTTP/1.1 Content-Type: application/json Cookie: <session-cookie> X-Request-Signature: <hmac-signature> { "savedSearches": [{ "search": "product manager", "location": "Austin, TX", "countryAlpha2": "US", "radiusMiles": 25, "contactId": "4412891", "locid": "loc_austin", "remoteBehavior": "INCLUDE_REMOTE" }], "placementId": 12 }{ "ok": true }依据含 query、location 与半径字段的已保存职位提醒编辑器重建
账户删除状态
GET
/v1/account/deletion-statusopendata读取已登录联系人的账户删除请求状态与 requestedTime。
认证方式: 登录调用返回的会话 Cookie 加 HMAC 请求签名头。
- contact_id
- status
- requestedTime
GET /v1/account/deletion-status HTTP/1.1 Cookie: <session-cookie> X-Request-Signature: <hmac-signature>{ "status": "PENDING", "requestedTime": "2026-09-20T18:11:00Z" }依据展示删除请求状态的账户隐私页重建
数据类别
- 职位列表
- 求职者资料
- 投递
- 通知
- 已保存搜索
- 设备标识
数据使用场景与案例
职位信息流匹配仓库
夜间按 contactId 拉取职位信息流,保存 listingKey、title、pay、company、location 与 saved,使 ATS 能把 ZipRecruiter 匹配结果与内部职位管道对齐排名。
ZipApply 资料完整度
读取求职者资料(headline、skills、hasResume、minimumAnnualDesiredPay、resumeTemporaryUrl)以及每个 listingKey 的一键投递资格,在把候选人导入投递流程前标出 profileGap。
提醒与收件箱 SLA
轮询通知信息流与招聘方消息未读数,按 contactId 与 listingKey 统计 NEW_MATCH 提醒与招聘方回复的打开时长。
已保存搜索覆盖
写入带 query、location、radiusMiles 与 remoteBehavior 的已保存搜索,使职业网站插件能让 ZipRecruiter 职位提醒与求职者偏好的查询保持同步。
常见问题
ZipRecruiter 如何鉴权求职者的 API 调用?
匿名流量先注册设备,获得 encryptedDeviceId 以及用于本地结果的推断国家。邮箱登录会发送一次性验证码;确认后返回 contactId 与 ptid 并种下会话 Cookie。已登录调用携带该 Cookie 及 HMAC 请求签名头。
哪些字段标识一条 ZipRecruiter 职位?
每条职位都携带 listingKey 以及用于求职者匹配的 matchId。水合后的卡片与详情视图再补上 title、pay、benefits、employmentTypes、company、location、shortDescription 或 htmlFullDescription、收藏状态与分享链接。
能否读取求职者的简历与薪资期望?
已登录的求职者资料返回 hasResume、resumeFilename 与临时简历 URL,另有 headline、skills、education、employment 经历及 jobPreferences.minimumAnnualDesiredPay;私有字段包括 desiredSalaryRaw 与 displayPhone。
一键 ZipApply 在何处判定?
按 listingKey 的资格检查返回 oneClickApply 以及可选的 profileGap 与 listingGap。符合条件的职位随后提交投递,并携带来自求职者所点卡片的 placementId 与 UTM 归因。
与 Job Search by ZipRecruiter 相似的应用
- Indeed Job Search — Indeed 是覆盖全行业的职位聚合搜索应用,雇主按点击付费推广职位,模式不同于 ZipRecruiter 的订阅制。
- LinkedIn — LinkedIn 把职业人脉网络与职位列表及 Easy Apply 快速投递结合在一起,尤其适合白领、专业岗位与资深职位。
- Glassdoor — Glassdoor 在职位列表之外提供公司点评、薪资数据与面试经验,求职者可以在投递前先调研雇主。
- Monster — Monster 是运营多年的综合招聘网站,现在也加入了 AI 匹配功能,帮助求职者对接职位。
- CareerBuilder — CareerBuilder 是面向美国市场的老牌招聘网站,提供职位列表、简历库与人才管理工具。
- Snagajob — Snagajob 专注餐饮、零售与酒店行业的时薪与轮班岗位,提供一键申请和地图搜索,对求职者免费。
- JOB TODAY — JOB TODAY 是一款移动优先的时薪与服务行业求职应用,下载量超过一千万。
相关主题
- ZipRecruiter API
- ZipRecruiter 职位搜索端点
- listingKey
- ZipApply
- jobseekerProfile
- encryptedDeviceId
- contactId
- 已保存搜索
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业