帮客户调简历的时候发现,大多数人根本不知道自己的简历是怎么被机器 first pass 的。
先说技术逻辑
ATS 解析简历大概分三步:
- 文件提取:把 PDF/DOCX 转成纯文本
- 字段识别:识别姓名、邮箱、工作经历、技能
- 关键词匹配:和 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 ,关键词优化和格式检测用起来比较顺手。