Frontend CV
Generate professional, print-ready HTML resumes that export cleanly to PDF. Prefer the bundled renderer for consistent theme layouts.
Core Principles
- 1. Zero Dependencies — Single HTML files with inline CSS. No npm, no build tools.
- Print-First Design — Every style must look perfect in PDF export via browser print.
- Structured Data — Extract and normalize resume data into clean YAML format.
- Visual Choice — Show style previews, let users pick what resonates.
- Theme Fidelity — The five built-in themes provide distinct professional styles: classic, modern, academic, and engineering-focused layouts.
Design Aesthetics
Create distinctive, professional resumes that stand out:
- - Typography: Use elegant, readable fonts (avoid generic system fonts)
- Layout: Clear hierarchy, scannable sections, optimal whitespace
- Color: Professional palettes that print well (consider B&W printing)
- Print-Ready: Perfect @media print CSS for clean PDF export
Avoid generic templates:
- - Overused fonts (Arial, Times New Roman, Calibri)
- Cluttered layouts with poor spacing
- Colors that don't print well
- Inconsistent styling
Phase 0: Detect Input Mode
Determine what the user provides:
- - Mode A: Structured Data — User provides YAML/JSON → Go to Phase 2
- Mode B: Document Conversion — User provides PDF/Word/Markdown/Text → Go to Phase 1
- Mode C: From Scratch — User wants to build from conversation → Go to Phase 1 (interactive)
Phase 1: Extract & Structure Data
Step 1.1: Extract Content
For document files (PDF/DOCX/TXT/MD):
Run extraction script:
CODEBLOCK0
The script handles:
- - PDF: Extract text with layout preservation
- DOCX: Parse document structure
- TXT/MD: Direct text read
Step 1.2: AI-Assisted Structuring
Read the extracted text and convert to YAML format. Use this structure:
CODEBLOCK1
Save as resume_data.yaml and show to user for confirmation.
Ask user: "I've structured your resume data. Please review and let me know if anything needs adjustment."
Phase 2: Style Selection
Step 2.1: Ask Style Preference
Ask (header: "Style"):
How do you want to choose your resume style?
- - "Show me previews (Recommended)" — Generate 5 visual previews
- "Pick from list" — Choose from preset themes directly
If direct selection: Show available themes and skip to Phase 3.
Available themes:
- - Classic — Centered header with blue accents, stable and versatile
- ModernCV — Left-aligned header with side date column
- Sb2nov — Academic serif typography style
- Engineering Classic — Light blue engineering aesthetic
- Engineering Resumes — Black and white compact single-page layout
Step 2.2: Generate Style Previews
Generate 5 HTML previews using the bundled renderer and the user's real data.
Save to .claude-design/cv-previews/:
- - INLINECODE2
- INLINECODE3
- INLINECODE4
- INLINECODE5
- INLINECODE6
Open each preview automatically.
Step 2.3: User Selection
Ask (header: "Theme"):
Which style do you prefer?
- - Classic
- ModernCV
- Sb2nov
- Engineering Classic
- Engineering Resumes
- Mix elements
If "Mix elements", ask for specifics.
Phase 3: Generate Full Resume
Generate complete HTML resume using:
- - Structured YAML data from Phase 1
- Selected style from Phase 2
Prefer the bundled renderer over hand-writing HTML:
CODEBLOCK2
Supported renderer themes:
- - INLINECODE7
- INLINECODE8
- INLINECODE9
- INLINECODE10
- INLINECODE11
Before generating, read:
The bundled renderer already inlines print-safe CSS.
Key requirements:
- - Single self-contained HTML file
- Use the bundled renderer's inline CSS output as the source of truth
- Add
@media print rules for clean PDF export - Use web fonts (Google Fonts/Fontshare)
- Inline editing support (optional, ask user)
- Detailed comments for each section
Print optimization:
- - Page breaks:
page-break-inside: avoid for sections - Colors: Ensure readability in B&W
- Margins: Standard print margins (0.5-0.75in)
- Font sizes: 10-12pt body, appropriate hierarchy
Phase 4: PDF Export
After generating HTML:
- 1. Open in browser: INLINECODE14
- Instruct user:
- Press Cmd+P (Mac) or Ctrl+P (Windows)
- Select "Save as PDF"
- Adjust margins if needed (usually "Default" works)
- Save
Alternative: Provide Python script for automated PDF generation (requires weasyprint or playwright).
Phase 5: Delivery
- 1. Clean up — Delete
.claude-design/cv-previews/ if exists - Open — Launch HTML in browser
- Summarize:
- File location and theme name
- How to export PDF (Cmd+P → Save as PDF)
- How to edit: If editing enabled, click any text to edit, Ctrl+S to save
- Customization: CSS variables in
:root for colors/spacing
Supporting Files
Five theme specifications | Phase 2 (style selection) |
|
scripts/extract_resume.py | Document extraction script | Phase 1 (extraction) |
|
scripts/render_html.py | Main renderer for all five themes | Phase 2-4 |
前端简历
生成可直接打印的专业HTML简历,并能干净地导出为PDF。优先使用内置渲染器以保持主题布局一致。
核心原则
- 1. 零依赖 — 单个HTML文件,内联CSS。无需npm,无需构建工具。
- 打印优先设计 — 每个样式在通过浏览器打印导出为PDF时都必须完美呈现。
- 结构化数据 — 将简历数据提取并规范化为清晰的YAML格式。
- 视觉选择 — 展示样式预览,让用户选择心仪的方案。
- 主题保真度 — 五个内置主题提供不同的专业风格:经典、现代、学术和工程导向布局。
设计美学
打造独特、专业的简历,使其脱颖而出:
- - 排版:使用优雅、易读的字体(避免通用系统字体)
- 布局:清晰的层级结构、易于浏览的板块、合理的留白
- 色彩:适合打印的专业配色方案(考虑黑白打印效果)
- 打印就绪:完善的@media print CSS,确保PDF导出干净整洁
避免通用模板:
- - 过度使用的字体(Arial、Times New Roman、Calibri)
- 间距不当的杂乱布局
- 打印效果不佳的颜色
- 不一致的样式
阶段0:检测输入模式
确定用户提供的内容:
- - 模式A:结构化数据 — 用户提供YAML/JSON → 进入阶段2
- 模式B:文档转换 — 用户提供PDF/Word/Markdown/文本 → 进入阶段1
- 模式C:从零开始 — 用户希望通过对话构建 → 进入阶段1(交互式)
阶段1:提取与结构化数据
步骤1.1:提取内容
对于文档文件(PDF/DOCX/TXT/MD):
运行提取脚本:
bash
python scripts/extractresume.py <输入文件> --output resumedata.txt
脚本处理:
- - PDF:提取文本并保留布局
- DOCX:解析文档结构
- TXT/MD:直接读取文本
步骤1.2:AI辅助结构化
读取提取的文本并转换为YAML格式。使用以下结构:
yaml
cv:
name: 全名
headline: 专业头衔
location: 城市, 国家
email: email@example.com
phone: +1234567890
website: https://example.com
social_networks:
- network: LinkedIn
username: 用户名
- network: GitHub
username: 用户名
sections:
summary:
- 简短的专业摘要段落
experience:
- company: 公司名称
position: 职位名称
start_date: YYYY-MM
end_date: present
location: 城市, 国家
highlights:
- 成就或职责
- 另一项成就
education:
- institution: 大学名称
degree: 学位类型
area: 研究领域
start_date: YYYY-MM
end_date: YYYY-MM
location: 城市, 国家
highlights:
- 显著成就
skills:
- label: 类别
details: 技能1, 技能2, 技能3
projects:
- name: 项目名称
date: YYYY
summary: 简要描述
highlights:
- 关键功能或成就
保存为resume_data.yaml并展示给用户确认。
询问用户:我已将您的简历数据结构化。请审阅并告知是否需要调整。
阶段2:样式选择
步骤2.1:询问样式偏好
询问(标题:样式):
您希望如何选择简历样式?
- - 展示预览(推荐) — 生成5个视觉预览
- 从列表中选择 — 直接从预设主题中选择
如果直接选择:显示可用主题并跳至阶段3。
可用主题:
- - 经典 — 居中标题搭配蓝色点缀,稳定且多功能
- 现代简历 — 左对齐标题,侧边日期列
- Sb2nov — 学术衬线排版风格
- 工程经典 — 浅蓝色工程美学
- 工程简历 — 黑白紧凑单页布局
步骤2.2:生成样式预览
使用内置渲染器和用户的真实数据生成5个HTML预览。
保存到.claude-design/cv-previews/:
- - style-classic.html
- style-moderncv.html
- style-sb2nov.html
- style-engineeringclassic.html
- style-engineeringresumes.html
自动打开每个预览。
步骤2.3:用户选择
询问(标题:主题):
您更喜欢哪种样式?
- - 经典
- 现代简历
- Sb2nov
- 工程经典
- 工程简历
- 混合元素
如果选择混合元素,询问具体细节。
阶段3:生成完整简历
使用以下内容生成完整的HTML简历:
优先使用内置渲染器而非手写HTML:
bash
python3 scripts/renderhtml.py resumedata.yaml resume.html classic
支持的渲染器主题:
- - classic
- modern
- sb2nov
- engineeringclassic
- engineeringresumes
生成前,请阅读:
内置渲染器已内联打印安全的CSS。
关键要求:
- - 单个自包含HTML文件
- 使用内置渲染器的内联CSS输出作为唯一依据
- 添加@media print规则以确保PDF导出干净
- 使用网络字体(Google Fonts/Fontshare)
- 支持内联编辑(可选,询问用户)
- 每个板块添加详细注释
打印优化:
- - 分页:板块使用page-break-inside: avoid
- 颜色:确保黑白打印可读性
- 边距:标准打印边距(0.5-0.75英寸)
- 字体大小:正文10-12pt,适当的层级结构
阶段4:PDF导出
生成HTML后:
- 1. 在浏览器中打开:open resume.html
- 指导用户:
- 按Cmd+P(Mac)或Ctrl+P(Windows)
- 选择另存为PDF
- 如有需要调整边距(通常默认即可)
- 保存
替代方案:提供Python脚本用于自动生成PDF(需要weasyprint或playwright)。
阶段5:交付
- 1. 清理 — 如果存在,删除.claude-design/cv-previews/
- 打开 — 在浏览器中启动HTML
- 总结:
- 文件位置和主题名称
- 如何导出PDF(Cmd+P → 另存为PDF)
- 如何编辑:如果启用编辑,点击任意文本进行编辑,Ctrl+S保存
- 自定义::root中的CSS变量用于颜色/间距
支持文件
五个主题规范 | 阶段2(样式选择) |
|
scripts/extract_resume.py | 文档提取脚本 | 阶段1(提取) |
|
scripts/render_html.py | 所有五个主题的主渲染器 | 阶段2-4 |