Job Hai - Search Job, Vacancy 图标

Job Hai 职位、资料与投递数据 API

infoedge.com · 招聘求职 4.4 ★

Job Hai - Search Job, Vacancy 是 Info Edge 为 JobHai 推出的 Android 求职客户端。JobHai 是该集团旗下面向印度蓝领与灰领劳动力的超本地化招聘平台(Info Edge 同时运营 Naukri)。求职者用手机号 OTP 或 Truecaller 登录后,进入按城市和街区筛选的附近职位信息流,可再按关键词、类别、职位名称、距离、公交/地铁以及情境筛选条件缩小范围,其中还有 Fatafat 快速录用分组和视频职位介绍短片。每张职位卡片显示岗位、薪资区间、居家办公 / 兼职 / 全职 / 合同标记、班次、招聘名额、到场面试(walk-in)标签和招聘公司;点进去可看到完整职位描述、面试地址、招聘人员、所需技能和资格问卷,点击 Apply 或 Call HR 即可联系招聘负责人。「Responses」标签页记录每一次投递,投递后还会推荐相似职位;个人资料包含姓名、手机号、所在街区、学历、工作经验、技能、语言、上传的简历和系统生成的 CV;Seekho 与 HireMeter 则是应用内的学习与就业准备附加功能。它覆盖印度 420 多个城市,主要与 apna、WorkIndia、Shine 和 Naukri Fast 竞争,而不是 LinkedIn 式的白领人脉社交,Google Play 上有 164,975 条评价,评分 4.43。

超本地化的职位卡片以 jobTitle 为主键,附带 minSalary/maxSalary、isWfh、locality 与 callAllowed;此外还有 Fatafat 快速录用分组(jsAction、isTopJob、bucketId)和视频职位介绍(hasVideoJD、videoUrl)。

手机号 OTP 会话返回 token 与 refreshToken,并带有 isFresher / isSoftProfileCompleted;投递与通话投递会解锁 jobContact 和 requisitionId;Responses 标签页列出 applicationType 与 canCall;个人资料提供 profileCompletionPercentage、highestQualification 以及生成 CV 的 url;HireMeter 则按基础/活跃度/资料三部分给出 hireMeterPercentage,并附带每个任务的 probabilityGain。街区招聘地图可以统计公开的印度卢比薪资区间,ATS 工具可以对账通话投递流程,就绪度看板可以把 HireMeter 任务关联到候选人记录上——openData Studio 把这些字段变成可调用的开放数据。

应用截图

  • Job Hai - Search Job, Vacancy 应用截图 1
  • Job Hai - Search Job, Vacancy 应用截图 2
  • Job Hai - Search Job, Vacancy 应用截图 3
  • Job Hai - Search Job, Vacancy 应用截图 4
  • Job Hai - Search Job, Vacancy 应用截图 5
  • Job Hai - Search Job, Vacancy 应用截图 6
  • Job Hai - Search Job, Vacancy 应用截图 7
  • Job Hai - Search Job, Vacancy 应用截图 8

API 端点一览

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

  • 发送求职者 OTP

    POST /v1/seeker/otp/dispatch osint

    在验证 OTP 接口签发 token 与 refreshToken 之前,向求职者的手机号发送登录 OTP。

    认证方式: 未认证。手机号 OTP 登录;Truecaller 是另一种登录方式。

    • phone
    • status
    • code
    • message
    • data
    POST /v1/seeker/otp/dispatch HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    
    {
      "phone": "9876543210"
    }
    {
      "status": true,
      "code": 200,
      "message": "OTP sent",
      "data": {
        "phone": "9876543210"
      }
    }
  • 验证 OTP 登录

    POST /v1/seeker/otp/confirm osint

    验证短信 OTP,并返回作为求职者会话使用的 token、refreshToken、userId、isFresher、isReturningUser 与 isSoftProfileCompleted。

    认证方式: 未认证。响应中的 data.token 在后续调用中以 Authorization: Bearer <token> 发送;data.refreshToken 保存下来,供 POST /v1/seeker/token/rotate 使用。

    • phone
    • otp
    • token
    • refreshToken
    • userId
    • name
    • gender
    • isFresher
    • isReturningUser
    • isSoftProfileCompleted
    • mLandingScreen
    • currentSalary
    • qualification
    • highestQualificationId
    • highestQualification
    • vernacHighestQualification
    • schoolMedium
    • schoolSubject
    • status
    • code
    • message
    POST /v1/seeker/otp/confirm HTTP/1.1
    Content-Type: application/json
    Accept: application/json
    
    {
      "phone": "9876543210",
      "otp": "482193"
    }
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "token": "<access-token>",
        "refreshToken": "<refresh-token>",
        "userId": 4412891,
        "name": "Priya Sharma",
        "gender": "female",
        "isFresher": false,
        "isReturningUser": true,
        "isSoftProfileCompleted": true,
        "mLandingScreen": "home",
        "currentSalary": 18000,
        "qualification": {
          "highestQualificationId": 4,
          "highestQualification": "12th Pass",
          "vernacHighestQualification": "12वीं पास",
          "schoolMedium": "Hindi",
          "schoolSubject": "Arts"
        }
      }
    }
  • 刷新认证令牌

    POST /v1/seeker/token/rotate osint

    用保存的 refreshToken 配对(token、refreshToken)轮换求职者的 Bearer 令牌。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。轮换 token 与 refreshToken。

    • token
    • refreshToken
    • status
    • code
    • message
    • data
    POST /v1/seeker/token/rotate HTTP/1.1
    Authorization: Bearer <token>
    Accept: application/json
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "token": "<new-access-token>",
        "refreshToken": "<new-refresh-token>"
      }
    }
  • 职位信息流

    POST /v1/openings/neighbourhood-feed opendata

    返回首页 Jobs 标签页使用的分页城市/街区职位信息流:jobTitle、minSalary/maxSalary、isWfh、callAllowed、company 与 recruiter。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • job_type
    • page
    • size
    • keyword
    • category
    • city
    • locality
    • topMatchJobsOnly
    • has_reset_filters
    • source
    • page_url
    • filter
    • title_filters
    • distance_filters
    • contextual_filters
    • bus_metro_filters
    • passed_filters
    • jobCount
    • starMatchJobCount
    • srpTitle
    • isTopMatch
    • showCallApplyUpfront
    • totalVideoJdCount
    • jobs
    • id
    • jobTitle
    • jobType
    • salary
    • minSalary
    • maxSalary
    • salaryIncentiveText
    • incentives
    • incentivesValue
    • expText
    • noOfOpenings
    • postedOn
    • jobAddress
    • distance
    • isWfh
    • isPartTime
    • isFullTime
    • isContract
    • walkin
    • isVerified
    • isNew
    • highDemand
    • applied
    • application_status
    • callAllowed
    • showApplyButton
    • hasVideoJD
    • videoUrl
    • company
    • recruiter
    • jobShift
    • roleCategory
    • categoryId
    • applications
    • filters
    • titleFilters
    • localityFilters
    • distanceFilters
    • sortOptions
    POST /v1/openings/neighbourhood-feed HTTP/1.1
    Authorization: Bearer <token>
    Content-Type: application/json
    Accept: application/json
    
    {
      "job_type": "recommended",
      "page": 1,
      "size": 20,
      "keyword": "delivery",
      "category": 42,
      "city": "Bengaluru",
      "locality": "Whitefield",
      "topMatchJobsOnly": false,
      "has_reset_filters": false,
      "source": "home",
      "page_url": "/jobs",
      "filter": [],
      "title_filters": [],
      "distance_filters": [],
      "contextual_filters": [],
      "bus_metro_filters": [],
      "passed_filters": {}
    }
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "jobCount": 1284,
        "starMatchJobCount": 36,
        "srpTitle": "Jobs in Whitefield, Bengaluru",
        "isTopMatch": false,
        "showCallApplyUpfront": true,
        "totalVideoJdCount": 18,
        "companyLogoVariant": true,
        "jobs": [{
          "id": "JH-86750",
          "jobTitle": "Delivery Executive",
          "jobType": "full_time",
          "jobTypeSrp": "Full Time",
          "salary": "₹15,000 - ₹22,000",
          "minSalary": 15000,
          "maxSalary": 22000,
          "salaryIncentiveText": "Incentives extra",
          "incentives": true,
          "incentivesValue": 3000,
          "expText": "0-1 yrs",
          "noOfOpenings": "12",
          "openings": "12",
          "postedOn": "2 days ago",
          "locality": "Whitefield",
          "jobAddress": "ITPL Main Road, Whitefield, Bengaluru",
          "shortJobAddress": "Whitefield, Bengaluru",
          "distance": "3.2 km",
          "isWfh": false,
          "isPartTime": false,
          "isFullTime": true,
          "isContract": false,
          "walkin": false,
          "isVerified": true,
          "isNew": true,
          "highDemand": true,
          "applied": false,
          "application_status": null,
          "callAllowed": true,
          "showApplyButton": true,
          "hasVideoJD": true,
          "videoUrl": "https://cdn.example.com/jd/86750.mp4",
          "videoThumbnailUrl": "https://cdn.example.com/jd/86750.jpg",
          "company": {"id": "comp-4412", "name": "Example Logistics"},
          "recruiter": {"id": "hr-882", "name": "Asha K"},
          "jobShift": "Day",
          "roleCategory": "Delivery",
          "categoryId": 42,
          "applications": 86
        }],
        "filters": [],
        "titleFilters": [],
        "localityFilters": [],
        "distanceFilters": [],
        "sortOptions": []
      }
    }
  • 职位详情

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

    加载单个职位:职位详情页使用的 jobDescription、interviewAddress、jobHighlights(education/skills/timings)、recruiter 与 callAllowed。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • id
    • jobTitle
    • jobDescription
    • enhancedJobDescription
    • requirements
    • salary
    • salaryHtml
    • minSalary
    • maxSalary
    • jobShift
    • jobAddress
    • interviewAddress
    • interviewAddressLat
    • interviewAddressLng
    • interviewMessage
    • locality
    • isWfh
    • isVerified
    • walkin
    • screeningEnabled
    • showQuestionnaire
    • callAllowed
    • showApplyButton
    • applied
    • application_status
    • applicationStatusMessage
    • depositDetail
    • noOfOpenings
    • applications
    • shareMessage
    • company
    • recruiter
    • jobHighlights
    • education
    • gender
    • skills
    • timings
    • companyPerks
    • asset
    • jobSkills
    • hasVideoJD
    • videoUrl
    • videoJDThumbnail
    GET /v1/openings/JH-86750/vacancy-card HTTP/1.1
    Authorization: Bearer <token>
    Accept: application/json
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "id": "JH-86750",
        "jobTitle": "Delivery Executive",
        "jobDescription": "Deliver packages across Whitefield. Two-wheeler required.",
        "enhancedJobDescription": "Route-based delivery with daily incentives.",
        "requirements": "Own two-wheeler, Android phone, 10th pass",
        "salary": "₹15,000 - ₹22,000",
        "salaryHtml": "<b>₹15,000 - ₹22,000</b>",
        "minSalary": 15000,
        "maxSalary": 22000,
        "jobShift": "Day 9am-6pm",
        "jobAddress": "ITPL Main Road, Whitefield, Bengaluru",
        "interviewAddress": "Gate 2, ITPL, Whitefield",
        "interviewAddressLat": "12.9698",
        "interviewAddressLng": "77.7499",
        "interviewMessage": "Walk in Mon-Sat 10am-4pm",
        "locality": "Whitefield",
        "isWfh": false,
        "isVerified": true,
        "walkin": true,
        "screeningEnabled": true,
        "showQuestionnaire": true,
        "callAllowed": true,
        "showApplyButton": true,
        "applied": false,
        "application_status": null,
        "applicationStatusMessage": null,
        "depositDetail": null,
        "noOfOpenings": "12",
        "applications": 86,
        "shareMessage": "Delivery Executive in Whitefield — apply on Job Hai",
        "company": {"id": "comp-4412", "name": "Example Logistics"},
        "recruiter": {"id": "hr-882", "name": "Asha K"},
        "jobHighlights": {
          "education": {"label": "10th Pass", "isSelected": true},
          "gender": {"label": "Any", "isSelected": true},
          "skills": {"label": "Driving", "isSelected": true},
          "timings": {"label": "Day shift", "isSelected": true},
          "companyPerks": {"label": "PF", "isSelected": true},
          "asset": {"label": "Two-wheeler", "isSelected": true}
        },
        "jobSkills": [{"label": "Driving"}],
        "hasVideoJD": true,
        "videoUrl": "https://cdn.example.com/jd/86750.mp4",
        "videoJDThumbnail": "https://cdn.example.com/jd/86750.jpg"
      }
    }
  • 投递职位

    POST /v1/openings/tap-apply opendata

    让已登录的求职者投递某个职位,并返回投递后 Call HR 面板使用的 callAllowed、jobContact 与 requisitionId。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • jobId
    • source
    • callAllowed
    • callAllowedMessage
    • jobContact
    • jobApplyCount
    • requisitionId
    • showFraudEducation
    • showGuide
    • showReferralBanner
    • showLcsScreening
    • isAudioUploadAllowed
    • salary
    • lcsUrl
    • questions
    • callFeedbackOptions
    POST /v1/openings/tap-apply HTTP/1.1
    Authorization: Bearer <token>
    Content-Type: application/json
    Accept: application/json
    
    {
      "jobId": "JH-86750",
      "source": "job_detail"
    }
    {
      "status": true,
      "code": 200,
      "message": "applied",
      "data": {
        "callAllowed": true,
        "callAllowedMessage": "You can call the recruiter now",
        "jobContact": "+9198XXXXXX21",
        "jobApplyCount": 1,
        "requisitionId": "req-4412",
        "showFraudEducation": false,
        "showGuide": true,
        "showReferralBanner": false,
        "showLcsScreening": false,
        "isAudioUploadAllowed": false,
        "salary": true,
        "lcsUrl": null,
        "questions": [],
        "callFeedbackOptions": []
      }
    }
  • 通话联系招聘方投递

    POST /v1/openings/hr-dial opendata

    通话投递:当 callAllowed 为 true 时解锁 jobContact,并返回通话后面板使用的 callFeedbackOptions。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • jobId
    • source
    • callAllowed
    • callAllowedMessage
    • jobContact
    • jobApplyCount
    • requisitionId
    • showFraudEducation
    • showGuide
    • showLcsScreening
    • isAudioUploadAllowed
    • questions
    • callFeedbackOptions
    POST /v1/openings/hr-dial HTTP/1.1
    Authorization: Bearer <token>
    Content-Type: application/json
    Accept: application/json
    
    {
      "jobId": "JH-86750",
      "source": "job_detail"
    }
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "callAllowed": true,
        "callAllowedMessage": "Connecting you to HR",
        "jobContact": "+9198XXXXXX21",
        "jobApplyCount": 1,
        "requisitionId": "req-4412",
        "showFraudEducation": true,
        "showGuide": true,
        "showLcsScreening": false,
        "isAudioUploadAllowed": true,
        "questions": [],
        "callFeedbackOptions": [{"id": "connected", "label": "Call connected"}]
      }
    }
  • 相似职位

    POST /v1/openings/nearby-matches opendata

    在投递后返回相似职位,附带相似职位页使用的 count、moveToSimilarPage 以及 okCallCount/greatCallCount。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • job_id
    • job_type
    • page
    • size
    • city
    • locality
    • topMatchJobsOnly
    • source
    • filter
    • title_filters
    • distance_filters
    • count
    • showCallApplyUpfront
    • moveToSimilarPage
    • okCallCount
    • greatCallCount
    • jobs
    • id
    • jobTitle
    • minSalary
    • maxSalary
    • isWfh
    • callAllowed
    • applied
    • company
    POST /v1/openings/nearby-matches HTTP/1.1
    Authorization: Bearer <token>
    Content-Type: application/json
    Accept: application/json
    
    {
      "job_id": "JH-86750",
      "job_type": "similar",
      "page": 1,
      "size": 10,
      "city": "Bengaluru",
      "locality": "Whitefield",
      "topMatchJobsOnly": false,
      "source": "post_apply",
      "filter": [],
      "title_filters": [],
      "distance_filters": [],
      "contextual_filters": [],
      "bus_metro_filters": []
    }
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "count": 8,
        "showCallApplyUpfront": true,
        "moveToSimilarPage": true,
        "okCallCount": 12,
        "greatCallCount": 4,
        "jobs": [{
          "id": "JH-86761",
          "jobTitle": "Warehouse Associate",
          "minSalary": 14000,
          "maxSalary": 18000,
          "locality": "Mahadevapura",
          "isWfh": false,
          "callAllowed": true,
          "applied": false,
          "company": {"id": "comp-4490", "name": "Example Retail"}
        }]
      }
    }
  • 视频职位短片

    POST /v1/openings/video-reels opendata

    分页返回视频职位介绍短片(hasVideoJD、videoUrl、videoThumbnailUrl、totalVideoJdCount),供视频搜索结果页使用。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • job_type
    • page
    • size
    • city
    • locality
    • source
    • totalCount
    • totalVideoJdCount
    • jobs
    • id
    • jobTitle
    • hasVideoJD
    • videoUrl
    • videoThumbnailUrl
    • videoJDThumbnail
    • minSalary
    • maxSalary
    • isVideoSeen
    • company
    POST /v1/openings/video-reels HTTP/1.1
    Authorization: Bearer <token>
    Content-Type: application/json
    Accept: application/json
    
    {
      "job_type": "video",
      "page": 1,
      "size": 10,
      "city": "Bengaluru",
      "locality": "Whitefield",
      "source": "video_srp"
    }
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "page": 1,
        "size": 10,
        "totalCount": 48,
        "totalVideoJdCount": 48,
        "jobs": [{
          "id": "JH-87001",
          "jobTitle": "Retail Cashier",
          "hasVideoJD": true,
          "videoUrl": "https://cdn.example.com/jd/87001.mp4",
          "videoThumbnailUrl": "https://cdn.example.com/jd/87001.jpg",
          "videoJDThumbnail": "https://cdn.example.com/jd/87001.jpg",
          "minSalary": 16000,
          "maxSalary": 20000,
          "locality": "Indiranagar",
          "isVideoSeen": false,
          "company": {"id": "comp-120", "name": "Example Mart"}
        }]
      }
    }
  • 投递列表

    POST /v1/seeker/application-ledger opendata

    列出求职者的投递记录,含 status、applicationType、canCall、cName/rName 以及 Responses 标签页使用的 notGoingReasons。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • page
    • size
    • title
    • filter
    • notGoingReasons
    • jobs
    • jobId
    • cName
    • rName
    • addr
    • distance
    • salaryHTML
    • status
    • applicationType
    • canCall
    • isExpired
    • isFatafatJob
    • showSimilarJobs
    • showSimilarJobsCta
    • cta
    • incentives
    • incentivesValue
    • salaryIncentiveText
    • categoryTitle
    • filterId
    • feedbackGiven
    POST /v1/seeker/application-ledger HTTP/1.1
    Authorization: Bearer <token>
    Content-Type: application/json
    Accept: application/json
    
    {
      "page": 1,
      "size": 20
    }
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "title": "My applications",
        "filter": [{"id": "applied", "label": "Applied"}],
        "notGoingReasons": [{"id": "far", "label": "Too far"}],
        "jobs": [{
          "jobId": "JH-86750",
          "title": "Delivery Executive",
          "cName": "Example Logistics",
          "rName": "Asha K",
          "addr": "Whitefield, Bengaluru",
          "distance": "3.2 km",
          "salaryHTML": "₹15,000 - ₹22,000",
          "status": "applied",
          "applicationType": "call",
          "canCall": true,
          "isExpired": false,
          "isFatafatJob": false,
          "showSimilarJobs": true,
          "showSimilarJobsCta": true,
          "cta": "Call HR",
          "incentives": true,
          "incentivesValue": 3000,
          "salaryIncentiveText": "Incentives extra",
          "categoryTitle": "Delivery",
          "filterId": "applied",
          "feedbackGiven": false
        }]
      }
    }
  • 完整求职者资料

    GET /v1/seeker/full-card osint

    返回已登录求职者的资料:phone、locality、qualification、workExp、skills、resume 与 profileCompletionPercentage。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • userId
    • name
    • firstName
    • lastName
    • phone
    • altPhone
    • email
    • verifiedEmail
    • gender
    • age
    • isFresher
    • currentSalary
    • profilePhoto
    • profileCompletionPercentage
    • address
    • otherCity
    • isWhatsappEnabled
    • isSMSEnabled
    • hireMeterEligible
    • showLearnTab
    • isFatafatEligible
    • skills
    • locality
    • localityId
    • label
    • cityId
    • cityLabel
    • stateLabel
    • latitude
    • longitude
    • isCityLive
    • vernacLabel
    • qualification
    • highestQualification
    • highestQualificationId
    • schoolMedium
    • resume
    • fileName
    • workExp
    • categoryId
    • categoryLabel
    • formattedExperience
    • jobRoles
    • languagesKnown
    GET /v1/seeker/full-card HTTP/1.1
    Authorization: Bearer <token>
    Accept: application/json
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "userId": 4412891,
        "name": "Priya Sharma",
        "firstName": "Priya",
        "lastName": "Sharma",
        "phone": "9876543210",
        "altPhone": "9123456780",
        "email": "[email protected]",
        "verifiedEmail": "[email protected]",
        "gender": "female",
        "age": 24,
        "isFresher": false,
        "currentSalary": 18000,
        "profilePhoto": "https://cdn.example.com/u/4412891.jpg",
        "profileCompletionPercentage": 82.0,
        "address": "Whitefield, Bengaluru",
        "otherCity": null,
        "isWhatsappEnabled": true,
        "isSMSEnabled": true,
        "hireMeterEligible": true,
        "showLearnTab": true,
        "isFatafatEligible": true,
        "skills": ["Driving", "Customer service"],
        "locality": {
          "localityId": "loc-whitefield",
          "label": "Whitefield",
          "cityId": "city-blr",
          "cityLabel": "Bengaluru",
          "stateLabel": "Karnataka",
          "latitude": 12.9698,
          "longitude": 77.7499,
          "isCityLive": true,
          "vernacLabel": "व्हाइटफील्ड",
          "vernacCityLabel": "बेंगलुरु"
        },
        "qualification": {
          "highestQualificationId": 4,
          "highestQualification": "12th Pass",
          "vernacHighestQualification": "12वीं पास",
          "schoolMedium": "Hindi",
          "schoolSubject": "Arts"
        },
        "resume": {
          "resume": "https://cdn.example.com/cv/4412891.pdf",
          "fileName": "priya-sharma.pdf"
        },
        "workExp": [{
          "categoryId": 42,
          "categoryLabel": "Delivery",
          "timeline": 12,
          "categoryExperience": 12,
          "formattedExperience": "1 yr",
          "isSelected": true
        }],
        "jobRoles": [{"id": 42, "title": "Delivery"}],
        "languagesKnown": [{"label": "Hindi"}, {"label": "English"}]
      }
    }
  • 生成 CV

    GET /v1/seeker/generated-cv osint

    根据资料中的简历生成(或获取)求职者 CV 的下载链接。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • url
    • status
    • code
    • message
    • data
    GET /v1/seeker/generated-cv HTTP/1.1
    Authorization: Bearer <token>
    Accept: application/json
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "url": "https://cdn.example.com/cv/4412891-generated.pdf"
      }
    }
  • 街区联想

    POST /v1/geo/locality-typeahead opendata

    印度城市街区的联想搜索:返回位置选择器使用的 localityId、localityLabel、cityId 与 cityLabel。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • query
    • limit
    • filters
    • cityIds
    • totalCount
    • queryTimeMs
    • suggestions
    • localityId
    • localityLabel
    • cityId
    • cityLabel
    POST /v1/geo/locality-typeahead HTTP/1.1
    Authorization: Bearer <token>
    Content-Type: application/json
    Accept: application/json
    
    {
      "query": "Whitefield",
      "limit": 10,
      "filters": {
        "cityIds": ["city-blr"]
      }
    }
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "totalCount": 3,
        "queryTimeMs": 12,
        "suggestions": [{
          "localityId": "loc-whitefield",
          "localityLabel": "Whitefield",
          "cityId": "city-blr",
          "cityLabel": "Bengaluru"
        }]
      }
    }
  • 首页职位板块

    GET /v1/home/section-map opendata

    首页板块映射:附近、按类别、Fatafat、视频搜索结果与立即投递等板块,由 jobsAvailableInCity 控制是否显示。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • jobsAvailableInCity
    • NEAR_BY_JOB_SECTION
    • CATEGORY_WISE_SECTION
    • JOBS_FOR_ALL_NEEDS_SECTION
    • VIDEO_SRP_JOBS_SECTION
    • APPLY_JOB_SECTION
    • EASY_TO_REACH_SECTION
    • FATAFAT_SECTION
    • NEAR_BY_JOB_SECTION_CITIES
    GET /v1/home/section-map HTTP/1.1
    Authorization: Bearer <token>
    Accept: application/json
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": [{
        "jobsAvailableInCity": true,
        "NEAR_BY_JOB_SECTION": {"title": "Jobs near you"},
        "CATEGORY_WISE_SECTION": {"title": "Jobs by category"},
        "JOBS_FOR_ALL_NEEDS_SECTION": {"title": "Jobs for all needs"},
        "VIDEO_SRP_JOBS_SECTION": {"title": "Video jobs"},
        "APPLY_JOB_SECTION": {"title": "Apply now"},
        "EASY_TO_REACH_SECTION": {"title": "Easy to reach"},
        "FATAFAT_SECTION": {"title": "Fatafat jobs"},
        "NEAR_BY_JOB_SECTION_CITIES": {"title": "Nearby cities"}
      }]
    }
  • Fatafat 职位分组

    GET /v1/openings/same-day-bucket opendata

    返回 Fatafat 快速录用分组:jsAction、recAction、isTopJob、bucketId 以及嵌套的职位卡片,供当日招聘职位栏使用。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • jobs
    • jsAction
    • recAction
    • date
    • jobId
    • isTopJob
    • bucketId
    • job
    • id
    • jobTitle
    • minSalary
    • maxSalary
    • locality
    • isWfh
    • callAllowed
    • company
    GET /v1/openings/same-day-bucket HTTP/1.1
    Authorization: Bearer <token>
    Accept: application/json
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "jobs": [{
          "jsAction": "apply",
          "recAction": "shortlist",
          "date": 1727827200000,
          "jobId": 86750,
          "isTopJob": true,
          "bucketId": "ff-blr-whitefield",
          "job": {
            "id": "JH-86750",
            "jobTitle": "Delivery Executive",
            "minSalary": 15000,
            "maxSalary": 22000,
            "locality": "Whitefield",
            "isWfh": false,
            "callAllowed": true,
            "company": {"id": "comp-4412", "name": "Example Logistics"}
          }
        }]
      }
    }
  • HireMeter 任务

    GET /v1/seeker/hire-readiness opendata

    返回 HireMeter 就绪度:hireMeterPercentage(base/activity/profile/total),以及带 probabilityGain、currentProgress 与 isCompleted 的 hireMeterTasks。

    认证方式: 使用来自 POST /v1/seeker/otp/confirm 的 Authorization: Bearer <token>。

    • userId
    • totalTasks
    • hireMeterPercentage
    • base
    • activity
    • profile
    • total
    • hireMeterTasks
    • task
    • taskType
    • probabilityGain
    • currentProgress
    • totalRequired
    • isCompleted
    • source
    GET /v1/seeker/hire-readiness HTTP/1.1
    Authorization: Bearer <token>
    Accept: application/json
    {
      "status": true,
      "code": 200,
      "message": "ok",
      "data": {
        "userId": 4412891,
        "totalTasks": 6,
        "hireMeterPercentage": {
          "base": 40.0,
          "activity": 18.0,
          "profile": 22.5,
          "total": 80.5
        },
        "hireMeterTasks": [{
          "task": "Add work experience",
          "taskType": "profile",
          "probabilityGain": 8.0,
          "currentProgress": 1.0,
          "totalRequired": 1.0,
          "isCompleted": true,
          "source": "profile"
        }, {
          "task": "Apply to 5 jobs",
          "taskType": "activity",
          "probabilityGain": 12.0,
          "currentProgress": 2.0,
          "totalRequired": 5.0,
          "isCompleted": false,
          "source": "home"
        }]
      }
    }

数据类别

  • 职位
  • 投递
  • 求职者资料
  • 简历
  • 街区
  • Fatafat 快速录用职位
  • 求职就绪度

数据使用场景与案例

  • 超本地化职位普查

    劳动力市场看板可以分页读取城市/街区职位信息流,保存 jobTitle、minSalary、maxSalary、isWfh、locality、company.name 与 callAllowed,形成覆盖印度各街区的 JobHai 实时职位目录。

  • 投递流程对账

    ATS 机器人可以对某个职位执行投递或通话投递,再读取投递列表,把 jobId、status、applicationType、canCall、cName、rName 与 jobContact 对应到面试阶段看板上。

  • 候选人 CRM 补全

    HRIS 工具可以在 OTP 登录后拉取已登录用户的资料,把 userId、phone、locality.label、highestQualification、currentSalary、profileCompletionPercentage、workExp.categoryLabel 与 resume.fileName 附加到已有的候选人记录上。

  • 街区级位置图谱

    地理索引可以调用街区联想接口,并把 localityId、localityLabel、cityId、cityLabel 与职位信息流的城市/街区筛选条件关联起来,维护一张街区粒度的招聘地图。

  • 快速录用与就绪度评分

    人力外包团队可以读取 Fatafat 分组(jsAction、isTopJob、bucketId)作为当日招聘职位,再叠加 HireMeter 的 hireMeterPercentage 与各任务的 probabilityGain,为优先推进哪些候选人排序。

常见问题

Job Hai 如何认证求职者?

先发送手机号 OTP,再进行验证。验证调用返回 token、refreshToken、userId、isFresher、isReturningUser 与 isSoftProfileCompleted。之后的调用都发送 Authorization: Bearer <token>。Truecaller 是另一种登录方式,另有一个 token 轮换调用用来刷新这一对令牌。

Job Hai 职位卡片上有哪些字段?

信息流返回 jobCount 与 jobs[],其中含 id、jobTitle、minSalary、maxSalary、isWfh、isPartTime、isFullTime、isContract、walkin、locality、distance、callAllowed、showApplyButton、company.id/name 以及 recruiter.id/name。职位详情还会加上 jobDescription、interviewAddress、jobHighlights 与 videoUrl。

Call HR / 投递在数据里如何体现?

投递与通话投递会返回 callAllowed、jobContact、requisitionId 与 callFeedbackOptions。投递列表随后给出 jobId、status、applicationType、canCall、cName、rName 与 showSimilarJobs。

CRM 能拉取哪些资料字段?

完整资料记录包含 userId、phone、altPhone、locality(localityId、label、cityLabel、latitude、longitude)、qualification.highestQualification、currentSalary、workExp、skills、languagesKnown、resume.fileName 与 profileCompletionPercentage。另有一个单独的调用返回生成 CV 的 url。

Fatafat 职位与 HireMeter 分数有什么区别?

Fatafat 分组返回 FFJob 行组成的 jobs[],带有 jsAction、recAction、isTopJob、bucketId、date 以及嵌套的职位卡片。HireMeter 返回 userId、hireMeterPercentage(base、activity、profile、total)、totalTasks 与 hireMeterTasks,其中含 task、taskType、probabilityGain、currentProgress、totalRequired 与 isCompleted。

与 Job Hai - Search Job, Vacancy 相似的应用

  • apna - Search Job, Vacancy App — apna 是面向印度蓝领、入门岗和二三线城市招聘的手机优先求职应用,提供筛选、提醒和聊天式投递。
  • WorkIndia — WorkIndia 是面向配送、零售、销售、司机和后台岗位的免费印度求职应用,求职者可直接投递并致电 HR。
  • Naukri: Job Search App — Naukri 是 Info Edge 面向印度白领与 IT 招聘的职位板,支持按资料搜索、订阅提醒并联系招聘方。
  • Shine.com Job Search App — Shine.com 是 HT Media 的印度招聘门户,覆盖应届和中层职位,可按城市筛选并由招聘方发布职位。
  • Indeed Job Search — Indeed 把公司官网和其他招聘板上的印度职位汇总到同一搜索里,并提供 Easy Apply 与已保存简历。
  • foundit — foundit(原 Monster India)面向印度及其他亚太、中东市场的应届与有经验岗位,提供求职搜索与投递。
  • LinkedIn: Community & Network — LinkedIn 职位在印度主要用于职业社交、内推和公司白领岗位,而不是超本地的一线招聘。
  • Internshala — Internshala 是面向实习和应届岗位的印度求职应用,带筛选、面向 ATS 的简历工具,以及居家办公与到岗职位。

相关主题

  • job hai 职位 api
  • jobhai
  • infoedge
  • 印度招聘
  • jobTitle
  • minSalary
  • isWfh
  • callAllowed
  • jobContact
  • profileCompletionPercentage
  • jsAction
  • hireMeterPercentage
  • probabilityGain

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

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

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

获取报价