WorkIndia Job Search App 图标

WorkIndia 求职应用数据 API:职位与档案

WorkIndia · 招聘求职

WorkIndia Job Search App 是 WorkIndia 面向求职者的 Android 客户端。WorkIndia 由 Nilesh Dungarwal 创办,服务印度蓝领与灰领城市岗位——配送、销售、仓储、安保、保洁等一线工作。登录靠手机号 OTP;之后首页是按候选人城市和街区排序的超本地职位流,每张卡片展示岗位、薪资区间、公司、区域、招聘名额、班次时间、所需经验和居家办公标记。点进详情可看到完整描述、网点地址与怎么走、HR 联系人、面试说明和资格问题,主要动作是拨打 HR、WhatsApp、应用内投递或加入收藏。账户页保存姓名、手机号、城市、期望薪资、经验、学历、过往公司、意向行业、语言、简历链接和会员/Gold 标记;到场面试路径上还有招聘跟踪与实时位置分享。应用面向印度,在大批量一线招聘上与 apna、Job Hai、Shine 和 Naukri Fast 竞争,而不是 LinkedIn 式的白领人脉社交。

排序职位卡片 ranked_jobs 为每个空缺打上 profile_job_title、profile_min_salary 与 profile_max_salary,以及招聘网点的 branch_company_name、branch_location_city_name 和 no_of_openings。候选人身份与同一会话中的 full_name、mobile_no、expectedSalary、preferred_sectors 以及 OTP 校验后的 oauth 令牌对 access_token / refresh_token 一起下发。

到场面试跟踪会把 latitude 与 longitude 写到实时位置采集,跟踪卡片带 link 和 description。招聘聚合可以把薪资区间对上城市用工需求;HR 运营可跟踪 isEmployerUnlocked、calls 与收藏流水里的 actionPerformedAt;入职系统能复用学历与公司经历行。openData Studio 把这些记录变成可调用的开放数据。

应用截图

  • WorkIndia Job Search App 应用截图 1
  • WorkIndia Job Search App 应用截图 2
  • WorkIndia Job Search App 应用截图 3
  • WorkIndia Job Search App 应用截图 4
  • WorkIndia Job Search App 应用截图 5

API 端点一览

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

  • 发送登录 OTP

    POST /v1/seeker/phone/otp/start osint

    在校验验证码之前向手机号发送 OTP。返回 was_code_generated、otp_limit_exceeded、candidate_status 以及已有候选人的 name,另带 Notp(notpEnabled、accountSID、appID、appSecret)。

    认证方式: 未认证。JSON 请求体,发送 Accept: application/json 与应用版本头。

    • mobile_no
    • was_code_generated
    • otp_limit_exceeded
    • candidate_status
    • name
    • api_version
    • registration
    • notp
    • notpEnabled
    • accountSID
    • appID
    • appSecret
    POST /v1/seeker/phone/otp/start HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    
    {
      "mobile_no": "9876543210"
    }
    {
      "was_code_generated": true,
      "otp_limit_exceeded": false,
      "candidate_status": "existing",
      "name": "Rahul Sharma",
      "api_version": {"registration": 12},
      "notp": {
        "notpEnabled": true,
        "accountSID": "<account_sid>",
        "appID": "<app_id>",
        "appSecret": "<app_secret>"
      }
    }
  • 校验登录 OTP

    POST /v1/seeker/phone/otp/confirm osint

    确认短信 OTP。后续请求用 oauth.access_token / refresh_token 作为 Authorization;客户端在 HTTP 401 时重试。

    认证方式: 未认证。JSON 请求体,发送 Accept: application/json 与应用版本头。

    • mobile_no
    • otp
    • candidate
    • id
    • full_name
    • is_otp_verified
    • oauth
    • access_token
    • refresh_token
    • token_type
    • expires_in
    • scope
    POST /v1/seeker/phone/otp/confirm HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    
    {
      "mobile_no": "9876543210",
      "otp": "482193"
    }
    {
      "error": false,
      "message": "verified",
      "candidate": {
        "id": 44189012,
        "mobile_no": "9876543210",
        "full_name": "Rahul Sharma",
        "is_otp_verified": true
      },
      "oauth": {
        "access_token": "<access_token>",
        "refresh_token": "<refresh_token>",
        "token_type": "Bearer",
        "expires_in": "86400",
        "scope": "candidate"
      }
    }
  • 候选人登录

    POST /v1/seeker/session/open osint

    提交候选人登录体,返回 candidate 与 OnboardingMetaData.onboardingVersion。

    认证方式: 未认证。提交候选人登录体;响应为 candidate 与 metaData。

    • mobile_no
    • device_id
    • app_version
    • language
    • city
    • google_advertising_id
    • candidate
    • id
    • full_name
    • email_id
    • location
    • is_otp_verified
    • is_premium
    • expectedSalary
    • experience_level
    • profile_pic
    • metaData
    • onboardingVersion
    POST /v1/seeker/session/open HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    
    {
      "mobile_no": "9876543210",
      "device_id": "a1b2c3d4e5f6",
      "app_version": "7.1.7.3",
      "language": "en",
      "city": "Mumbai",
      "google_advertising_id": "00000000-0000-0000-0000-000000000000"
    }
    {
      "candidate": {
        "id": 44189012,
        "full_name": "Rahul Sharma",
        "mobile_no": "9876543210",
        "email_id": "[email protected]",
        "city": "Mumbai",
        "location": "Andheri East",
        "is_otp_verified": true,
        "is_premium": false,
        "expectedSalary": 18000,
        "experience_level": "0-1",
        "profile_pic": "https://cdn.example/avatar.png"
      },
      "metaData": {"onboardingVersion": "v12"}
    }
  • 注册候选人

    POST /v1/seeker/enrol osint

    创建新候选人,返回 candidate、oauth 令牌与 OnboardingMetaData。

    认证方式: 未认证。新候选人注册;响应含 oauth。

    • full_name
    • mobile_no
    • gender
    • date_of_birth
    • city
    • location
    • expectedSalary
    • experience_level
    • qualification_type
    • preferred_sectors
    • languages_known
    • willing_to_relocate
    • urgently_looking_job
    • register_mode
    • candidate
    • id
    • is_otp_verified
    • profile_state
    • my_referral_code
    • oauth
    • access_token
    • refresh_token
    • token_type
    • metaData
    • onboardingVersion
    POST /v1/seeker/enrol HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    
    {
      "full_name": "Rahul Sharma",
      "mobile_no": "9876543210",
      "gender": "male",
      "date_of_birth": "1998-04-12",
      "city": "Mumbai",
      "location": "Andheri East",
      "expectedSalary": 18000,
      "experience_level": "0-1",
      "qualification_type": "10th",
      "preferred_sectors": ["delivery", "sales"],
      "languages_known": ["Hindi", "English"],
      "willing_to_relocate": false,
      "urgently_looking_job": true,
      "register_mode": "otp",
      "language": "en"
    }
    {
      "candidate": {
        "id": 44189012,
        "full_name": "Rahul Sharma",
        "mobile_no": "9876543210",
        "city": "Mumbai",
        "is_otp_verified": true,
        "profile_state": 1,
        "my_referral_code": "WI-RAHUL12"
      },
      "oauth": {
        "access_token": "<access_token>",
        "refresh_token": "<refresh_token>",
        "token_type": "Bearer",
        "expires_in": "86400",
        "scope": "candidate"
      },
      "metaData": {"onboardingVersion": "v12"}
    }
  • 刷新 OAuth 令牌

    POST /v1/seeker/session/rotate osint

    用 refresh_token 换发新的 oauth access_token。客户端在 HTTP 401 时调用;payload 为 Oauth 令牌对。

    认证方式: Authorization: Bearer <access_token>,请求体携带 refresh_token。客户端在 HTTP 401 时重试。

    • refresh_token
    • error
    • message
    • payload
    • access_token
    • token_type
    • expires_in
    • scope
    POST /v1/seeker/session/rotate HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    Authorization: Bearer <access_token>
    
    {
      "refresh_token": "<refresh_token>"
    }
    {
      "error": false,
      "message": "ok",
      "payload": {
        "access_token": "<new_access_token>",
        "refresh_token": "<new_refresh_token>",
        "token_type": "Bearer",
        "expires_in": "86400",
        "scope": "candidate"
      }
    }
  • 读取候选人资料

    GET /v1/seeker/dossier osint

    水合「我的账户」/资料页:身份、期望薪资、行业、educationDetailsArrayList、companyDetails 与 resume_link。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • id
    • full_name
    • mobile_no
    • email_id
    • gender
    • date_of_birth
    • city
    • location
    • current_salary
    • expectedSalary
    • experience_level
    • totalExperience
    • notice_period
    • qualification_type
    • speaking_english_level
    • languages_known
    • preferred_sectors
    • preferred_job_cities
    • willing_to_relocate
    • urgently_looking_job
    • is_premium
    • is_otp_verified
    • resume_link
    • profile_pic
    • educationDetailsArrayList
    • college_name
    • course
    • passingYear
    • companyDetails
    • companyName
    • designation
    • salary
    • workType
    GET /v1/seeker/dossier HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "id": 44189012,
      "full_name": "Rahul Sharma",
      "mobile_no": "9876543210",
      "email_id": "[email protected]",
      "gender": "male",
      "date_of_birth": "1998-04-12",
      "city": "Mumbai",
      "location": "Andheri East",
      "current_salary": "15000",
      "expectedSalary": 18000,
      "experience_level": "0-1",
      "totalExperience": 12,
      "notice_period": "immediate",
      "qualification_type": "10th",
      "speaking_english_level": 2,
      "languages_known": ["Hindi", "English"],
      "preferred_sectors": ["delivery", "sales"],
      "preferred_job_cities": ["Mumbai", "Thane"],
      "willing_to_relocate": false,
      "urgently_looking_job": true,
      "is_premium": false,
      "is_otp_verified": true,
      "resume_link": "https://files.example/candidate-resume/44189012.pdf",
      "profile_pic": "https://cdn.example/avatar.png",
      "educationDetailsArrayList": [{
        "college_name": "Municipal High School",
        "course": "SSC",
        "degree_id": 1,
        "passingYear": 2014,
        "specialization": ""
      }],
      "companyDetails": [{
        "companyName": "Example Logistics",
        "designation": "Delivery Executive",
        "industry": "logistics",
        "isCurrent": false,
        "salary": 14000,
        "workType": "full_time"
      }]
    }
  • 更新候选人资料

    PUT /v1/seeker/dossier/patch osint

    把账户页上的资料修改写回(城市、expectedSalary、行业、workShift / workType / workMode)。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • id
    • full_name
    • email_id
    • city
    • location
    • expectedSalary
    • notice_period
    • preferred_sectors
    • languages_known
    • willing_to_relocate
    • workShift
    • workType
    • workMode
    • shouldUpdateProfile
    • profile_update_state
    PUT /v1/seeker/dossier/patch HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    Authorization: Bearer <access_token>
    
    {
      "id": 44189012,
      "full_name": "Rahul Sharma",
      "email_id": "[email protected]",
      "city": "Mumbai",
      "location": "Andheri East",
      "expectedSalary": 20000,
      "notice_period": "7 days",
      "preferred_sectors": ["delivery", "warehouse"],
      "languages_known": ["Hindi", "English", "Marathi"],
      "willing_to_relocate": true,
      "workShift": ["day"],
      "workType": ["full_time"],
      "workMode": ["office"]
    }
    {
      "id": 44189012,
      "full_name": "Rahul Sharma",
      "email_id": "[email protected]",
      "city": "Mumbai",
      "location": "Andheri East",
      "expectedSalary": 20000,
      "notice_period": "7 days",
      "preferred_sectors": ["delivery", "warehouse"],
      "shouldUpdateProfile": false,
      "profile_update_state": 2
    }
  • 按 GPS 解析最近城市

    GET /v1/geo/nearest-locality opendata

    把 GPS 坐标映射到城市/街区分类,用于给职位流定城市。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • latitude
    • longitude
    • city
    • location
    • sub_city
    GET /v1/geo/nearest-locality?latitude=19.0760&longitude=72.8777 HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "city": "Mumbai",
      "location": "Andheri East",
      "sub_city": "Andheri"
    }
  • 筛选职位搜索

    GET /v1/openings/city-rank opendata

    驱动首页/搜索列表:分页 ranked_jobs,含薪资区间、公司、街区、招聘名额、居家办公标记与 jobFilters 筛选面。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • jobCount
    • fetch_next
    • actualCity
    • isMainListingJobs
    • candidateData
    • city
    • location
    • overriddenCity
    • jobFilters
    • primaryFilters
    • constantName
    • displayName
    • toggleFilter
    • ranked_jobs
    • id
    • profile_job_title
    • profile_min_salary
    • profile_max_salary
    • branch_company_name
    • company_logo
    • branch_location_city_name
    • branch_location_name
    • no_of_openings
    • isWorkFromHome
    • job_timings
    • jobState
    • profile_qualification_required
    • distance_away
    GET /v1/openings/city-rank?city=Mumbai&location=Andheri&query=delivery&offset=0&limit=20 HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "jobCount": 1284,
      "fetch_next": "20",
      "actualCity": "Mumbai",
      "isMainListingJobs": true,
      "candidateData": {
        "city": "Mumbai",
        "location": "Andheri East",
        "overriddenCity": null
      },
      "jobFilters": {
        "primaryFilters": [{"constantName": "delivery", "displayName": "Delivery"}],
        "toggleFilter": {"constantName": "wfh", "displayName": "Work from home"},
        "primaryGroupFilters": []
      },
      "ranked_jobs": [{
        "id": 8845123,
        "profile_job_title": "Delivery Executive",
        "profile_min_salary": 15000,
        "profile_max_salary": 22000,
        "branch_company_name": "Example Logistics",
        "company_logo": "https://cdn.example/logo.png",
        "branch_location_city_name": "Mumbai",
        "branch_location_name": "Andheri East",
        "no_of_openings": 12,
        "isWorkFromHome": false,
        "job_timings": "09:00-18:00",
        "experience": "0-1 years",
        "job_type": "full_time",
        "jobState": "live",
        "profile_qualification_required": "10th pass",
        "distance_away": "3.2 km"
      }]
    }
  • 职位详情

    GET /v1/openings/{openingId}/card opendata

    水合职位详情页:完整描述、薪资结构、网点地址/坐标、HR 联系人、面试说明以及投递/拨打状态。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • id
    • profile_job_title
    • profile_job_description
    • profile_min_salary
    • profile_max_salary
    • profile_incentives
    • profile_salary_structure
    • profile_qualification_required
    • job_timings
    • no_of_openings
    • isWorkFromHome
    • jobState
    • branch_company_name
    • branch_address
    • branch_landmark
    • branch_how_to_reach
    • branch_location_city_name
    • branch_location_name
    • branch_location_latitude
    • branch_location_longitude
    • branch_contact_person_name
    • interview_address
    • interview_details
    • calls
    • views
    • isFavourite
    • isJobApplied
    • isEmployerUnlocked
    • isChatApplicable
    • applyJobLink
    GET /v1/openings/8845123/card HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "id": 8845123,
      "profile_job_title": "Delivery Executive",
      "profile_job_description": "Pick up and drop parcels across Mumbai. Two-wheeler required.",
      "profile_min_salary": 15000,
      "profile_max_salary": 22000,
      "profile_incentives": "Fuel + per-delivery bonus",
      "profile_salary_structure": "Fixed + incentive",
      "profile_qualification_required": "10th pass",
      "profile_weekly_off": "Sunday",
      "job_timings": "09:00-18:00",
      "no_of_openings": 12,
      "isWorkFromHome": false,
      "jobState": "live",
      "branch_company_name": "Example Logistics",
      "branch_address": "Andheri East, Mumbai",
      "branch_landmark": "Near metro station",
      "branch_how_to_reach": "Western Express Highway",
      "branch_location_city_name": "Mumbai",
      "branch_location_name": "Andheri East",
      "branch_location_latitude": "19.1197",
      "branch_location_longitude": "72.8468",
      "branch_contact_person_name": "Priya Nair",
      "interview_address": "Same as branch",
      "interview_details": "Walk-in 11am-4pm",
      "calls": 86,
      "views": 412,
      "isFavourite": false,
      "isJobApplied": false,
      "isEmployerUnlocked": false,
      "isChatApplicable": true,
      "applyJobLink": "https://share.example/opening"
    }
  • 推荐职位

    GET /v1/openings/for-you opendata

    返回与已登录候选人匹配的职位,含 isRecommended 与 recommendedBy。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • jobCount
    • fetch_next
    • ranked_jobs
    • id
    • profile_job_title
    • profile_min_salary
    • profile_max_salary
    • branch_company_name
    • branch_location_city_name
    • isRecommended
    • recommendedBy
    • jobState
    GET /v1/openings/for-you HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "jobCount": 24,
      "fetch_next": null,
      "ranked_jobs": [{
        "id": 8845201,
        "profile_job_title": "Warehouse Associate",
        "profile_min_salary": 14000,
        "profile_max_salary": 18000,
        "branch_company_name": "Example Retail",
        "branch_location_city_name": "Mumbai",
        "isRecommended": true,
        "recommendedBy": "preferred_sectors",
        "jobState": "live"
      }]
    }
  • 相似职位

    GET /v1/openings/{openingId}/neighbours opendata

    加载职位详情页上的相似职位条。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • jobCount
    • ranked_jobs
    • id
    • profile_job_title
    • profile_min_salary
    • profile_max_salary
    • branch_company_name
    • branch_location_city_name
    • related_jobs
    GET /v1/openings/8845123/neighbours HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "jobCount": 8,
      "ranked_jobs": [{
        "id": 8845308,
        "profile_job_title": "Delivery Rider",
        "profile_min_salary": 16000,
        "profile_max_salary": 23000,
        "branch_company_name": "Example Express",
        "branch_location_city_name": "Mumbai",
        "related_jobs": "8845123"
      }]
    }
  • 职位类别

    GET /v1/openings/sector-tiles opendata

    列出类别卡片(position 与含 id / displayString / icon 的 jobCategories),用于跳进行业信息流。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • error
    • message
    • payload
    • position
    • jobCategories
    • id
    • displayString
    • icon
    • drawable
    • url
    • tint
    GET /v1/openings/sector-tiles?city=Mumbai HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "error": false,
      "message": "ok",
      "payload": {
        "position": 0,
        "jobCategories": [{
          "id": "delivery",
          "displayString": "Delivery",
          "icon": {
            "drawable": "ic_delivery",
            "url": "https://cdn.example/cat_delivery.png",
            "tint": "#1A73E8"
          }
        }]
      }
    }
  • 收藏职位

    GET /v1/openings/saved opendata

    分页返回收藏职位流水(含 actionPerformedAt 的 JobData 行)。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • count
    • next
    • prev
    • jobs
    • actionPerformedAt
    • job
    • id
    • profile_job_title
    • profile_min_salary
    • profile_max_salary
    • branch_company_name
    • isFavourite
    • favorite_on
    GET /v1/openings/saved?page=1&limit=20 HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "count": 6,
      "next": null,
      "prev": null,
      "jobs": [{
        "actionPerformedAt": "2026-10-08T11:04:00Z",
        "job": {
          "id": 8845123,
          "profile_job_title": "Delivery Executive",
          "profile_min_salary": 15000,
          "profile_max_salary": 22000,
          "branch_company_name": "Example Logistics",
          "branch_location_city_name": "Mumbai",
          "isFavourite": true,
          "favorite_on": "2026-10-08T11:04:00Z"
        }
      }]
    }
  • HR 已查看的职位

    GET /v1/openings/recruiter-unlocks opendata

    列出雇主已解锁/查看过该候选人的职位(带 isEmployerUnlocked 的 unlockedJobs)。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • next
    • unlockedJobs
    • id
    • profile_job_title
    • branch_company_name
    • isEmployerUnlocked
    • profileCount
    • calls
    • jobState
    GET /v1/openings/recruiter-unlocks?page=1&limit=20 HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "next": 2,
      "unlockedJobs": [{
        "id": 8845123,
        "profile_job_title": "Delivery Executive",
        "branch_company_name": "Example Logistics",
        "isEmployerUnlocked": true,
        "profileCount": 1,
        "calls": 1,
        "jobState": "live"
      }]
    }
  • 投递职位

    POST /v1/openings/{openingId}/apply opendata

    记录应用内投递,并将职位上的 isJobApplied / applied_on 置为已投。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • job_id
    • candidate_id
    • candidateApplyType
    • jobApplicationSource
    • id
    • isJobApplied
    • applied
    • applied_on
    • candidateJobAction
    POST /v1/openings/8845123/apply HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    Authorization: Bearer <access_token>
    
    {
      "job_id": 8845123,
      "candidate_id": 44189012,
      "candidateApplyType": "in_app",
      "jobApplicationSource": "job_detail"
    }
    {
      "id": 8845123,
      "isJobApplied": true,
      "applied": true,
      "applied_on": "2026-10-09T06:12:00Z",
      "candidateJobAction": "applied",
      "candidateApplyType": "in_app"
    }
  • 拨打 HR

    POST /v1/openings/{openingId}/call-recruiter opendata

    记录「拨打 HR」点击,通常会把职位上的 isEmployerUnlocked 置真并增加 calls。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • job_id
    • candidate_id
    • callContactedActionType
    • id
    • isEmployerUnlocked
    • calls
    • candidateJobAction
    POST /v1/openings/8845123/call-recruiter HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    Authorization: Bearer <access_token>
    
    {
      "job_id": 8845123,
      "candidate_id": 44189012,
      "callContactedActionType": "call"
    }
    {
      "id": 8845123,
      "isEmployerUnlocked": true,
      "calls": 87,
      "callContactedActionType": "call",
      "candidateJobAction": "employer_contacted_call"
    }
  • WhatsApp 联系 HR

    POST /v1/openings/{openingId}/whatsapp-recruiter opendata

    记录 WhatsApp 联系 HR,并在职位上写入 whatsAppContactEpochTime。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • job_id
    • candidate_id
    • callContactedActionType
    • id
    • isEmployerUnlocked
    • whatsAppContactEpochTime
    • candidateJobAction
    POST /v1/openings/8845123/whatsapp-recruiter HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    Authorization: Bearer <access_token>
    
    {
      "job_id": 8845123,
      "candidate_id": 44189012,
      "callContactedActionType": "whatsapp"
    }
    {
      "id": 8845123,
      "isEmployerUnlocked": true,
      "whatsAppContactEpochTime": 1760000000000,
      "callContactedActionType": "whatsapp",
      "candidateJobAction": "employer_contacted_whatsapp"
    }
  • 采集实时位置

    POST /v1/walkin/gps-ping opendata

    在到场面试跟踪路径上上报 GPS。地理载荷携带 latitude 与 longitude。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • candidate_id
    • job_id
    • latitude
    • longitude
    • error
    • message
    POST /v1/walkin/gps-ping HTTP/1.1
    Accept: application/json
    Content-Type: application/json
    Authorization: Bearer <access_token>
    
    {
      "candidate_id": 44189012,
      "job_id": 8845123,
      "latitude": 19.1197,
      "longitude": 72.8468
    }
    {
      "error": false,
      "message": "ok"
    }
  • 招聘跟踪链接

    GET /v1/walkin/share-link opendata

    返回到场面试的招聘跟踪卡片(description / link),供候选人赶往面试时使用。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • description
    • link
    GET /v1/walkin/share-link HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "description": "Share live location with HR while you travel to the interview",
      "link": "https://track.example/walkin/call-list?data=<payload>"
    }
  • 政府职位详情

    GET /v1/public-service/{openingId} opendata

    从公共服务职位目录水合职位卡片,含报名方式与报名费字段。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • id
    • profile_job_title
    • profile_job_description
    • profile_min_salary
    • profile_max_salary
    • profile_how_to_apply
    • profile_application_fees
    • profile_selection_procedure
    • jobState
    • jobPostType
    GET /v1/public-service/12045 HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "id": 12045,
      "profile_job_title": "Constable",
      "profile_job_description": "State police recruitment, physical + written.",
      "profile_min_salary": 21700,
      "profile_max_salary": 69100,
      "profile_how_to_apply": "Apply on the official portal before the closing date.",
      "profile_application_fees": "100",
      "profile_selection_procedure": "PET + written + medical",
      "jobState": "live",
      "jobPostType": "government"
    }
  • 职位来电与浏览量

    GET /v1/openings/{openingId}/engagement opendata

    读取职位互动计数(jobCall / jobViews)。

    认证方式: OTP 校验后的 Authorization: Bearer <access_token>,另带应用版本头。

    • jobCall
    • jobViews
    GET /v1/openings/8845123/engagement HTTP/1.1
    Accept: application/json
    Authorization: Bearer <access_token>
    {
      "jobCall": "86",
      "jobViews": "412"
    }

数据类别

  • 职位列表
  • 候选人档案
  • 投递记录
  • 身份
  • 位置
  • 简历

数据使用场景与案例

  • 城市劳动力行情

    招聘看板按城市和街区翻页 ranked_jobs,用 profile_min_salary / profile_max_salary、no_of_openings 与 jobCategoryDisplayValue 观察本周哪些一线岗位在招人。

  • 候选人档案预填

    入职工具读取 full_name、mobile_no、expectedSalary、preferred_sectors、educationDetailsArrayList 与 companyDetails,避免第二个平台再问一遍工作经历。

  • 投递、拨打 HR 与解锁流水

    HR 运营机器人跟踪 isJobApplied、applied_on、isEmployerUnlocked、calls、whatsAppContactEpochTime 以及收藏列表里的 JobData.actionPerformedAt,衡量应用内投递后到拨打电话的时延。

  • 到场面试位置种子

    把 GPS 坐标解析成 city / location / sub_city 作为职位流默认筛选,并在候选人赶往现场时把 latitude / longitude 写到实时位置采集和招聘跟踪链接上。

常见问题

WorkIndia 如何认证候选人?

先生成并校验手机号 OTP,注册返回含 access_token、refresh_token 与 token_type 的 oauth。后续请求携带 Authorization: <token_type> <access_token> 和 x-wi-app-version;遇到 HTTP 401 时 TokenAuthenticator 会通过 refresh-token 刷新令牌。

职位卡片上有哪些字段?

每条 ranked_jobs 含 profile_job_title、profile_min_salary、profile_max_salary、branch_company_name、branch_location_city_name、no_of_openings、isWorkFromHome、job_timings 与 jobState。详情接口再补 profile_job_description、branch_address、interview_details 和 HR 联系人字段。

能否看到谁查看过候选人?

HR 已查看列表返回带 isEmployerUnlocked 与 profileCount 的 unlockedJobs,对应雇主打开过该候选人的职位。收藏是另一条带 actionPerformedAt 的分页 JobData 列表。拨打 HR 与 WhatsApp 事件会写入 calls 和 whatsAppContactEpochTime。

这是公开的开发者 API 吗?

不是。这些是 Android 客户端在 OTP 登录后使用的第一方端点,在此作为数据面记录,而非受支持的公开 SDK。

与 WorkIndia Job Search App 相似的应用

  • apna - Search Job, Vacancy App — apna 是面向印度蓝领、入门岗和二三线城市招聘的手机优先求职应用,支持地区语言,并可直接与雇主聊天。
  • Naukri: Job Search App — Naukri 是偏招聘方的印度职位板,常用于 IT、银行、运营等办公室岗位的批量招聘,求职者常与本地蓝领应用搭配以覆盖更广。
  • Indeed Job Search — Indeed 把公司官网和其他招聘板上的印度职位汇总到同一搜索里,并提供 Easy Apply 与已保存简历。
  • Shine.com Job Search App — Shine 是综合性的印度招聘门户,常与 Naukri、apna 一同被列为备选,覆盖中层职位并提供技能测试和课程等职业工具。
  • LinkedIn: Community & Network — LinkedIn 职位在印度主要用于职业社交、内推和公司白领岗位,而不是超本地的一线招聘。
  • foundit — foundit.in 是原 Monster India 改名后的招聘站,以 AI 职位匹配为主,并提供简历和面试辅助,面向中层岗位。
  • Internshala — Internshala 面向印度学生和应届生的实习与第一份工作,并提供课程和面向 ATS 的简历工具。

相关主题

  • WorkIndia API
  • WorkIndia 职位数据
  • 候选人档案
  • OTP 登录
  • ranked_jobs
  • profile_min_salary
  • 印度蓝领招聘

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

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

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

获取报价