让AI承担筛简历,先回答三个问题:一次招聘Agent的失败复盘

📅 2026/4/26 ✍️ 小文 📖 约 1 分钟

我们用AI做初筛,两周后被迫回滚。问题不在模型不够强,而在评价标准、数据分布和反馈来源。本文记录失败细节,并总结出招聘场景可用的设计原则。

我们做了什么

一家约200人的公司,校招季后端岗位收到1800份简历,HR团队3人。方案很简单:让模型按JD给每份简历打1-5分,标注亮点与风险,人工只看前20%。

上线第一周,HR反馈”效率提升明显”。第二周,业务部门开始质疑:几个内推的优秀候选人被打了2分,而一些明显不匹配的简历排在前面。运维同学核查后发现:模型对”非标准表达”极度不友好——用项目经历描述能力、没有关键词、跨专业转行的候选人,普遍被压分。

两周后,回滚到纯人工初筛。

三个没说清的问题

问题一:你在评”匹配”还是在评”写作水平”?

简历是一种自我表达文本,不是能力测量。模型很容易把”描述清晰、结构完整、用词专业”当作能力信号。而这些信号与家庭背景、教育经历、是否有人帮忙改简历高度相关。

结果就是:会写简历的人被系统性地加分。这不是模型的bug,是任务定义的问题——我们没有区分**“文本质量”和”岗位匹配”**。

问题二:历史标注的数据分布,是被污染的

用过去录用的简历训练/校准模型,等于继承了历史决策的偏差。即使没做微调、只用few-shot示例,示例本身也是筛选结果的副产品。而”这个人当年被录用”和”这个人现在适合”,中间隔着行业变化和岗位变化。

问题三:反馈从哪来?

最关键的缺失:我们没有”被拒绝的人后来怎么样”的数据。假阴性无从发现。模型只能通过HR的抱怨被间接纠正,而这种纠正既稀疏又滞后。

如果重做一次,会怎么做

1. 把任务拆成可验证的事实抽取,而不是打分

第一步不做排序,只做结构化抽取:学历、年限、技术栈、项目类型、可到岗时间。这些能确定性核对,人工可以快速扫一遍。排序交给规则,而不是模型的主观评分。

2. 明确”不用于决策”的字段

院校、性别、年龄、籍贯、照片等,从输入中直接剔除,不给模型”考虑的机会”。这不是道德姿态,而是让评估结果可解释。

3. 设置”必须人工看”的兜底通道

对评分靠后但满足硬性条件(如内推、特定项目经验、特殊背景)的简历强制人工复审。这类规则看起来笨,但它挡住了最严重的假阴性。

4. 用”通过率”而非”准确率”衡量

招聘的真正指标不是模型判定准不准,而是:进入面试的候选人质量分布是否变化、多样性是否下降、用人经理满意度是否下降。这些要上线前就定义好,否则无法知道是否出了问题。

5. 保留对照实验

不要一次性全量替换。抽5%-10%的岗位走纯人工,作为基线对比。没有对照组,任何”我们变快了”的说法都站不住。

招聘Agent适合做什么

不是不能做,而是换个位置:

  • 降低阅读成本:摘要简历、提取要点、生成面试问题草稿——人类做最终判断
  • 提升候选人体验:自动回复进度、常见问题解答、安排面试
  • 辅助而非决定:把模型输出作为”第二意见”,而不是”第一道闸门”

教训

AI在招聘上的风险,不在于它判错,而在于它判错的模式和人不一样,且我们难以察觉。人类HR的偏差有迹可循(偏好熟悉背景),模型的偏差藏在文本风格、关键词和分布偏移里。

凡是”输出影响他人命运”的场景,第一原则永远是:模型可以缩短人类的工作,但不能替代人类的判断。评估的方式也要服务于发现错误,而不只是证明效率。

📤 分享到