Rabota.ru: Job search app 图标

Rabota.ru 数据 API:职位、简历与投递

Работа.ру — поиск работы · 招聘求职

Rabota.ru 的 Android 客户端在 /v1/auth/password 登录(login、password、recaptchaResponse → token、tokenV3.accessToken)或在 /v1/auth/code 登录(accessCode),然后用 /v1/account/profile 注水“我的”资料——id、first_name、last_name、email、phones 与 has_resume。后续登录调用把该令牌作为 X-Token 头携带。

搜索提交到 /v1/jobs/query(total、relevant、vacancies、similarVacancies、facets),详情卡片来自 /v1/jobs/cards。投递走 /v1/applications/create 与 /v1/applications;简历、浏览与统计是 /v1/cv、/v1/cv/viewers 与 /v1/cv/stats。收藏、职位提醒订阅与招聘方聊天位于 /v1/jobs/saved、/v1/alerts 与 /v1/messages。

Rabota.ru 职位搜索应用(包名 ru.rabota.app2,版本 6.7.2)是 Работа.ру 招聘板的 Android 客户端,覆盖职位搜索、简历、投递与招聘方聊天,背后是第一方 JSON API。多数调用以 {request: ...} 包裹 POST JSON;登录签发 token 与 tokenV3.accessToken,后续以 X-Token 头携带。职位卡片暴露 title、salary、company 与 places,简历暴露 full_name、position 等字段。

应用截图

  • Rabota.ru: Job search app 应用截图 1
  • Rabota.ru: Job search app 应用截图 2
  • Rabota.ru: Job search app 应用截图 3
  • Rabota.ru: Job search app 应用截图 4
  • Rabota.ru: Job search app 应用截图 5

API 端点一览

  • 密码登录并签发 X-Token

    POST /v1/auth/password osint

    用邮箱或手机号加密码(含 recaptchaResponse)认证,返回后续每个登录调用作为 X-Token 携带的会话令牌,以及 tokenV3 的 accessToken、expiresIn 与 signature。

    认证方式: 无需认证。响应中的令牌在后续登录调用中作为 X-Token 头发送。

    • login
    • password
    • recaptchaResponse
    • success
    • token
    • tokenV3
    • accessToken
    • expiresIn
    • signature

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/auth/password HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    
    {
      "login": "[email protected]",
      "password": "********",
      "recaptchaResponse": "03AGdBq25..."
    }
    {
      "success": true,
      "token": "xt_7f3a9c2e1b",
      "tokenV3": {
        "accessToken": "at_9c1d4e77",
        "expiresIn": 2592000,
        "signature": "sig_b41e02"
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据邮箱/手机号密码登录界面重建
    • 会话载荷携带 token、tokenV3.accessToken、expiresIn 与 signature
  • 一次性验证码登录

    POST /v1/auth/code osint

    完成短信或邮箱验证码登录,签发与密码登录相同的 X-Token 会话。

    认证方式: 无需认证。使用短信/邮箱验证码流程的 login 与 accessCode,返回与密码登录相同的 token / tokenV3 对。

    • login
    • accessCode
    • success
    • token
    • tokenV3
    • accessToken
    • expiresIn
    • signature

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/auth/code HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    
    {
      "login": "+79991234567",
      "accessCode": "482913"
    }
    {
      "success": true,
      "token": "xt_8a21c0",
      "tokenV3": {
        "accessToken": "at_c0ffee",
        "expiresIn": 2592000,
        "signature": "sig_91ab"
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据短信/邮箱一次性验证码登录界面重建
    • 令牌 / tokenV3 结构与密码登录响应相同
  • 获取已登录资料

    POST /v1/account/profile osint

    返回已登录求职者资料(id、first_name、last_name、email、phones、has_resume、status、photo),供“我的”标签页与简历编辑器使用。

    认证方式: 使用密码或一次性验证码登录返回的 X-Token 头。

    • id
    • first_name
    • middle_name
    • last_name
    • email
    • value
    • confirmed
    • phones
    • numberInternational
    • extension
    • isAccepted
    • isMain
    • isConfirmed
    • has_resume
    • status
    • photo
    • region
    • birth_at
    • is_available_autoresponse
    • fields

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/account/profile HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "fields": ["id", "first_name", "last_name", "email", "phones", "has_resume", "status", "photo"]
    }
    {
      "id": 4412001,
      "first_name": "Ivan",
      "middle_name": "Sergeevich",
      "last_name": "Petrov",
      "email": {"value": "[email protected]", "confirmed": true},
      "phones": [{
        "numberInternational": "+79991234567",
        "extension": null,
        "isAccepted": true,
        "isMain": true,
        "isConfirmed": true
      }],
      "has_resume": true,
      "status": {"id": "active"},
      "photo": {"url": "https://cdn.example.org/photo/4412001.jpg"},
      "region": {"id": 1, "name": "Москва"},
      "birth_at": "1992-04-12",
      "is_available_autoresponse": true
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据“我的”标签页与简历编辑器流程重建
    • 字段名取自已登录资料载荷
  • 搜索职位并返回相似结果

    POST /v1/jobs/query opendata

    为搜索结果页返回分页职位列表及 similarVacancies 与 facets(title、salary.from/to/currencySign、company、places)。

    认证方式: 可选 X-Token。登录调用会在每张职位卡片上填充 is_favourite 与 response。

    • query
    • location
    • regionId
    • filters
    • salary
    • disallowRelocation
    • hasPhone
    • offset
    • limit
    • fields
    • total
    • relevant
    • vacancies
    • similarVacancies
    • facets
    • id
    • title
    • from
    • to
    • currencySign
    • short_description
    • is_promoted
    • is_favourite
    • company
    • name
    • isVerified
    • isInBlacklist
    • isSbbol
    • places
    • address
    • places_summary
    • publish_start_at
    • status
    • contact_person

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/jobs/query HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {
        "query": "product manager",
        "location": {"type": "region", "name": "Москва", "regionId": 1},
        "filters": {"salary": 180000, "disallowRelocation": true, "hasPhone": true},
        "offset": 0,
        "limit": 20,
        "fields": [
          "vacancies.id", "vacancies.title", "vacancies.salary",
          "vacancies.short_description", "vacancies.is_promoted",
          "vacancies.is_favourite", "vacancies.company", "vacancies.places",
          "vacancies.response", "vacancies.places_summary", "facets",
          "vacancies.publish_start_at", "vacancies.status", "vacancies.contact_person"
        ]
      }
    }
    {
      "response": {
        "total": 1284,
        "relevant": 412,
        "vacancies": [{
          "id": 55102113,
          "title": "Product Manager",
          "salary": {"from": 180000, "to": 250000, "currencySign": "₽"},
          "short_description": "Own the candidate experience squad.",
          "is_promoted": true,
          "is_favourite": false,
          "company": {"id": 1337, "name": "Example Corp", "type": "direct", "isVerified": true, "isInBlacklist": false, "isSbbol": false},
          "places": [{"id": 1, "name": "Москва", "address": "Тверская 1"}],
          "places_summary": "Москва",
          "publish_start_at": "2026-09-20T10:15:00+03:00",
          "status": "published",
          "contact_person": {"name": "Anna Petrova"}
        }],
        "similarVacancies": [],
        "facets": {}
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据搜索结果页流程及其相似职位行重建
    • 线上字段名取自职位列表、薪资与公司载荷
  • 按 id 获取职位卡片

    POST /v1/jobs/cards opendata

    按 vacancyIds 为职位页与深链接注水职位详情卡片(description、salary、company、places、skills、experience)。

    认证方式: 可选 X-Token。登录后的附加字段包括 is_favourite 与 response。

    • vacancyIds
    • regionId
    • fields
    • vacancies
    • id
    • title
    • description
    • salary
    • from
    • to
    • currencySign
    • company
    • places
    • skills
    • experience
    • is_allow_express_resume
    • operating_schedule
    • work_schedule_id
    • publish_start_at

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/jobs/cards HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {
        "vacancyIds": [55102113, 55102114],
        "regionId": 1,
        "fields": ["id", "title", "salary", "description", "company", "places", "skills", "experience"]
      }
    }
    {
      "response": {
        "vacancies": [{
          "id": 55102113,
          "title": "Product Manager",
          "description": "Lead the candidate experience squad.",
          "salary": {"from": 180000, "to": 250000, "currencySign": "₽"},
          "company": {"id": 1337, "name": "Example Corp", "isVerified": true},
          "places": [{"id": 1, "name": "Москва", "address": "Тверская 1"}],
          "skills": ["SQL", "product management"],
          "experience": {"id": 3},
          "is_allow_express_resume": true,
          "operating_schedule": {"id": "fullDay"},
          "work_schedule_id": 1,
          "publish_start_at": "2026-09-20T10:15:00+03:00"
        }]
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据职位详情页与深链接处理重建
    • 字段名取自完整职位、薪资与公司载荷
  • 投递职位

    POST /v1/applications/create opendata

    用选定的简历向职位提交投递,当 isSucceed 为 true 时返回 responseId。

    认证方式: 需要 X-Token。

    • vacancyId
    • resumeId
    • needCreateResponse
    • responseId
    • isSucceed

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/applications/create HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {
        "vacancyId": 55102113,
        "resumeId": 88012,
        "needCreateResponse": true
      }
    }
    {
      "response": {
        "responseId": 901334,
        "resumeId": 88012,
        "isSucceed": true
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据简历投递确认界面重建
    • 响应载荷携带 responseId、resumeId 与 isSucceed
  • 列出投递

    POST /v1/applications opendata

    为“投递”标签页分页返回已登录求职者的投递(id、createdAt、vacancy、status、hasNew、isAutoresponse、resume)。

    认证方式: 需要 X-Token。

    • offset
    • limit
    • total
    • rows
    • id
    • createdAt
    • lastModifiedAt
    • status
    • hasNew
    • isAutoresponse
    • sentBy
    • vacancy
    • resume
    • full_name

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/applications HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {
        "offset": 0,
        "limit": 20
      }
    }
    {
      "response": {
        "total": 14,
        "rows": [{
          "id": 901334,
          "createdAt": "2026-09-21T08:30:00+03:00",
          "lastModifiedAt": "2026-09-22T11:00:00+03:00",
          "status": "in_progress",
          "hasNew": true,
          "isAutoresponse": false,
          "sentBy": "applicant",
          "vacancy": {"id": 55102113, "title": "Product Manager"},
          "resume": {"id": 88012, "full_name": "Ivan Petrov"}
        }]
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据“投递”标签页流程及其逐项状态载荷重建
    • 字段名取自投递列表行(status、hasNew、isAutoresponse)
  • 列出我的简历

    POST /v1/cv osint

    返回已登录求职者的简历(full_name、position、salary、is_published、skills、experiences),供“我的简历”与投递选择器使用。

    认证方式: 需要 X-Token。

    • resumes
    • id
    • full_name
    • first_name
    • last_name
    • middle_name
    • position
    • phone
    • email
    • salary
    • is_published
    • published_at
    • visibility
    • skills
    • experiences
    • educations
    • region

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/cv HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {}
    }
    {
      "response": {
        "resumes": [{
          "id": 88012,
          "full_name": "Ivan Petrov",
          "first_name": "Ivan",
          "last_name": "Petrov",
          "middle_name": "Sergeevich",
          "position": "Product Manager",
          "phone": "+79991234567",
          "email": "[email protected]",
          "salary": {"from": 220000, "currencySign": "₽"},
          "is_published": true,
          "published_at": "2026-09-01T12:00:00+03:00",
          "visibility": "everyone",
          "skills": ["SQL", "product management"],
          "experiences": [{"company": "Example Corp", "position": "Product Manager"}],
          "educations": [{"organization": "MGU"}],
          "region": {"id": 1, "name": "Москва"}
        }]
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据“我的简历”界面与投递简历选择器重建
    • 字段名取自简历列表载荷
  • 列出雇主对简历的浏览

    POST /v1/cv/viewers osint

    为简历浏览页列出打开过简历的雇主(viewDate、isNew、company.id/name/url)。

    认证方式: 需要 X-Token。

    • resumeId
    • offset
    • limit
    • total
    • views
    • viewDate
    • isNew
    • company
    • id
    • name
    • url
    • offerBranches

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/cv/viewers HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {
        "resumeId": 88012,
        "offset": 0,
        "limit": 20
      }
    }
    {
      "response": {
        "total": 128,
        "views": [{
          "viewDate": "2026-09-22T09:14:00+03:00",
          "isNew": true,
          "company": {
            "id": 1337,
            "name": "Example Corp",
            "url": "https://example.org/company/1337",
            "offerBranches": []
          }
        }]
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据“谁看过我的简历”界面及其雇主载荷重建
  • 简历统计

    POST /v1/cv/stats opendata

    返回“我的简历”仪表盘上每份简历的计数器(views、viewsNew、responses、responsesNew、vacancies、vacanciesNew)。

    认证方式: 需要 X-Token。

    • statistics
    • id
    • views
    • viewsNew
    • responses
    • responsesNew
    • vacancies
    • vacanciesNew
    • query
    • location

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/cv/stats HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {}
    }
    {
      "response": {
        "statistics": [{
          "id": 88012,
          "views": 128,
          "viewsNew": 7,
          "responses": 14,
          "responsesNew": 2,
          "vacancies": 42,
          "vacanciesNew": 5,
          "query": "product manager",
          "location": {"type": "region", "name": "Москва", "regionId": 1}
        }]
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据“我的简历”仪表盘计数器重建
    • 字段名取自每份简历的统计载荷
  • 列出收藏的职位

    POST /v1/jobs/saved opendata

    为“收藏”标签页分页返回已保存的职位(title、salary、company、is_favourite、responded_recently)。

    认证方式: 需要 X-Token。

    • fields
    • sort
    • offset
    • limit
    • vacancies
    • id
    • title
    • is_favourite
    • salary
    • company
    • short_description
    • publish_start_at
    • responded_recently
    • is_allow_express_resume

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/jobs/saved HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {
        "fields": ["id", "places", "is_favourite", "title", "salary", "is_promoted", "company", "short_description", "response", "places_summary", "contact_person", "status", "publish_start_at", "responded_recently", "is_allow_express_resume"],
        "sort": "add_to_fav",
        "offset": 0,
        "limit": 20
      }
    }
    {
      "response": {
        "vacancies": [{
          "id": 55102113,
          "title": "Product Manager",
          "is_favourite": true,
          "salary": {"from": 180000, "to": 250000, "currencySign": "₽"},
          "company": {"id": 1337, "name": "Example Corp"},
          "short_description": "Own the candidate experience squad.",
          "publish_start_at": "2026-09-20T10:15:00+03:00",
          "responded_recently": false
        }]
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据“收藏”标签页列表重建
    • 字段名取自收藏职位卡片载荷
  • 列出职位提醒订阅

    POST /v1/alerts opendata

    为“提醒”界面列出已保存的职位提醒订阅(id、isReceiveEmails、searchParams、newVacanciesQuantity)。

    认证方式: 需要 X-Token。

    • total
    • subscriptions
    • id
    • isReceiveEmails
    • newVacanciesQuantity
    • searchParams
    • query
    • location

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/alerts HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {}
    }
    {
      "response": {
        "total": 3,
        "subscriptions": [{
          "id": 77401,
          "isReceiveEmails": true,
          "newVacanciesQuantity": 12,
          "searchParams": {
            "query": "product manager",
            "location": {"type": "region", "name": "Москва", "regionId": 1}
          }
        }]
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据职位提醒/订阅界面重建
    • 字段名取自订阅行载荷
  • 投递的招聘方聊天

    POST /v1/messages opendata

    分页返回某次投递的招聘方/求职者消息(authorName、text、isEmployerMessage、sentAt)。配套的 POST /v1/messages/send 接受 responseId 与 text。

    认证方式: 需要 X-Token。

    • responseId
    • limit
    • offset
    • messages
    • id
    • authorId
    • sentAt
    • authorName
    • authorSurname
    • text
    • isEmployerMessage
    • isNewMessage
    • updatedAt

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/messages HTTP/1.1
    X-Token: xt_7f3a9c2e1b
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {
        "responseId": 901334,
        "limit": 50,
        "offset": 0
      }
    }
    {
      "response": {
        "messages": [{
          "id": 4401,
          "authorId": 1337,
          "sentAt": "2026-09-22T11:04:00+03:00",
          "authorName": "Anna",
          "authorSurname": "Petrova",
          "text": "When can you start?",
          "isEmployerMessage": true,
          "isNewMessage": true,
          "updatedAt": "2026-09-22T11:04:00+03:00"
        }]
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据投递聊天会话界面重建
    • 配套的发送变体接受 responseId 与 text
  • 职业薪资聚合

    POST /v1/insights/salary opendata

    为与职位关联的职业/薪资洞察界面返回职业薪资分桶(salary、vacancyCount)以及 name 与 slug。

    认证方式: 可选 X-Token。

    • vacancyId
    • id
    • name
    • slug
    • specialization
    • salaries
    • salary
    • vacancyCount

    依据应用界面重构的示意示例,并非实时抓包。

    POST /v1/insights/salary HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    
    {
      "request": {
        "vacancyId": 55102113
      }
    }
    {
      "response": {
        "id": 73,
        "name": "Менеджер продукта",
        "slug": "product-manager",
        "specialization": {"id": 12, "name": "IT"},
        "salaries": {
          "salaries": [
            {"salary": 150000, "vacancyCount": 80},
            {"salary": 220000, "vacancyCount": 40}
          ]
        }
      }
    }

    依据应用界面推导;端点细节为示意说明,并非实际抓包。

    • 依据职位卡片上的职业/薪资洞察界面重建
    • 字段名取自职业薪资分桶载荷

数据类别

  • 会话令牌
  • 求职者资料
  • 职位列表
  • 雇主卡片
  • 投递
  • 简历
  • 简历浏览
  • 收藏的职位
  • 职位提醒
  • 招聘方聊天
  • 薪资聚合

数据使用场景与案例

  • 区域职位普查

    用 POST /v1/jobs/query 传入 location.regionId 与 filters.salary,拉取 title、salary.from/to/currencySign、company.name 与 places,再经 /v1/jobs/cards 注水完整描述——无需抓取搜索 HTML 即可得到劳动力市场叠加层。

  • 投递流程叠加层

    轮询 /v1/applications 获取 status、hasNew 与 isAutoresponse,再分页 /v1/messages(authorName、text、isEmployerMessage、sentAt),让辅助收件箱只浮现含新雇主消息的会话。

  • 简历可见性仪表盘

    结合 /v1/cv/stats(views、viewsNew、responses、vacancies)与 /v1/cv/viewers(viewDate、isNew、company.name/url),绘制哪些雇主打开过已发布简历的图表。

  • 薪资区间查询

    用 vacancyId 调用 /v1/insights/salary,读取职业 name、slug 与 salaries[].salary/vacancyCount,将一份报价与该招聘板自身的分布对比。

常见问题

Rabota.ru 安卓应用如何对 API 调用鉴权?

无需认证的 POST /v1/auth/password(login、password、recaptchaResponse)或 /v1/auth/code(login、accessCode)返回 token 及 tokenV3.accessToken、expiresIn 与 signature。之后每个登录调用都把该令牌作为 X-Token 头发送。

哪些端点驱动职位搜索?

POST /v1/jobs/query 接受 query、location.regionId、filters.salary 与 fields 列表,返回 total、relevant、vacancies[]、similarVacancies[] 与 facets。职位详情卡片由 POST /v1/jobs/cards 按 vacancyIds 注水。

简历与投递位于哪些端点?

POST /v1/cv 列出简历(full_name、position、is_published)。用 POST /v1/applications/create(vacancyId、resumeId)投递。“投递”标签页分页 /v1/applications;招聘方聊天是 /v1/messages。

请求体如何组织?

Android 客户端提交 JSON,多数 v1 职位/简历/投递调用把载荷包裹为 {request: ...}。配套的较旧网页流程独立于这套原生接口面。

相关主题

  • rabota.ru api
  • rabota.ru 安卓数据 api
  • X-Token
  • 职位搜索
  • 简历浏览
  • 招聘方聊天
  • 薪资聚合
  • rabota.ru 职位搜索

需要集成这个 App 的数据 API?

我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。

  • 每个项目均签 NDA 与 SOW
  • 3–7 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价