WorkIndia 求职应用数据 API:职位与档案
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 把这些记录变成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
发送登录 OTP
POST
/v1/seeker/phone/otp/startosint在校验验证码之前向手机号发送 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/confirmosint确认短信 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/openosint提交候选人登录体,返回 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/enrolosint创建新候选人,返回 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/rotateosint用 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/dossierosint水合「我的账户」/资料页:身份、期望薪资、行业、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/patchosint把账户页上的资料修改写回(城市、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-localityopendata把 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-rankopendata驱动首页/搜索列表:分页 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}/cardopendata水合职位详情页:完整描述、薪资结构、网点地址/坐标、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-youopendata返回与已登录候选人匹配的职位,含 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}/neighboursopendata加载职位详情页上的相似职位条。
认证方式: 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-tilesopendata列出类别卡片(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/savedopendata分页返回收藏职位流水(含 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-unlocksopendata列出雇主已解锁/查看过该候选人的职位(带 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}/applyopendata记录应用内投递,并将职位上的 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-recruiteropendata记录「拨打 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-recruiteropendata记录 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-pingopendata在到场面试跟踪路径上上报 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-linkopendata返回到场面试的招聘跟踪卡片(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}/engagementopendata读取职位互动计数(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 天交付
- 验收通过后才付款
- 仅在授权范围内作业