Xihu Hiring
/install xihu-hiring
西湖数智招聘进度
拉取飞书审批模板「人事 - 西湖数智」的全部实例,应用人工更正,生成 3-sheet Excel 报表。
触发条件
用户说以下任何一种时触发此 skill:
- "刷新招聘表" / "重跑招聘进度" / "拉一下飞书审批"
- "把候选人数据更新一下" / "更新西湖数智的招聘 Excel"
- "X 应该是一面后拒绝"(人工更正后重新生成)
- "hiring tracker" / "recruitment dashboard"
不触发:无关的飞书审批、通用 Excel 工作。
常量
- 审批 approval_code:
57E726C3-EA5E-4422-A2F3-ACED3A75F8D2 - 时间窗口: 最近 120 天(飞书 API 硬限制)
- 输出文件:
西湖数智-招聘进度.xlsx(覆盖写入当前工作目录)
执行流程
Step 0 — 环境准备
python3 -c "import openpyxl" 2>/dev/null || pip install openpyxl -q
如果 pip install 也失败,告诉用户需要安装 openpyxl。
Step 1 — 列出审批实例
计算 120 天前的毫秒时间戳,然后拉取实例列表:
lark-cli api GET "/open-apis/approval/v4/instances" \
--params '{"approval_code":"57E726C3-EA5E-4422-A2F3-ACED3A75F8D2","start_time":"\x3C120天前ms>","end_time":"\x3C当前ms>","page_size":"100"}' \
--as bot --page-all --format json
从返回的 data.instance_code_list 中获取所有实例 code。如果有分页(has_more=true),--page-all 会自动处理。
Step 2 — 获取每个实例详情
逐个获取(或批量,每次最多 5 个并行 shell):
lark-cli approval instances get \
--params '{"instance_code":"\x3Ccode>","locale":"zh-CN"}' \
--as bot --format json
每个实例包含 serial_number, status, start_time, end_time, form(JSON 字符串), task_list(审批节点)。
Step 3 — 组装 payload JSON
将所有实例数据组装为 build_excel.py 所需的 JSON 格式(参见 references/fetch-approvals.md)。
关键字段映射:
form中提取:姓名、申请职位、手机号、邮箱、毕业院校、曾经任职、cvtask_list中按节点名聚合状态(优先级:REJECTED > PENDING > APPROVED)- 节点名:简历筛查/简历筛选、一面、二面、终面(= 三面)、办理
将 payload 写入 /tmp/hiring_payload.json。
Step 4 — 生成 Excel
将 references/build-excel.md 中的 Python 脚本写到 /tmp/build_excel.py,然后执行:
python3 /tmp/build_excel.py --workspace "$(pwd)" --payload /tmp/hiring_payload.json
脚本会:
- 读取当前目录下的
招聘进度_人工更正.json(如果存在) - 应用人工更正
- 生成
西湖数智-招聘进度.xlsx - 输出 JSON 摘要(行数、各职位统计)
Step 5 — 报告结果
向用户展示:
- 简短摘要:投递人数 / 面试进行中 / 已发 Offer
- 文件路径
- 如有未映射的新职位(
unmapped_positions非空),提示用户确认归类
隐私规则:不要在对话中粘贴完整的候选人 PII(姓名+手机+邮箱),这些在 Excel 里有。
人工更正
当用户说"X 应该是一面后拒绝"时:
- 在当前 Excel 中查找 X 的审批编号
- 编辑
招聘进度_人工更正.json,将编号添加到对应类别 - 重新运行 Step 4
更正类别(对应 JSON key):
rejected_after_screening→ 简筛后拒绝rejected_after_round_1→ 一面后拒绝rejected_after_round_2→ 二面后拒绝rejected_after_round_3→ 三面后拒绝withdrawn→ 撤回
新职位出现时
如果脚本输出中 unmapped_positions 非空,必须询问用户:
"我看到一个新职位 'X',不在现有归一规则中。应该归入哪个类别?
现有类别:视觉设计&视频制作、数据科学家、模型训练专家、具身算法专家、运动控制算法工程师、硬件全栈专家、硬件测试工程师、Infra专家、算法工程师、公关、商务拓展。
还是新建一个类别?"
确认后,更新 references/build-excel.md 中脚本的 CANONICAL 字典。
参考文件
references/fetch-approvals.md— 详细的数据获取和 payload 组装步骤references/normalization-rules.md— 职位归一规则及原因references/build-excel.md— build_excel.py 脚本源码及使用说明
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install xihu-hiring - After installation, invoke the skill by name or use
/xihu-hiring - Provide required inputs per the skill's parameter spec and get structured output
What is Xihu Hiring?
拉取飞书审批数据(人事-西湖数智),生成招聘进度 Excel 报表。 Triggers: 招聘进度, 刷新招聘表, 拉审批, 更新候选人, 重跑招聘, hiring tracker, xihu hiring. NOT for: 其他飞书审批, 通用 Excel 制作, 消息发送. It is an AI Agent Skill for Claude Code / OpenClaw, with 56 downloads so far.
How do I install Xihu Hiring?
Run "/install xihu-hiring" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Xihu Hiring free?
Yes, Xihu Hiring is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Xihu Hiring support?
Xihu Hiring is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Xihu Hiring?
It is built and maintained by 郭凯文(Kaiwen Guo) (@tyqqj0); the current version is v1.0.0.