HackerRank 开源了它的 ATS。我的简历得分 90/100。哦等等 74。不是——88

工具的范围与用途

  • 这个开源系统并不是生产环境中使用的完整 ATS;它是为了给数以万计的实习生简历排序,让人类知道先读哪些。
  • 演示配置使用的是一个很小的本地模型(gemma3 4B,temp 0.1);据称实际内部使用的是更大的 Gemini 模型和非常低的截断阈值,只有最底部那一小部分会被自动丢弃。

LLM 的非确定性与评分波动

  • 多个人在同一份简历上、跨不同运行和模型时,复现出巨大的分数波动(例如 48–99/100)。
  • 一个很长的子线程讨论了温度 0 或 0.1 是否应当是确定性的,涉及 softmax、浮点非确定性、批处理、PRNG 种子、GPU 与 CPU 以及 TPU。
  • 共识是:你可以把推理工程到接近确定性,但大多数云环境并没有这样做,而确定性也无法修复根本上薄弱的评估标准。

评分细则设计与内嵌偏见

  • 评分非常偏向开源(35 分)和个人项目(30 分),而工作经验只有 25 分。
  • 许多人认为这会系统性地惩罚:有家庭或非编程爱好的人、在初创公司工作且“额外工作”不公开的人、年纪更大或自学成才的工程师,以及那些不活跃于 GitHub 的人。
  • 有些人认为这是在筛选“内在动机强”或带有强迫倾向的编码者;另一些人则认为这是在筛选过度工作和特权。

AI 筛选的有效性、合法性与公平性

  • 招聘经理描述了压倒性的申请量,并认为任何能把大约 30–35% 的人推进下一步的自动过滤器,都比只靠人工初筛更好。
  • 批评者则反驳说,一个并不比随机更好的过滤器,只是在更早阶段丢掉了合格候选人,而随机化本可以用更便宜、更透明的方式实现。
  • 还有人担心,黑箱式 LLM 评分可能带来违法歧视(欧盟 GDPR 第 22 条、美国平等就业法律),尤其因为姓名、学校和地理位置等输入即使在提示词里说“不要使用”,也会与受保护群体相关联。

对提示词 / 系统设计的批评

  • 主要提示词把许多子任务(OSS、项目复杂度、技能)捆绑成一步,使用模糊的 0–35 分区间和大量形容词(“significant”“substantial”),把艰难的判断压给模型。
  • 建议包括:把任务拆得更小、使用加法式或分类式评分细则、把分数与明确证据关联、在提示前去除敏感字段,以及依赖结构化输出。
  • 有人指出幻觉问题(例如给 CV 中并不存在的 Google Summer of Code 分数)。

对招聘的更广泛反思

  • 许多人认为,基于简历和 ATS 的招聘本来就已经很武断;LLM 只是放大了不透明性,并奖励关键词堆砌和 AI 生成的简历。
  • 讨论中的替代方案包括:工作样本测试、限制数量或限制时长的申请、在最低合格候选人中随机抽签,或者基于书面问卷而不是简历来筛选。