可行但不推荐投递,因ATS无法解析语义结构,内容易被切碎丢弃;应导出语义清晰的PDF用于投递,HTML仅作个人网站或邮件预览。

直接用 HTML 做「求职信 + 简历一体页」可行,但关键不是“能不能做”,而是“要不要这么做”——多数招聘系统(如 ATS)无法解析单页 HTML 中的语义结构,innerHTML 里的 section 或 article 标签对机器来说只是文本块,简历内容大概率被切碎、错位或丢弃。真正投递时,务必另导出 PDF(且是语义清晰、无 JS 渲染依赖的 PDF),HTML 页只用于个人网站或邮件内嵌预览。
怎么让 HTML 页面同时承载求职信与简历结构?
核心是用语义化标签划分逻辑区块,而非视觉堆砌。求职信和简历不是“左右分栏”或“上下拼接”,而应有明确的 DOM 边界与可访问性标记:
-
包裹全部内容,避免用这类无意义容器- 求职信用
,顶部加求职信
- 简历用
,同样配简历
- 两者之间插入
(非装饰性分隔线需用role="separator")为什么不能用 CSS Flex/Grid 强制“一页打印”?
浏览器打印时,
display: flex或grid容器极易触发跨页截断(尤其在 Chrome),导致求职信后半截和简历头部挤在同一张纸上,或者关键模块被切到第二页空白处。更糟的是,某些企业邮箱(如 Outlook Web)会剥离@media print规则,直接渲染屏幕样式。实操建议:
- 打印样式表里,对所有
section显式设置break-inside: avoid - 禁用
position: fixed/absolute—— 打印时它们常消失或错位 - 用
@page { size: A4; margin: 0.5in; }控制纸张,但别依赖page-break-before,它在 Safari 和 Edge 中兼容性差 - 测试时用 Chrome 的“另存为 PDF”,而非“打印 → 保存为 PDF”,前者保留更多布局控制
如何让 ATS 至少能读到文字内容?
ATS 不解析 CSS,也不执行 JS,但它会提取
textContent。这意味着:- 所有关键信息(姓名、电话、邮箱、技能关键词、公司名、职位名)必须是纯文本节点,不能藏在
data-*属性、aria-label或 JS 动态插入的innerHTML中 - 避免用 SVG 图标代替“电话”“邮箱”文字,ATS 看不到
以外的内容 - 教育经历、工作经历必须用有序/无序列表(
/),ATS 对列表项的解析稳定度远高于- 技能栏别写成
ReactTypeScript,改用逗号分隔的段落:JavaScript, TypeScript, React, Node.js
最易被忽略的一点:字体。用
font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;这类系统字体栈,而不是自定义 Web Font(如 Google Fonts)。很多 ATS 在解析时会跳过 @import 或,导致文字回退成不可读的默认字体,甚至乱码。 - 技能栏别写成
- 求职信用
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











