| name | hr-recruiting-pipeline |
| description | 用用户授权的飞书 Base 或电子表格整理招聘流水,分析候选人所处阶段、阶段分布、流转速度、来源效果和招聘漏斗缺口。用户提到招聘进展、候选人流水、招聘状态、面试阶段、Offer 进展或招聘漏斗时使用。默认只读,保留数据范围、证据来源、缺失项和人工判断边界。 |
招聘漏斗分析
将候选人招聘数据转成可复核的招聘进展摘要。输出关注阶段分布、阶段转换、处理时长、来源效果和漏斗缺口,帮助招聘负责人决定下一步动作。
适用场景
- “看一下这周招聘进展。”
- “哪些候选人在面试后卡住了?”
- “按渠道比较招聘效果。”
- “算一下从进入流程到入职的时间。”
- “用飞书 Base/表格做一个招聘漏斗。”
工作边界
- 默认读取用户明确提供或明确授权的飞书 Base、Sheets、Docx 或 CSV。
- 默认使用
--as user,先执行身份与权限检查,再读取数据。
- 默认只读;不修改候选人状态、不发送候选人消息、不创建面试、不发 Offer。
- 只做结构化整理和描述性分析,不替代招聘决策、录用决策或合规判断。
- 结果中不得输出候选人姓名、邮箱、电话、简历原文等直接识别信息;需要定位时使用内部脱敏编号。
- 候选人级别的排序、淘汰建议、录用推荐属于人工复核范围,只有在用户明确要求且提供规则时才可生成草案。
标准工作流
1. 确认数据范围
先确认以下边界:
- 数据源 URL、Base/表格名称和目标时间范围。
- 时间口径:创建时间、进入招聘流程时间、最近状态时间或用户指定日期。
- 是否只看仍在流程中的候选人,是否包含已拒绝、已撤回、已入职记录。
- 是否需要按岗位、招聘人、地点、渠道或批次分组。
范围无法确认时,采用最窄可复核范围,并在结果中写明假设。
2. 检查飞书身份与能力
lark-cli auth status --json --verify
支持 auth status --json --verify 的环境确认 identity=user 且 verified=true 后再访问用户数据。当前 CLI 构建若没有 auth 子命令,可退回 contact +get-user --as user 或 task +get-my-tasks --as user 做只读兼容探测。身份未验证、权限不足或账号混用时停止读取,并说明阻塞点。
3. 读取最小字段集
优先只读取分析所需字段:
| 逻辑字段 | 常见中文列名 | 用途 |
|---|
candidate_id | 候选人ID、候选人编号、申请编号 | 脱敏关联 |
stage | 阶段、当前阶段、招聘状态 | 阶段分布 |
entered_at | 进入时间、申请时间、创建时间 | 流程起点 |
updated_at | 更新时间、状态更新时间 | 当前进展时点 |
source | 来源、渠道、投递来源 | 来源效果 |
job | 岗位、职位、招聘岗位 | 分组 |
recruiter | 招聘人、HR、负责人 | 分组 |
stage_history | 阶段历史、状态历史 | 阶段时长与转换 |
accepted_at | 接受 Offer 时间、录用确认时间 | 入职漏斗终点 |
优先使用 references/input-schema.md 的 JSON 结构。列名不一致时先做字段映射,再开始计算;无法映射的字段保留为缺失。
4. 统一阶段口径
将来源系统的阶段归一到以下六个主阶段:
| 标准阶段 | 解释 |
|---|
sourced | 已发现或已进入人才库 |
screen | 简历筛选或招聘初筛 |
interview | 已安排或正在进行面试 |
debrief | 面试反馈汇总与评估 |
offer | Offer 准备、审批或已发出 |
accepted | 已接受 Offer 或完成录用确认 |
rejected、withdrawn、on_hold 等终态或旁路状态保留为附加状态,不强行并入主漏斗。映射表见 scripts/analyze_pipeline.py。
5. 计算可复核指标
至少输出以下内容:
- 各主阶段人数与占比。
- 相邻阶段转换人数和转换率。
- 每个阶段的中位停留时长;样本量不足时标记为
NA。
- 当前在流程中的记录数量与终态数量。
- 从
entered_at 到 accepted_at 的招聘周期;没有终点日期时保留缺失。
- 按来源的候选人数、进入面试人数、接受 Offer 人数和接受率。
- 数据质量:缺失字段、无法识别阶段、异常日期、重复 ID、历史记录不完整。
脚本默认以候选人级别聚合,不输出候选人级明细。分析结果应区分“数据直接支持的事实”“基于规则的计算”“需要招聘负责人确认的解释”。
6. 输出决策摘要
建议结构:
- 结论:当前漏斗最明显的变化或瓶颈。
- 范围:数据源、时间窗、记录数、过滤条件。
- 漏斗:阶段人数、转换率、阶段时长。
- 来源:渠道效果与样本量。
- 数据问题:缺失、异常、口径限制。
- 动作草案:只给出可供人工确认的下一步,不自动执行。
飞书 CLI 适配
优先使用 lark-cli 的快捷命令,完整命令和参数见 references/feishu-cli.md。示例中的 URL、Token、表 ID 均为占位符,禁止直接替换成未核验的真实目标后批量读取。
Base
lark-cli base +url-resolve \
--url "https://example.feishu.cn/base/appXXXX?table=tblXXXX" \
--as user --json
lark-cli base +field-list \
--base-token "appXXXX" --table-id "tblXXXX" \
--as user --json
lark-cli base +record-list \
--base-token "appXXXX" --table-id "tblXXXX" \
--limit 200 --as user --json
先解析 URL 和字段,再按最小字段集读取记录。数据量超过单次限制时按 offset 分页,并在结果中记录分页范围。
Sheets
lark-cli sheets +workbook-info \
--url "https://example.feishu.cn/sheets/shtXXXX" \
--as user --json
lark-cli sheets +cells-get \
--url "https://example.feishu.cn/sheets/shtXXXX" \
--sheet-name "招聘流水" --range "A1:Z200" \
--include value,formula --as user --json
先读取工作表结构和标题行,再读取目标数据区。表格内容较大时缩小范围或分块读取。
写入边界
本 Skill 不执行以下操作:
- 更新候选人阶段或录入面试反馈。
- 修改 Base 字段、视图、公式或权限。
- 发送邮件、私信、群消息或日历邀请。
- 创建、审批或发送 Offer。
- 根据候选人数据自动作出录用、淘汰、薪酬或晋升判断。
用户明确提出写入需求时,先将拟写入字段、目标记录、影响范围和回滚方式列成草案,等待明确确认;本 Skill 的默认实现仍保持只读。
质量与隐私检查
提交结果前检查:
- 是否确认用户身份、授权范围和数据源。
- 是否保留原始时间窗、筛选条件和字段映射。
- 是否把无法核验的内容标为
NA、缺失或待确认。
- 是否去掉姓名、邮箱、电话、简历正文等直接识别信息。
- 是否避免把样本量很小的渠道写成稳定结论。
- 是否把自动计算与人工解释分开。
- 是否报告脚本版本、输入摘要和测试状态。
参考文件
AGENT-GUIDE.md:Agent 的触发条件、输入确认、执行顺序、输出格式和停止规则。
references/feishu-cli.md:飞书 CLI 的读取命令与安全调用顺序。
references/input-schema.md:推荐输入结构与字段映射。
references/safety-boundaries.md:隐私、权限和人工复核边界。
scripts/analyze_pipeline.py:本地脱敏聚合脚本,不访问网络和飞书。
tests/fixtures/:不含真实个人信息的测试数据。
UPSTREAM.md:上游来源、版本、差异和许可证说明。