Shine.com 职位搜索数据 API
Shine.com 招聘 App 是 HT Media 面向印度市场的招聘应用,其职位卡片依赖一组紧凑的字段——jCID、jJT、jCName、jLoc、jSal 与 jVanc——由 GET /v1/jobs/search 提供,并支持 farea、fexp、fsalary 等筛选。单个职位从 GET /v1/jobs/detail 加载,含 recruiter_name 与 job_skills。
在 POST /v1/auth/otp/verify 完成 OTP 登录后,登录候选人记录来自 GET /v1/profile/aggregate(notice_period、expected_salary、key_skills),上传的简历由 POST /v1/profile/resume/parse 结构化,招聘方兴趣则通过 POST /v1/profile/recruiter-activity 与 GET /v1/pages/profile-insights/schema 的 profileStrength 仪表盘呈现。
Shine.com 招聘 App(包名 com.net.shine,版本 8.9.50)是 HT Media 面向印度 Shine.com 招聘板的安卓客户端:求职者搜索筛选职位、查看详情、投递或收藏、上传简历,并关注资料上的招聘方动态。数据 API 为 HTTPS JSON,另有 BFF 架构服务驱动首页与仪表盘;登录后携带 OTP 登录签发的 Bearer JWT(accessToken、refreshToken、candidate_id),匿名搜索仍发送 device=app。职位卡片使用 jCID、jJT、jCName、jLoc、jSal、jVanc、is_applied、is_shortlisted 等紧凑字段。
应用截图
API 端点一览
搜索职位
GET
/v1/jobs/searchopendata返回经筛选的 Shine.com 职位列表(jJT 标题、jCName 雇主、jLoc、jSal/jSLA 薪资、jExp、jVanc 招聘人数、is_applied/is_shortlisted),供职位搜索结果页使用。
认证方式: 可选的 Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify。匿名搜索仍会发送 device=app。
- jobs
- jCID
- jJT
- jJT_slug
- jCName
- jCName_slug
- jCUID
- jLoc
- jExp
- jSal
- jSLA
- jPDate
- jJobType
- jEType
- jTypeC
- jVanc
- jACnt
- jKwds
- jRUrl
- jSlug
- jPJ
- jHJ
- is_applied
- is_shortlisted
- highlighted
- premium_job_flag
- emp_type
- farea
- fcid
- fexp
- findustry
- fsalary
- job_type
- shift_type
- sort
- device
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/jobs/search?q=software+engineer&location=Bengaluru&emp_type=full-time&farea=it&fcid=12&fexp=3-6&findustry=it&fsalary=8-12&job_type=permanent&shift_type=day&sort=relevance&device=app HTTP/1.1 Accept: application/json Authorization: Bearer <accessToken>{ "jobs": [{ "jCID": "87123456", "jJT": "Software Engineer", "jJT_slug": "software-engineer", "jCName": "Example Corp", "jCName_slug": "example-corp", "jCUID": "comp-441", "jLoc": "Bengaluru", "jExp": "3-6 Yrs", "jSal": "8-12 Lacs", "jSLA": "800000-1200000", "jPDate": "2026-09-24", "jJobType": "Permanent", "jEType": "Full Time", "jTypeC": "IT", "jVanc": 4, "jACnt": 86, "jKwds": ["Java", "Spring"], "jRUrl": "https://www.shine.com/jobs/software-engineer/87123456", "jSlug": "software-engineer-example-corp-bengaluru", "jPJ": true, "jHJ": false, "is_applied": false, "is_shortlisted": false, "highlighted": true, "premium_job_flag": true }], "count": 1284 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的职位搜索结果页及其筛选栏重构字段集镜像搜索结果中展示的职位卡片
获取职位详情
GET
/v1/jobs/detailopendata为职位详情页水合单个 Shine.com 职位(job_description、job_skills、薪资、招聘人数、recruiter_name/recruiter_email),含投递/收藏标记。
认证方式: 可选的 Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify。个性化标记(is_applied、is_shortlisted)需要登录的 candidate_id。
- jobId
- job_id
- jCID
- job_title
- jJT
- job_description
- job_skills
- company_name
- company_id
- jLoc
- jExp
- jSal
- jVanc
- job_postedDate
- jPDate
- job_type
- emp_type
- shift_type
- recruiter_name
- recruiter_email
- premium_job_flag
- is_applied
- is_shortlisted
- jACnt
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/jobs/detail?jobId=87123456 HTTP/1.1 Accept: application/json Authorization: Bearer <accessToken>{ "job_id": "87123456", "jCID": "87123456", "job_title": "Software Engineer", "jJT": "Software Engineer", "job_description": "<p>Build marketplace services in Bengaluru.</p>", "job_skills": ["Java", "Spring", "SQL"], "company_name": "Example Corp", "company_id": "comp-441", "jLoc": "Bengaluru", "jExp": "3-6 Yrs", "jSal": "8-12 Lacs", "jVanc": 4, "job_postedDate": "2026-09-24", "jPDate": "2026-09-24", "job_type": "Permanent", "emp_type": "full-time", "shift_type": "day", "recruiter_name": "Priya Sharma", "recruiter_email": "[email protected]", "premium_job_flag": true, "is_applied": false, "is_shortlisted": false, "jACnt": 86 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据候选人投递前打开的职位详情页重构字段集镜像职位头部、技能列表与招聘方区块
相似职位
GET
/v1/jobs/similaropendata为职位详情页的“相似职位”条返回相似 Shine.com 职位,使用与搜索相同的 jCID/jJT/jCName/jSal 卡片字段。
认证方式: 可选的 Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify。
- jobs
- jCID
- jJT
- jCName
- jLoc
- jExp
- jSal
- jPDate
- jJobType
- is_applied
- is_shortlisted
- jobId
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/jobs/similar?jobId=87123456 HTTP/1.1 Accept: application/json Authorization: Bearer <accessToken>{ "jobs": [{ "jCID": "87129901", "jJT": "Backend Engineer", "jCName": "Example Labs", "jLoc": "Bengaluru", "jExp": "2-5 Yrs", "jSal": "7-11 Lacs", "jPDate": "2026-09-22", "jJobType": "Permanent", "is_applied": false, "is_shortlisted": false }] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据职位详情页的相似职位条重构
发送登录 OTP
POST
/v1/auth/otp/sendosint在校验步骤之前,向候选人手机发送 Shine.com 登录 OTP(或通过姊妹邮箱 OTP 调用发送至邮箱)。
认证方式: 无需认证。启动手机/邮箱 OTP 登录,随后调用 POST /v1/auth/otp/verify。
- phone
- device
- status
- channel
- sessionId
- message
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/auth/otp/send HTTP/1.1 Content-Type: application/json Accept: application/json { "phone": "9876543210", "email": "[email protected]", "device": "app" }{ "status": "otp_sent", "channel": "sms", "sessionId": "sess-9f3a", "message": "OTP sent" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的 OTP 登录界面重构
JWT 手机登录(校验 OTP)
POST
/v1/auth/otp/verifyosint把手机 OTP 换成令牌对(accessToken、refreshToken)与 candidate_id,供后续所有资料、投递与招聘方动态调用使用。
认证方式: 无需认证的 OTP 交换。后续调用携带 Authorization: Bearer <accessToken>。重复账号选择器使用同一手机号。
- phone
- otp
- sessionId
- device
- accessToken
- refreshToken
- candidate_id
- candidateId
- isProfileComplete
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/auth/otp/verify HTTP/1.1 Content-Type: application/json Accept: application/json { "phone": "9876543210", "otp": "482193", "sessionId": "sess-9f3a", "device": "app" }{ "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refreshToken": "rt_8c1e2b...", "candidate_id": "cand-1001", "candidateId": "cand-1001", "isProfileComplete": false }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据登录流程的 OTP 校验步骤重构令牌对镜像应用登录后本地存储的内容
获取聚合候选人资料
GET
/v1/profile/aggregateosint加载完善资料所用的登录 Shine.com 候选人记录:身份信息、当前/期望薪资、notice_period、技能、resumeId 及 LinkedIn/头像 URL。
认证方式: Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify,根植于登录的 candidate_id。
- candidate_id
- personalDetails
- firstName
- lastName
- phone
- current_city
- current_location
- current_annual_salary
- current_salary
- expected_salary
- total_work_experience
- yearsOfExperience
- notice_period
- last_working_date
- currently_pursuing
- key_skills
- functional_area
- industry
- resumeId
- profile_picture_url
- linkedin_url
- education_history
- grading_system
- actively_looking
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/profile/aggregate HTTP/1.1 Accept: application/json Authorization: Bearer <accessToken>{ "candidate_id": "cand-1001", "personalDetails": { "firstName": "Ada", "lastName": "Sharma", "email": "[email protected]", "phone": "9876543210" }, "current_city": "Bengaluru", "current_location": "Whitefield", "current_annual_salary": 1200000, "current_salary": 100000, "expected_salary": 1500000, "total_work_experience": 4.5, "yearsOfExperience": 4, "notice_period": 30, "last_working_date": null, "currently_pursuing": false, "key_skills": ["Java", "Spring"], "functional_area": "Software Engineering", "industry": "IT", "resumeId": "resume-9", "profile_picture_url": "https://cdn.example.com/ada.png", "linkedin_url": "https://www.linkedin.com/in/ada-sharma", "education_history": [{"institute": "NITK", "grading_system": "CGPA"}], "actively_looking": true }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据完善资料界面重构字段集镜像个人信息、薪资、技能与简历区块
解析上传的简历
POST
/v1/profile/resume/parseosint把上传的简历解析为 resume_parsed_data(job_title、company_name、key_skills、total_work_experience、education_history),供完善资料/上传简历流程使用。
认证方式: Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify。multipart 简历上传。
- resumeId
- resume_timestamp
- resume_parsed_data
- job_title
- company_name
- key_skills
- total_work_experience
- education_history
- grading_system
- currently_pursuing
- current_city
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/profile/resume/parse HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: multipart/form-data; boundary=----ShineBoundary ------ShineBoundary Content-Disposition: form-data; name="resume"; filename="ada-cv.pdf" Content-Type: application/pdf <binary> ------ShineBoundary--{ "resumeId": "resume-9", "resume_timestamp": "2026-09-27T08:12:00Z", "resume_parsed_data": { "job_title": "Software Engineer", "company_name": "Example Corp", "key_skills": ["Java", "Spring"], "total_work_experience": 4.5, "education_history": [{"institute": "NITK", "grading_system": "CGPA"}], "currently_pursuing": false, "current_city": "Bengaluru" } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据完善资料的上传简历步骤重构解析字段集镜像应用从简历预填的区块
首页架构(Nova Home)
GET
/v1/pages/home/schemaopendata返回应用的首页架构(flash_openings、recommended_jobs、your_activity、last_applied),注册后及每次加载首页时使用。
认证方式: 可选的 Bearer JWT。个性化模块发送 candidate_id;匿名调用发送 device=app。
- device
- candidate_id
- page_type
- home_page
- sections
- flash_openings
- recommended_jobs
- your_activity
- last_applied
- jCID
- jJT
- jCName
- is_applied
- JFY
- JD
- JSRP
- DRM
- dashboard
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/pages/home/schema?device=app&candidate_id=cand-1001 HTTP/1.1 Accept: application/json Authorization: Bearer <accessToken>{ "page_type": "home_page", "sections": [ {"id": "flash_openings", "title": "Flash openings", "jobs": [{"jCID": "87123456", "jJT": "Software Engineer", "jCName": "Example Corp"}]}, {"id": "recommended_jobs", "title": "Recommended jobs", "jobs": [{"jCID": "87129901", "jJT": "Backend Engineer"}]}, {"id": "your_activity", "title": "Your activity"}, {"id": "last_applied", "title": "Last applied", "jobs": [{"jCID": "87120001", "is_applied": true}]} ] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用首页的区块排序重构区块名称镜像候选人首页展示的模块
资料表现架构
GET
/v1/pages/profile-insights/schemaosint加载候选人洞察页展示的资料表现仪表盘(资料完整度、招聘方兴趣、跟进)。
认证方式: Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify。
- candidate_id
- profileStrength
- searchImpressions
- profileViews
- interestedRecruiters
- recruiterFollowUps
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/pages/profile-insights/schema HTTP/1.1 Accept: application/json Authorization: Bearer <accessToken>{ "candidate_id": "cand-1001", "profileStrength": 72, "searchImpressions": 128, "profileViews": 17, "interestedRecruiters": 6, "recruiterFollowUps": 2 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据候选人洞察/资料表现页重构
列出/删除职位订阅
GET
/v1/job-alertsopendata列出候选人保存的 Shine.com 职位订阅(标题、地点、emp_type、farea、薪资区间),供职位订阅页使用;姊妹删除调用移除订阅。
认证方式: Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify。删除使用姊妹调用 DELETE /v1/job-alerts/delete。
- alerts
- id
- job_title
- location
- emp_type
- farea
- fexp
- fsalary
- shift_type
- active
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/job-alerts HTTP/1.1 Accept: application/json Authorization: Bearer <accessToken>{ "alerts": [{ "id": "alert-22", "job_title": "Software Engineer", "location": "Bengaluru", "emp_type": "full-time", "farea": "it", "fexp": "3-6", "fsalary": "8-12", "shift_type": "day", "active": true }] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据职位订阅管理页重构
收藏职位
POST
/v1/jobs/shortlistopendata为登录候选人把 Shine.com 职位标记为收藏(is_shortlisted),每次调用最多 20 个 jobIds。
认证方式: Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify。jobIds 数组不超过 20 项。
- jobIds
- candidate_id
- jCID
- is_shortlisted
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/jobs/shortlist HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "jobIds": ["87123456"], "candidate_id": "cand-1001" }{ "jCID": "87123456", "is_shortlisted": true, "jobIds": ["87123456"] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据职位卡片上的收藏操作重构镜像应用每次收藏调用强制执行的 20 项上限
招聘方动态(候选人响应更新)
POST
/v1/profile/recruiter-activityosint返回针对该候选人的招聘方动态(浏览/收藏/投递的职位,含 jCID、jCName、is_applied、is_shortlisted),供“你的动态”/招聘方动态面板使用。
认证方式: Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify。
- candidate_id
- period
- activities
- jCID
- jJT
- jCName
- jCType
- jKwds
- jExp
- jLoc
- jRUrl
- jPDate
- jExpDate
- jJobType
- jEType
- jVanc
- jSLA
- is_applied
- is_shortlisted
- highlighted
- ftcid
- jCUID
- jWLC
- jWSD
- jWLocID
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/profile/recruiter-activity HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "candidate_id": "cand-1001", "period": "7d" }{ "activities": [{ "jCID": "87123456", "jJT": "Software Engineer", "jCName": "Example Corp", "jCType": "IT", "jKwds": ["Java"], "jExp": "3-6 Yrs", "jLoc": "Bengaluru", "jRUrl": "https://www.shine.com/jobs/software-engineer/87123456", "jPDate": "2026-09-24", "jExpDate": "2026-10-24", "jJobType": "Permanent", "jEType": "Full Time", "jVanc": 4, "jSLA": "800000-1200000", "is_applied": true, "is_shortlisted": false, "highlighted": true, "ftcid": "comp-441" }] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据“你的动态”/招聘方动态面板重构卡片字段镜像招聘方浏览的职位列表
投递前问卷
GET
/v1/jobs/questionnaireopendata加载 Shine.com 投递前展示的雇主筛选问题(通知期、地点、自定义是/否)。
认证方式: Bearer JWT(accessToken),来自 POST /v1/auth/otp/verify。当职位含筛选问题时在投递前展示。
- jobId
- questions
- id
- text
- type
- required
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/jobs/questionnaire?jobId=87123456 HTTP/1.1 Accept: application/json Authorization: Bearer <accessToken>{ "jobId": "87123456", "questions": [{ "id": "q-1", "text": "Are you willing to work from Bengaluru?", "type": "yes_no", "required": true }, { "id": "q-2", "text": "Current notice period (days)", "type": "number", "required": true }] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据投递前筛选问题步骤重构
数据类别
- 职位列表
- 职位详情
- 候选人资料
- 简历
- 投递申请
- 招聘方动态
- 登录会话
数据使用场景与案例
印度职位市场普查
劳动力市场管道可轮询 GET /v1/jobs/search(带 emp_type、farea、fexp、fsalary、location、shift_type),并存储 jCID、jJT、jCName、jLoc、jSal/jSLA、jExp、jVanc 与 premium_job_flag,构建实时 Shine.com 职位目录。
候选人 CRM 增强
HRIS 工具可在 OTP 登录后调用 GET /v1/profile/aggregate,把 personalDetails、current_annual_salary、expected_salary、notice_period、key_skills、resumeId、linkedin_url 与 profile_picture_url 挂到现有申请人记录上。
招聘方动态同步
ATS 机器人可 POST /v1/profile/recruiter-activity,把 is_applied、is_shortlisted、jCName、jPDate、jExpDate 映射进面试阶段看板,再叠加 GET /v1/pages/profile-insights/schema 的 profileStrength 与 interestedRecruiters。
简历解析为结构化资料
入职流程可把 PDF 上传至 /v1/profile/resume/parse,从 resume_parsed_data 水合 job_title、company_name、key_skills、total_work_experience 与 education_history,替代空白的完善资料表单。
常见问题
Shine.com 搜索返回哪些职位字段?
GET /v1/jobs/search 返回紧凑卡片字段:jCID、jJT(标题)、jCName(雇主)、jLoc、jExp、jSal/jSLA(薪资)、jPDate、jVanc(招聘人数)、jACnt(投递人数)、is_applied、is_shortlisted 与 premium_job_flag。筛选参数含 emp_type、farea、fexp、fsalary、job_type、location 与 shift_type。
候选人如何登录认证?
应用先把手机号提交到 /v1/auth/otp/send,再在 /v1/auth/otp/verify 校验 OTP,换取 accessToken、refreshToken 与 candidate_id。后续请求发送 Authorization: Bearer <accessToken>。
能否读取候选人资料与简历解析?
可以。GET /v1/profile/aggregate 返回 personalDetails、current_annual_salary、expected_salary、notice_period、key_skills、resumeId 与 linkedin_url。POST /v1/profile/resume/parse 则从上传的简历以 resume_parsed_data 填充这些字段。
招聘方浏览与职位订阅在哪里?
POST /v1/profile/recruiter-activity 列出招聘方动态(is_applied、is_shortlisted、jCName)。GET /v1/pages/profile-insights/schema 暴露 profileStrength 与 interestedRecruiters。GET /v1/job-alerts 列出已保存的订阅。
相关主题
- Shine.com API
- Shine 职位搜索 API
- Shine 职位端点
- jCID jJT jCName jSal
- 候选人资料 API
- 简历解析 API
- OTP 登录 JWT
- Shine 招聘方动态
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业