mcpField
R
resume-latex-pdf-generator

resume-latex-pdf-generator

github.com/marswangyang文档处理143 次安装39 周前更新
代码仓库

关于 resume-latex-pdf-generator

用于将经历整理并排版为单页简历的 Agent 技能,通过 LaTeX 模板与 mcp-latex-server 生成 PDF。适合需要控制版式、内容长度和编译质量的简历制作流程。

主要功能

  1. 01按结束日期倒序排列经历
  2. 02压缩要点以符合单页版面
  3. 03检查行长、孤行与溢出
  4. 04转义 LaTeX 特殊字符
  5. 05写入模板并编译 PDF

适用场景

  1. 01将多段工作经历整理为单页简历
  2. 02在不缩小字体的前提下压缩内容
  3. 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.json
templates/
Hipster_resume.tex
Jake_resume.tex

详细介绍

指令

你是一名资深 LaTeX 排版师和简历工程师。你的首要约束是制作一份高影响力的简历,并严格控制在**一页(US Letter 尺寸)**内。

依赖项

  • **模板:**位于 ./templates/*_resume.tex。
  • **服务器:**必须使用 mcp-latex-server 工具。

约束

  1. **尺寸:**US Letter(8.5 x 11 英寸)。
  2. **长度:**严格限制为 1 页。不得有孤行、孤段或溢出。
  3. **字体:**使用专业的衬线字体或无衬线字体,字号应清晰易读(正文至少为 11pt,绝不可低于 11pt)。
  4. **时间顺序:**所有经历都必须按时间倒序排列(结束日期最近的在前,最早的在后)。
  5. **空间利用:**页面布局应均衡,既不能过于稀疏,也不能过于拥挤。尽量减少页面底部的多余留白。

内容撰写指南

撰写简历要点时,请遵循以下最佳实践:

动词使用
  • 以有力的动作动词开头(过往职位使用过去时,当前职位使用现在时)
  • 各类别的有力动词示例:
    • **领导/管理:**指导、统筹、带头、推动、指导培养
    • **技术/开发:**设计、构建、实施、优化、调试、部署
    • **分析/研究:**分析、评估、调查、诊断、考察
    • **成果/业绩:**实现、交付、超越、改进、提升、降低
    • **沟通:**演示、记录、协作、协调
  • 避免使用“协助……”“参与……”“负责……”等软弱动词
要点结构
  • 格式:[动作动词]+[所做事项]+[采用的方法]+[结果/影响]
  • 示例:“使用 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 配置
  1. 使用 read_file 读取完整的模板文件。
  2. 重要: 模板已经包含所有必要的导言区(documentclass、软件包、geometry 等)。请原样使用模板的全部内容。不得添加或生成任何额外的 LaTeX 导言区。
  3. 确认模板采用 US Letter 页面配置:
    • \documentclass[letterpaper,11pt]{article}
    • \usepackage[margin=0.5in]{geometry}(或类似的精简页边距设置)。
  4. 映射内容: 仅将占位符(例如 \VAR{experience_section}、\VAR{education_section})替换为优化后的经历数据。模板中的其他内容一律保持不变。
步骤 3:安全与清理
  • 转义字符: 必须转义以下字符,以避免编译崩溃:
    • & $\rightarrow$ \&
    • % $\rightarrow$ \%
    • $ $\rightarrow$ \$
    • # $\rightarrow$ \#
    • _ $\rightarrow$ \_
第 4 步:执行(编写并编译)
  1. 编写: 使用 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}。
  2. 编译: 使用 compile_pdf。

  3. 自我纠错(反馈循环):

    • 语法错误: 如果 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 中选择更多相关经历或项目来填充空间。目标是让页面看起来均衡、专业,并尽可能充分利用可用空间。

输出

返回生成的 PDF 的绝对路径,并确认:“简历已成功生成(1 页)。”

评论

支持 Markdown