ATS 分数是什么?简历分数是怎么算出来的

ATS 分数是检测工具对简历与职位契合度的估算。本文讲常见算法、Resume Matcher 的公式和手动检查法。

S
ATS ATS 分数 简历 关键词 求职
粗线条插画:评分仪表盘、关键词标签和一页简历,配色为蓝、橙、绿

你把一份职位描述粘贴进检测工具,上传简历(CV),返回一个数字:62 分(满分 100)。这个数字就是 ATS 分数。它背后的工具估算了 ATS(招聘管理系统 / 申请人跟踪系统)针对这个职位可能会给你的文件打多少分。这个估算有用处,也容易被误读:雇主用的系统和给你打分的工具是两套不同的软件,而且同一份简历交给两个检测工具,会得到两个不同的数字。这篇文章讲这个数字从哪里来、常见工具怎么算、代码公开时公式长什么样,以及怎么用一个文本编辑器自己检查分数。

ATS 分数是什么?

ATS 是公司用来收集求职申请的软件。它从你的文件里提取文本,拆成姓名、雇主、职位、日期、技能等字段,存起来,再给招聘专员一个搜索框和一组筛选条件,用来在整堆申请里查找。Greenhouse 和 Workday 是几十种产品中的两个例子。

ATS 分数是某个软件针对一份职位描述给你的简历打出的数字,大多数工具用 0 到 100 分制。有两类软件会给出这种数字。雇主的 ATS 在某些产品、某些配置下,可以给招聘专员显示一个匹配指标。Jobscan、Resume Worded、SkillSyncer 这类第三方检测工具,产出的是你在自己屏幕上看到的那个数字。搜索自己 ATS 分数的人指的是第二类,而这两类数字没有共同的标尺。

ATS 分数和简历分数

这两个说法有重叠,区别在于有没有输入职位描述。只给你的文件打分、不附职位的工具,衡量的是写作和结构:带数字的要点、重复的措辞、板块标题、能解析的日期。厂商往往把这个叫简历分数。输入职位描述的工具,衡量的是和这个职位的重合度,结果往往叫 ATS 分数或匹配率。两者都是在任何雇主系统之外算出来的估算,本文后面的内容对两者都适用。

雇主系统怎么处理你的简历

厂商公开的文档讲解析、存储和搜索的篇幅,远多于讲打分。

Greenhouse 的帮助网站描述了申请审核中的关键词筛选:招聘专员在简历和内部备注的全文里搜索,搜索的关键词必须和申请里的措辞完全一致,关键词可以标为 Preferred(出现任意一个即可)或 Required(必须全部出现)。自动拒绝功能确实存在,但 Greenhouse 的申请规则是根据候选人对申请问题的回答触发的,比如工作许可或所在地,而且自动拒绝只在 Plus 和 Pro 套餐里提供。这两篇文章都没有提到数字形式的简历分数。

Workday 确实会算一个分数,并且自己说明了局限。它的 Candidate Skills Match 用机器学习,把从申请中推导出的技能和职位需求单上的技能做比较,给需求单上的必备技能更高的权重,并向招聘专员显示一个档位(Strong、Good、Fair、Low、Pending 或 Unable to Score),而不是百分比。管理员指南说,这个分数不考虑候选人多久以前用过某项技能、用了多久;简历格式不受支持或文档不是英文时无法计算;而且 Workday 计划在未来某个版本中停用这个功能。

某种形式的筛选和排序很常见。哈佛商学院的 Project on Managing the Future of Work 为它和 Accenture 合作的 2021 年报告《Hidden Workers: Untapped Talent》调查了美国、英国和德国的雇主。Joseph Fuller 在 HBS Working Knowledge 上的总结报告说,受访雇主中有 63% 使用招聘管理系统(员工超过 1,000 人的雇主中为 69%),而在这些用户中,94% 依靠系统对中等技能求职者做初筛或排序,对高技能求职者这一比例为 92%。

所以排序是真实存在的,它因厂商和每家雇主对产品的配置而异,招聘专员可能看到的那个数字,也没有公开的标尺让你拿简历去比。想了解这些系统怎么解析和排序,读简历匹配算法原理,那篇讲了关键词、语义和结构化三层。本文只讲这个数字。

你屏幕上的数字从哪里来

第三方检测工具各自定义自己的分数和目标值。截至 2026 年 10 月,根据各厂商网站:

  • Jobscan 把它的数字叫作匹配率,并在首页上说明它按优先级依次基于五项:硬技能、教育程度、职位名称、软技能和其他关键词,简历字数和可量化成果不计入。Jobscan 建议达到 75%,又补充说很多用户在 65% 时就取得了成功,并提醒说冲到 75% 以上可能需要往简历里堆砌关键词。
  • Resume Worded 提供 Score My Resume,用 30 多项检查给出 0 到 100 的分数,85 分及以上算好,90 分及以上算理想。它另有一个 Targeted Resume 工具,把你的简历和一份职位描述对比,给出 Relevancy Score,低于 80 分表示缺了职位描述里的重要技能。
  • SkillSyncer 针对你粘贴的职位描述,给简历打 0 到 100 分,按雇主重复某个关键词的次数给关键词排序,建议达到 80 分及以上。你可以排除不适用于你的关键词,分数会重新计算。
  • Teal 给免费用户展示所附职位的前五条关键词洞察,完整的关键词列表和 Match Score 要开通付费的 Teal+ 套餐才能看。
  • Rezi 用 23 项指标计算 Rezi Score,免费版对它有限制。

同一份简历,三个公开的目标值(75、80 和 85),一个要付费才能看的 Match Score,还有一个在免费版里被削减的分数。门槛属于设定它的那个工具,每个工具都选了自己的关键词列表、自己的权重和自己的附加项。同一天、同一份文件,一个工具给 68 分,另一个给 81 分,完全可能。

ATS 简历分数是怎么算的

大多数检测工具组合了三种成分,各工具之间的差别归结为权重。

关键词重合度。 工具从职位描述里提取术语,检查哪些出现在你的简历里,然后做除法。变化在于:按职位描述重复某个词的次数加权、给硬技能比软技能更高的权重、把职位名称单独作为一项检查,以及只认完全相同的词还是也接受同义词。在需要输入职位描述的工具里,这一项占了分数的大头。

板块检查。 有没有个人简介、工作经历、教育背景、技能列表?解析器有没有找到邮箱、电话号码和它能读懂的日期?缺少板块或板块没有标题都会扣分。

格式检查。 文件类型、PDF 有没有文本层、会打乱阅读顺序的分栏和表格、字体、页数。不需要职位描述就能运行的工具,主要靠这一组检查和写作质量,比如带数字的要点和重复的措辞。

然后有人来定权重:比如关键词 60%、板块 20%、格式 20%。权重体现的是一种关于什么重要的看法,而我没有找到哪家厂商公开过证据,证明它的权重能预测面试机会。

怎么计算 ATS 简历分数:一个代码公开的实例

我维护 Resume Matcher,一个免费开源(Apache 2.0)的 AI 工具框架(harness),用来根据职位描述定制简历,有超过 20 万求职者在用。它在你自己的电脑上运行,用你自带的模型,比如 Claude、ChatGPT、Gemini、DeepSeek,或者通过 Ollama 运行的本地模型。它是一个定制工具,不声称能模拟任何雇主的 ATS。它确实会显示两个数字,而且代码是公开的,你可以直接读公式,不用去猜。这让它成为一个能说明分数由什么构成的实例。

JD 匹配百分比

简历生成器的「JD 匹配」标签页把职位描述和你的简历并排显示,高亮匹配的词,并给出一个百分比。计算过程来自 apps/frontend/lib/utils/keyword-matcher.ts:

  1. 把原始职位描述转成小写,按所有非字母、非数字、非连字符的字符切分。
  2. 保留三个字符及以上的词元,去掉纯数字,再去掉一份 172 个词的停用词表,里面包括英文虚词和职位描述里的套话,比如「role」、「team」、「experience」和「skills」。
  3. 用你的简历文本构建同样的集合。
  4. 统计职位描述的词元中有多少出现在简历集合里。匹配要求完全一致:「kubernetes」只匹配「kubernetes」。
  5. 分数 = round(匹配数 ÷ 职位描述词元总数 × 100)。

这个计算里没有 AI 参与。有两个局限要知道:分词器只处理 ASCII,所以天城文、中文或带重音的拉丁文单词都会被忽略;这个标签页在百分比达到 50 时显示绿色,达到 30 时显示黄色。这些颜色只是界面上的显示选择。应用里没有任何地方把它们当作及格线,你也不该这样看。

ATS Score Breakdown

打开定制预览时,定制简历页面会显示一张标为 ATS Score Breakdown 的卡片。分数满分 100,来自 apps/backend/app/services/ats.py:

score = 0.55 × keyword_match + 0.25 × skills_coverage + 0.20 × section_completeness
  • keyword_match: 你接入的模型从职位描述里提取必备技能、加分技能和关键词。然后由代码把每个术语按整词、不区分大小写的方式,和你简历各板块(不含个人信息)做匹配,用匹配数除以总数。
  • skills_coverage: 职位描述中的必备和加分技能,有多大比例出现在你的简历里。
  • section_completeness: 个人简介、工作经历、教育背景和技能这四项里有几项存在,再除以四。

卡片下面的建议是固定模板,按得分低的那一项对应给出。卡片只在预览时出现,数字不会保存。0.55、0.25 和 0.20 这几个权重是维护者的主观判断,仓库自己的开发者文档也说,不要声称它具有商业 ATS 的准确度。不管标签怎么写,都把这张卡片当作一个基于关键词和板块的经验估算。

两个数字都是为了指出缺了哪些词。百分比是那份清单的汇总,你真正要据此行动的是清单。

怎么手动检查简历的 ATS 分数

任何检测工具里的关键词重合度部分,你都可以用一个文本编辑器花十分钟复现出来,而且那份未命中清单教给你的东西比数字多。

  1. 复制职位描述里的任职要求和工作职责到一个文档里。
  2. 列出名词。 编程语言、框架、工具、平台、方法、领域术语、职位名称、证书。跳过动词和套话。简历关键词指南详细讲了这一步,并给出了后端、前端、数据和 DevOps 岗位的示例术语。
  3. 标出重复项。 职位描述用了三次的词,就是招聘经理在意的词。
  4. 在你的简历里出现、且用的是职位描述措辞的术语,打勾。 「k8s」不能给「Kubernetes」打勾。
  5. 用打勾数除以术语数。

示例(虚构)。Larkspur Logistics 的一份后端工程师职位,做完第 2 步后得到 12 个术语:Python、Django、PostgreSQL、Redis、Kafka、AWS、Terraform、Docker、Kubernetes、REST APIs、observability、on-call。Priya Nair 的简历里有 Python、Django、PostgreSQL、AWS、Docker、Kubernetes、REST APIs 和 on-call:8 个勾。8 ÷ 12 = 67%。未命中的是 Redis、Kafka、Terraform 和 observability。Priya 用了两年 Terraform,却写成了「infrastructure as code」,所以有一项未命中只需改措辞。她在上一份工作里搭过 Grafana 仪表板,职位描述管这个叫 observability,这是第二处措辞修改。Redis 她只用过一次,Kafka 完全没用过,所以这两项不写。她针对这个职位的诚实上限是 12 项中的 10 项,即 83%,剩下的两个缺口是面试前要准备的内容。

如果你更想写脚本,JD 匹配的公式用几行 Python 就能写完:

import re

STOP = {"and", "the", "with", "for", "you", "our", "will", "role", "team",
        "experience", "skills", "work", "strong", "ability", "years"}  # extend as needed

def terms(text):
    tokens = re.split(r"[^a-z0-9-]+", text.lower())
    return {t for t in tokens if len(t) >= 3 and not t.isdigit() and t not in STOP}

jd = terms(open("posting.txt").read())
cv = terms(open("resume.txt").read())
matched = jd & cv
print(f"{round(len(matched) / len(jd) * 100)}%  missing: {sorted(jd - cv)}")

拿几份职位描述跑一跑,你会发现自己在读第二列,而不再看第一列。

多少 ATS 分数算好

没有通用的门槛,谁给你一个数字却不说是哪个工具,都是在猜。厂商自己的目标值就差了十分。雇主系统如果打分,用的也是不公开的档位或内部标尺,Workday 还说它的打分不考虑你使用某项技能有多近、有多久。检测工具给出的 90 分,说明你的简历重复了职位描述的用词。它说明不了那家公司的招聘专员是按这些词排序,还是按收到的先后顺序打开文件。

下面四个问题比那个数字更有用:

  • 你具备的每项必备技能,简历里有没有用职位描述的措辞写出来?这里每漏一项,都是一次不花成本的修正。
  • 你的职位名称那一行和职位描述的职位名称一致吗,或者有没有在括号里写上它?
  • 你能从 PDF 里选中并复制出文字吗?如果你不能,任何解析器也读不出来。
  • 你有没有加进去面试时守不住的东西?

Jobscan 提醒 75% 以上可能是在堆砌关键词,这个直觉是对的。你真正掌握的术语都写进去之后,每多加一个你不掌握的术语,都会降低你在搜索之后那位真人读者那里的胜算。要追求的分数是:未命中清单里只剩你确实不具备的技能,别的什么都没有。这样得出的百分比因职位而异,这没有问题。

想比较这些检测工具本身,包括各自免费版包含什么,读免费 ATS 简历检测工具对比。想把未命中清单变成一份定制简历,从根据职位描述定制简历开始。

如果这篇文章帮到了你,给 GitHub 上的 Resume Matcher 点个 Star。它由 Saurabh Rai 开发;在 GitHub、X 和 LinkedIn 上关注他。

[本文在 AI 的帮助下完成起草、翻译和排版。产品信息已对照 Resume Matcher 源代码核实,引用的外部资料均附有链接。]

觉得有用? 在 GitHub 上为 Resume Matcher 点个 Star,并关注项目动态