Job Search by ZipRecruiter 图标

ZipRecruiter 职位数据 API

ZipRecruiter, Inc. · 招聘求职

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 匹配排名管道、资料完整度检查和招聘集成的提醒响应分析。

应用截图

  • Job Search by ZipRecruiter 应用截图 1
  • Job Search by ZipRecruiter 应用截图 2
  • Job Search by ZipRecruiter 应用截图 3
  • Job Search by ZipRecruiter 应用截图 4
  • Job Search by ZipRecruiter 应用截图 5
  • Job Search by ZipRecruiter 应用截图 6
  • Job Search by ZipRecruiter 应用截图 7

API 端点一览

以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。

  • 注册设备

    POST /v1/device/register opendata

    启动时注册手机,返回 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/signin opendata

    让求职者登录(邮箱一次性验证码、密码或 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/email opendata

    为求职者登录/注册流程发送一次性密码邮件。

    认证方式: HMAC 请求签名头。无需会话 Cookie。

    • email
    • 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/validate opendata

    确认邮件中的一次性验证码,返回 contactId、credentialUpdateId 与 ptid,把会话绑定到求职者账户。

    认证方式: HMAC 请求签名头。成功响应会签发作为已登录身份的 contactId 与 ptid。

    • email
    • 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-keys opendata

    把搜索/首页职位信息流分页为 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/cards opendata

    把职位键转成信息流卡片,含 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/details opendata

    加载职位详情页:某个 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/add opendata

    把职位收藏进已登录求职者的收藏列表(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/seeker osint

    读取统一的求职者资料: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/eligibility opendata

    告诉职位详情页的投递按钮 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/submit opendata

    为某个职位提交 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/feed opendata

    分页应用内通知中心:匹配提醒含 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-count opendata

    返回 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-searches opendata

    持久化求职者的已保存职位提醒(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-status opendata

    读取已登录联系人的账户删除请求状态与 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 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价