招聘面试一体化
CRITICAL — 开始前 MUST 读取 ../beisen-shared/SKILL.md
容易混淆的概念,先分清楚再回答:
- 候选人 vs 申请:候选人是人,申请是这个人投在某个职位下的流程记录。同一个人可以有多条申请,阶段、评分、推荐理由都挂在申请上,不要跨申请混用。
- 职位 vs 招聘需求:需求(HC)是「要招几个人、招得怎么样了」,职位是对外发布的岗位与要求。问进度查需求,问职责要求查职位;两者可以关联,但不是一回事。
- 招聘通知 vs 审批待办:候选人推荐、面试变更这类提醒走招聘通知;员工自己发起或待办的审批与各类待办走审批清单。名字像,来源不同。
- 人才推荐 ≠ 候选人:人才推荐是按职位算出来的「可能合适的人」,不代表已进入招聘流程。
路由优先级
本 Skill 处理:招聘面试一体化(招聘进展、面试官待办、面试质量分析、竞品情报、招聘需求)
不归本 Skill 处理:
- 职位搜索 / 职位详情 / 候选人申请详情 / 人才库推荐 → ../beisen-recruitment/SKILL.md
- offer 审批流程 → ../beisen-approval/SKILL.md
- 员工档案查询 → ../beisen-employee-profile/SKILL.md
命令速查
| 场景 | CLI 命令 | 说明 |
|---|---|---|
| 查询招聘进展 | beisen-cli interview recruitmentProgress getRecruitmentProgress |
按时间范围/职位查询招聘进展 |
| 下钻查询申请明细 | beisen-cli recruitment apply bs_search_apply_list |
用招聘进展返回的 searchBatchId + jobId 下钻查询具体申请列表 |
| 查询面试官待办 | beisen-cli interview interviewerTodo getInterviewerTodo |
查询当前用户的面试待办、待评价等 |
| 面试质量分析 | beisen-cli interview_ai interviewAnalysis analyzeInterviewQuality |
面试官质量评估报告(异步) |
| 竞品情报分析 | beisen-cli interview_ai interviewAnalysis analyzeCompetitorIntelligence |
竞品公司情报分析报告(异步) |
| 查询招聘需求列表 | beisen-cli interview recruitRequirement bs_search_requirements_list |
按状态/名称/编号/提出人查询招聘需求 |
| 获取招聘需求详情 | beisen-cli interview recruitRequirement getRecruitRequirementDetail |
按 requirementId 获取需求详情 |
跨域命令说明:本 Skill 的下钻查询和异步任务轮询实际调用
beisen-cli recruitment/beisen-cli recruitment_ai域的命令(recruitment apply bs_search_apply_list、recruitment_ai async_task bs_get_async_task_status)。相关命令的参数规则、L2 数据处理及异步轮询协议详见 ../beisen-recruitment/SKILL.md。
命令示例
# 查询招聘进展(默认最近 1 个月)
beisen-cli interview recruitmentProgress getRecruitmentProgress --data '{}'
# 查询最近 3 个月招聘进展
beisen-cli interview recruitmentProgress getRecruitmentProgress --data '{"dateRange":2}'
# 查询指定职位招聘进展
beisen-cli interview recruitmentProgress getRecruitmentProgress --data '{"jobIds":["<jobId>"]}'
# 自定义日期范围(间隔不能超过半年)
beisen-cli interview recruitmentProgress getRecruitmentProgress --data '{"startDate":"2026-07-11","endDate":"2026-08-11"}'
# 下钻查询某统计项的具体申请列表(searchBatchId + jobId 来自上一步返回)
beisen-cli recruitment apply bs_search_apply_list --data '{"jobId":"<jobId>","searchBatchId":"<searchBatchId>","pageIndex":0,"pageSize":30}'
# 查询面试官待办(全部类型)
beisen-cli interview interviewerTodo getInterviewerTodo --data '{}'
# 查询待面试+待评价待办(近3个月)
beisen-cli interview interviewerTodo getInterviewerTodo --data '{"dateRange":2,"todoTypes":[2,3]}'
# 面试质量分析(异步,需轮询)
beisen-cli interview_ai interviewAnalysis analyzeInterviewQuality --data '{"userIdName":"张三"}'
# 竞品情报分析(异步,需轮询)
beisen-cli interview_ai interviewAnalysis analyzeCompetitorIntelligence --data '{"activeDimension":"人才策略","companyNames":["某科技公司"]}'
# 查询招聘需求列表
beisen-cli interview recruitRequirement bs_search_requirements_list --data '{"requirementStatus":40}'
# 获取招聘需求详情
beisen-cli interview recruitRequirement getRecruitRequirementDetail --data '{"requirementId":"<requirementId>"}'
工作流程
招聘进展:用户问"招聘进展/最新招聘情况"时,执行
beisen-cli interview recruitmentProgress getRecruitmentProgress。默认查询最近 1 个月,可用dateRange(1=近1月、2=近3月、3=近半年)或自定义startDate/endDate(间隔不能超过半年)控制范围;jobIds可指定职位。返回data.items数组,每个元素对应一个职位,包含职位基本信息和 10 个统计项(每个统计项含count和searchBatchId),按职位/统计项以表格展示各环节数量。下钻查询:当用户想看某个统计项的具体候选人明细时,取该统计项的
searchBatchId(不为空)和该职位的jobId,调用beisen-cli recruitment apply bs_search_apply_list --data '{"jobId":"<jobId>","searchBatchId":"<searchBatchId>","pageIndex":0,"pageSize":30}'获取申请列表。searchBatchId为空表示不支持下钻,需告知用户。下钻返回的applyId可继续传给bs_get_apply_detail查看单条申请详情。面试官待办:用户问"我有什么面试待办/待面试/待评价/待处理简历"时,执行
beisen-cli interview interviewerTodo getInterviewerTodo。todoTypes过滤待办类型:1=待筛选简历、2=待评价面试、3=待参加面试dateRange/startDate/endDate控制统计范围。返回pendingInterviews列表及各类待办数量。面试质量分析:用户需要面试官质量评估报告时,执行
beisen-cli interview_ai interviewAnalysis analyzeInterviewQuality。可用userIdName(面试官 UserId 或姓名,有值时优先分析该面试官所有面试)、jobIdCode+interviewType(指定职位与面试轮次,必须同时有值)、assessmentFocus(考察重心)、reviewDimensions(自定义维度)。该接口为异步任务,返回taskId,需轮询bs_get_async_task_status获取报告。竞品情报分析:用户需要竞品公司分析时,执行
beisen-cli interview_ai interviewAnalysis analyzeCompetitorIntelligence --data '{"activeDimension":"<分析维度>","companyNames":["<公司名>"]}'。activeDimension和companyNames为必填。该接口为异步任务,返回taskId,需轮询获取报告。招聘需求:用户问"有哪些招聘需求/需求进展"时,执行
beisen-cli interview recruitRequirement bs_search_requirements_list,可按requirementStatus(20=审批中、30=审批未通过、40=进行中、50=已关闭、60=已完成、70=已暂停、80=审批已终止)、requirementName、requirementCode、createBy筛选。查看详情用getRecruitRequirementDetail --data '{"requirementId":"<id>"}'。
输出格式约束
- 禁止生成 JSON 文件:不得将查询结果以 JSON 文件形式输出给用户
- CSV 表头必须使用中文:生成 CSV 文件时,表头禁止使用英文字段名(如 name、educationLevel、phaseStatus),必须使用中文(如"姓名""学历""阶段状态")
执行原则
- 所有入参通过
--data以 JSON 字符串传递,不使用--query/--page/--size等分散标志 jobId、requirementId、taskId必须从 CLI 返回中提取,严禁编造- 候选人/求职者信息属于 L2 敏感数据,仅展示摘要,不回显原始 JSON
- 异步任务(面试质量分析、竞品情报)返回
taskId后,按 references/async-tasks.md 的轮询协议处理;分析类任务耗时较长,执行前提醒用户耐心等待 - 招聘进展按职位/统计项汇总后以表格展示,突出待办快照(待筛简历、待安排面试、待面试、待发Offer、待入职)和完成量(已筛简历、已完成面试、已发Offer、已拒绝Offer、已入职)
- 用户追问某统计项明细时,用
searchBatchId+jobId下钻到bs_search_apply_list获取申请列表;searchBatchId为空时告知用户该统计项暂不支持下钻 - 面试官待办直接展示各类待办数量,即将到来的面试列表用表格呈现(候选人、职位、面试类型、方式、时间)
命令分组与参考
| 分组 | 参考文件 | 覆盖命令 |
|---|---|---|
| 招聘进展 | references/recruitment-progress.md | getRecruitmentProgress |
| 面试官待办 | references/interviewer-todo.md | getInterviewerTodo |
| 质量/情报分析 | references/analytics.md | analyzeInterviewQuality, analyzeCompetitorIntelligence |
| 招聘需求 | references/recruit-requirement.md | bs_search_requirements_list, getRecruitRequirementDetail |
| 异步任务 | references/async-tasks.md | 异步结果轮询(调用 beisen-recruitment 域 recruitment_ai async_task) |
Playbook 案例
案例 1:查询招聘进展
用户问:"帮我看看最新招聘进展"
执行步骤:
- 前置检查(beisen-shared 的 Step 1-3)
- 执行
beisen-cli interview recruitmentProgress getRecruitmentProgress --data '{}'(默认近 1 个月) - 若用户要求更长周期,改用
--data '{"dateRange":2}'或自定义日期 - 解析
data.items数组,按职位/统计项以表格展示待办快照与完成量
案例 1.1:招聘进展下钻查询具体申请
用户追问:"帮我看看 XX 职位待面试的候选人有哪些"
执行步骤:
- 先执行
getRecruitmentProgress获取招聘进展,找到该职位的pendingInterview统计项 - 检查
pendingInterview.searchBatchId是否非空;若为空则告知用户该统计项暂不支持下钻 - 执行
beisen-cli recruitment apply bs_search_apply_list --data '{"jobId":"<该职位jobId>","searchBatchId":"<pendingInterview.searchBatchId>","pageIndex":0,"pageSize":30}' - 以表格展示申请列表(姓名、学历、工作年限、最近公司、阶段状态、投递渠道等)
- 若用户需要某候选人更多详情,用返回的
applyId调用bs_get_apply_detail查看
案例 2:查询面试官待办
用户问:"我最近有什么面试要参加?"
执行步骤:
- 前置检查
- 执行
beisen-cli interview interviewerTodo getInterviewerTodo --data '{}' - 展示各类待办数量(待面试、待评价、待处理简历)
- 用表格展示即将到来的面试列表(候选人、职位、面试类型、方式、时间)
案例 3:竞品情报分析
用户问:"帮我分析一下 XX 公司的招聘情况"
执行步骤:
- 前置检查
- 执行
beisen-cli interview_ai interviewAnalysis analyzeCompetitorIntelligence --data '{"activeDimension":"人才策略","companyNames":["XX公司"]}' - 提取
taskId,轮询bs_get_async_task_status直到isFinished == true - 从
resultJson解析报告内容,向用户展示分析结论
详细参考
- references/recruitment-progress.md:招聘进展查询参数、返回结构与下钻查询说明
- references/interviewer-todo.md:面试官待办查询参数与返回
- references/analytics.md:面试质量与竞品情报分析
- references/recruit-requirement.md:招聘需求列表与详情
- references/async-tasks.md:异步任务轮询协议
不在本 Skill 范围
- 职位搜索 / 职位详情 / 候选人申请详情 / 人才库推荐 → ../beisen-recruitment/SKILL.md
- offer 审批流程 → ../beisen-approval/SKILL.md
- 员工入职后的档案管理 → ../beisen-employee-profile/SKILL.md