日期:2026-08-08
客户是一家制造业集团,下面十几个子公司,人力共享中心统一做招聘。旺季一个月能收到一万两千多份简历,招聘专员六个人,平均每人每天要过一百份左右。实际情况是过不完,很多简历在系统里躺到过期都没人看。
面试环节的问题是另一类。纪要靠面试官手打,有的写三百字有的写三十字,还有直接写"感觉不错"的。等到复试或者终面,后面的面试官看不到前面问过什么、候选人答得怎么样,只能重复问一遍。候选人体验差,面试效率也低。
更深层的问题是标准不统一。同一个岗位,A 面试官看重项目经验,B 面试官看重学历背景,招进来的人质量参差。HR 总监跟我说过一句话,他说他们不是缺人,是缺一个能把"什么样的人算合适"说清楚的机制。
这个项目的边界从一开始就划得很清楚:AI 做辅助,不做决策。所有的淘汰动作必须有人确认。这一条是客户提的,我们完全认同。
系统建在客户已有的 AI 私有化底座上,接进他们的招聘管理系统。
简历进来先做结构化解析。简历格式五花八门,PDF、Word、图片、招聘平台的在线简历,甚至还有扫描件。解析后统一成标准字段:基本信息、教育经历、工作经历、项目经历、技能标签、证书。
岗位这边做了岗位画像。画像不是招聘专员拍脑袋填的,是从该岗位历史上被录用者的简历特征、试用期通过情况、绩效表现反推出来的,再由用人部门确认调整。画像包含硬性条件和软性权重两部分。
匹配打分把简历和画像做比对,输出一个分数和一段解释。解释很关键,写明为什么给这个分,哪几项匹配、哪几项不足。招聘专员看的是分数排序加解释,决定是否进入下一轮的还是人。
面试环节做了纪要辅助。面试过程录音(提前告知并取得候选人同意),结束后自动转写并抽取要点:候选人回答了哪些问题、提到哪些项目、面试官关注的能力项评价如何。面试官在生成的纪要上修改确认,几分钟就能提交,比手打快得多。
复试面试官进入系统时能看到前序面试的结构化纪要,避免重复提问。
简历格式多样性是第一个工作量大头。我们分了三条路径:原生文本格式直接解析;PDF 走版面分析加文本提取;图片和扫描件走 OCR。解析之后用大模型做字段抽取,因为简历的表达方式实在太自由,"2019.3-2022.7 某公司 高级工程师"和"曾于某公司任职三年余,担任高级工程师"这两种写法规则很难统一处理,模型反而稳。
时间线的一致性校验是我们后加的。有些简历里工作经历时间重叠、或者和教育经历冲突,这类情况解析出来的数据会自相矛盾。加了校验之后,冲突的字段会被标记出来提示人工核对,而不是硬填一个值进去。
匹配的可解释性是这个项目最较真的地方。一开始我们做的是端到端打分,模型直接输出零到一百的分数,效果指标看着不错,但招聘专员完全不用。原因很简单,他们不敢用一个说不出理由的分数去淘汰候选人,万一被质疑担不起责任。第二版改成了分项打分:硬性条件逐条判定通过与否,软性维度分别给分并附证据片段,最后加权汇总。分数的准确性其实比第一版略低,但采纳率从百分之十几涨到百分之七十以上。这件事让我印象很深,可解释性在某些场景下的价值远远超过精度。
公平性是必须处理的问题。我们在画像和打分逻辑里明确排除了与岗位胜任力无关的属性,性别、年龄、籍贯、婚育状况这些字段在打分阶段完全不参与计算,从数据层就做了隔离,打分服务根本读不到这些字段。另外做了定期审计,抽样检查不同群体的通过率分布是否存在异常偏差。这块我们做得比客户要求的更严一些,因为一旦出问题不是技术事故是社会事件。
纪要要点抽取的难点在于口语的模糊性。面试对话里大量的"嗯""这个""就是说",还有说到一半改口的情况。我们做了两级处理:先做转写文本的清洗和说话人分离,再让模型按预设的要点框架做抽取。框架是和 HR 一起定的,包括项目描述、技术深度、协作方式、离职原因、薪资期望等维度。模型抽不到的维度留空并标注,不编造。
案例片段(已脱敏): 一条分项打分的输出:某候选人应聘"设备自动化工程师",硬性条件 4 项通过 3 项(学历符合、专业符合、工作年限符合、缺 PLC 相关证书);软性维度:产线自动化项目经验 82 分(证据:简历中三段项目均涉及产线改造,其中一段明确提到调试周期与产能提升数据)、跨部门协作 61 分(证据不足,简历中未见相关描述)、稳定性 74 分(三段经历平均在职 2.4 年)。综合 73 分,建议进入初面,标注"证书项需在面试中确认是否在考"。招聘专员采纳并附注。 时间线冲突的一次拦截:简历显示
2020.09-2023.06 某高校在读硕士与2021.03-2023.05 某公司全职工程师重叠 26 个月,系统标记为"经历时间冲突,需核实是否为在职研究生或实习",未自动扣分,交由人工确认。核实结果为在职研究生,属正常情况。
系统运行五个月的数据。简历初筛的准确率,按"系统推荐进入初面且最终通过初面"和"系统不推荐但人工捞起后通过初面"两个方向统计,推荐精确率百分之七十六,漏筛率百分之八点三。漏筛的这部分主要是跨行业转岗的候选人,简历表述和岗位画像匹配度低但实际能力够,这类目前还得靠人工兜底。
单份简历的平均处理时长从人工的四分二十秒降到系统预处理加人工确认的五十秒左右。招聘专员每天能覆盖的简历量从一百份左右提到三百五十份以上,积压简历基本清零。
面试纪要的生成完整度,按预设框架的维度覆盖率算,平均百分之八十七。面试官提交纪要的平均耗时从十四分钟降到四分钟,纪要提交率从百分之六十一提到百分之九十六,这个提升比生成质量本身更有价值,因为原来大量面试根本没有纪要。
面试官对系统生成内容的采纳率百分之七十三,其余部分做了修改。复试环节的重复提问率明显下降,候选人问卷里"面试流程专业度"的评分从三点八提到四点四(五分制)。以上数据为项目复盘口径,已做脱敏。
涉及人的决策场景,AI 的定位一定要摆在辅助位。这个项目从需求阶段就定死了"不做自动淘汰",回头看这个约束保护了项目本身。如果做成自动淘汰,第一次出争议系统就得下线。
可解释性不是加分项是必需品。第一版端到端打分指标更好但没人用,第二版分项打分指标略降但采纳率翻了几倍。使用者需要的不是一个准确的黑盒,是一个他敢于署名的判断依据。
公平性要在数据层就隔离,不能只在算法层约束。让打分服务根本读不到敏感字段,比在算法里写规则说"不要用这些字段"可靠得多。前者是物理隔离,后者靠自觉。
抽不到的信息就留空,不要编造。我们在纪要抽取上明确要求模型对没有依据的维度输出空值并标注,宁可不完整也不能虚构。有面试官试过故意问一些没聊到的内容,看系统会不会瞎编,这种信任测试迟早会来。
漏筛这件事要主动暴露给业务。我们把"系统不推荐但人工捞起并通过"的案例做成了每周报表推给招聘团队,一方面提醒他们系统有边界不能全信,另一方面这些案例正好是画像优化的素材。藏着漏筛率不报,短期好看长期出事。
简历解析的字段抽取用了结构化输出约束,保证返回格式稳定可解析。岗位画像做了版本管理,每次调整留痕,便于回溯某个时间点的打分依据。打分服务和简历存储做了字段级权限隔离,敏感字段存在单独的表,打分服务的数据库账号没有该表的读权限。面试录音存储加密,保留期六个月,到期自动清理,候选人可申请提前删除。转写走底座的语音模型,说话人分离用的是声纹聚类,两人对话场景准确率够用,三人以上会有混淆,我们在多面试官场景下要求手动标注主面试官。纪要的修改留痕,原始生成版本和修改后版本都保留,用于分析模型的薄弱维度。公平性审计每月一次,输出不同群体在各环节的通过率分布,异常波动触发人工复查。
这类项目最容易被误解成"用 AI 替代 HR"。我们在启动会上花了不少时间做预期管理,明确说系统解决的是"看不过来"和"记不下来",不解决"看得准不准"这个根本问题。看得准依赖的是岗位画像的质量,而画像质量取决于用人部门愿不愿意认真参与。有两个子公司的用人部门全程敷衍,画像随便填,结果那两个岗位的推荐精确率只有五成出头,明显低于平均。技术能做的事情有边界,这个边界要提前说清楚,别等结果出来再解释。