1. HackerRank open sourced its ATS. My resume scored 90/100. Oh wait 74. No – 88 (danunparsed.com)
HackerRank 近期在 GitHub 上开源了其 ATS(Applicant Tracking System)工具 interviewstreet/hiring-agent,引发大量关注。一位开发者对该工具进行了实测,发现同一份简历在多次评估下得分波动极大,暴露出 AI 简历筛选存在严重的非确定性与设计缺陷。
核心测试结果
作者首次运行自己的简历得到 90/100,仅删除调试打印语句后再跑变为 74/100。随后使用默认模型 gemma3:4b(temperature=0.1)循环评估 100 次,总分分布在 66–99 之间,大部分集中在 78–88 分。若公司设定 85 分的及格线,同一份简历会有 65% 的概率被淘汰。即使将 temperature 降至 0,仍有用户报告连续六次跑分结果差异明显(27、34、32 等),说明这种随机性并非简单的参数问题,而是结构性缺陷。
评分机制与维度
该系统将 PDF 解析为文本后,通过 LLM 分六次提取基本信息、工作经历、教育背景、技能、项目和奖项,并抓取 GitHub 热门仓库作为附加上下文,最后由 LLM 统一打分。满分 100 分外加最高 20 分 bonus,具体权重为:开源贡献 35 分、个人项目 30 分、工作经验 25 分、技术技能 10 分,bonus 涵盖创业经历、技术博客等。
各维度表现差异显著
- 技术技能(10 分):几乎完全稳定。作者在 100 次运行中 98 次拿到 8/10。因为技能评估本质上是“会不会 React”这类清单式匹配,LLM 在此类确定性任务上表现可靠。
- 项目(30 分)与开源(35 分):波动剧烈。Gemini 测试中开源评分趋于稳定,但项目评分仍摇摆不定。LLM 对“架构复杂度”“实际部署价值”等主观判断缺乏一致标准,时而批评“缺乏架构复杂性”,时而称赞“展现了真实世界部署能力”。
- 工作经验(25 分):最令作者担忧的是该维度在连续 100 次运行中均为 25/25,满分无差别。进一步测试发现,仅含一份实习经历的初级简历也拿 25/25,而拥有十年分布式系统经验的资深工程师同样是 25/25。原因在于相关 prompt 仅有两行,没有评分细则、示例或锚点,导致 LLM 无法区分经验深浅——结果高度一致,却毫无区分度。
更换模型后的表现
作者换用云端模型 gemini-3.1-flash-lite(temp=0.1)测试 50 次,总分分布缩窄至 48–64 分,大部分在 60–61 附近。若以 60 分为线,仍有 28% 的概率被随机筛掉。虽然开源评分变得稳定,但项目评分依旧离散,且 deductions(扣分项)平均达到 4.7 分,进一步压低总分。
设计缺陷与权重问题
作者指出,将开源与项目权重设为 65%,对没有 GitHub 公开项目的老牌优秀工程师极为不利。LLM 适合完成“提取结构化信息”“检查是否掌握某技能”等客观任务,但让其判断“经验值 18 分还是 24 分”本质上只是“ vibe-check(氛围检测)”,与 HR 多年来试图消除的主观偏见无异。
结论
作者警示:如果企业采用此类 AI 筛选工具,实际上并非在过滤质量,而是在过滤运气。建议技术团队对 AI 简历筛选保持高度谨慎,避免将招聘决策交给一个无法真正区分候选人能力的随机系统。