沃弗候选人推荐报告制作
目标与边界
- 解决:将任意格式的候选人简历,生成一份与沃弗现有模板版式、配色、Logo、页脚完全一致的推荐报告(.docx),以「沃弗咨询 / 沃弗(大连)人力资源有限公司」名义交付客户企业。
- 最高约束(HARD RULE):推荐报告的格式、颜色、Logo、页脚、页边距绝不重新设计。AI 只替换内容(候选人简历信息),版式 100% 来自母版
.docx。任何"美化/调整排版"的冲动都必须压制——改格式只通过替换assets/wolf-template.docx这一个母版文件来完成。 - 不负责:最终录用决策、薪资谈判、候选人简历优化;报告内容真实性由顾问对客户负责;AI 不替顾问做最终判断。
沃弗模板真实格式规格(AI 必须沿用,不得改动)
母版 assets/wolf-template.docx 是格式的唯一真相源。其真实规格(已对 4 份真实文档核对):
- 页眉:1 张沃弗 Logo 图片(非文字)——必须保留。
- 页脚:居中
沃弗(大连)人力资源有限公司+ 页码(如1 / 2)——必须保留。 - 章节标题(个人信息 / 教育经历 / 猎头评估 / 职业概述 等):微软雅黑 14pt、加粗、颜色 009051(绿)。
- 例外:
推荐理由标题在母版中为黑色加粗(非绿),保留即可,不要"修正"成绿。 - 正文:微软雅黑 10pt,颜色 181717(近黑)。
- 推荐理由关键词可用 蓝色 0000FF 强调(可选,内容相关)。
- 职业概述表:3 列(时间段|公司|职位),
Table Grid样式;行数随经历条数变化(2~9 行)。 - 页边距:左右 2.0cm、上 2.54cm、下 1.5cm。
- 章节顺序(内容结构,非格式):个人信息 → 教育经历 → 猎头评估(推荐日期+薪酬福利) → 推荐理由 → 职业概述(概览表+逐段详情) → 项目经验(可选,部分候选人无) → 注(保密条款,固定文案)。
- 注:
个人信息标签行在母版中含白字隐形重复 run(如"姓姓名名:"),这是母版自带的怪癖,原样保留,肉眼显示正常。 - 历史变体:早期版本曾采用"白字标题栏"旧版式;当前母版用绿标题,以绿标题母版为准。
2026-08-21 新增排版细则(用户明确指令,属授权改动,覆盖上述对应项)
以下 6 条是用户在本轮明确要求的具体排版动作,已由 scripts/fill_report.py 落地,渲染时自动执行,无需手动调格式:
- R-FONT:全篇(含母版既有段落、注入段落、所有表格单元格)字体统一为「微软雅黑」。
- R-SPACE:全文(正文 + 表格单元格)行间距固定 21 磅(EXACTLY)。
- R-TABLE:职业概述下方表格字号 10;列宽按比例(时间段 0.22 / 公司 0.46 / 职位 0.32),尽量每段经历一行。
- R-EDU:教育经历「年份 / 学校 / 专业 / 学历」4 部分同行平均分散——渲染为 4 列等宽无边框表。
- R-PERIOD:每一条正文(推荐理由、工作职责/业绩等叙事内容)以「。」结尾;章节标题、角色标题行、表格数据单元格不强制。
- R-NUM:工作职责/业绩分条编号——一级
1、2、3、;二级一、1、2、二、1、2、;三级及以上按原文序号呈现。内容模型blocks支持lines(扁平→一级)或items(结构化→二级/三级)。
输入契约
- 必需输入:候选人简历材料(文件或文本,任意格式)
- 建议输入(缺失时降级,不阻塞):
1. 候选人与顾问的沟通记录(求职动机/离职原因/期望薪资/到岗时间)→ 缺则薪资/风险部分标「待核实」
2. 客户名称、目标职位(用于文件名)→ 缺则文件名省略对应段
3. 客户职位 JD → 缺则推荐理由不强制逐条对应 JD
执行步骤
- 格式识别与简历归一化(仅用于起草内容,不影响最终格式)
接收材料后判定格式并解析,统一产出「候选人简历」结构化内容(基本信息、每段经历、项目、业绩)。解析路径:
| 输入格式 | 解析路径 | 注意事项 |
|---|---|---|
| PDF(文本型) | markdown-converter(markitdown) | 多栏/表格可能丢排版,需人工核对 |
| PDF(扫描型)/ 图片/手机拍照 | 图像读取(OCR/多模态) | 回显姓名与数字供核对,错漏率高 |
| Word(docx/doc) | markdown-converter 解析 | — |
| 网页/微信纯文本 | 直接整理为结构化文本 | 去除无用前缀 |
| Excel/飞书表格简历 | sheetagent / markdown-converter | 保留行列 |
- 强制核对:解析后回显姓名、公司、职位、时间段、关键数字;OCR 类必须标注「OCR 结果,请核对」。
-
按沃弗模板章节起草内容(内容质量规则,沿用 recruiter-recommendation-report):
-RULE-02:职业概述按时间线分段,突出相关项目与量化成就,不复制简历原文。
-RULE-03:推荐理由仅用可验证事实(项目成果、业绩数字)支撑;无量化则「职责+行为评价」并标「定性判断」。有 JD 时推荐理由逐条回应 JD 要求。
-RULE-05:候选人有重大风险(影响录用)时如实披露并给应对建议;小问题不主动写。 -
渲染(格式零改动的关键步骤)
- 以母版assets/wolf-template.docx为基底,只注入内容,Logo/页脚/配色/字体/页边距原封不动。
- 运行scripts/fill_report.py:
python scripts/fill_report.py <母版.docx> <内容.json> <输出.docx>
- 该脚本从母版读取全部格式,按内容模型替换/重建正文(个人信息值、教育、猎头评估、推荐理由、职业概述表+详情、可选项目经验、注中姓名),并自动处理:① 白字隐形 run(保留标签)② 变长职业概述表 ③ 可选的「项目经验」章节插入 ④ 全局姓名替换(覆盖个人信息值与《注》)⑤ 全文字体统一微软雅黑 ⑥ 全文行距固定 21 磅 ⑦ 教育经历 4 列等宽分散 ⑧ 职业概述表字号 10 ⑨ 正文以「。」收尾 ⑩ 工作职责/业绩分级编号(1、 / 一、1、2、 / 原文保留)。 -
落盘与命名
- 默认输出到用户桌面~/Desktop(见 config)。
- 文件名:YYYYMMDD[客户名称]-[职位]-[姓名]-沃弗咨询.docx。日期为当日;客户名称、职位仅用户提供时才包含,未提供则省略该段;姓名自动提取。示例:20260821客户名称-职位-姓名-沃弗咨询.docx。 -
发送报告后:补全命名 + 输出核实提醒(顾问 SOP)
- 依次询问顾问:发出 Word 后,按顺序提问 ① 客户名称?② 职位名称?拿到后按规则重命名(未提供则维持默认名YYYYMMDD-姓名-沃弗咨询.docx)。
- 输出「需核实清单」:提醒顾问向候选人/渠道核实:- 工作经历断档 ≥ 3 个月(逐段比对相邻经历起止月,列空窗区间与时长);
- 学业就读时间与工作时间重合(尤其全日制学历 vs 在职就读);
- 职业晋升断档 / 不合规律(职级倒挂、研发→注册→研发 职能回跳、短期连降等);
- 其他:年龄/出生年自洽、手机/邮箱一致性(邮箱疑似拼写错误)、任职时长 sanity(<6 月短任 / >15 年超长任)、专利数量与排名一致、薪酬"待核实"是否补齐。
- 用时间线算法自动计算断档与重叠,产出结构化清单供顾问确认。
质量、失败与回退
- 合格标准:版式/Logo/页脚与母版一致(未重新设计);六部分+可选项目经验齐全;优势有事实支撑;重大风险已披露;候选人姓名在个人信息与《注》中一致;《注》保密条款完整;Word 可正常打开。
- 常见错误:擅自改格式/配色/字体(最大禁忌);简历原文粘贴;优势无证据;隐瞒重大风险;OCR 姓名/数字错漏未核对;漏掉《注》条款或漏改《注》中姓名。
- 失败模式:输入缺失;OCR 失败;渲染脚本异常。
- 回退策略:渲染失败时,输出结构化内容 JSON + 说明,由顾问手动打开母版填入;绝不可用从空白重画的 docx 冒充。
输出契约
- 输出:Word(.docx)(格式=母版)+ 中间内容 JSON;默认落盘用户桌面。
- 回传:
rules_fired(命中规则 ID)与uncertainties(如「待核实」项)。 - 使用者:沃弗顾问 → 客户企业 HR/用人部门。
- 验收:顾问人工复核内容准确性与《注》姓名一致性后,以沃弗名义发出。
人工审批
- 暂停条件:报告以沃弗名义发出客户之前。
- 审批点:顾问必须复核①内容事实 ②《注》中候选人姓名是否全局一致 ③风险披露 ④OCR 字段 ⑤文件名。
- 责任人:猎头顾问本人;AI 仅生成初稿,不承担对客户的事实责任。
自学习机制(Self-Learning)
> 在不触碰「格式零改动」硬约束的前提下,让 Skill 跨会话积累顾问的修正与偏好,越用越准。自学习只改内容与命名层的偏好,绝不写入或修改 assets/wolf-template.docx 的格式 / 配色 / Logo / 页脚。
存储位置(均在 skill 目录内 learning/)
learning/learning_log.md:可读累积日志(人类审阅,AI 写入)。learning/learning_log.json:同内容的结构化版本(脚本写入,便于检索)。learning/client_index.json:客户 / 职位索引,跨会话复用命名与偏好。
循环三步骤
- 读(每次生成前,Step 0):运行
python scripts/learn.py summary,或读取learning/learning_log.json,把已沉淀的偏好 / 客户约定应用到本次起草(如默认命名规则、内容倾向、需额外核对的项)。 - 写(顾问反馈 / 修正时):
- 当顾问纠正报告(格式外的任何点:事实、措辞、命名、风险口径、核实清单增补),或主动说「下次这样」时,立即:
python scripts/learn.py record --type correction --summary "..." [--client 客户名] [--action "..."]
- 当「补全命名 SOP」确认了新客户 / 职位,写入索引:
python scripts/learn.py record --type client --client "客户名" --summary "标准命名/偏好" [--action "..."] - 校准(周期性、需顾问复核):某条 correction 同类型重复出现 ≥ 2 次,或影响重大 → 将其提升(promote)为
references/domain-rules.md的正式规则WOLF-LEARN-NN(NN≥10),从「日志」升级为「常驻规则」。未复核不提升,避免噪声污染规则文件。
自学习写入规范
- 每条记录包含:日期、type(
correction/preference/client/gotcha)、summary、action、client(如有)、linked_rule(提升后填)。 - 日志只增不删;纠正类记录保留原始表述,便于回溯。
- 格式禁区:任何 learning 动作都不得改母版格式;如需改版式,仍只替换
assets/wolf-template.docx。
参考与资源
- 母版(格式唯一真相源):
assets/wolf-template.docx - 格式保留渲染脚本:
scripts/fill_report.py - 内容结构说明(仅内容,非格式):
assets/report-template.md - 沃弗规则、格式规格与 gotchas:
references/domain-rules.md - 示例(仅含虚构演示样例,不含任何真实候选人/客户/职位数据):
examples/ - 可调参数:
config/config.example.json