同一份简历,我的插件打 46 分,豆包说「非常匹配」:一次误杀复盘
事故现场
猎聘智能匹配助手(给做猎头的朋友写的插件)v0.1.13 用得好好的,直到朋友扔过来两张截图:
一位资深热管理/电控方向的候选人,一份对口的深控工程师 JD——插件打分 46%,判定「暂不联系」;同一个岗位同一份简历,豆包逐条列证据,结论「非常匹配」。
打开匹配报告细看,问题一目了然:JD 必备要求里有「电喷系统经验」,候选人简历写的是「高压直喷系统」「电子节气门控制」。旧版匹配引擎的逻辑是必备关键词逐字包含在简历全文——简历里没有「电喷」两个字,这个维度直接 0 分,再叠加硬性条件,总分被顶到 49 分封顶线以下。
字面包含 ≠ 语义匹配。这是关键词引擎的天花板,不是我调参能修的。
修法:把「包含判断」升级成「维度对齐」
v0.1.14 的改造分四层:
① JD 提炼加同义词表。 让 AI 从 JD 提取必备/加分关键词时,每个词同时给 2-6 个同义表达——中英互称、上下位概念、行业惯用叫法都算,但明令禁止泛化词(「经验」「能力」这种放进同义词表等于没放):
电喷 → 高压直喷 / 缸内直喷 / EFI / 电子燃油喷射
② 匹配器按「维度」打分。 不再逐词做字符串包含,而是:一个维度(kw + 其同义词全体)命中即得分,权重不变。命中结果展示来源——「电喷 ← 高压直喷」,让人一眼看懂分是怎么来的。
③ AI 深度分析输出证据对齐表。 分析结果附一张三列表:要求项 | 简历证据 | ✅⚠️❌,匹配度按 full=1 / partial=0.5 加权。prompt 里写死一条:「禁止用 JD 原词字面出现判分」——不写这句,大模型会偷懒退化成关键词查找。
④ 存量数据一键迁移。 老岗位库里全是旧格式画像,加了「🧠 重提炼」按钮(逐个岗位补同义词)和「🔁 重匹配全部」(规则层零成本重算),朋友十分钟完成迁移,分数立刻向人工判断口径收敛。
验证
复刻事故场景写了单测:旧引擎 46% 误杀的那组数据,新引擎同义词全命中、必备维度满分;同时反向验证「真不相关」的简历不会被同义词放宽误收。六条用例全过,老数据兼容回退也测了。
三条教训
- 关键词匹配的天花板比想象中低——行业黑话、缩写、上下位表达是简历筛选的常态,不是边角情况。
- 给 AI 判分任务下禁令:不禁止「字面判分」,模型就用最省事的方式给你打分。
- 分数必须可解释。改造后每一个分都能回答「为什么」:命中了哪个维度、简历原文证据是什么。HR 敢信一个分数,前提是他能审计这个分数。
插件迭代到 v0.1.14,13 个版本里一半是被真实使用反馈打出来的——自己用和看别人用,暴露的问题完全不同。