[推广] 我花了 3 个月才搞清楚 ATS 到底怎么筛简历的

帮客户调简历的时候发现,大多数人根本不知道自己的简历是怎么被机器 first pass 的。

先说技术逻辑

ATS 解析简历大概分三步:

  1. 文件提取:把 PDF/DOCX 转成纯文本
  2. 字段识别:识别姓名、邮箱、工作经历、技能
  3. 关键词匹配:和 JD 里的关键词做比对打分

大多数 ATS 用的是开源库二次封装,比如 Apache Tika 、pdfbox 。这意味着它对复杂格式的容忍度比你想的差很多。

踩过的几个坑

❌ PDF 里嵌套表格 → ATS 只能读第一行
❌ 两栏布局 → 中间那栏经常被当成页眉扔掉
❌ 技能用图标/徽章展示 → 0 识别率
❌ 关键字用图片嵌入 → 完全匹配不到
❌ 经历描述写得太像散文 → 关键词密度不够,过不了阈值

有个候选人做后端的,技能树写了「 Golang / Go / GoLang 」三遍,以为能增加曝光。实际上 ATS 只会提取一次,重复关键词反而会触发去重机制,分数更低。

几个观察

  • JD 里出现 3 次以上的词,大概率是硬性要求,不是加分项
  • "5 years experience" 这种描述,ATS 会直接数数字而不是理解语义
  • 有些 ATS 会过滤掉 2 页以上的简历,不管内容多丰富
  • 北美 ATS 和国内 ATS (比如 Moka 、北森)解析逻辑差异挺大的,别用同一套简历投

实操建议

✅ 用单栏、标准层级结构( Summary / Experience / Skills )
✅ 关键词尽量贴近 JD 原词,不要自己 paraphrase
✅ 技能列表用纯文本,逗号分隔
✅ PDF 导出前检查是否有隐藏的表格或文本框
✅ 简历长度控制在 1-1.5 页

如果你也在改简历,可以试试棱镜简历 xukz.cn ,关键词优化和格式检测用起来比较顺手。