OCC 求职(OCCMundial)数据 API
OCC 求职服务于墨西哥 occ.com.mx 职位市场:empleos 结果页读取 GET /v1/jobs/search,卡片携带每个职位的 jobTitle、companyPrettyName、salaryMin/salaryMax、hasKillerQuestions 与 affinityScore。单个职位在 GET /v1/jobs/{jobId} 水合,含福利与要求,相关职位按亲和度排序。
登录为针对 POST /oauth/token 的 OpenID Connect(PKCE);此后,投递把 killerQuestionAnswers 提交到 POST /v1/jobs/{jobId}/apply,结构化简历从 GET /v1/me/resume 加载,招聘方兴趣在 GET /v1/me/profile-views 展示,应用内招聘方聊天在 GET /v1/me/conversations 列出。
OCC 求职 App(包名 mx.com.occ,版本 6.25.0)是 OCCMundial 面向墨西哥 occ.com.mx 招聘板的客户端:求职者搜索职位、投递(含筛选问题与技能)、上传简历、关注招聘方浏览、收藏职位,并与招聘方聊天。数据 API 为令牌认证的 JSON 接口,登录后携带 OpenID Connect(授权码+PKCE)签发的 Bearer 令牌。职位卡片使用 jobOfferId、jobTitle、companyPrettyName、salaryMin、salaryMax 等字段。
应用截图
API 端点一览
OAuth2 令牌(候选人登录)
POST
/oauth/tokenosint把 OCCMundial 授权码(或 refresh_token)换成 Bearer accessToken,供候选人登录及后续每次 /v1 调用携带。
认证方式: 无需认证。授权码 + PKCE 交换。后续 REST 调用发送 Authorization: Bearer <accessToken>。刷新在同一端点使用 grant_type=refresh_token。
- grant_type
- code
- redirect_uri
- clientId
- code_verifier
- access_token
- refresh_token
- id_token
- token_type
- expires_in
- scope
- sub
依据应用界面重构的示意示例,并非实时抓包。
POST /oauth/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=<auth-code>&redirect_uri=<app-redirect-uri>&client_id=<portal-client-id>&code_verifier=<pkce-verifier>{ "access_token": "<accessToken>", "refresh_token": "<refreshToken>", "id_token": "<idToken>", "token_type": "Bearer", "expires_in": 3600, "scope": "openid profile email" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的登录与会话刷新流程重构字段集镜像标准 OpenID Connect 令牌响应
搜索职位
GET
/v1/jobs/searchopendata返回职位搜索结果页使用的职位列表:jobTitle、companyPrettyName、salaryMin/salaryMax、locationName、筛选聚合与分页。
认证方式: 可选的 Bearer accessToken,来自 POST /oauth/token。匿名搜索仍发送门户标识;登录调用会个性化 isFavorite / isApplied。
- jobOffers
- jobOfferId
- encryptedId
- jobTitle
- companyName
- companyPrettyName
- companyLogoUrl
- companySector
- companyRating
- isCompanyVerified
- isCompanyConfidential
- salaryMin
- salaryMax
- salaryNegotiable
- salaryInterval
- isSalaryVisible
- locationId
- locationName
- publicationDate
- jobModality
- hasKillerQuestions
- isFavorite
- isApplied
- affinityScore
- facets
- selectedFacets
- pageNumber
- total
- hasMore
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/jobs/search?keywords=ingeniero+software&locationIds=9&cityIds=555&categoryIds=12&salaryMin=20000&salaryMax=45000&pageNumber=1&pageSize=20&sortBy=publicationDate HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "jobOffers": [{ "jobOfferId": "18442091", "encryptedId": "enc-off-18442091", "jobTitle": "Ingeniero de software", "companyName": "Example Corp", "companyPrettyName": "Example Corp SA de CV", "companyLogoUrl": "https://cdn.example.com/logos/example.png", "companySector": "Tecnología", "companyRating": 4.2, "isCompanyVerified": true, "isCompanyConfidential": false, "salaryMin": 25000, "salaryMax": 38000, "salaryNegotiable": false, "salaryInterval": "monthly", "isSalaryVisible": true, "locationId": 9, "locationName": "Ciudad de México", "publicationDate": "2026-09-20T15:04:00Z", "jobModality": "hybrid", "hasKillerQuestions": true, "isFavorite": false, "isApplied": false, "affinityScore": 0.81, "jobFirstToApply": true }], "total": 1284, "pageNumber": 1, "hasMore": true, "facets": [{"facetId": "salary", "facetType": "salary", "count": 412}], "selectedFacets": [] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的职位搜索结果流程重构字段集镜像按关键词与地点搜索展示的列表卡片
按 ID 获取职位
GET
/v1/jobs/{jobId}opendata为职位详情页水合单个 OCCMundial 职位(description、requirements、jobBenefits、薪资区间、企业认证)。
认证方式: 可选的 Bearer accessToken。个性化区块(isApplied、isFavorite、affinityScore)需要登录候选人。
- jobOffer
- jobOfferId
- encryptedId
- jobTitle
- description
- requirements
- jobBenefits
- companyId
- companyPrettyName
- companyLogoUrl
- companySector
- companyRating
- isCompanyVerified
- isCompanyConfidential
- salaryMin
- salaryMax
- workplaceType
- contractTypeId
- publicationDate
- hasKillerQuestions
- hasSkills
- isExternal
- isFavorite
- isApplied
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/jobs/18442091 HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "jobOffer": { "jobOfferId": "18442091", "encryptedId": "enc-off-18442091", "jobTitle": "Ingeniero de software", "description": "Construye servicios de marketplace en CDMX.", "requirements": "3+ años en Kotlin o Java.", "jobBenefits": ["SGMM", "home office 2 días"], "companyId": "co-441", "companyPrettyName": "Example Corp SA de CV", "companyLogoUrl": "https://cdn.example.com/logos/example.png", "companySector": "Tecnología", "companyRating": 4.2, "isCompanyVerified": true, "isCompanyConfidential": false, "salaryMin": 25000, "salaryMax": 38000, "salaryNegotiable": false, "locationName": "Ciudad de México", "workplaceType": "hybrid", "contractTypeId": 1, "publicationDate": "2026-09-20T15:04:00Z", "hasKillerQuestions": true, "hasSkills": true, "isExternal": false, "isFavorite": false, "isApplied": false } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的职位详情页流程重构字段集镜像完整职位卡片及描述与要求区块
相关职位
GET
/v1/jobs/{jobId}/relatedopendata为职位详情轮播返回相关职位,以 affinityScore 评分。
认证方式: 可选的 Bearer accessToken。候选人已隐藏的职位在展示前被过滤。
- relatedJobOffers
- jobOfferId
- jobTitle
- companyPrettyName
- companyLogoUrl
- locationName
- salaryMin
- salaryMax
- affinityScore
- isSimilarJob
- isFavorite
- jobOffersAffinityScoreList
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/jobs/18442091/related HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "relatedJobOffers": [{ "jobOfferId": "18443002", "jobTitle": "Desarrollador backend", "companyPrettyName": "Example Labs", "companyLogoUrl": "https://cdn.example.com/logos/labs.png", "locationName": "Guadalajara", "salaryMin": 22000, "salaryMax": 32000, "affinityScore": 0.74, "isSimilarJob": true, "isFavorite": false }], "jobOffersAffinityScoreList": [0.74] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据职位详情的相关职位轮播重构亲和度评分镜像打开职位旁展示的排序
获取登录候选人
GET
/v1/me/profileosint加载登录求职者记录(姓名、email、phoneNumber、encryptedCurriculumId、resumeVisibility、功能开关),用于控制投递与聊天界面。
认证方式: Bearer accessToken,来自 POST /oauth/token。会话过期会触发令牌刷新,刷新失败则登出。
- candidate
- candidateId
- encryptedCandidateId
- firstName
- middleName
- lastName
- phoneNumber
- gender
- birthDate
- candidateStatusId
- curriculumId
- encryptedCurriculumId
- resumeVisibility
- features
- isVerified
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/me/profile HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "candidate": { "candidateId": 8845123, "encryptedCandidateId": "enc-cand-8845123", "firstName": "María", "middleName": "Elena", "lastName": "Hernández", "email": "[email protected]", "phoneNumber": "5512345678", "gender": "F", "birthDate": "1994-03-12", "candidateStatusId": 1, "curriculumId": 44189012, "encryptedCurriculumId": "enc-cv-44189012", "resumeVisibility": "public", "features": ["chatEnabled", "chargedApply"], "isVerified": true } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的登录资料初始化流程重构字段集镜像仪表盘各标签页展示的候选人记录
获取候选人简历
GET
/v1/me/resumeosint返回结构化 OCCMundial 简历(skills、jobExperiences、education、certification、language、visibility),供简历界面展示与编辑。
认证方式: Bearer accessToken,来自 POST /oauth/token。要求候选人具有有效的 curriculumId。
- resume
- resumeId
- curriculumId
- encryptedCurriculumId
- visibility
- isFirstJob
- jobTitle
- skills
- encryptedSkillId
- levelId
- jobExperiences
- company
- position
- startDate
- endDate
- isCurrent
- education
- institution
- certification
- encryptedCertificationId
- language
- languageId
- languageLevel
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/me/resume HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "resume": { "resumeId": 44189012, "curriculumId": 44189012, "encryptedCurriculumId": "enc-cv-44189012", "visibility": "public", "isFirstJob": false, "jobTitle": "Ingeniera de software", "skills": [{"encryptedSkillId": "enc-sk-91", "skill": "Kotlin", "levelId": 3}], "jobExperiences": [{ "company": "Example Corp", "position": "Ingeniera de software", "startDate": "2021-03-01", "endDate": null, "isCurrent": true, "expIsFirstJob": false }], "education": [{"institution": "UNAM", "year": 2017}], "certification": [{"encryptedCertificationId": "enc-cert-7", "institution": "Google", "year": 2024}], "language": [{"languageId": 1, "languageLevel": "C1"}] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的简历编辑界面重构区块集镜像向求职者展示的技能、经历、教育与语言区块
上传简历文件
POST
/v1/me/resume/fileosint上传候选人附加的简历文件(PDF/DOC),返回用于下载、附加或设置默认简历的 encryptedFileId / fileUri。
认证方式: Bearer accessToken,来自 POST /oauth/token。以 multipart 上传附加简历文件。
- encryptedFileId
- fileName
- mimeType
- fileSize
- fileUri
- curriculumId
- encryptedCurriculumId
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/me/resume/file HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: multipart/form-data; boundary=----occ ------occ Content-Disposition: form-data; name="file"; filename="cv-maria.pdf" Content-Type: application/pdf <pdf-bytes> ------occ--{ "encryptedFileId": "enc-file-9081", "fileName": "cv-maria.pdf", "mimeType": "application/pdf", "fileSize": 184320, "fileUri": "https://files.example.com/v1/me/resume/file/enc-file-9081", "curriculumId": 44189012, "encryptedCurriculumId": "enc-cv-44189012" }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的附加简历上传流程重构multipart 结构镜像简历界面展示的文件选择器
投递职位
POST
/v1/jobs/{jobId}/applyopendata向职位提交投递,含 killerQuestionAnswers 与 skillAnswers;返回投递记录列表所用的 applicationId / applicationStatusId。
认证方式: Bearer accessToken,来自 POST /oauth/token。候选人须有完整简历;当 hasKillerQuestions / hasSkills 为 true 时,killerQuestionAnswers 与 skillAnswers 为必填。
- encryptedCandidateId
- jobOfferId
- encryptedCurriculumId
- killerQuestionAnswers
- skillAnswers
- applicationId
- jobApplicationId
- applicationDate
- applicationStatusId
- isApplied
- chargedApply
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/jobs/18442091/apply HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "encryptedCandidateId": "enc-cand-8845123", "encryptedCurriculumId": "enc-cv-44189012", "killerQuestionAnswers": [{"questionId": 11, "answerText": "Sí"}], "skillAnswers": [{"encryptedSkillId": "enc-sk-91", "levelId": 3}] }{ "applicationId": "app-55201", "jobApplicationId": "app-55201", "jobOfferId": "18442091", "applicationDate": "2026-09-27T14:22:00Z", "applicationStatusId": 1, "isApplied": true, "chargedApply": false }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的投递流程(含筛选问题与技能提示)重构响应结构镜像投递成功后展示的确认信息
列出已投递职位
GET
/v1/me/applicationsopendata列出候选人已投递的职位,供投递记录标签页使用。
认证方式: Bearer accessToken,来自 POST /oauth/token。
- jobOffers
- jobOfferId
- jobTitle
- companyPrettyName
- companyLogoUrl
- applicationId
- applicationDate
- applicationStatusId
- isApplied
- locationName
- total
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/me/applications HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "jobOffers": [{ "jobOfferId": "18442091", "jobTitle": "Ingeniero de software", "companyPrettyName": "Example Corp SA de CV", "companyLogoUrl": "https://cdn.example.com/logos/example.png", "applicationId": "app-55201", "applicationDate": "2026-09-27T14:22:00Z", "applicationStatusId": 1, "isApplied": true, "locationName": "Ciudad de México" }], "total": 6 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的投递记录历史标签页重构字段集镜像已投递职位卡片及其状态标签
列出收藏职位
GET
/v1/me/favoritesopendata按 encryptedFavoritesIds 读取已收藏职位,供收藏页使用。
认证方式: Bearer accessToken,来自 POST /oauth/token。按 encryptedFavoritesIds 或 typeId 查询;切换收藏时写入同一资源。
- favoriteJobOffers
- encryptedFavoritesIds
- typeId
- jobOfferId
- encryptedId
- jobTitle
- companyPrettyName
- locationName
- salaryMin
- salaryMax
- isFavorite
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/me/favorites?typeId=1 HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "favoriteJobOffers": [{ "jobOfferId": "18442091", "encryptedId": "enc-off-18442091", "jobTitle": "Ingeniero de software", "companyPrettyName": "Example Corp SA de CV", "locationName": "Ciudad de México", "salaryMin": 25000, "salaryMax": 38000, "isFavorite": true }], "encryptedFavoritesIds": ["enc-off-18442091"] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的收藏页与收藏切换交互重构字段集镜像已收藏职位卡片
招聘方资料浏览
GET
/v1/me/profile-viewsosint返回浏览过该候选人的招聘方,以及简历访问仪表盘所用的 totalRecruiterViews / totalCompanies。
认证方式: Bearer accessToken,来自 POST /oauth/token。
- recruiterViews
- companyId
- companyPrettyName
- companyLogoUrl
- recruiterViewsCount
- createdAt
- totalRecruiterViews
- totalCompanyViews
- totalCompanies
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/me/profile-views HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "recruiterViews": [{ "companyId": "co-441", "companyPrettyName": "Example Corp SA de CV", "companyLogoUrl": "https://cdn.example.com/logos/example.png", "recruiterViewsCount": 3, "createdAt": "2026-09-26T11:00:00Z" }], "totalRecruiterViews": 17, "totalCompanyViews": 9, "totalCompanies": 9 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的简历访问仪表盘重构总计数据镜像向求职者展示的招聘方兴趣计数器
职位订阅列表
GET
/v1/me/alertsopendata列出已保存的职位订阅,向候选人推送匹配职位。
认证方式: Bearer accessToken,来自 POST /oauth/token。
- alertId
- keywords
- locationIds
- locationName
- salaryMin
- criteria
- frequency
- isActive
- receiveAlerts
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/me/alerts HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "alerts": [{ "alertId": "al-2201", "keywords": "ingeniero software", "locationIds": [9], "locationName": "Ciudad de México", "salaryMin": 20000, "criteria": {"categoryIds": [12], "jobModality": "hybrid"}, "frequency": "daily", "isActive": true, "receiveAlerts": true }] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的已保存订阅管理页重构条件结构镜像每条订阅展示的关键词、地点与频率选项
推荐职位
GET
/v1/me/suggested-jobsopendata为仪表盘推荐页返回个性化职位推荐。
认证方式: Bearer accessToken,来自 POST /oauth/token。要求有效的 curriculumId。
- suggestedJobOffers
- jobOfferId
- jobTitle
- companyPrettyName
- locationName
- salaryMin
- salaryMax
- affinityScore
- isFavorite
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/me/suggested-jobs HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "suggestedJobOffers": [{ "jobOfferId": "18445110", "jobTitle": "Desarrolladora Android", "companyPrettyName": "Example Mobile", "locationName": "Monterrey", "salaryMin": 28000, "salaryMax": 40000, "affinityScore": 0.88, "isFavorite": false }] }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的仪表盘推荐页重构排序镜像按亲和度评分的推荐卡片
招聘方聊天会话
GET
/v1/me/conversationsosint列出招聘方与候选人的会话,含未读数 unreadMessagesCount,供应用内聊天收件箱使用。
认证方式: Bearer accessToken,来自 POST /oauth/token。功能由候选人资料上的 chatEnabled 开关控制。
- conversationId
- encryptedIdConversation
- companyPrettyName
- jobOfferId
- jobTitle
- unreadMessagesCount
- lastMessage
- messageCreationDate
- senderId
- totalMessagesCount
依据应用界面重构的示意示例,并非实时抓包。
GET /v1/me/conversations HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "conversations": [{ "conversationId": "conv-901", "encryptedIdConversation": "enc-conv-901", "companyPrettyName": "Example Corp SA de CV", "jobOfferId": "18442091", "jobTitle": "Ingeniero de software", "unreadMessagesCount": 2, "lastMessage": "¿Puedes entrevistarte el jueves?", "messageCreationDate": "2026-09-27T09:15:00Z", "senderId": "rec-44" }], "totalMessagesCount": 2 }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据应用的招聘方聊天收件箱重构字段集镜像会话行与未读角标
数据类别
- 职位
- 候选人资料
- 简历
- 投递申请
- 招聘方浏览
- 职位订阅
- 招聘方聊天
数据使用场景与案例
墨西哥职位接入 ATS
轮询 GET /v1/jobs/search(keywords、locationIds、salaryMin/salaryMax、selectedFacets),并用 GET /v1/jobs/{jobId} 水合每条结果,让申请人跟踪系统以 jobTitle、companyPrettyName、薪资区间与 hasKillerQuestions 镜像 OCCMundial 职位。
候选人简历完整度与投递就绪
读取 GET /v1/me/profile 与 GET /v1/me/resume(skills、jobExperiences、education、visibility),并把新文件 POST 到 /v1/me/resume/file,让职业辅导产品能告知求职者投递为何受阻。
投递管道与招聘方兴趣
关联 GET /v1/me/applications(applicationId、applicationStatusId、applicationDate)与 GET /v1/me/profile-views(totalRecruiterViews、totalCompanies),展示哪些投递真正被查看。
订阅驱动的职位通知
同步 GET /v1/me/alerts(keywords、locationIds、frequency、isActive)与 GET /v1/me/suggested-jobs(affinityScore),让人力产品无需重新实现 OCCMundial 的匹配,即可把相同的已保存搜索条件分发为推送或邮件。
常见问题
哪些 OCCMundial 端点驱动职位搜索?
empleos 结果页调用 GET /v1/jobs/search(keywords、locationIds、salaryMin/salaryMax、facets)。打开卡片水合 GET /v1/jobs/{jobId};相关轮播为 GET /v1/jobs/{jobId}/related。
OCC 求职如何认证?
候选人以 OpenID Connect(授权码 + PKCE)登录。应用把 grant_type=authorization_code 提交到 POST /oauth/token,后续 /v1 调用发送 Authorization: Bearer <accessToken>。刷新使用 grant_type=refresh_token。
返回哪些候选人与简历字段?
GET /v1/me/profile 返回 encryptedCandidateId、firstName、lastName、email、phoneNumber 与 encryptedCurriculumId。GET /v1/me/resume 增加 skills、jobExperiences、education、certification、language 与简历可见性;文件上传至 POST /v1/me/resume/file。
投递与招聘方浏览在哪里?
投递为 POST /v1/jobs/{jobId}/apply,含 killerQuestionAnswers。历史为 GET /v1/me/applications。招聘方兴趣为 GET /v1/me/profile-views(totalRecruiterViews、totalCompanies)。
相关主题
- OCCMundial API
- OCC 职位搜索 API
- occ.com.mx 职位
- 候选人简历 API
- 招聘方浏览
- 墨西哥职位订阅
- OCC 投递端点
- OpenID Connect OCC
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业