
招聘成运气筛选?HackerRank开源ATS系统引关注
最近,HackerRank开源的这款ATS系统火了起来。从GitHub上该项目的星标增长图来看,2025年10月到2026年5月星标增长平缓,2026年6月至7月,星标数量急剧攀升至近3000个。它在领英和Reddit上也获得了成百甚至上千的点赞,几天前,一位同事还跟我提到了它。
亲自测试:简历评分波动惊人
我决定亲自测试一下。第一次运行时,我的简历评分是90/100。不过,清理掉调试安装过程中代码里的调试打印语句后再次运行,评分变成了74/100,仅仅删除了打印语句而已。之后,我禁用了`DEVELOPMENT_MODE`,并让程序循环运行了100次,结果显示,评分范围在66到99之间。如果公司的筛选分数线设定为85分,那我有65%的概率会被淘汰,同样的简历,却因不同的运气得到不同的结果。
工具工作原理揭秘
该工具会将PDF简历解析成文本,然后调用大语言模型(LLM)六次,提取结构化信息,包括基本信息、工作经历、教育背景、技能、项目经验和获奖情况等。它还会获取你的GitHub个人资料,扫描你排名靠前的仓库,并将这些信息作为额外的参考内容。最后,将所有信息一起输入到LLM中进行评分。评分满分为100分,最高可额外获得20分的加分:开源贡献35分、个人项目30分、工作经验25分、技术技能10分、额外加分(如创业经验、个人作品集网站、技术博客等)最高20分。默认使用的模型是gemma3:4b,温度参数设置为0.1,理论上这个较低的温度能让模型输出更具确定性。
各评分项分析:稳定与波动并存
从各项评分的分布情况来看,技术技能这一项的评分非常稳定。在100次运行中,有98次我的技术技能评分都是8/10。这是因为技术技能就像一个清单,你要么掌握了React,要么没掌握,LLM无需进行主观判断。然而,项目经验的评分波动却非常大。LLM很难对项目进行一致的评判,有时候认为项目“缺乏架构复杂性”,有时候又觉得“展示了实际部署能力”,即便将温度参数降到0,也无法解决这个问题。早在2025年10月,就有人在GitHub上提出了一个问题,展示了在温度参数为0.2的情况下,连续六次运行的评分分别为27、34、32、34、34、30。这种非确定性是该工具的一个根本性设计缺陷。
不同模型测试:仍难解决问题
我担心评分不稳定可能是模型的问题,于是使用了gemini-3.1-flash-lite模型进行测试。结果显示,评分分布更加集中,在48到64之间。但如果公司的筛选分数线是60分,你仍有28%的概率会因运气不佳而被淘汰。使用gemini-3.1-flash-lite模型时,开源贡献的评分变得稳定了,但项目经验的评分依然波动很大。工作经验的评分最让我担忧,每次运行,我的工作经验评分都是25/25。拿出一份只有一段实习经历的旧简历进行测试,评分还是25/25。问题出在评分提示上,关于工作经验的提示只有两行,没有评分标准,没有示例,也没有区分15分和25分的依据。一个只有一段实习经历的初级工程师能得到25/25,一个有十年分布式系统经验的首席工程师也能得到25/25,同样是25/25。工作经验这一项提示简单且缺乏评分依据,虽然评分稳定但毫无意义。项目经验虽然有详细的评分标准和示例,但评分波动最大,同样没有实际价值。有些事情,无论你如何设置提示,LLM都无法做好。
AI筛选工具:随机筛选不可取
用LLM将简历解析成结构化数据没问题,检查某人是否掌握Python也很棒,但用它来判断候选人的工作经验值18分还是24分,就只能得到一个模糊的评价,这正是人力资源团队、招聘把关人以及众多相关举措几十年来一直努力避免的情况。此外,开源贡献和项目经验在总评分中占比65%,这也不合理。我会选择那个有30年经验、参与构建了S3的工程师,而不是有两段实习经历和一个开源项目的人,但这个工具却不会这么选。我认识的一些优秀工程师,他们做过很多出色的工作,但并没有在GitHub上展示出来。在人类看到他们的简历之前,这个工具就已经让他们失去了超过一半的分数。如果你是一名工程师,并且对公司的简历筛选流程有一定的话语权,请谨慎使用基于AI的筛选工具。一个无法区分候选人优劣的工具,不能筛选出高质量的人才,它只是在随机筛选。
相关更正与说明
一位读者指出,[resume_evaluation_criteria.jinja]模板的第一行提到了“软件实习生”,但在仓库中没有其他地方对其进行记录或引用。该模板后面还提到了对“创始人、联合创始人或早期工程师”给予额外加分。我使用明确的高级软件工程师提示重新运行了测试,结果相同,这表明评分维度与职位无关。文中提到的领英和Reddit上的帖子都声称该仓库是最近开源的,但根据提交历史,更有可能的情况是它早在2025年10月就已开源,只是最近才火起来。2025年10月有人在[这个GitHub问题]中指出了温度为0时的非确定性问题。

被折叠的 条评论
为什么被折叠?



