外企用HTML简历核心是确保ATS解析准确、移动端显示稳定、打印不跳页。需语义化标签(如)、禁用table、规范字体栈与行高、包裹日期、print媒体中避免分页断裂、动词开头职责描述、链接语义化处理。

外企用HTML简历,不是为了炫技,而是让内容在ATS(Applicant Tracking System)里不丢、在HR手机上不炸、打印出来不跳页——英文排版不是加个font-family: "Helvetica Neue"就完事,它是一整套语义、间距、断行和导出行为的协同控制。
HTML结构必须用语义化标签,别用堆模块
ATS系统靠HTML标签识别“这是教育经历”还是“这是技能”,不是靠CSS类名或视觉位置。用div class="work-exp"等于告诉机器:“这是一块不知道是什么的方块”。
- 用
<section></section>包裹每一大块内容(Education / Experience / Skills),并在id或aria-label里写明用途,比如<section id="experience" aria-label="Work experience"></section>
- 公司名、职位、时间这些关键字段,必须用
<h3></h3>或<h4></h4>包裹,不能全用<p></p>;ATS会把<h3></h3>默认识别为条目标题
- 避免
<table>做主结构——表格在多数ATS里解析为空白,连“ABC Corp”都可能被切进不同单元格,导致职位和公司错位
<h3>CSS字体与行高设置直接影响ATS提取和PDF打印</h3>
<p>英文简历不是越像PDF越好,而是要让浏览器、Chrome打印预览、Gmail内嵌查看器、甚至ATS的文本提取器,看到同一份干净线性文本流。</p>
<ul>
<li>字体栈必须以无衬线体开头,且显式声明<code>font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;;别用"Times New Roman"或自定义Web Font——ATS不加载字体文件,只读font-family声明,匹配失败就回退到系统默认(常是乱码)
- 所有段落
<p></p>必须设margin: 0 0 0.75em 0,禁用margin-bottom: 1.2em这类相对值,否则Chrome打印预览中行距会因缩放浮动
- 日期、公司地点等短文本,统一用
<time datetime="2022-06">Jun 2022</time>包裹,既语义清晰,又防止PDF导出时被拆成两行(如“Jun”在页尾、“2022”在下页)
@media print样式必须手动控制分页,不能依赖浏览器默认
Chrome“另存为 PDF”默认不分页控制,一段工作经历横跨两页、技能列表被截成半行,是HTML英文简历最常被拒的隐形原因——HR打印出来第一眼就看到断掉的句子,直接扔进回收站。
立即学习“前端免费学习笔记(深入)”;
- 每段经历用
<article></article>包裹,并加style="page-break-inside: avoid;"(内联优先,避免CSS压缩后失效)
- 禁用
flex-wrap: wrap和grid-auto-flow: dense——它们在print media下行为不可控,尤其多列技能栏极易错位
- 在
@media print里强制重置a标签:隐藏href内容(content: "")、取消下划线(text-decoration: none)、颜色设为#000(避免彩色链接在黑白打印中变灰不可读)
英文内容排版细节决定HR是否愿意读完第二行
中文简历可以靠大字号撑场子,英文简历靠的是密度控制和呼吸感——单词太挤、动词太弱、标点太松,三秒内就会被滑过去。
- 职责描述全部用过去时动词开头(
Led, Designed, Optimized),禁用Responsible for...这种被动句式;ATS对动词识别率比名词高3倍以上
- 邮箱、LinkedIn、GitHub链接统一放在
<header></header>底部,用<a href="mailto:..."></a>和<a href="https://linkedin.com/in/..."></a>,不要写成纯文本;Gmail会自动识别并高亮,但前提是没加target="_blank"(外链在邮件客户端里常被拦截)
- 项目名称、技术栈用
<strong></strong>包裹,不用font-weight: bold;前者是语义强调,后者只是样式,ATS更信任前者
真正卡住人的从来不是“怎么写HTML”,而是当HR用iPhone Safari打开你的简历、再顺手点“分享→打印PDF”时,那0.3秒里页面有没有崩、日期有没有断开、动词有没有被识别成名词——这些细节没写死在代码里,光靠“看起来差不多”根本过不了关。
ATS系统靠HTML标签识别“这是教育经历”还是“这是技能”,不是靠CSS类名或视觉位置。用div class="work-exp"等于告诉机器:“这是一块不知道是什么的方块”。
- 用
<section></section>包裹每一大块内容(Education / Experience / Skills),并在id或aria-label里写明用途,比如<section id="experience" aria-label="Work experience"></section> - 公司名、职位、时间这些关键字段,必须用
<h3></h3>或<h4></h4>包裹,不能全用<p></p>;ATS会把<h3></h3>默认识别为条目标题 - 避免
<table>做主结构——表格在多数ATS里解析为空白,连“ABC Corp”都可能被切进不同单元格,导致职位和公司错位 <h3>CSS字体与行高设置直接影响ATS提取和PDF打印</h3> <p>英文简历不是越像PDF越好,而是要让浏览器、Chrome打印预览、Gmail内嵌查看器、甚至ATS的文本提取器,看到同一份干净线性文本流。</p> <ul> <li>字体栈必须以无衬线体开头,且显式声明<code>font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;;别用"Times New Roman"或自定义Web Font——ATS不加载字体文件,只读font-family声明,匹配失败就回退到系统默认(常是乱码) - 所有段落
<p></p>必须设margin: 0 0 0.75em 0,禁用margin-bottom: 1.2em这类相对值,否则Chrome打印预览中行距会因缩放浮动 - 日期、公司地点等短文本,统一用
<time datetime="2022-06">Jun 2022</time>包裹,既语义清晰,又防止PDF导出时被拆成两行(如“Jun”在页尾、“2022”在下页)
@media print样式必须手动控制分页,不能依赖浏览器默认
Chrome“另存为 PDF”默认不分页控制,一段工作经历横跨两页、技能列表被截成半行,是HTML英文简历最常被拒的隐形原因——HR打印出来第一眼就看到断掉的句子,直接扔进回收站。
立即学习“前端免费学习笔记(深入)”;
- 每段经历用
<article></article>包裹,并加style="page-break-inside: avoid;"(内联优先,避免CSS压缩后失效) - 禁用
flex-wrap: wrap和grid-auto-flow: dense——它们在print media下行为不可控,尤其多列技能栏极易错位 - 在
@media print里强制重置a标签:隐藏href内容(content: "")、取消下划线(text-decoration: none)、颜色设为#000(避免彩色链接在黑白打印中变灰不可读)
英文内容排版细节决定HR是否愿意读完第二行
中文简历可以靠大字号撑场子,英文简历靠的是密度控制和呼吸感——单词太挤、动词太弱、标点太松,三秒内就会被滑过去。
- 职责描述全部用过去时动词开头(
Led,Designed,Optimized),禁用Responsible for...这种被动句式;ATS对动词识别率比名词高3倍以上 - 邮箱、LinkedIn、GitHub链接统一放在
<header></header>底部,用<a href="mailto:..."></a>和<a href="https://linkedin.com/in/..."></a>,不要写成纯文本;Gmail会自动识别并高亮,但前提是没加target="_blank"(外链在邮件客户端里常被拦截) - 项目名称、技术栈用
<strong></strong>包裹,不用font-weight: bold;前者是语义强调,后者只是样式,ATS更信任前者
真正卡住人的从来不是“怎么写HTML”,而是当HR用iPhone Safari打开你的简历、再顺手点“分享→打印PDF”时,那0.3秒里页面有没有崩、日期有没有断开、动词有没有被识别成名词——这些细节没写死在代码里,光靠“看起来差不多”根本过不了关。



















