API REFERENCE

API 参考

职引 Open API v1 全部端点。基础地址 https://api2.bysjob.com,所有接口走 Authorization: Bearer hecn_live_... 鉴权,建议传 Idempotency-Key 头防重复执行。

快速开始

1. 申请 API Key:登录后进入「用户中心 → API 密钥」,点击「创建 API Key」。Key 明文仅展示一次,请立即保存。

2. 认证:每个请求带 Authorization: Bearer hecn_live_...

3. 幂等:写入类接口建议带 Idempotency-Key 头(≤160 字符),重复请求返回首次结果且不重复扣费。

4. 计费:按量付费,仅扣付费积分与注册赠送积分;资源包、订阅、促销不参与。余额不足返回 402。

角色权限:求职者可调用简历解析、人岗匹配;JD 优化、批量筛选仅招聘者可用(求职者调用返回 403 recruiter_only)。

错误码

HTTPerror含义
400invalid_input参数校验失败,见 detail
401unauthorized缺少或无效的 API Key
402insufficient_points付费积分不足,充值后重试
403recruiter_only该接口仅招聘者可用
409idempotency_key_in_progress同 Key 请求正在执行,稍后重试
413payload_too_large请求体超 75MB 或 data URL 超 25M 字符
429open_api_quota_exceeded超出日/月请求限额
500internal_error服务异常,凭 request_id 联系排查

端点概览

方法路径计费
POST/api/open/v1/resumes/parse 按页计费:TextIn xParse 0.05 积分/页(5 point_cents/页),不向上取整
POST/api/open/v1/matches/resume-jd 固定计费:1 积分/次(100 point_cents),与模型实际消耗无关
POST/api/open/v1/jds/optimize 按模型实际 token 消耗计费,最低 1 积分/次(100 point_cents)
POST/api/open/v1/batches/screen 按候选人数量计费:1 积分/位(100 point_cents/位)
GET/api/open/v1/batches/:id 本接口不扣费

简历解析

POST/api/open/v1/resumes/parse

将 PDF 简历解析为结构化纯文本,按页计费。适合 ATS、校招系统与人才库做入库前预处理。

参数类型必填说明
fileDataUrlstringPDF 的 base64 data URL,形如 data:application/pdf;base64,...,最长 25,000,000 字符。
fileNamestring文件名,最长 240 字符,仅用于审计展示。
pagesinteger显式指定页数(1–10000)。不传则按 PDF 内部 /Type /Page 估算。
timeoutMsinteger单次解析超时(10000–660000 毫秒)。不传走默认。
curl
curl -X POST https://api2.bysjob.com/api/open/v1/resumes/parse \
 -H "Authorization: Bearer hecn_live_xxx" \
 -H "Idempotency-Key: parse-resume-001" \
 -H "Content-Type: application/json" \
 -d '{
 "fileDataUrl": "data:application/pdf;base64,JVBERi0xLjQK...",
 "fileName": "张三_前端工程师.pdf",
 "pages": 3
 }'
json
{
 "ok": true,
 "request_id": "8f3c...e21",
 "data": {
 "text": "张三 | 前端工程师\n联系方式:...\n教育背景:...",
 "pages": 3
 },
 "usage": { "pages": 3, "provider": "textin", "model": "xparse-document-parse" },
 "billing": {
 "billed_point_cents": 15,
 "billed_points": 0.15,
 "balance_point_cents": 9985,
 "resource_point_cents": 0
 }
}

计费:按页计费:TextIn xParse 0.05 积分/页(5 point_cents/页),不向上取整。3 页 = 0.15 积分。

  • 解析走 B 端 TextIn xParse,原文不长期存储,批量任务入库时以占位符替代明文。
  • data URL 过大(超 25M 字符)直接返回 413;全局请求体上限 75MB。

人岗匹配

POST/api/open/v1/matches/resume-jd

输入 JD 与简历文本,返回匹配分、优势、差距、关键词覆盖与下一步复核建议。

参数类型必填说明
resume_textstring简历正文,最长 12,000 字符。也接受 camelCase resumeText。
jd_textstring岗位描述正文,10–8,000 字符。也接受 camelCase jdText。
job_titlestring岗位名称,最长 200 字符,辅助匹配定向。也接受 camelCase jobTitle。
curl
curl -X POST https://api2.bysjob.com/api/open/v1/matches/resume-jd \
 -H "Authorization: Bearer hecn_live_xxx" \
 -H "Idempotency-Key: match-001" \
 -H "Content-Type: application/json" \
 -d '{
 "resume_text": "张三,5 年前端经验,精通 React/TypeScript...",
 "jd_text": "招聘高级前端工程师,要求熟悉 React、TypeScript、Webpack..."
 }'
json
{
 "ok": true,
 "request_id": "a1b2...c3d4",
 "data": {
 "score": 78,
 "strengths": ["React 5 年实战", "TypeScript 类型体系熟悉"],
 "gaps": ["缺少 Node.js 后端经验"],
 "actions": ["建议补充 1-2 个全栈项目案例"]
 },
 "usage": { "prompt_tokens": 1820, "completion_tokens": 320, "total_tokens": 2140 },
 "billing": {
 "billed_point_cents": 100,
 "billed_points": 1,
 "balance_point_cents": 9885,
 "resource_point_cents": 0
 }
}

计费:固定计费:1 积分/次(100 point_cents),与模型实际消耗无关。

  • 字段同时接受 snake_case 与 camelCase,建议统一用 snake_case。

JD 优化

POST/api/open/v1/jds/optimize

把招聘需求转成更清晰、合规、可发布的岗位描述,便于企业系统内嵌。

请求体约束

jd_text、job_title、requirements 至少传一个,否则返回 400 invalid_input。
参数类型必填说明
jd_textstring原始 JD 正文,最长 8,000 字符。也接受 camelCase jdText。
job_titlestring岗位名称,最长 200 字符。也接受 camelCase jobTitle。
requirementsstring岗位要求要点,最长 8,000 字符。
locationstring工作地点,最长 120 字符。
experiencestring经验要求,最长 120 字符。
curl
curl -X POST https://api2.bysjob.com/api/open/v1/jds/optimize \
 -H "Authorization: Bearer hecn_live_xxx" \
 -H "Idempotency-Key: jd-opt-001" \
 -H "Content-Type: application/json" \
 -d '{
 "job_title": "高级前端工程师",
 "requirements": "React/TypeScript/性能优化/跨团队协作",
 "location": "上海",
 "experience": "3-5 年"
 }'
json
{
 "ok": true,
 "request_id": "e5f6...7890",
 "data": {
 "content": "## 高级前端工程师(上海)\n\n### 岗位职责\n1. ..."
 },
 "usage": { "prompt_tokens": 960, "completion_tokens": 740, "total_tokens": 1700 },
 "billing": {
 "billed_point_cents": 100,
 "billed_points": 1,
 "balance_point_cents": 9785,
 "resource_point_cents": 0
 }
}

计费:按模型实际 token 消耗计费,最低 1 积分/次(100 point_cents)。

  • 仅招聘者可用;求职者调用返回 403 recruiter_only。

批量筛选

POST/api/open/v1/batches/screen

JD + 多份简历异步处理,立即返回 batch_id,随后用查询接口轮询进度与候选人排序。

参数类型必填说明
jd_textstring岗位描述正文,10–8,000 字符。也接受 camelCase jdText。
labelstring任务标签,最长 120 字符,便于检索。
resumesarray<object>候选人简历数组,1–20 条。每条含 text(必填,≤12,000 字符)与 label(可选,≤120 字符)。
curl
curl -X POST https://api2.bysjob.com/api/open/v1/batches/screen \
 -H "Authorization: Bearer hecn_live_xxx" \
 -H "Idempotency-Key: batch-001" \
 -H "Content-Type: application/json" \
 -d '{
 "jd_text": "招聘高级前端工程师,要求 React/TypeScript...",
 "label": "前端组-0625",
 "resumes": [
 { "label": "张三", "text": "5 年前端,精通 React..." },
 { "label": "李四", "text": "3 年前端,Vue 转 React..." }
 ]
 }'
json
{
 "ok": true,
 "request_id": "b7c8...d9e0",
 "data": { "batch_id": "f1a2...3b4c", "status": "running", "total": 2 },
 "billing": { "billed_point_cents": 0, "billed_points": 0, "balance_point_cents": 0, "resource_point_cents": 0 },
 "estimated_point_cents": 200,
 "billing_note": "费用按候选人数量 ×ばつ 1 积分异步结算,首响应不计费。"
}

计费:按候选人数量计费:1 积分/位(100 point_cents/位)。失败项不扣费。费用异步结算,首响应仅给预估。

  • 仅招聘者可用;求职者调用返回 403 recruiter_only。
  • 批量任务异步执行,进程崩溃残留的 running 任务会在 30 分钟后被后台回收标 failed。
  • 真实扣费以 GET /api/open/v1/batches/:id 返回为准。

查询批量任务

GET/api/open/v1/batches/:id

按 batch_id 查询批量筛选任务的进度、候选人排序与汇总结论。

参数类型必填说明
idstring (path)创建批量任务时返回的 batch_id。
curl
curl -X GET https://api2.bysjob.com/api/open/v1/batches/f1a2...3b4c \
 -H "Authorization: Bearer hecn_live_xxx"
json
{
 "ok": true,
 "data": {
 "batch_id": "f1a2...3b4c",
 "status": "done",
 "total": 2,
 "completed": 2,
 "label": "前端组-0625",
 "created_at": "2026-06-25T10:00:00.000Z",
 "items": [
 { "candidate_label": "张三", "score": 82, "tags": ["React", "TypeScript"], "recommendation": "建议进入面试;补充全栈案例" },
 { "candidate_label": "李四", "score": 61, "tags": ["Vue"], "recommendation": "可考虑,需补充考察" }
 ],
 "summary": {
 "matchConclusion": "已完成 2 位候选人与 JD 的批量匹配,当前最匹配为「张三」(82 分,优先推进)。",
 "topReasons": ["第 1 名「张三」:82 分,优先推进;建议进入面试"]
 }
 }
}

计费:本接口不扣费。批量费用在创建任务时按候选人数量异步结算。

  • 仅招聘者可用;求职者调用返回 403 recruiter_only。
  • status 取值:running / done / failed。running 超过 30 分钟会被惰性回收为 failed。

AltStyle によって変換されたページ (->オリジナル) /