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

Hacker News Top 新闻

摘要

本文测试了HackerRank的开源ATS(招聘代理),发现由于LLM的非确定性,即使在低温度设置下,简历得分在不同运行中也有显著差异,引发了对自动化招聘评估一致性的担忧。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/29 05:01

# HackerRank 的开源 ATS 让我的简历每次都打出不同分数 来源:https://danunparsed.com/p/hackerrank-open-source-ats 这个由 HackerRank 开发的开源 ATS 最近在 GitHub 上火了:https://github.com/interviewstreet/hiring-agent GitHub 上 interviewstreet/hiring-agent 的星数增长图,显示从 2025 年 10 月到 2026 年 5 月平稳增长,随后在 2026 年 6–7 月急剧攀升至近 3000 星。(https://substackcdn.com/image/fetch/$s_!7pmg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bfee137-15fc-406e-b2db-91db9cdbb9f7_1980x900.png) 它在 LinkedIn 和 Reddit 上收获数百乃至数千点赞。¹(https://danunparsed.com/p/hackerrank-open-source-ats#footnote-1) 几天前,一位同事随口跟我提了一下。 我决定试试看。 第一次运行:90/100。感觉还不错! 我在调试设置时在代码里留了几个打印语句,于是清理了一下,重新运行了一次。 74/100。 同一份简历。同一条命令。我唯一做的改动就是删除了 print 语句。 我禁用了 `DEVELOPMENT_MODE`,把它放进一个循环里,运行了一百次。 使用 gemma3:4b、温度 0.1 的 100 次评估总分分布,分数范围从 65 到 99,大部分集中在 78 到 88 之间。(https://substackcdn.com/image/fetch/$s_!S-dx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbab22a57-acb5-4fe4-929f-132059bcb466_1800x900.png) 分数从 66 到 99 不等。 如果你公司的分数线是 85,那么我有 65% 的概率不及格。同样的简历,全凭运气。 以下是该工具的工作原理简述: 你的 PDF 被解析成文本。LLM 被调用六次来提取结构化信息——你的基本信息、工作经历、教育背景、技能、项目、获奖情况。它还会拉取你的 GitHub 个人资料,扫描你最热门的仓库,并把它们作为额外上下文附加。然后所有信息一次性输入 LLM 进行评分。 评分满分 100 分,外加最多 20 分加分: - 开源贡献 35 分 - 个人项目 30 分 - 工作经历 25 分 - 技术技能 10 分 - 创业经历、个人作品集网站、技术博客等 最多 20 分加分 默认模型是 gemma3:4b,温度设置为 0.1——理论上低温度能使输出更确定。 以下是当我查看各个分类时发现的情况。 使用 gemma3:4b 温度 0.1 的 100 次评估,按类别划分的分数分布:开源、项目、经历、技术技能、加分项、扣分项。技术技能几乎完全一致(8/10)。项目和开源项波动很大。经历项紧密集中在 22–23 左右。(https://substackcdn.com/image/fetch/$s_!6I5J!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6b431e2-1e7d-494c-a925-ce3b3fa1e302_2100x1200.png) 看看技术技能:100 次运行中有 98 次我得了 8/10。几乎完美一致。为什么?因为技术技能是个清单。你懂不懂 React,一目了然。LLM 没什么好判断的——一个五岁小孩也能核对这个清单。 现在看看项目——差异巨大。 LLM 很难始终如一地做出这类判断。有时我的项目“缺乏架构复杂性”,有时又“展示了实际部署能力”。LLM 输出哪个结果全凭运气。 温度 0.1 已经很低了,但即使降到温度 0 也解决不了这个问题。去年十月就有人在 GitHub 上提了一个 issue,显示连续六次运行(温度 0.2)的分数分别是 27、34、32、34、34、30。(https://danunparsed.com/p/hackerrank-open-source-ats#footnote-2) 这种非确定性不是你能通过微调解决的 bug——这是根本性的设计缺陷。 我担心部分原因在于模型本身。毕竟 gemma3:4b 是我机器上运行的本地模型。 使用 gemini-3.1-flash-lite 温度 0.1 的 50 次评估总分分布,分数从 45 到 65,大部分集中在 60–61 左右。(https://substackcdn.com/image/fetch/$s_!dm7i!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffc485451-2609-4acb-8c43-d02e4fe63d4c_1800x900.png) Gemini 的分布更紧凑——分数集中在 48 到 64 之间。但如果你的分数线是 60,你仍有 28% 的概率因非自身原因而不及格。 使用 gemini-3.1-flash-lite 温度 0.1 的 50 次评估,按类别划分的分数分布。经历和技术技能几乎完全一致。项目仍然波动很大。扣分项平均 4.7,拉低了分数。(https://substackcdn.com/image/fetch/$s_!1Gbg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0b81b7ad-4505-41f5-a203-343cebeff015_2100x1200.png) 开源分数变得一致了——这是个真正的改进。但项目分数仍然乱七八糟。 最让我担心的是“经历”项。 25/25。 每次运行都是。 我回去翻出了一份旧简历——上面只有一段实习经历。 同样 25/25。 线索就在提示词里…… 整段提示只有两行。 没有评分细则。没有示例。没有界定 15 分和 25 分差别的锚点。 一个只有一段实习经历的初级工程师得 25/25。一个有十年分布式系统经验的首席工程师也得 25/25。我也得 25/25。“经历”只有两行且没有锚点——一致但无用。“项目”有详细的评分细则和示例,却是最嘈杂的类别——不一致,同样无用。LLM 在某些事情上就是做不好,无论你怎么提示都没用。 用 LLM 将简历解析为结构化数据——很棒,这是它们的强项。用 LLM 检查某人是否懂 Python——很棒。用 LLM 来判断一位候选人的经历值 18 分还是 24 分?你得到的是一个“感觉”。这恰恰是 HR 团队、面试把关者以及无数其他举措花费数十年试图避免的东西。 开源 + 项目占 65% 的权重也于事无补。我宁愿选择那位有 30 年经验、构建过 S3 的工程师,而不是一个只有两段实习和一个开源项目的人——但这个工具不会这么选。我认识的一些最优秀的工程师,他们构建的东西从未上传到 GitHub。在任何人看到他们之前,他们超过一半的分数就已经没了。 如果你是一名工程师,对公司如何筛选简历有任何发言权:请对 AI 筛选工具保持极度谨慎。一个无法区分优劣的工具,不是在筛选质量——它只是在筛选。你还不如直接扔掉一半的简历,然后告诉求职者:“运气不好,不关你事。” *更正(6 月 28 日):一位读者指出,`resume_evaluation_criteria.jinja`(https://github.com/interviewstreet/hiring-agent/blob/main/prompts/templates/resume_evaluation_criteria.jinja#L1) 模板第 1 行写着 “Software Intern”——该词在仓库中没有任何文档说明,也未被其他地方引用。同一模板后来又为 “创始人角色、联合创始人职位或早期阶段工程师角色” 给予加分。我使用了明确的 “高级软件工程师” 提示重新运行,得到了相同的结果——评分维度与职位无关。* #### 关于本文的讨论 ### 想要更多内容?

相似文章

interviewstreet/hiring-agent

GitHub Trending (daily)

Hiring Agent 是一个开源工具,可解析简历,丰富 GitHub 数据,并使用本地或云端 LLM 生成公平的评估。

我分析了25,500次LLM简历筛选来测量招聘偏见,结果令人警醒。

Reddit r/artificial

一项分析10个模型共25,500次LLM简历评估的研究发现,由“沉默偏见”驱动的偏见率高达45%,模型会编造听起来专业的借口来惩罚候选人。研究强调了公平性和稳定性的巨大差异,其中Claude、Mistral-Large和Llama 4最为稳定,而Qwen和较早期的Gemini模型则波动较大。

大语言模型能公平招聘吗?简历筛选中的种族偏见

arXiv cs.CL

本文采用配对简历方法,对14个大语言模型在招聘中的歧视行为进行了审计,发现较旧的模型表现出亲白人的偏见,而较新的模型则显示无偏见或亲黑人的偏见,表明不同代际的算法招聘偏见发生了逆转。

求职申请要求提供我的SAT成绩

Hacker News Top

作者回忆了一次求职申请要求提供SAT成绩的经历,并讨论了招聘评估的历史和有效性,质疑将几十年前的考试成绩作为认知能力代理指标的做法。