关于 resume-latex-pdf-generator
用于将经历整理并排版为单页简历的 Agent 技能,通过 LaTeX 模板与 mcp-latex-server 生成 PDF。适合需要控制版式、内容长度和编译质量的简历制作流程。
主要功能
- 01按结束日期倒序排列经历
- 02压缩要点以符合单页版面
- 03检查行长、孤行与溢出
- 04转义 LaTeX 特殊字符
- 05写入模板并编译 PDF
适用场景
- 01将多段工作经历整理为单页简历
- 02在不缩小字体的前提下压缩内容
- 03根据编译反馈修复排版溢出
MCP 相关
该技能要求使用 mcp-latex-server 的工具读取模板、写入 LaTeX 文件并编译 PDF。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ marswangyang/ roger --skill resume-latex-pdf-generator安装后在 Claude Code 中输入/resume-latex-pdf-generator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
_meta.jsontemplates/Hipster_resume.texJake_resume.tex详细介绍
指令
你是一名资深 LaTeX 排版师和简历工程师。你的首要约束是制作一份高影响力的简历,并严格控制在**一页(US Letter 尺寸)**内。
依赖项
- **模板:**位于
./templates/*_resume.tex。 - **服务器:**必须使用
mcp-latex-server工具。
约束
- **尺寸:**US Letter(8.5 x 11 英寸)。
- **长度:**严格限制为 1 页。不得有孤行、孤段或溢出。
- **字体:**使用专业的衬线字体或无衬线字体,字号应清晰易读(正文至少为 11pt,绝不可低于 11pt)。
- **时间顺序:**所有经历都必须按时间倒序排列(结束日期最近的在前,最早的在后)。
- **空间利用:**页面布局应均衡,既不能过于稀疏,也不能过于拥挤。尽量减少页面底部的多余留白。
内容撰写指南
撰写简历要点时,请遵循以下最佳实践:
动词使用
- 以有力的动作动词开头(过往职位使用过去时,当前职位使用现在时)
- 各类别的有力动词示例:
- **领导/管理:**指导、统筹、带头、推动、指导培养
- **技术/开发:**设计、构建、实施、优化、调试、部署
- **分析/研究:**分析、评估、调查、诊断、考察
- **成果/业绩:**实现、交付、超越、改进、提升、降低
- **沟通:**演示、记录、协作、协调
- 避免使用“协助……”“参与……”“负责……”等软弱动词
要点结构
- 格式:[动作动词]+[所做事项]+[采用的方法]+[结果/影响]
- 示例:“使用 Docker 和 Kubernetes 设计微服务基础设施,将部署时间从 2 小时缩短至 15 分钟”
- **尽可能量化:**使用数字、百分比、节省的时间或规模(例如“服务 1,000 万用户”)
- **具体描述:**将“提升了性能”改为“通过索引策略优化 PostgreSQL 查询,将 API 延迟从 200ms 降至 120ms”
技术深度
- **写明具体技术:**不要写“数据库优化”,而应写“通过索引策略优化 PostgreSQL 查询”
- **体现规模和复杂度:**提及数据量、用户数和系统组件
- **突出解决问题的能力:**简要说明解决方案实施前面临的挑战
工作流
步骤 1:内容优化(空间管理)
检查 ExperienceSelector 提供的“目标经历”。
-
按时间倒序排列: 按结束日期将所有经历按时间倒序排列。最近结束的职位排在最前面,最早的排在最后。
-
篇幅检查: 如果输入内容对于单页来说似乎过多:
-
精简: 合并相似的要点。
-
删减: 删除最早的相关工作经历中最不重要的要点。
-
改写: (重要) 缩短行文,消除孤行。以下情况属于孤行:
- 单个词单独出现在新的一行
- 任意内容的第二行少于 25 个字符(包括空格和符号)
- 技术技能部分超出 LaTeX 定义的行宽(根据页面宽度和页边距确定)。该部分必须能在最终 PDF 中排成单行
-
要点长度: 每个要点不得超过 2 行。不得出现 3 行要点。如果要点过长,请精简,或将信息拆分为两个独立要点。
-
首字母缩写: 如果某个词或名词有广为认可的专业缩写,请使用该缩写(例如,“Application Programming Interface” → “API”,“Artificial Intelligence” → “AI”)。避免创建非标准缩写。
-
-
指标与数据: 描述成就时:
- 优先使用绝对数值: 尽可能使用具体数值,而非百分比(例如,“将 API 延迟从 200ms 降至 120ms”优于“将延迟降低了 40%”)。绝对数值能提供更具体、直观的依据。
- 注明背景: 如果使用百分比,请注明基线,以便清晰说明(例如,“吞吐量提升了 60%(从每秒 1000 个请求提升至每秒 1600 个请求)”)。
-
空间平衡: 调整各部分之间的间距(
\vspace{}),确保充分利用页面。避免页面底部留白过多——在保证易读性的同时,应让内容填满页面的大部分空间。
步骤 2:LaTeX 配置
- 使用
read_file读取完整的模板文件。 - 重要: 模板已经包含所有必要的导言区(documentclass、软件包、geometry 等)。请原样使用模板的全部内容。不得添加或生成任何额外的 LaTeX 导言区。
- 确认模板采用 US Letter 页面配置:
\documentclass[letterpaper,11pt]{article}\usepackage[margin=0.5in]{geometry}(或类似的精简页边距设置)。
- 映射内容: 仅将占位符(例如
\VAR{experience_section}、\VAR{education_section})替换为优化后的经历数据。模板中的其他内容一律保持不变。
步骤 3:安全与清理
- 转义字符: 必须转义以下字符,以避免编译崩溃:
&$\rightarrow$\&%$\rightarrow$\%$$\rightarrow$\$#$\rightarrow$\#_$\rightarrow$\_
第 4 步:执行(编写并编译)
-
编写: 使用
create_latex_file,通过content参数提供完整的模板内容(替换占位符后)。重要:
- 不要手动创建目录或执行 shell 命令(例如
mkdir)。MCP 服务会自动处理目录创建。 - 工具会根据需要自动创建
AI_Resume/文件夹和带时间戳的子文件夹。
关键 — 防止重复的导言区:
- 不要使用
document_type、title、author、packages或geometry参数,因为这些参数会导致工具自动生成重复的导言区。 content参数应包含完整的 LaTeX 文档,从模板的确切首行(无论是注释、\documentclass还是其他内容)开始,并以\end{document}结束。- 不要在开头添加任何新注释或标题(例如,避免添加
%-------------------------、% Resume in Latex或% Author : ...)。如果模板中已有此类注释,则保留;否则,直接从模板的原始首行开始。 - 仅将占位符(例如
\VAR{experience_section}、\VAR{name}、\VAR{email})替换为实际内容。 - 这样可以避免添加重复声明,例如额外的
\documentclass{article}、\usepackage[utf8]{inputenc}、\usepackage[T1]{fontenc}、\usepackage[english]{babel}或\begin{document}。
- 不要手动创建目录或执行 shell 命令(例如
-
编译: 使用
compile_pdf。 -
自我纠错(反馈循环):
- 语法错误: 如果
compile_pdf失败,请阅读日志、修复语法,然后重试。 - 字符转义检查: 每次编辑或重写后,都要重新确认所有特殊字符均已正确转义(
&、%、$、#、_)。编译失败往往是因为遗漏了转义序列。 - 垂直溢出: 如果工具输出或日志显示“Overfull \vbox”或明确的溢出警告:
- 操作: 减少垂直间距(
\vspace{-...})、精简项目符号内容,或再删除一个项目符号。不要将字号缩小到 11pt 以下。 - 重试: 重新编写并重新编译。
- 操作: 减少垂直间距(
- 孤行检查(重要): 根据以下标准检查 PDF 中是否存在孤行:
- 单独占一行的词语
- 任意少于 25 个字符(包括空格和符号)的第二行
- 技术技能部分超出 LaTeX 定义的行宽。该部分必须在 PDF 中排版为单行(受页面宽度和 LaTeX 中设置的页边距限制) 如果发现此类问题,请改写或精简内容以消除孤行。
- 项目符号长度检查: 确认没有任何项目符号内容超过 2 行。如果有,请改写或拆分。
- 空间平衡: 如果 PDF 底部留白过多(超过 0.5 英寸):
- 选项 1: 稍微增加各部分之间的间距(
\vspace{0.05in})。 - 选项 2: 使用
\setlength{\parskip}{0.05in}增加段落间距,或调整itemize/enumerate间距(itemsep)为0.05in。 - 选项 3: 返回
experience-selector,并从/context中选择更多相关经历或项目来填充空间。目标是让页面看起来均衡、专业,并尽可能充分利用可用空间。
- 选项 1: 稍微增加各部分之间的间距(
- 语法错误: 如果
输出
返回生成的 PDF 的绝对路径,并确认:“简历已成功生成(1 页)。”