Glints TapJobs 数据 API
Glints TapJobs 在 POST /v1/graphql 上进行职位搜索,在 GET /v1/profiles/public/{userId} 上加载候选人名片,通过 /v1/chat/socket 的 WebSocket 打开招聘方聊天,并在 POST /v1/billing/orders 上结账 VIP 或联系人额度。登录后的请求携带 OAuth2 Bearer 令牌与 x-glints-country-code 请求头(TapLoker 为 ID)。
Glints: Jobs Search & Career(包名 com.glints.candidate,versionName 1.116.0,Play 商店名 Glints TapJobs)是 Glints 面向印尼 loker 市场的双角色 Android 客户端,覆盖职位搜索、一键投递、招聘方聊天、候选人简历与雇主联系人额度。页面背后:POST /v1/graphql 分页返回职位列表(title、company、salaryMin/salaryMax、workArrangement、countryCode);GET /v1/profiles/public/{userId} 是公开候选人名片(firstName、lastName、salaryExpectation、city);GET /v1/applications 跟踪 Easy Apply 投递状态;/v1/chat/socket 的 WebSocket 承载按职位组织的招聘方会话;POST /v1/billing/orders 创建 VIP 或联系人解锁订单。登录后的请求携带 OAuth2 Bearer 访问令牌与 x-glints-country-code 请求头(TapLoker 为 ID)。
应用截图
API 端点一览
搜索职位(GraphQL)
POST
/v1/graphqlopendata分页返回 TapLoker 职位列表(title、company、salaryMin/salaryMax、workArrangement、countryCode、isEasyApply),供首页职位搜索与附近职位屏使用。
认证方式: 可选的 OAuth2 Bearer 访问令牌。匿名浏览仍发送 x-glints-country-code(ID)与应用客户端凭据;登录后搜索会个性化附近与推荐 loker。
- searchJobs
- totalCount
- id
- slug
- title
- description
- company
- name
- logoUrl
- isVerified
- city
- countryCode
- salaryMin
- salaryMax
- currencyCode
- salaryPeriod
- employmentType
- workArrangement
- skills
- isEasyApply
- applicantCount
- publishedAt
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/graphql?op=searchJobs HTTP/1.1 Authorization: Bearer <access-token> Content-Type: application/json x-glints-country-code: ID { "operationName": "searchJobs", "variables": { "keyword": "software engineer", "location": "Jakarta", "countryCode": "ID", "workArrangement": "HYBRID", "employmentType": "FULL_TIME", "salaryMin": 8000000, "limit": 20, "offset": 0 } }{ "data": { "searchJobs": { "totalCount": 1284, "jobs": [{ "id": "8f3c1a2e-4b90-4d11-9c77-0a1b2c3d4e5f", "slug": "software-engineer-jakarta", "title": "Software Engineer", "description": "Build marketplace services in Jakarta.", "company": { "id": "co-4412", "name": "Example Corp", "logoUrl": "https://cdn.example.com/company/4412.png", "isVerified": true }, "city": "Jakarta", "countryCode": "ID", "salaryMin": 15000000, "salaryMax": 22000000, "currencyCode": "IDR", "salaryPeriod": "MONTHLY", "employmentType": "FULL_TIME", "workArrangement": "HYBRID", "skills": ["Kotlin", "GraphQL"], "isEasyApply": true, "applicantCount": 42, "publishedAt": "2026-09-24T02:15:00Z" }] } } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的职位搜索、筛选与附近职位界面重建操作与字段名(searchJobs、salaryMin、workArrangement、isEasyApply)与应用渲染的列表载荷一致面向印尼 TapLoker 市场本地化(en/id/vi 语言包)
获取公开候选人资料
GET
/v1/profiles/public/{userId}osint加载公开候选人名片(firstName、lastName、salaryExpectation、city、skills、recentJob),供资料标签页与雇主浏览人才使用。
认证方式: 可选 Bearer 访问令牌。公开候选人名片无需会话即可解析;邮箱、电话与简历留在登录后的「我」标签页。
- id
- firstName
- lastName
- profilePic
- headline
- city
- country
- countryCode
- salaryExpectation
- currencyCode
- recentJob
- title
- company
- skills
- education
- resume
- lastSeen
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/profiles/public/c0ffee00-1111-2222-3333-444455556666 HTTP/1.1 Authorization: Bearer <access-token> Accept: application/json x-glints-country-code: ID{ "id": "c0ffee00-1111-2222-3333-444455556666", "firstName": "Ada", "lastName": "Setiawan", "profilePic": "https://cdn.example.com/profile/ada.png", "headline": "Backend engineer", "city": "Jakarta", "country": "Indonesia", "countryCode": "ID", "salaryExpectation": 18000000, "currencyCode": "IDR", "recentJob": {"title": "Software Engineer", "company": "Example Corp"}, "skills": ["Kotlin", "PostgreSQL"], "education": [{"school": "Universitas Indonesia", "degree": "S1"}], "resume": null, "lastSeen": "2026-09-25T10:02:00Z" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的「我」/资料与公开候选人名片界面重建字段名(firstName、lastName、salaryExpectation、currencyCode、city、resume)与产品在公开资料上暴露的候选人对象一致
列出投递记录
GET
/v1/applicationsosint返回登录候选人的 Easy Apply / Chat to Apply 历史(status、appliedAt、职位名、questionnaireAnswers、conversationId),供投递标签页使用。
认证方式: 需要候选人会话的 OAuth2 Bearer 访问令牌(邮箱/Facebook/Google 登录)。匿名用户无法读取 lamaran 历史。
- totalCount
- jobApplications
- id
- status
- appliedAt
- source
- EASY_APPLY
- job
- title
- company
- city
- resumeId
- questionnaireAnswers
- conversationId
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/applications?status=SUBMITTED&limit=20&offset=0 HTTP/1.1 Authorization: Bearer <access-token> Accept: application/json x-glints-country-code: ID{ "totalCount": 7, "jobApplications": [{ "id": "app-7788", "status": "CHAT_INITIATED", "appliedAt": "2026-09-20T09:01:00Z", "source": "EASY_APPLY", "job": { "id": "8f3c1a2e-4b90-4d11-9c77-0a1b2c3d4e5f", "title": "Software Engineer", "company": {"id": "co-4412", "name": "Example Corp"}, "city": "Jakarta" }, "resumeId": "resume-9", "questionnaireAnswers": [{"questionId": "q-1", "answer": "Immediate"}], "conversationId": "conv-334" }] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的投递标签页与投递流程界面重建status、appliedAt、questionnaireAnswers 与 conversationId 字段与应用渲染的投递历史载荷一致
打开招聘方聊天套接字
GET
/v1/chat/socketosint打开 Chat to Apply 会话(jobId、participants、messages、isPrioritized、phoneShared),供 Easy Apply 后的收件箱使用。
认证方式: OAuth2 Bearer 访问令牌作为 WebSocket 查询/请求头凭据。收件箱在此路径上把 HTTP 升级为实时套接字;另有一个全应用级套接字承载在线状态与通知事件。
- conversation
- id
- jobId
- jobTitle
- participants
- role
- firstName
- lastName
- displayName
- messages
- body
- senderId
- createdAt
- status
- isPrioritized
- phoneShared
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/chat/socket HTTP/1.1 Upgrade: websocket Connection: Upgrade Authorization: Bearer <access-token> Sec-WebSocket-Protocol: graphql-transport-ws x-glints-country-code: ID{ "type": "next", "payload": { "data": { "conversation": { "id": "conv-334", "jobId": "8f3c1a2e-4b90-4d11-9c77-0a1b2c3d4e5f", "jobTitle": "Software Engineer", "participants": [{ "id": "c0ffee00-1111-2222-3333-444455556666", "role": "CANDIDATE", "firstName": "Ada", "lastName": "Setiawan" }, { "id": "emp-9001", "role": "EMPLOYER", "displayName": "HR Example Corp" }], "messages": [{ "id": "msg-12", "body": "Hi Ada, can we chat about the role?", "senderId": "emp-9001", "createdAt": "2026-09-20T09:05:00Z", "status": "SEEN" }], "isPrioritized": true, "phoneShared": false } } } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的招聘方收件箱与聊天界面重建conversation、participants、messages 与 isPrioritized 字段与应用渲染的聊天载荷一致
创建 VIP / 额度账单订单
POST
/v1/billing/ordersopenfinance在 Play Billing 购买完成后创建 VIP 订阅或雇主联系人额度订单(orderId、sku、amount、entitlement、contactCreditsRemaining)。
认证方式: OAuth2 Bearer 访问令牌。Play Billing / RevenueCat 确认 SKU;该端点记录 Glints 侧的 VIP 与雇主联系人额度订单。
- orderId
- sku
- productType
- VIP_SUBSCRIPTION
- platform
- status
- amount
- currencyCode
- entitlement
- expiresAt
- playPurchaseToken
- revenueCatAppUserId
- contactCreditsRemaining
- contactCreditsExpireAt
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/billing/orders HTTP/1.1 Authorization: Bearer <access-token> Content-Type: application/json x-glints-country-code: ID { "sku": "vip_monthly", "productType": "VIP_SUBSCRIPTION", "platform": "ANDROID", "countryCode": "ID", "currencyCode": "IDR", "playPurchaseToken": "<play-billing-token>", "revenueCatAppUserId": "<rc-app-user-id>" }{ "orderId": "po-5566", "sku": "vip_monthly", "productType": "VIP_SUBSCRIPTION", "status": "PAID", "amount": 99000, "currencyCode": "IDR", "entitlement": "vip", "expiresAt": "2026-10-26T00:00:00Z", "contactCreditsRemaining": 25, "contactCreditsExpireAt": "2026-10-26T00:00:00Z" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的 VIP 订阅与联系人额度结账界面重建orderId、sku、entitlement 与 contactCreditsRemaining 字段与应用渲染的购买载荷一致
获取推荐人才(雇主侧)
GET
/v1/talent-matchesosint为某个职位返回雇主侧的候选人匹配(firstName、salaryExpectation、matchScore、isContactUnlocked),受剩余联系人额度门槛限制。
认证方式: 雇主会话的 OAuth2 Bearer 访问令牌。同一客户端可在候选人/雇主角色间切换;解锁电话/邮箱会消耗账单订单端点创建的联系人额度。
- totalCount
- contactCreditsRemaining
- talents
- id
- firstName
- lastName
- headline
- city
- countryCode
- salaryExpectation
- matchScore
- skills
- recentJob
- isContactUnlocked
- phone
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/talent-matches?jobId=8f3c1a2e-4b90-4d11-9c77-0a1b2c3d4e5f&countryCode=ID&limit=20 HTTP/1.1 Authorization: Bearer <access-token> Accept: application/json x-glints-country-code: ID{ "totalCount": 86, "contactCreditsRemaining": 25, "talents": [{ "id": "c0ffee00-1111-2222-3333-444455556666", "firstName": "Ada", "lastName": "Setiawan", "headline": "Backend engineer", "city": "Jakarta", "countryCode": "ID", "salaryExpectation": 18000000, "currencyCode": "IDR", "matchScore": 0.86, "skills": ["Kotlin", "PostgreSQL"], "recentJob": {"title": "Software Engineer", "company": "Example Corp"}, "isContactUnlocked": false, "phone": null, "email": null }] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的雇主角色与候选人匹配界面重建matchScore、isContactUnlocked 与 contactCreditsRemaining 字段与应用渲染的人才载荷一致
数据类别
- 职位列表
- 候选人资料
- 投递记录
- 招聘方聊天
- VIP 订阅
- 雇主联系人额度
数据使用场景与案例
印尼 loker 市场普查
劳动力市场看板以 countryCode=ID 分页调用 POST /v1/graphql 的 searchJobs,读取 title、city、salaryMin/salaryMax、employmentType 与 workArrangement,按城市与薪资带统计在招岗位。
公开人才图谱补全
OSINT 流程把公开候选人深链解析到 GET /v1/profiles/public/{userId},存储 firstName、lastName、city、skills、recentJob 与 salaryExpectation,构成不含联系方式的候选人图谱。
Easy Apply 漏斗分析
候选人 CRM 拉取 GET /v1/applications(status、source=EASY_APPLY、conversationId),并关联招聘方聊天套接字会话,衡量从投递到招聘方首条消息的时长。
VIP 与联系人额度对账
财务机器人把 Play Billing 令牌与 POST /v1/billing/orders(orderId、sku、amount、entitlement、contactCreditsRemaining)对齐,让雇主解锁支出与 RevenueCat 权益记录一致。
常见问题
Glints 应用暴露了哪些 API 区域?
职位与资料流量走主数据 API(GraphQL 职位搜索、公开候选人资料、投递记录,外加一个承载全应用事件的实时套接字);招聘方收件箱升级为 WebSocket 聊天套接字;VIP 与联系人额度结账走账单订单端点。本页呈现的是路径级接口面。
Glints 如何鉴权移动端调用?
应用通过 OAuth2 以邮箱、Facebook 或 Google 登录。随后的 JSON 调用携带 Authorization: Bearer 访问令牌与 x-glints-country-code 请求头(TapLoker 上为 ID);匿名浏览也会发送国家代码与应用客户端凭据。
公开资料端点背后有哪些候选人字段?
GET /v1/profiles/public/{userId} 是公开名片:firstName、lastName、city、skills、recentJob、salaryExpectation。邮箱、电话与简历留在登录后的「我」标签页,或需雇主解锁联系人。
同一个应用也服务雇主吗?
是的。角色切换控件让客户端在候选人与雇主之间翻转。雇主分页调用 GET /v1/talent-matches,并消耗通过 POST /v1/billing/orders 创建的联系人额度。
相关主题
- Glints API
- Glints TapJobs
- TapLoker
- Glints GraphQL
- 候选人资料
- VIP 结账
- 印尼职位搜索 API
- Easy Apply
- 招聘方聊天
- 人才匹配
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业