简历助手
第三方 via ClawHub帮助求职者润色、定制、评分和导出简历
wscats v1.0.6
<p align="center">
<h1 align="center">📝 Resume / CV Assistant</h1>
<p align="center">
<strong>AI-powered clawbot skill for resume & CV polishing, job customization, multi-format export, and professional scoring.</strong>
</p>
<p align="center">
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
<img src="https://img.shields.io/badge/Version-1.0.0-green.svg" alt="Version: 1.0.0">
<img src="https://img.shields.io/badge/Platform-clawbot-purple.svg" alt="Platform: clawbot">
<img src="https://img.shields.io/badge/Language-EN%20%7C%20ZH-orange.svg" alt="Language: EN | ZH">
</p>
<p align="center">
<a href="./README_ZH.md">🇨🇳 中文文档</a> · <a href="./SKILL.md">📖 Skill Spec</a> · <a href="./examples/usage.md">💡 Usage Examples</a>
</p>
</p>
---
## ✨ Features
| Feature | Description |
|---------|-------------|
| 🔍 **Polish** | 40+ checklist review covering grammar, action verbs, quantification, formatting, and more |
| 🎯 **Customize** | Tailor your resume for any specific job posting with gap analysis and keyword optimization |
| 📤 **Export** | Convert to 5 formats (Word, Markdown, HTML, LaTeX, PDF) × 4 professional templates |
| 📊 **Score** | 100-point professional evaluation with 5 dimensions, strengths, weaknesses, and action plan |
## 🚀 Quick Start
### Just Ask!
You don't need to memorize any commands — simply describe what you need:
```
💬 "Create a resume for a software engineer position"
💬 "Polish my resume and fix any issues"
💬 "Optimize my resume for ATS"
💬 "Tailor my resume for this job description: [paste JD]"
💬 "Convert my resume to PDF"
💬 "Score my resume and tell me how to improve"
💬 "What's wrong with my resume?"
💬 "Here's my resume, can you help?"
```
The assistant understands your intent and automatically routes to the right workflow:
| You say | Assistant does |
|---------|---------------|
| "Create a resume for [role]" | Asks for your background → builds a tailored resume |
| "Polish / Fix / Improve my resume" | Runs 40+ checklist review → returns polished version |
| "Optimize for ATS" | Checks ATS compatibility → optimizes keywords & format |
| "Tailor for this JD: ..." | Analyzes JD → gap analysis → customized resume |
| "Convert to PDF / Word / ..." | Exports to chosen format with professional template |
| "Score / Rate / Evaluate my resume" | 100-point scoring → strengths & improvement plan |
| "Here's my resume, help?" | Scores first → suggests next steps |
### Slash Commands (Precise Control)
For more fine-grained control, use slash commands directly:
```
/resume polish
Please polish my resume:
John Doe
Senior Frontend Engineer | 5 years experience
Skills: JavaScript, React, Vue, Node.js
...
```
### All Commands at a Glance
| Command | Purpose | Required Input |
|---------|---------|----------------|
| `/resume polish` | Fix errors, improve wording | Resume content |
| `/resume customize` | Tailor for a specific job | Resume content + Job description |
| `/resume export` | Convert to Word/MD/HTML/LaTeX/PDF | Resume content + Format |
| `/resume score` | Evaluate and get improvement plan | Resume content |
---
## 📖 How It Works
Resume / CV Assistant is a **clawbot skill** — a structured prompt package that AI agents can load and execute. It contains:
- **Persona definition** specifying the AI's role and quality standards
- **Command-specific prompts** with detailed instructions for each task
- **Templates** for resume styles and export formats
- **Skill manifest** (`skill.json` / `skill.yaml`) describing commands, arguments, and configuration
```
User Input ─┬─ Slash Command ──────► Command Router ──► Load Prompts ──► LLM ──► Structured Output
│ │
└─ Natural Language ──► Intent Detection ──┘
│
├── polish / "fix my resume" → prompts/polish.md
├── customize / "tailor for JD" → prompts/customize.md
├── export / "convert to PDF" → prompts/export.md
└── score / "rate my resume" → prompts/score.md
```
---
## 🏗️ Project Structure
```
resume-assistant/
├── skill.json # Skill manifest (JSON format)
├── skill.yaml # Skill manifest (YAML format)
├── SKILL.md # Skill specification (English)
├── SKILL_ZH.md # Skill specification (Chinese)
├── LICENSE # MIT license
│
├── prompts/ # AI prompt files
│ ├── system.md # System-level prompt (always loaded)
│ ├── polish.md # Polish command prompt
│ ├── customize.md # Customize command prompt
│ ├── export.md # Export command prompt
│ └── score.md # Score command prompt
│
├── templates/ # Resume & export templates
│ ├── professional.md # Classic professional style
│ ├── modern.md # Modern creative style
│ ├── minimal.md # Clean minimal style
│ ├── academic.md # Academic/research style
│ └── export/
│ ├── resume.html # HTML export template
│ └── resume.tex # LaTeX export template
│
└── examples/ # Sample resumes & usage guide
├── usage.md # Detailed usage examples
├── sample-resume-en.md # English sample resume
├── sample-resume-zh.md # Chinese sample resume
└── sample-resume-weak.md # Weak resume (for scoring demo)
```
---
## 🔧 Integration Guide
### Option 1: Register as a Skill in Your AI Agent
```json
{
"skills": [
{
"name": "resume-assistant",
"path": "./skills/resume-assistant",
"manifest": "skill.json"
}
]
}
```
### Option 2: Build Prompts Programmatically
```python
ROLE_SYS = "system" # LLM message role constant
ROLE_USR = "user" # LLM message role constant
def build_prompt(command, args):
persona_prompt = load_file("prompts/system.md")
command_prompt = load_file(f"prompts/{command}.md")
combined = persona_prompt + "\n\n" + command_prompt
messages = [
{"role": ROLE_SYS, "content": combined},
{"role": ROLE_USR, "content": args["resume_content"]}
]
return messages
```
### Option 3: REST API
```bash
curl -X POST https://your-agent-api.com/skills/resume-assistant/polish \
-H "Content-Type: application/json" \
-d '{
"resume_content": "Your resume content...",
"language": "en"
}'
```
### Option 4: LangChain / LlamaIndex
```python
from langchain.tools import Tool
resume_tools = [
Tool(
name="resume_polish",
description="Polish and improve resume with 40+ checklist items",
func=lambda input: agent.run_skill(
"resume-assistant", "polish",
{"resume_content": input, "language": "en"}
)
),
# ... more tools for score, customize, export
]
```
> 📖 For complete integration details, see [SKILL.md](./SKILL.md)
---
## 📋 Recommended Workflow
```
┌─────────────────┐
│ Start Here │
└────────┬────────┘
▼
Have a resume? ──YES──► /resume score (know where you stand)
│ │
NO ▼
│ /resume polish (fix issues)
▼ │
Write one first ▼
using templates Have a target job?
│ │ │
▼ YES NO
/resume polish │ │
│ ▼ │
│ /resume customize │
│ │ │
└──────────────────┼─────────┘
▼
/resume export ──► Word / Markdown / HTML / LaTeX / PDF
```
**Pro Tips:**
1. 🎯 **Start with scoring** if you have an existing resume — know where you stand
2. ✨ **Polish first** to fix all basic issues before customizing
3. 🔄 **Customize per application** — don't use one resume for all jobs
4. 📊 **Score again** after polish + customize to see improvement
5. 📤 **Export last** — get content perfect before formatting
6. 📝 **Use Markdown** as your working format — it converts cleanly to all others
---
## 🎨 Templates
| Template | Style | Best For |
|----------|-------|----------|
| `professional` | Classic navy, serif headings | Finance, consulting, law |
| `modern` | Teal accents, creative layout | Tech, startups, marketing |
| `minimal` | Clean monochrome, dense content | Senior roles, engineering |
| `academic` | Formal serif, multi-page | Faculty, research, PhD |
---
## 🌏 Language Support
- **English (en)** — Default language, optimized for international job markets
- **Chinese (zh)** — Full CJK support with China-specific resume conventions
Chinese-specific features:
- Proper CJK font handling in HTML/LaTeX export
- Chinese resume conventions (photo, age, education priority)
- Half-width/full-width punctuation normalization
- Chinese-English mixed typesetting optimization
---
## 📊 Scoring Dimensions
When you use `/resume score`, your resume is evaluated across 5 dimensions:
| Dimension | Weight | What It Measures |
|-----------|--------|------------------|
| Content Quality | 30 pts | Achievements, metrics, relevance |
| Structure & Formatting | 25 pts | Layout, hierarchy, whitespace |
| Language & Grammar | 20 pts | Action verbs, tense, grammar |
| ATS Optimization | 15 pts | Keywords, parsability, standard headings |
| Impact & Impression | 10 pts | Overall impression, unique value |
Grades: **A+ (90-100)** · **A (80-89)** · **B (70-79)** · **C (60-69)** · **D (50-59)** · **F (<50)**
---
## 🤝 Contributing
Contributions are welcome! Here are some ways you can help:
- 🐛 Report bugs or suggest features via Issues
- 📝 Improve prompts for better AI output quality
- 🎨 Add new resume templates
- 🌍 Add support for more languages
- 📖 Improve documentation
---
## 📄 License
This project is licensed under the [MIT License](./LICENSE).
<p align="center">
<h1 align="center">📝 简历助手 (Resume / CV Assistant)</h1>
<p align="center">
<strong>AI 驱动的 clawbot 技能 —— 简历(Resume / CV)润色、职位定制、多格式导出、专业评分,一站式搞定。</strong>
</p>
<p align="center">
<a href="./LICENSE"><img src="https://img.shields.io/badge/许可证-MIT-blue.svg" alt="许可证: MIT"></a>
<img src="https://img.shields.io/badge/版本-1.0.0-green.svg" alt="版本: 1.0.0">
<img src="https://img.shields.io/badge/平台-clawbot-purple.svg" alt="平台: clawbot">
<img src="https://img.shields.io/badge/语言-中文%20%7C%20English-orange.svg" alt="语言: 中文 | English">
</p>
<p align="center">
<a href="./README.md">🇺🇸 English</a> · <a href="./SKILL_ZH.md">📖 技能规范</a> · <a href="./examples/usage.md">💡 使用示例</a>
</p>
</p>
---
## ✨ 核心功能
| 功能 | 描述 |
|------|------|
| 🔍 **简历润色** | 40+ 项检查清单,涵盖语法、动词、量化指标、排版等全方位审查 |
| 🎯 **职位定制** | 针对目标职位进行差距分析和关键词优化,提升匹配度 |
| 📤 **多格式导出** | 支持 5 种格式(Word、Markdown、HTML、LaTeX、PDF)× 4 种专业模板 |
| 📊 **专业评分** | 100 分制 5 维度评估,明确优势、短板和改进计划 |
---
## 🚀 快速开始
### 直接对话即可!
不需要记忆任何命令 —— 直接描述你的需求:
```
💬 "帮我写一份软件工程师的简历"
💬 "润色我的简历,修复所有问题"
💬 "优化我的简历,让它通过 ATS 筛选"
💬 "根据这个职位描述定制我的简历:[粘贴 JD]"
💬 "把我的简历转成 PDF"
💬 "给我的简历打个分,告诉我怎么改进"
💬 "我的简历有什么问题?"
💬 "这是我的简历,帮我看看"
```
English works too:
```
💬 "Create a resume for a software engineer position"
💬 "Optimize my resume for ATS"
💬 "Tailor my resume for this job description: [paste JD]"
💬 "Score my resume and tell me how to improve"
```
助手会理解你的意图,自动路由到正确的工作流:
| 你说 | 助手做什么 |
|------|-----------|
| "帮我写一份 [职位] 的简历" | 询问你的背景信息 → 生成定制简历 |
| "润色 / 修改 / 优化我的简历" | 执行 40+ 项检查 → 返回润色后的版本 |
| "优化 ATS" | 检查 ATS 兼容性 → 优化关键词和格式 |
| "根据这个 JD 定制:..." | 分析 JD → 差距分析 → 定制简历 |
| "转成 PDF / Word / ..." | 用专业模板导出为指定格式 |
| "给简历打分 / 评估 / 怎么样" | 100 分制评分 → 优势与改进方案 |
| "这是我的简历,帮我看看" | 先评分 → 再建议后续步骤 |
### 斜杠命令(精确控制)
如果需要更精细的控制,也可以直接使用斜杠命令:
```
/resume polish
请帮我润色以下简历:
张三
高级前端工程师 | 5年经验
技能:JavaScript, React, Vue, Node.js
...
```
### 命令一览
| 命令 | 功能 | 必需输入 |
|------|------|----------|
| `/resume polish` | 润色简历,修复错误 | 简历内容 |
| `/resume customize` | 针对目标职位定制 | 简历内容 + 职位描述 |
| `/resume export` | 导出为 Word/MD/HTML/LaTeX/PDF | 简历内容 + 目标格式 |
| `/resume score` | 评分并给出改进方案 | 简历内容 |
---
## 📖 工作原理
简历助手是一个 **clawbot 技能(skill)**—— 一套结构化的提示词包,可以被任何 AI Agent 加载和执行。它支持 Resume 和 CV 两种格式,包含:
- **角色定义文件** —— 设定 AI 的角色与质量标准
- **命令提示词** —— 每个功能的详细指令
- **模板文件** —— 简历样式和导出格式模板
- **技能清单** (`skill.json` / `skill.yaml`)—— 描述命令、参数和配置
```
用户输入 ─┬─ 斜杠命令 ──────────► 命令路由 ──► 加载提示词 ──► LLM 处理 ──► 结构化输出
│ │
└─ 自然语言 ──► 意图识别 ──┘
│
├── polish / "润色简历" → prompts/polish.md
├── customize / "定制简历" → prompts/customize.md
├── export / "转成PDF" → prompts/export.md
└── score / "给简历打分" → prompts/score.md
```
---
## 🏗️ 项目结构
```
resume-assistant/
├── skill.json # 技能清单(JSON 格式)
├── skill.yaml # 技能清单(YAML 格式)
├── SKILL.md # 技能规范(英文)
├── SKILL_ZH.md # 技能规范(中文)
├── LICENSE # MIT 开源协议
│
├── prompts/ # AI 提示词文件
│ ├── system.md # 系统级提示词(始终加载)
│ ├── polish.md # 润色命令提示词
│ ├── customize.md # 定制命令提示词
│ ├── export.md # 导出命令提示词
│ └── score.md # 评分命令提示词
│
├── templates/ # 简历和导出模板
│ ├── professional.md # 经典专业风格
│ ├── modern.md # 现代创意风格
│ ├── minimal.md # 简洁极简风格
│ ├── academic.md # 学术研究风格
│ └── export/
│ ├── resume.html # HTML 导出模板
│ └── resume.tex # LaTeX 导出模板
│
└── examples/ # 示例简历和使用指南
├── usage.md # 详细使用示例
├── sample-resume-en.md # 英文示例简历
├── sample-resume-zh.md # 中文示例简历
└── sample-resume-weak.md # 弱简历示例(用于评分演示)
```
---
## 🔧 集成指南
### 方式一:在 AI Agent 中注册为技能
```json
{
"skills": [
{
"name": "resume-assistant",
"path": "./skills/resume-assistant",
"manifest": "skill.json"
}
]
}
```
### 方式二:通过代码构建提示词
```python
ROLE_SYS = "system" # LLM message role constant
ROLE_USR = "user" # LLM message role constant
def build_prompt(command, args):
persona_prompt = load_file("prompts/system.md")
command_prompt = load_file(f"prompts/{command}.md")
combined = persona_prompt + "\n\n" + command_prompt
messages = [
{"role": ROLE_SYS, "content": combined},
{"role": ROLE_USR, "content": args["resume_content"]}
]
return messages
```
### 方式三:通过 REST API 调用
```bash
curl -X POST https://your-agent-api.com/skills/resume-assistant/polish \
-H "Content-Type: application/json" \
-d '{
"resume_content": "你的简历内容...",
"language": "zh"
}'
```
### 方式四:在 LangChain / LlamaIndex 中使用
```python
from langchain.tools import Tool
resume_tools = [
Tool(
name="resume_polish",
description="润色和优化简历,40+ 项检查清单",
func=lambda input: agent.run_skill(
"resume-assistant", "polish",
{"resume_content": input, "language": "zh"}
)
),
# ... 更多工具:score, customize, export
]
```
> 📖 完整集成细节请查看 [技能规范文档](./SKILL_ZH.md)
---
## 📋 推荐工作流
```
┌─────────────────┐
│ 从这里开始 │
└────────┬────────┘
▼
已有简历? ──是──► /resume score(了解当前水平)
│ │
否 ▼
│ /resume polish(修复问题)
▼ │
用模板写一份 ▼
│ 有目标职位?
▼ │ │
/resume polish 是 否
│ │ │
│ ▼ │
│ /resume customize│
│ │ │
└────────────────┼────────┘
▼
/resume export ──► Word / Markdown / HTML / LaTeX / PDF
```
**实用建议:**
1. 🎯 **先评分** —— 如果已有简历,先了解现状
2. ✨ **先润色** —— 先修复基础问题,再做职位定制
3. 🔄 **每个职位都定制** —— 不要一份简历投所有岗位
4. 📊 **再次评分** —— 润色和定制后检查提升效果
5. 📤 **最后导出** —— 先把内容打磨好,再处理格式
6. 📝 **用 Markdown 工作** —— 可以无缝转换为所有其他格式
---
## 🎨 模板风格
| 模板 | 风格 | 适用场景 |
|------|------|----------|
| `professional` | 经典深蓝,衬线标题 | 金融、咨询、法务 |
| `modern` | 青色强调,创意布局 | 科技、初创、市场 |
| `minimal` | 简洁单色,内容紧凑 | 资深岗位、工程师 |
| `academic` | 正式衬线,支持多页 | 高校教职、科研、博士 |
---
## 🌏 语言支持
- **英语 (en)** —— 默认语言,针对国际求职市场优化
- **中文 (zh)** —— 完整 CJK 支持,适配中国求职习惯
中文特色功能:
- 📸 HTML/LaTeX 导出中的 CJK 字体处理
- 🇨🇳 中国简历惯例(照片、年龄、学历优先展示)
- ✏️ 半角/全角标点符号自动规范化
- 🔤 中英文混排间距优化
---
## 📊 评分维度
使用 `/resume score` 时,你的简历将从 5 个维度进行评估:
| 维度 | 权重 | 评估内容 |
|------|------|----------|
| 内容质量 | 30 分 | 成果展示、量化指标、相关性 |
| 结构与排版 | 25 分 | 布局层次、留白、视觉效果 |
| 语言与语法 | 20 分 | 动词使用、时态、语法规范 |
| ATS 优化 | 15 分 | 关键词、可解析性、标准标题 |
| 影响力与印象 | 10 分 | 整体印象、独特价值主张 |
评级标准:**A+ (90-100)** · **A (80-89)** · **B (70-79)** · **C (60-69)** · **D (50-59)** · **F (<50)**
---
## 🤝 参与贡献
欢迎贡献!你可以通过以下方式参与:
- 🐛 通过 Issues 报告问题或建议新功能
- 📝 优化提示词以提升 AI 输出质量
- 🎨 添加新的简历模板
- 🌍 增加更多语言支持
- 📖 完善文档
---
## 📄 开源协议
本项目基于 [MIT 许可证](./LICENSE) 开源。
# 📝 Resume / CV Assistant
> AI-powered clawbot skill for resume & CV polishing, job customization, multi-format export, and professional scoring.
**Version:** 1.0.0 · **License:** MIT · **Repository:** [github.com/Wscats/resume-assistant](https://github.com/Wscats/resume-assistant)
---
## Overview
Resume / CV Assistant is a clawbot skill that helps job seekers create, refine, and optimize their resumes and CVs, while adding comprehensive checklist review, scoring, and multi-format export that neither project offers alone.
---
## Usage in AI Agent
### Quick Start
Resume / CV Assistant is a standard clawbot skill that can be loaded and invoked by any compatible AI Agent. Here are different integration approaches.
### 💬 Natural Language (Recommended)
You don't need to memorize any commands — simply describe what you need:
```
💬 "Create a resume for a software engineer position"
💬 "Polish my resume and fix any issues"
💬 "Optimize my resume for ATS"
💬 "Tailor my resume for this job description: [paste JD]"
💬 "Convert my resume to PDF"
💬 "Score my resume and tell me how to improve"
💬 "What's wrong with my resume?"
💬 "Here's my resume, can you help?"
```
The assistant understands your intent and automatically routes to the right workflow:
| You say | Assistant does |
|---------|---------------|
| "Create a resume for [role]" | Asks for your background → builds a tailored resume |
| "Polish / Fix / Improve my resume" | Runs 40+ checklist review → returns polished version |
| "Optimize for ATS" | Checks ATS compatibility → optimizes keywords & format |
| "Tailor for this JD: ..." | Analyzes JD → gap analysis → customized resume |
| "Convert to PDF / Word / ..." | Exports to chosen format with professional template |
| "Score / Rate / Evaluate my resume" | 100-point scoring → strengths & improvement plan |
| "Here's my resume, help?" | Scores first → suggests next steps |
#### Example Conversations
**Creating a new resume:**
```
You: Create a resume for a frontend engineer position at a startup
Bot: I'd be happy to help! To get started, could you share:
1. Your work experience (companies, roles, dates, key achievements)
2. Education background
3. Technical skills
4. Any specific job posting you're targeting? (optional)
You: I have 3 years at Shopify working on React...
Bot: Here's your tailored resume:
[generates complete resume]
Would you like me to score, polish, or export it?
```
**Quick improvement:**
```
You: Here's my resume, what do you think?
[pastes resume]
Bot: 📊 Resume Score: 68/100 (Grade: C)
Top 3 Issues:
1. ❌ No quantified achievements
2. ⚠️ Weak action verbs
3. ⚠️ Missing keywords for target role
Would you like me to polish it now?
You: Yes, polish it
Bot: [runs full polish with 40+ checklist items]
```
**Job-specific tailoring:**
```
You: Tailor my resume for this job description:
Senior Backend Engineer at Stripe
Requirements: Go, distributed systems, payment APIs...
Bot: 🎯 Job Analysis Complete
📊 Current Match: 62% → After Optimization: 89%
[generates tailored version]
```
### Option 1: Slash Commands via clawbot
For more precise control, use slash commands directly in a clawbot conversation:
```
/resume polish
Please polish my resume:
John Doe
Senior Frontend Engineer | 5 years experience
Skills: JavaScript, React, Vue, Node.js
...
```
### Option 2: Integration in AI Agent Frameworks
#### 1. Register the Skill
Register this project as a skill in your AI Agent:
```json
{
"skills": [
{
"name": "resume-assistant",
"path": "./skills/resume-assistant",
"manifest": "skill.json"
}
]
}
```
#### 2. Load Prompts
When handling resume-related requests, prompt files are loaded in this order:
```
1. prompts/system.md ← Persona & quality standards (loaded first)
2. prompts/<command>.md ← Load per command: specific instructions
3. templates/<style>.md ← Load on demand (export command only)
```
#### 3. Build the Complete Prompt
Example for `/resume polish` — here's how an AI Agent should construct the prompt:
```python
# Python pseudocode
ROLE_SYS = "system" # LLM message role constant
ROLE_USR = "user" # LLM message role constant
def build_prompt(command, args):
# Step 1: Load the skill persona prompt
persona_prompt = load_file("prompts/system.md")
# Step 2: Load command-specific prompt
command_prompt = load_file(f"prompts/{command}.md")
# Step 3: Combine prompts into LLM messages
combined = persona_prompt + "\n\n" + command_prompt
messages = [
{"role": ROLE_SYS, "content": combined},
{"role": ROLE_USR, "content": args["resume_content"]}
]
# Step 4: Add optional parameters to user message
if args.get("language"):
messages[1]["content"] += f"\n\nLanguage: {args['language']}"
return messages
```
```javascript
// JavaScript pseudocode
const ROLE_SYS = 'system'; // LLM message role constant
const ROLE_USR = 'user'; // LLM message role constant
async function buildPrompt(command, args) {
// Step 1: Load the skill persona prompt
const personaPrompt = await loadFile('prompts/system.md');
// Step 2: Load command-specific prompt
const commandPrompt = await loadFile(`prompts/${command}.md`);
// Step 3: Combine prompts into LLM messages
const combined = `${personaPrompt}\n\n${commandPrompt}`;
const messages = [
{ role: ROLE_SYS, content: combined },
{ role: ROLE_USR, content: args.resume_content }
];
// Step 4: Add optional parameters
if (args.language) {
messages[1].content += `\n\nLanguage: ${args.language}`;
}
return messages;
}
```
### Option 3: REST API
If your AI Agent exposes an HTTP API, invoke via RESTful endpoints:
```bash
# Polish a resume
curl -X POST https://your-agent-api.com/skills/resume-assistant/polish \
-H "Content-Type: application/json" \
-d '{
"resume_content": "Your resume content...",
"language": "en"
}'
# Score a resume
curl -X POST https://your-agent-api.com/skills/resume-assistant/score \
-H "Content-Type: application/json" \
-d '{
"resume_content": "Your resume content...",
"target_role": "Senior Frontend Engineer",
"language": "en"
}'
# Customize for a job
curl -X POST https://your-agent-api.com/skills/resume-assistant/customize \
-H "Content-Type: application/json" \
-d '{
"resume_content": "Your resume content...",
"job_description": "Job description...",
"language": "en"
}'
# Export to a format
curl -X POST https://your-agent-api.com/skills/resume-assistant/export \
-H "Content-Type: application/json" \
-d '{
"resume_content": "Your resume content...",
"format": "html",
"template": "modern"
}'
```
### Option 4: LangChain / LlamaIndex Integration
```python
from langchain.tools import Tool
# Define tools based on skill.json commands
resume_tools = [
Tool(
name="resume_polish",
description="Polish and improve resume with 40+ checklist items",
func=lambda input: agent.run_skill(
"resume-assistant", "polish",
{"resume_content": input, "language": "en"}
)
),
Tool(
name="resume_score",
description="Score a resume on 100-point scale with improvement suggestions",
func=lambda input: agent.run_skill(
"resume-assistant", "score",
{"resume_content": input, "language": "en"}
)
),
Tool(
name="resume_customize",
description="Customize resume for a specific job position",
func=lambda input: agent.run_skill(
"resume-assistant", "customize",
{"resume_content": input.split("---JD---")[0],
"job_description": input.split("---JD---")[1],
"language": "en"}
)
),
Tool(
name="resume_export",
description="Export resume to Word/Markdown/HTML/LaTeX/PDF",
func=lambda input: agent.run_skill(
"resume-assistant", "export",
{"resume_content": input, "format": "html", "template": "modern"}
)
),
]
```
### Command Routing
The AI Agent should route user requests to the correct command:
```mermaid
graph TD
A["User Input"] --> B{"Contains<br/>slash command?"}
B -- "Yes" --> C{"Parse command"}
C -- "/resume polish" --> D["Load polish.md"]
C -- "/resume customize" --> E["Load customize.md"]
C -- "/resume export" --> F["Load export.md"]
C -- "/resume score" --> G["Load score.md"]
B -- "No" --> H{"Intent detection"}
H -- "polish/improve/fix" --> D
H -- "job/apply/match" --> E
H -- "export/download/convert" --> F
H -- "score/rate/evaluate" --> G
D --> I["Build Prompt<br/>Call LLM"]
E --> I
F --> I
G --> I
I --> J["Return Result"]
```
### Argument Validation
The AI Agent should validate arguments before invocation, referencing `skill.json`:
```python
def validate_args(command, args):
"""Validate arguments against skill.json schema."""
schema = load_skill_json()
cmd_schema = next(c for c in schema["commands"] if c["name"] == command)
for arg in cmd_schema["arguments"]:
# Check required fields
if arg["required"] and arg["name"] not in args:
raise ValueError(f"Missing required argument: {arg['name']}")
# Check enum constraints
if "enum" in arg and arg["name"] in args:
if args[arg["name"]] not in arg["enum"]:
raise ValueError(
f"Invalid value for {arg['name']}: {args[arg['name']]}. "
f"Must be one of: {arg['enum']}"
)
# Apply defaults
if arg["name"] not in args and "default" in arg:
args[arg["name"]] = arg["default"]
# Check max resume length
max_len = schema["config"]["max_resume_length"]
if len(args.get("resume_content", "")) > max_len:
raise ValueError(f"Resume exceeds {max_len} character limit")
return args
```
---
## Commands
### `/resume polish`
Run a **40+ item checklist** across 8 categories and get a fully improved resume.
**Arguments:**
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `resume_content` | string | ✅ | — | Resume text (plain text or Markdown) |
| `language` | string | — | `en` | `en` for English, `zh` for Chinese |
**What you get:**
- ✅/❌/⚠️ checklist results for every item (contact, summary, experience, education, skills, grammar, formatting, ATS)
- Fully polished resume with strong action verbs and quantified results
- Change summary categorized by priority: 🔴 Critical → 🟡 Major → 🟢 Minor → 💡 Suggestion
- Action verb reference table and quantification guide
---
### `/resume customize`
Tailor your resume for a **specific job posting** with gap analysis and keyword optimization.
**Arguments:**
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `resume_content` | string | ✅ | — | Resume text |
| `job_description` | string | ✅ | — | Target job description or job title |
| `language` | string | — | `en` | `en` for English, `zh` for Chinese |
**What you get:**
- Job description breakdown (required skills, preferred skills, responsibilities, keywords)
- Gap analysis matrix mapping every requirement to your resume
- Customized resume with keywords naturally integrated
- Keyword coverage report: before vs. after
- Bonus: cover letter talking points + interview prep notes
---
### `/resume export`
Convert your resume to **Word, Markdown, HTML, LaTeX, or PDF** with professional templates.
**Arguments:**
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `resume_content` | string | ✅ | — | Resume text (Markdown preferred) |
| `format` | string | ✅ | — | `word` \| `markdown` \| `html` \| `latex` \| `pdf` |
| `template` | string | — | `professional` | `professional` \| `modern` \| `minimal` \| `academic` |
**Templates:**
| Template | Style | Best For |
|----------|-------|----------|
| `professional` | Navy, serif headings, classic borders | Finance, consulting, law, healthcare |
| `modern` | Teal accents, creative layout, emoji icons | Tech, startups, product, marketing |
| `minimal` | Monochrome, ultra-clean, content-dense | Senior professionals, engineering |
| `academic` | Formal serif, multi-page, publications | Faculty, research, PhD applications |
**Export details:**
- **HTML**: Self-contained file with embedded CSS, 4 color themes, `@media print` optimized
- **LaTeX**: Complete compilable `.tex` with XeLaTeX + CJK support
- **Word**: Pandoc-optimized Markdown with YAML front matter + conversion command
- **PDF**: Print-optimized HTML with A4 page dimensions + multiple conversion methods
- **Markdown**: Clean, structured, version-control friendly
---
### `/resume score`
Get a **100-point professional evaluation** with specific improvement suggestions.
**Arguments:**
| Name | Type | Required | Default | Description |
|------|------|----------|---------|-------------|
| `resume_content` | string | ✅ | — | Resume text |
| `target_role` | string | — | — | Target role for fit assessment |
| `language` | string | — | `en` | `en` for English, `zh` for Chinese |
**Scoring dimensions (100 points):**
| Dimension | Points | Evaluates |
|-----------|--------|-----------|
| Content Quality | 30 | Achievements, action verbs, relevance, completeness |
| Structure & Formatting | 25 | Layout, consistency, length, section order |
| Language & Grammar | 20 | Grammar, spelling, tone, clarity |
| ATS Optimization | 15 | Keywords, standard headings, format compatibility |
| Impact & Impression | 10 | 6-second test, career story, professionalism |
**Grade scale:** A+ (95-100) → A (90-94) → B+ (85-89) → B (80-84) → C+ (75-79) → C (70-74) → D (60-69) → F (<60)
**What you get:**
- Score breakdown with per-dimension justification
- Top 3 strengths with specific examples from your resume
- Priority-ranked improvements with **Before → After** rewrites
- Role fit assessment (if target_role provided): fit score, competitive percentile, strengths, gaps
- 5-step action plan with effort estimates
---
## Recommended Workflow
```
┌──────────────────────────────────────────────────────┐
│ Recommended Workflow │
├──────────────────────────────────────────────────────┤
│ │
│ 1. /resume score ← Know where you stand │
│ 💬 "Score my resume" │
│ │ │
│ ▼ │
│ 2. /resume polish ← Fix all issues │
│ 💬 "Polish my resume" │
│ │ │
│ ▼ │
│ 3. /resume customize ← Tailor per application │
│ 💬 "Tailor for this JD: ..." │
│ │ │
│ ▼ │
│ 4. /resume export ← Generate final files │
│ 💬 "Convert to PDF" │
│ │ │
│ ▼ │
│ 5. /resume score ← Verify improvement │
│ 💬 "Score my resume again" │
│ │
└──────────────────────────────────────────────────────┘
```
**Tips:**
1. Start with **score** if you have an existing resume — understand your baseline
2. **Polish** to fix all fundamentals before customizing for a job
3. **Customize** separately for each application — one-size-fits-all doesn't work
4. **Export** last — get content perfect, then format
5. Use **Markdown** as your working format — it converts cleanly to all others
6. **Score again** after polish + customize to measure improvement
---
## Project Structure
```
resume-assistant/
├── skill.json # Skill manifest (JSON)
├── skill.yaml # Skill manifest (YAML)
├── SKILL.md # This documentation
├── prompts/
│ ├── system.md # Persona definition & quality standards
│ ├── polish.md # Polish prompt: 40+ item checklist
│ ├── customize.md # Customize prompt: gap analysis & keywords
│ ├── export.md # Export prompt: 5 formats × 4 templates
│ └── score.md # Score prompt: 100-point rubric
├── templates/
│ ├── professional.md # Classic corporate template
│ ├── modern.md # Contemporary tech/startup template
│ ├── minimal.md # Ultra-clean senior template
│ ├── academic.md # Formal academic CV template
│ └── export/
│ ├── resume.html # HTML template (4 CSS themes)
│ └── resume.tex # LaTeX template (XeLaTeX + CJK)
└── examples/
├── sample-resume-en.md # English sample (high quality)
├── sample-resume-zh.md # Chinese sample (high quality)
├── sample-resume-weak.md # Weak sample (for scoring demo)
└── usage.md # Usage examples & workflow guide
```
---
## Language Support
| Language | Code | Features |
|----------|------|----------|
| English | `en` | Full support, US/UK conventions |
| Chinese | `zh` | Full support, 中英文混排规范, CJK export |
---
## Configuration
| Key | Value | Description |
|-----|-------|-------------|
| `max_resume_length` | 10,000 chars | Maximum input length |
| `supported_languages` | `en`, `zh` | Available languages |
| `supported_export_formats` | word, markdown, html, latex, pdf | Available export formats |
scats # 📝 简历助手 (Resume / CV Assistant)
> AI 驱动的 clawbot 技能,提供简历(Resume / CV)润色、职位定制、多格式导出和专业评分一站式服务。
**版本:** 1.0.0 · **许可证:** MIT · **仓库地址:** [github.com/Wscats/resume-assistant](https://github.com/Wscats/resume-assistant)
---
## 概述
简历助手(Resume / CV Assistant)是一个 clawbot 技能,帮助求职者创建、优化和完善简历(Resume / CV)。它整合了全面的检查清单审查、专业评分、职位匹配分析和多格式导出功能,提供从简历撰写到投递的完整工作流。
---
## 如何在 AI Agent 中使用
### 快速接入
Resume / CV Assistant 是一个标准的 clawbot skill,可以被任何兼容的 AI Agent 加载和调用。以下是在不同场景下的接入方式。
### 💬 自然语言对话(推荐)
不需要记忆任何命令 —— 直接描述你的需求即可:
```
💬 "帮我写一份软件工程师的简历"
💬 "润色我的简历,修复所有问题"
💬 "优化我的简历,让它通过 ATS 筛选"
💬 "根据这个职位描述定制我的简历:[粘贴 JD]"
💬 "把我的简历转成 PDF"
💬 "给我的简历打个分,告诉我怎么改进"
💬 "我的简历有什么问题?"
💬 "这是我的简历,帮我看看"
```
English also works:
```
💬 "Create a resume for a software engineer position"
💬 "Optimize my resume for ATS"
💬 "Tailor my resume for this job description: [paste JD]"
💬 "Score my resume and tell me how to improve"
```
助手会理解你的意图,自动路由到正确的工作流:
| 你说 | 助手做什么 |
|------|-----------|
| "帮我写一份 [职位] 的简历" | 询问你的背景信息 → 生成定制简历 |
| "润色 / 修改 / 优化我的简历" | 执行 40+ 项检查 → 返回润色后的版本 |
| "优化 ATS" | 检查 ATS 兼容性 → 优化关键词和格式 |
| "根据这个 JD 定制:..." | 分析 JD → 差距分析 → 定制简历 |
| "转成 PDF / Word / ..." | 用专业模板导出为指定格式 |
| "给简历打分 / 评估 / 怎么样" | 100 分制评分 → 优势与改进方案 |
| "这是我的简历,帮我看看" | 先评分 → 再建议后续步骤 |
#### 对话示例
**从零创建简历:**
```
你: 帮我写一份前端工程师的简历,目标是创业公司
助手:好的!为了生成一份量身定制的简历,请提供以下信息:
1. 工作经历(公司、职位、时间、主要成果)
2. 教育背景
3. 技术栈
4. 有具体的目标职位 JD 吗?(可选但推荐提供)
你: 我在 Shopify 做了 3 年 React 开发...
助手:这是你的定制简历:
[生成完整简历]
需要我帮你打分、润色或导出吗?
```
**快速改进:**
```
你: 这是我的简历,帮我看看有什么问题
[粘贴简历]
助手:📊 简历评分:68/100(等级:C)
前 3 大问题:
1. ❌ 没有量化成果
2. ⚠️ 动词太弱("负责"→"主导")
3. ⚠️ 缺少目标职位的关键词
需要我帮你润色吗?
你: 好的,帮我润色
助手:[执行 40+ 项检查清单全面优化]
```
**职位定制:**
```
你: 根据这个 JD 定制我的简历:
Stripe 高级后端工程师
要求:Go、分布式系统、支付 API...
助手:🎯 职位分析完成
📊 当前匹配度:62% → 优化后:89%
[生成定制版本]
```
### 方式一:通过 clawbot 平台使用斜杠命令
如果需要更精细的控制,可以在 clawbot 对话中直接使用斜杠命令:
```
/resume polish
请帮我润色以下简历:
张三
高级前端工程师 | 5年经验
技能:JavaScript, React, Vue, Node.js
...
```
### 方式二:在 AI Agent 框架中集成
#### 1. 注册技能
将本项目作为 skill 注册到你的 AI Agent 中:
```json
{
"skills": [
{
"name": "resume-assistant",
"path": "./skills/resume-assistant",
"manifest": "skill.json"
}
]
}
```
#### 2. 加载提示词
AI Agent 在处理简历相关请求时,按以下顺序加载提示词文件:
```
1. prompts/system.md ← 角色定义与质量标准(首先加载)
2. prompts/<command>.md ← 根据命令加载对应的提示词
3. templates/<style>.md ← 按需加载模板(仅 export 命令使用)
```
#### 3. 构建完整的 Prompt
以 `/resume polish` 为例,AI Agent 应按如下方式构建 prompt:
```python
# Python 伪代码
ROLE_SYS = "system" # LLM message role constant
ROLE_USR = "user" # LLM message role constant
def build_prompt(command, args):
# Step 1: Load the skill persona prompt
persona_prompt = load_file("prompts/system.md")
# Step 2: Load command-specific prompt
command_prompt = load_file(f"prompts/{command}.md")
# Step 3: Combine prompts into LLM messages
combined = persona_prompt + "\n\n" + command_prompt
messages = [
{"role": ROLE_SYS, "content": combined},
{"role": ROLE_USR, "content": args["resume_content"]}
]
# Step 4: Add optional parameters to user message
if args.get("language"):
messages[1]["content"] += f"\n\nLanguage: {args['language']}"
return messages
```
```javascript
// JavaScript 伪代码
const ROLE_SYS = 'system'; // LLM message role constant
const ROLE_USR = 'user'; // LLM message role constant
async function buildPrompt(command, args) {
// Step 1: Load the skill persona prompt
const personaPrompt = await loadFile('prompts/system.md');
// Step 2: Load command-specific prompt
const commandPrompt = await loadFile(`prompts/${command}.md`);
// Step 3: Combine prompts into LLM messages
const combined = `${personaPrompt}\n\n${commandPrompt}`;
const messages = [
{ role: ROLE_SYS, content: combined },
{ role: ROLE_USR, content: args.resume_content }
];
// Step 4: Add optional parameters
if (args.language) {
messages[1].content += `\n\nLanguage: ${args.language}`;
}
return messages;
}
```
### 方式三:通过 API 调用
如果你的 AI Agent 提供了 HTTP API,可以通过 RESTful 接口调用:
```bash
# 简历润色
curl -X POST https://your-agent-api.com/skills/resume-assistant/polish \
-H "Content-Type: application/json" \
-d '{
"resume_content": "你的简历内容...",
"language": "zh"
}'
# 简历评分
curl -X POST https://your-agent-api.com/skills/resume-assistant/score \
-H "Content-Type: application/json" \
-d '{
"resume_content": "你的简历内容...",
"target_role": "高级前端工程师",
"language": "zh"
}'
# 职位定制
curl -X POST https://your-agent-api.com/skills/resume-assistant/customize \
-H "Content-Type: application/json" \
-d '{
"resume_content": "你的简历内容...",
"job_description": "职位描述...",
"language": "zh"
}'
# 格式导出
curl -X POST https://your-agent-api.com/skills/resume-assistant/export \
-H "Content-Type: application/json" \
-d '{
"resume_content": "你的简历内容...",
"format": "html",
"template": "modern"
}'
```
### 方式四:在 LangChain / LlamaIndex 等框架中使用
```python
from langchain.tools import Tool
# Define tools based on skill.json commands
resume_tools = [
Tool(
name="resume_polish",
description="Polish and improve resume with 40+ checklist items",
func=lambda input: agent.run_skill(
"resume-assistant", "polish",
{"resume_content": input, "language": "zh"}
)
),
Tool(
name="resume_score",
description="Score a resume on 100-point scale with improvement suggestions",
func=lambda input: agent.run_skill(
"resume-assistant", "score",
{"resume_content": input, "language": "zh"}
)
),
Tool(
name="resume_customize",
description="Customize resume for a specific job position",
func=lambda input: agent.run_skill(
"resume-assistant", "customize",
{"resume_content": input.split("---JD---")[0],
"job_description": input.split("---JD---")[1],
"language": "zh"}
)
),
Tool(
name="resume_export",
description="Export resume to Word/Markdown/HTML/LaTeX/PDF",
func=lambda input: agent.run_skill(
"resume-assistant", "export",
{"resume_content": input, "format": "html", "template": "modern"}
)
),
]
```
### 命令路由逻辑
AI Agent 在收到用户请求后,应按以下流程路由到对应命令:
```mermaid
graph TD
A["用户输入"] --> B{"是否包含<br/>斜杠命令?"}
B -- "是" --> C{"解析命令名"}
C -- "/resume polish" --> D["加载 polish.md"]
C -- "/resume customize" --> E["加载 customize.md"]
C -- "/resume export" --> F["加载 export.md"]
C -- "/resume score" --> G["加载 score.md"]
B -- "否" --> H{"意图识别"}
H -- "润色/优化/修改" --> D
H -- "求职/申请/匹配" --> E
H -- "导出/下载/转换" --> F
H -- "评分/评价/打分" --> G
D --> I["构建 Prompt<br/>调用 LLM"]
E --> I
F --> I
G --> I
I --> J["返回结果"]
```
### 参数校验
AI Agent 应在调用前校验参数,参考 `skill.json` 中的定义:
```python
def validate_args(command, args):
"""Validate arguments against skill.json schema."""
schema = load_skill_json()
cmd_schema = next(c for c in schema["commands"] if c["name"] == command)
for arg in cmd_schema["arguments"]:
# Check required fields
if arg["required"] and arg["name"] not in args:
raise ValueError(f"Missing required argument: {arg['name']}")
# Check enum constraints
if "enum" in arg and arg["name"] in args:
if args[arg["name"]] not in arg["enum"]:
raise ValueError(
f"Invalid value for {arg['name']}: {args[arg['name']]}. "
f"Must be one of: {arg['enum']}"
)
# Apply defaults
if arg["name"] not in args and "default" in arg:
args[arg["name"]] = arg["default"]
# Check max resume length
max_len = schema["config"]["max_resume_length"]
if len(args.get("resume_content", "")) > max_len:
raise ValueError(f"Resume exceeds {max_len} character limit")
return args
```
---
## 命令一览
| 命令 | 功能 | 说明 |
|------|------|------|
| `/resume polish` | 简历润色 | 40+ 项检查清单 + 全面优化 |
| `/resume customize` | 职位定制 | 差距分析 + 关键词匹配 |
| `/resume export` | 格式导出 | 5 种格式 × 4 种模板 |
| `/resume score` | 简历评分 | 100 分制专业评估 |
---
## 命令详解
### `/resume polish` — 简历润色
对简历进行 **40+ 项检查清单** 审查,涵盖 8 大类别,输出完整优化后的简历。
**参数:**
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| `resume_content` | string | ✅ | — | 简历内容(纯文本或 Markdown 格式) |
| `language` | string | — | `en` | `en` 英文,`zh` 中文 |
**检查清单类别(8 大类):**
| 类别 | 检查项数 | 示例检查内容 |
|------|---------|-------------|
| 📇 联系信息 | 5 项 | 邮箱格式、电话号码、LinkedIn 链接 |
| 📋 职业摘要 | 5 项 | 是否有摘要、量化成果、与目标匹配度 |
| 💼 工作经历 | 8 项 | 强动词开头、量化成果、STAR 法则 |
| 🎓 教育背景 | 4 项 | 学位信息完整、GPA 策略、相关课程 |
| 🛠 技能清单 | 5 项 | 分类呈现、避免过时技能、匹配度 |
| 📝 语法与表达 | 5 项 | 拼写检查、时态一致、避免第一人称 |
| 📐 格式与排版 | 5 项 | 一致的间距、适当页数、清晰层次 |
| 🤖 ATS 兼容性 | 5 项 | 标准格式、关键词密度、避免表格/图片 |
**输出内容:**
- ✅/❌/⚠️ 每项检查结果及改进建议
- 完整润色后的简历(强动词 + 量化成果)
- 变更摘要按优先级分类:🔴 关键 → 🟡 重要 → 🟢 轻微 → 💡 建议
- 附赠:强动词参考表 + 成果量化指南
---
### `/resume customize` — 职位定制
根据 **目标职位描述** 定制简历,提供差距分析和关键词优化。
**参数:**
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| `resume_content` | string | ✅ | — | 简历内容 |
| `job_description` | string | ✅ | — | 目标职位描述或职位名称 |
| `language` | string | — | `en` | `en` 英文,`zh` 中文 |
**输出内容:**
- **职位解析**:必需技能、优先技能、核心职责、关键词提取
- **差距分析矩阵**:逐项对比每个职位要求与简历的匹配情况
- **定制后的简历**:自然融入关键词,突出相关经验
- **关键词覆盖报告**:优化前后对比
- **附赠**:求职信要点 + 面试准备笔记
**差距分析矩阵示例:**
```
| 职位要求 | 匹配状态 | 简历证据 | 建议操作 |
|---------------|---------|-------------------|-------------|
| Python 3 年+ | ✅ 强匹配 | 5 年 Python 经验 | 突出项目成果 |
| Kubernetes | ⚠️ 弱匹配 | 提及 Docker 使用 | 补充 K8s 经验 |
| 团队管理经验 | ❌ 缺失 | 无相关描述 | 添加协作案例 |
```
---
### `/resume export` — 格式导出
将简历转换为 **Word、Markdown、HTML、LaTeX 或 PDF** 格式,搭配专业模板。
**参数:**
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| `resume_content` | string | ✅ | — | 简历内容(推荐 Markdown 格式) |
| `format` | string | ✅ | — | `word` \| `markdown` \| `html` \| `latex` \| `pdf` |
| `template` | string | — | `professional` | `professional` \| `modern` \| `minimal` \| `academic` |
**模板风格:**
| 模板 | 风格 | 适用场景 |
|------|------|---------|
| `professional` | 藏蓝色主调、衬线标题、经典边框 | 金融、咨询、法律、医疗行业 |
| `modern` | 青绿色点缀、创意布局、图标装饰 | 科技、创业公司、产品、市场营销 |
| `minimal` | 黑白简约、极致干净、内容密集 | 资深专业人士、工程师 |
| `academic` | 正式衬线字体、多页支持、出版物列表 | 高校教职、科研、博士申请 |
**各格式导出详情:**
| 格式 | 输出说明 |
|------|---------|
| **HTML** | 自包含文件,内嵌 CSS,4 种配色主题,`@media print` 打印优化 |
| **LaTeX** | 完整可编译 `.tex` 文件,XeLaTeX 引擎 + CJK 中文支持 |
| **Word** | Pandoc 优化的 Markdown + YAML 前置信息 + 转换命令 |
| **PDF** | 打印优化 HTML,A4 页面尺寸 + 多种转换方式 |
| **Markdown** | 结构清晰、版本控制友好、可转换为其他所有格式 |
---
### `/resume score` — 简历评分
获取 **100 分制专业评估**,附带具体的改进建议和优先级排序。
**参数:**
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| `resume_content` | string | ✅ | — | 简历内容 |
| `target_role` | string | — | — | 目标职位(用于匹配度评估) |
| `language` | string | — | `en` | `en` 英文,`zh` 中文 |
**评分维度(满分 100 分):**
| 维度 | 分值 | 评估内容 |
|------|------|---------|
| 📊 内容质量 | 30 分 | 成就描述、强动词使用、相关性、完整性 |
| 📐 结构与排版 | 25 分 | 布局合理性、一致性、篇幅、段落顺序 |
| 📝 语言与语法 | 20 分 | 语法正确性、拼写、语气、表达清晰度 |
| 🤖 ATS 优化 | 15 分 | 关键词密度、标准标题、格式兼容性 |
| ✨ 影响力与印象 | 10 分 | 6 秒测试、职业故事、专业感 |
**评级标准:**
| 等级 | 分数范围 | 含义 |
|------|---------|------|
| A+ | 95–100 | 卓越 — 顶级简历,几乎无需修改 |
| A | 90–94 | 优秀 — 非常强的简历,仅需微调 |
| B+ | 85–89 | 良好 — 基础扎实,有提升空间 |
| B | 80–84 | 中上 — 合格简历,建议优化 |
| C+ | 75–79 | 中等 — 需要明显改进 |
| C | 70–74 | 及格 — 多处需要修改 |
| D | 60–69 | 不及格 — 需要大幅修改 |
| F | <60 | 差 — 建议重新撰写 |
**输出内容:**
- 各维度得分明细 + 扣分原因说明
- 前 3 大优势 + 简历中的具体佐证
- 按优先级排列的改进建议 + **修改前 → 修改后** 对比示例
- 职位匹配评估(如提供 `target_role`):匹配分数、竞争力百分位、优势、差距
- 5 步行动计划 + 预估耗时
---
## 推荐工作流程
```mermaid
graph TD
A["1️⃣ /resume score<br/>了解现状"] --> B["2️⃣ /resume polish<br/>修复所有问题"]
B --> C["3️⃣ /resume customize<br/>逐个职位定制"]
C --> D["4️⃣ /resume export<br/>生成最终文件"]
D --> E["5️⃣ /resume score<br/>验证提升效果"]
style A fill:#e3f2fd
style B fill:#fff3e0
style C fill:#e8f5e9
style D fill:#fce4ec
style E fill:#e3f2fd
```
```
┌──────────────────────────────────────────────────────┐
│ 推荐工作流程 │
├──────────────────────────────────────────────────────┤
│ │
│ 1. /resume score ← 了解现状,获得基线分数 │
│ 💬 "给我的简历打个分" │
│ │ │
│ ▼ │
│ 2. /resume polish ← 修复所有问题 │
│ 💬 "润色我的简历" │
│ │ │
│ ▼ │
│ 3. /resume customize ← 针对每个目标职位定制 │
│ 💬 "根据这个 JD 定制..." │
│ │ │
│ ▼ │
│ 4. /resume export ← 生成最终文件 │
│ 💬 "转成 PDF" │
│ │ │
│ ▼ │
│ 5. /resume score ← 再次评分,验证提升效果 │
│ 💬 "再帮我打一次分" │
│ │
└──────────────────────────────────────────────────────┘
```
**使用建议:**
1. 如果已有简历,**先评分**了解自己的基线水平
2. **先润色**修复基础问题,再针对具体职位定制
3. 每个申请职位**单独定制**——万能简历不存在
4. **最后导出**——先把内容打磨好,再考虑格式
5. 使用 **Markdown** 作为工作格式——可无损转换为其他任何格式
6. 优化后**再次评分**,量化你的进步
---
## 项目结构
```
resume-assistant/
├── skill.json # 技能清单(JSON 格式)
├── skill.yaml # 技能清单(YAML 格式)
├── SKILL.md # 英文文档
├── SKILL_ZH.md # 中文文档(本文件)
├── LICENSE # MIT 开源许可证
├── prompts/
│ ├── system.md # 角色定义与质量标准
│ ├── polish.md # 润色提示词:40+ 项检查清单
│ ├── customize.md # 定制提示词:差距分析与关键词优化
│ ├── export.md # 导出提示词:5 种格式 × 4 种模板
│ └── score.md # 评分提示词:100 分制评分标准
├── templates/
│ ├── professional.md # 经典商务模板
│ ├── modern.md # 现代科技模板
│ ├── minimal.md # 极简高级模板
│ ├── academic.md # 学术论文模板
│ └── export/
│ ├── resume.html # HTML 导出模板(4 种 CSS 主题)
│ └── resume.tex # LaTeX 导出模板(XeLaTeX + CJK)
└── examples/
├── sample-resume-en.md # 英文示例简历(高质量)
├── sample-resume-zh.md # 中文示例简历(高质量)
├── sample-resume-weak.md # 低质量示例简历(用于评分演示)
└── usage.md # 使用示例与工作流指南
```
---
## 语言支持
| 语言 | 代码 | 支持情况 |
|------|------|---------|
| 英文 | `en` | 完整支持,US/UK 规范 |
| 中文 | `zh` | 完整支持,中英文混排规范,CJK 导出优化 |
**中文特别优化:**
- 中英文之间自动添加空格
- 中文标点符号规范化
- CJK 字体兼容(LaTeX 使用 XeLaTeX 引擎)
- 符合中国大陆求职习惯的排版建议
---
## 配置参数
| 参数 | 值 | 说明 |
|------|-----|------|
| `max_resume_length` | 10,000 字符 | 最大输入长度 |
| `supported_languages` | `en`, `zh` | 支持的语言 |
| `supported_export_formats` | word, markdown, html, latex, pdf | 支持的导出格式 |
---
## 常见问题
**Q: 简历内容会被存储吗?**
A: 不会。所有内容仅在当前会话中处理,不会持久化存储。
**Q: 支持哪些语言的简历?**
A: 目前完整支持英文(en)和中文(zh),包括中英文混排的简历。
**Q: 导出的 PDF 如何生成?**
A: 导出命令会生成打印优化的 HTML 文件,你可以通过浏览器打印为 PDF,或使用 `wkhtmltopdf`、`weasyprint` 等工具转换。
**Q: 可以同时润色和定制吗?**
A: 建议先执行 `/resume polish` 修复基础问题,再用 `/resume customize` 针对具体职位定制,效果最佳。
**Q: 评分低怎么办?**
A: 评分报告会附带具体的改进建议和修改示例,按照优先级逐项优化即可。一般经过润色后,分数会提升 15-25 分。
# John Smith
**[email protected] | (555) 123-4567 | San Francisco, CA**
**[LinkedIn](https://linkedin.com/in/johnsmith) | [GitHub](https://github.com/johnsmith)**
---
## Professional Summary
Results-driven Senior Software Engineer with 8+ years of experience building scalable web applications and leading cross-functional engineering teams. Proven track record of delivering high-impact products that drive revenue growth and user engagement. Passionate about clean architecture, developer experience, and mentoring.
---
## Work Experience
### Senior Software Engineer | TechCorp Inc.
*Jan 2021 – Present | San Francisco, CA*
- Led migration of monolithic application to microservices architecture, reducing deployment time by 75% and improving system reliability to 99.99% uptime
- Architected real-time data pipeline processing 2M+ events daily, enabling data-driven decisions that increased user retention by 15%
- Mentored team of 6 junior engineers through code reviews and weekly tech talks, improving code quality metrics by 40%
- Spearheaded CI/CD adoption, reducing release cycle from 2 weeks to daily deployments
### Software Engineer | StartupXYZ
*Mar 2018 – Dec 2020 | San Francisco, CA*
- Developed core payment processing system handling $50M+ in annual transactions with 99.97% accuracy
- Built responsive React dashboard used by 10,000+ merchants to manage inventory and track analytics
- Optimized database queries and implemented caching layer, reducing API response times by 60%
### Junior Software Engineer | WebAgency Co.
*Jun 2016 – Feb 2018 | Oakland, CA*
- Developed and maintained 15+ client-facing web applications using React, Node.js, and PostgreSQL
- Implemented automated testing suite achieving 85% code coverage, reducing production bugs by 30%
- Created reusable component library adopted by 4 project teams, improving development velocity by 20%
---
## Education
### B.S. in Computer Science
**University of California, Berkeley** | *May 2016*
- Dean's List: 6 semesters
---
## Skills
**Languages:** JavaScript/TypeScript, Python, Go, SQL, HTML/CSS
**Frameworks:** React, Next.js, Node.js, Express, Django, FastAPI
**Infrastructure:** AWS (EC2, S3, Lambda, ECS), Docker, Kubernetes, Terraform
**Databases:** PostgreSQL, MongoDB, Redis, Elasticsearch
**Tools:** Git, GitHub Actions, Jenkins, Datadog, Grafana
---
## Certifications
- AWS Solutions Architect – Associate | Amazon Web Services | 2023
- Certified Kubernetes Administrator (CKA) | CNCF | 2022
# mike johnson
[email protected]
phone: 5551234567
## about me
I am a very hard working and passionate developer who loves coding. I am a quick learner
and team player. Looking for a challenging position where I can grow my skills.
## work
software developer, some tech company
2020 - now
- Responsible for writing code
- Worked on the backend
- Helped with testing
- Attended meetings
- Used git for version control
intern, another company
Summer 2019
- Did various tasks assigned by my manager
- Learned a lot about software development
## school
computer science, State University, 2020
GPA: 3.1
## skills
Python, java, javascript, SQL, html, CSS, react, node, git, agile, microsoft office,
communication, teamwork, problem solving, time management, leadership
# 张明
**[email protected] | 138-0000-1234 | 北京市**
**[LinkedIn](https://linkedin.com/in/zhangming) | [GitHub](https://github.com/zhangming)**
---
## 个人简介
拥有 6 年全栈开发经验的高级软件工程师,专注于高并发分布式系统架构设计与实现。曾主导多个千万级用户产品的技术架构升级,具备丰富的团队管理和跨部门协作经验。
---
## 工作经历
### 高级软件工程师 | 某科技有限公司
*2021年1月 – 至今 | 北京*
- 主导电商平台微服务架构改造,将系统 QPS 从 5,000 提升至 50,000+,支撑日均订单量 200 万+
- 设计并实现分布式缓存方案,将核心接口 P99 延迟从 800ms 降低至 50ms,用户体验评分提升 35%
- 带领 8 人技术团队完成国际化项目,成功拓展 3 个海外市场,新增用户 300 万+
- 建立代码审查制度和技术分享机制,团队代码质量评分提升 40%
### 软件工程师 | 某互联网公司
*2019年3月 – 2020年12月 | 上海*
- 开发实时数据分析平台,日处理数据量达 10TB+,为运营决策提供数据支撑
- 优化搜索引擎核心算法,搜索结果准确率提升 25%,搜索响应时间缩短 60%
- 参与设计并实现 A/B 测试平台,支持产品团队每月执行 50+ 实验,转化率提升 18%
### 初级软件工程师 | 某创业公司
*2018年7月 – 2019年2月 | 深圳*
- 独立负责公司官网及管理后台开发,使用 Vue.js + Spring Boot 技术栈
- 实现自动化部署流水线,部署效率提升 80%,部署频率从每周 1 次提升至每日多次
- 编写单元测试和集成测试,代码覆盖率从 30% 提升至 80%
---
## 教育背景
### 计算机科学与技术 · 工学学士
**北京大学** | *2018年毕业*
- 优秀毕业生
---
## 专业技能
**编程语言:** Java, Python, Go, JavaScript/TypeScript, SQL
**框架与工具:** Spring Boot, Spring Cloud, React, Vue.js, MyBatis
**中间件:** MySQL, Redis, Elasticsearch, Kafka, RabbitMQ
**基础设施:** Docker, Kubernetes, Nginx, Jenkins, GitLab CI/CD
**云服务:** 阿里云 (ECS, OSS, RDS), 腾讯云, AWS
---
## 证书
- 阿里云高级开发工程师认证 | 阿里云 | 2023
- PMP 项目管理专业人士认证 | PMI | 2022
# Resume / CV Assistant — Usage Examples
## 💬 Quick Start — Just Ask!
You don't need to memorize commands. Simply tell the assistant what you need in plain language:
| Just say... | What happens |
|-------------|-------------|
| 💬 "Create a resume for a software engineer position" | Asks for your background, then builds a tailored resume |
| 💬 "Polish my resume" *(then paste your resume)* | Runs 40+ item checklist review and rewrites |
| 💬 "Optimize my resume for ATS" | Checks ATS compatibility, optimizes keywords and formatting |
| 💬 "Tailor my resume for this job description: [paste JD]" | Analyzes JD, performs gap analysis, customizes your resume |
| 💬 "Convert my resume to PDF" | Exports to PDF using the professional template |
| 💬 "Score my resume and tell me how to improve" | Scores out of 100 with detailed improvement plan |
| 💬 "What's wrong with my resume?" | Evaluates and identifies key issues to fix |
| 💬 "Here's my resume, can you help?" | Scores first, then suggests next steps |
### Example Conversations
**Creating a new resume:**
```
You: Create a resume for a frontend engineer position at a startup
Bot: I'd be happy to help create a tailored resume! To get started, could you
share the following:
1. Your work experience (companies, roles, dates, key achievements)
2. Education background
3. Technical skills
4. Any specific job posting you're targeting? (optional but recommended)
You: I have 3 years of experience at Shopify working on React...
[provides background details]
Bot: Here's your tailored resume:
[generates complete resume using customize workflow]
Would you like me to:
• Score this resume to see how it rates?
• Export it to PDF or Word?
• Polish it further for specific improvements?
```
**Quick improvement:**
```
You: Here's my resume, what do you think?
[pastes resume]
Bot: 📊 Resume Score: 68/100 (Grade: C)
Top 3 Issues:
1. ❌ No quantified achievements — add metrics
2. ⚠️ Weak action verbs — replace "responsible for" with impact verbs
3. ⚠️ Missing keywords for your target role
Would you like me to polish it now? I can fix all these issues.
You: Yes, polish it
Bot: [runs full polish with 40+ checklist items]
```
**Job-specific tailoring:**
```
You: Tailor my resume for this job description:
Senior Backend Engineer at Stripe
Requirements: Go, distributed systems, payment APIs...
Bot: 🎯 Job Analysis Complete
📊 Current Match: 62% → After Optimization: 89%
[generates tailored version with keyword optimization]
```
> 💡 **Tip:** You can also use slash commands for more precise control — see below.
---
## Quick Reference
| Command | Purpose | Required Input |
|---------|---------|----------------|
| `/resume polish` | Fix errors, improve wording, checklist review | resume content |
| `/resume customize` | Tailor for a specific job | resume content + job description |
| `/resume export` | Convert to Word/MD/HTML/LaTeX/PDF | resume content + format |
| `/resume score` | Evaluate and get improvement plan | resume content |
---
## Example 1: Polish a Resume
**Command:** `/resume polish`
**Input:**
```
resume_content: |
I am a software engineer with 5 years experience. I worked at Google
where I was responsible for building web applications. I helped improve
the system performance. I also managed some team members.
Education: BS Computer Science, Stanford University, 2018
Skills: Python, Java, React, SQL, AWS
language: en
```
**What you get:**
- 📋 40+ item checklist review with ✅/❌/⚠️ for every item
- ✨ Fully polished resume with strong action verbs and metrics
- 📝 Categorized change list: 🔴 Critical → 🟡 Major → 🟢 Minor → 💡 Suggestions
- 📖 Action verb and quantification guidance
---
## Example 2: Customize for a Job
**Command:** `/resume customize`
**Input:**
```
resume_content: [your existing polished resume]
job_description: |
Senior Frontend Engineer at Meta
Requirements:
- 5+ years of frontend development experience
- Expert in React, TypeScript, and modern CSS
- Experience with large-scale web applications
- Strong web performance optimization skills
- Experience with design systems and component libraries
language: en
```
**What you get:**
- 🎯 Detailed job requirements analysis
- 📊 Gap analysis table mapping each requirement to your resume
- ✨ Tailored resume with keywords optimized
- 🔑 Keyword coverage report (before vs. after)
- 💡 Cover letter talking points + interview prep notes
---
## Example 3: Export to Multiple Formats
**Command:** `/resume export`
**Input:**
```
resume_content: [your resume in Markdown]
format: html
template: modern
```
**Available formats:**
| Format | Extension | Best For |
|--------|-----------|----------|
| `markdown` | .md | Editing, version control, GitHub |
| `html` | .html | Web viewing, browser → PDF |
| `word` | .docx | ATS submission, recruiter preference |
| `latex` | .tex | Academic, professional typesetting |
| `pdf` | .pdf | Final submission, universal format |
**Available templates:**
| Template | Style | Industries |
|----------|-------|------------|
| `professional` | Classic navy, serif headings | Finance, consulting, law |
| `modern` | Teal accents, creative layout | Tech, startups, marketing |
| `minimal` | Clean monochrome, dense | Senior roles, engineering |
| `academic` | Formal serif, multi-page | Faculty, research, PhD |
---
## Example 4: Score an Existing Resume
**Command:** `/resume score`
**Input:**
```
resume_content: [your resume]
target_role: Senior Software Engineer at FAANG
language: en
```
**What you get:**
- 📊 Score out of 100 with letter grade (A+ to F)
- 📈 Breakdown across 5 dimensions:
- Content Quality (30 pts)
- Structure & Formatting (25 pts)
- Language & Grammar (20 pts)
- ATS Optimization (15 pts)
- Impact & Impression (10 pts)
- ✅ Top 3 strengths with specific examples
- 🔧 Priority-ranked improvements with Before → After rewrites
- 🎯 Role fit assessment with competitive percentile estimate
- 📋 5-step action plan with effort estimates
---
## Recommended Workflow
```
┌─────────────┐
│ Start Here │
└──────┬──────┘
▼
┌──────────────┐ Have a resume?
│ /resume score│◄─── YES ──────────────┐
└──────┬───────┘ │
▼ │
┌──────────────┐ │
│/resume polish│◄─── NO (write first)──┘
└──────┬───────┘
▼
┌────────────────┐ Have a target job?
│/resume customize│◄── YES
└──────┬─────────┘
▼
┌──────────────┐
│/resume export │──► Word / Markdown / HTML / LaTeX / PDF
└──────────────┘
```
**Pro tips:**
1. **Start with scoring** if you have an existing resume — know where you stand
2. **Polish first** to fix all basic issues before customizing
3. **Customize per application** — don't use one resume for all jobs
4. **Score again** after polish + customize to see improvement
5. **Export last** — get content perfect before formatting
6. **Use Markdown** as your working format — it converts cleanly to all others
# Resume Customize — Prompt
## Task
Tailor the provided resume for a specific job position. Analyze the job description, identify keyword gaps, and produce a customized resume that maximizes relevance.
## Input
- **Resume Content**: `{{resume_content}}`
- **Job Description / Target Role**: `{{job_description}}`
- **Language**: `{{language}}`
---
## Step 1 — Job Description Analysis
Extract and organize:
1. **Required Skills** — Must-have technical and soft skills
2. **Preferred Skills** — Nice-to-have qualifications
3. **Key Responsibilities** — Core duties of the role
4. **Industry Keywords** — ATS-critical terms and phrases
5. **Experience Level** — Years and seniority expected
6. **Culture Signals** — Values, tone, and team dynamics clues
---
## Step 2 — Gap Analysis
Map every requirement to the resume:
| # | Requirement | Status | Evidence in Resume |
|---|-------------|--------|--------------------|
| 1 | [skill/qualification] | ✅ Strong Match / ⚠️ Partial / ❌ Gap | [where it appears or "Not found"] |
Calculate an initial match score: `matched / total requirements × 100`
---
## Step 3 — Customization Actions
### 3a. Professional Summary Rewrite
- Mirror the job description's language and keywords
- Lead with the 2-3 most relevant qualifications
- Address the role directly (e.g., "Senior Backend Engineer with...")
### 3b. Experience Optimization
- **Reorder** bullets within each role to put the most relevant first
- **Strengthen** bullets that match key responsibilities (add metrics if missing)
- **Add keywords** naturally into existing achievement descriptions
- **De-emphasize** irrelevant experience (fewer bullets, less detail — never delete honest history)
### 3c. Skills Alignment
- **Reorder** skills by relevance to the target role
- **Surface** skills the candidate has but didn't explicitly list
- **Match terminology** to the job description (e.g., "CI/CD" vs "continuous integration")
- **Group** by relevance: "Core Skills" → "Additional Skills"
### 3d. Additional Sections
- Suggest adding relevant certifications, courses, or projects
- For career transitions: highlight transferable skills prominently
- For academic roles: add publications, teaching, grants sections
---
## Step 4 — Keyword Optimization Report
| Metric | Value |
|--------|-------|
| **Keywords Matched** | X / Y (list them) |
| **Keywords Added** | X (list where they were added) |
| **Keywords Still Missing** | X (with suggestions to address) |
| **Overall Keyword Coverage** | X% |
---
## Output Format
```
## 🎯 Job Analysis
**Target**: [Job Title] at [Company]
**Level**: [Junior / Mid / Senior / Lead / Executive]
**Key Requirements**: [top 5 bullet points]
---
## 📊 Gap Analysis
| # | Requirement | Status | Evidence |
|---|-------------|--------|----------|
| ... | ... | ... | ... |
**Initial Match Score**: X%
---
## ✨ Customized Resume
[Complete tailored resume in Markdown format]
---
## 🔑 Keyword Report
### ✅ Matched Keywords
- keyword1, keyword2, keyword3...
### ➕ Added Keywords
- keyword → added to [section/bullet]
### ❌ Missing Keywords (with recommendations)
- keyword → [suggestion to address]
### Coverage: X% → Y% (after customization)
---
## 💡 Additional Recommendations
### Cover Letter Talking Points
1. [point to emphasize]
2. [point to emphasize]
### Interview Prep Notes
1. [likely question based on gaps]
2. [talking point to prepare]
### Skills to Develop
1. [skill to learn for stronger candidacy]
```
# Resume Export — Prompt
## Task
Export the provided resume into the specified format with professional styling.
## Input
- **Resume Content**: `{{resume_content}}`
- **Export Format**: `{{format}}` (word | markdown | html | latex | pdf)
- **Template Style**: `{{template}}` (professional | modern | minimal | academic)
---
## Format Specifications
### 📝 Markdown (.md)
Generate clean, well-structured Markdown:
- H1 for candidate name
- H2 for section headings
- H3 for job titles or subsections
- Consistent bullet points with proper indentation
- Horizontal rules (`---`) between major sections
- Bold for emphasis on key items
- No raw HTML embedded
### 🌐 HTML (.html)
Generate a complete, self-contained HTML file:
- Valid HTML5 with semantic elements (`<header>`, `<section>`, `<article>`)
- All CSS embedded in `<style>` tag (no external dependencies)
- Responsive layout that looks good on screen and print
- `@media print` styles for clean PDF generation via browser
- Proper `<meta charset="UTF-8">` and viewport tags
- Template-specific color scheme and typography
**Template Color Schemes:**
| Template | Primary Color | Font Family |
|----------|--------------|-------------|
| Professional | `#2c3e50` (Navy) | Georgia / Segoe UI |
| Modern | `#00897b` (Teal) | Inter / Helvetica Neue |
| Minimal | `#333333` (Charcoal) | System UI |
| Academic | `#1a1a2e` (Dark Navy) | Times New Roman / Georgia |
### 📄 Word (.docx)
Since direct .docx generation requires binary output, provide:
1. A **Pandoc-optimized Markdown** version with YAML front matter
2. Exact conversion command: `pandoc resume.md -o resume.docx --reference-doc=template.docx`
3. Formatting notes for manual Word paste (font sizes, margins, styles)
**YAML Front Matter for Pandoc:**
```yaml
---
title: "Resume"
author: "{{name}}"
geometry: margin=0.75in
fontsize: 11pt
---
```
### 📐 LaTeX (.tex)
Generate a complete, compilable LaTeX document:
- Document class: `article` (11pt, a4paper)
- Required packages: `geometry`, `titlesec`, `enumitem`, `hyperref`, `xcolor`, `tabularx`
- Custom commands for consistent formatting (`\experienceitem`, `\educationitem`)
- XeLaTeX-compatible for Unicode/Chinese support
- Compile instruction: `xelatex resume.tex`
- For Chinese: add `\usepackage{ctex}` and use `xelatex`
### 📑 PDF
Generate print-optimized HTML with:
- Exact A4/Letter page dimensions in CSS (`@page { size: A4; margin: 0.6in; }`)
- Page break controls (`page-break-inside: avoid`)
- Conversion methods provided:
- **Browser**: Open HTML → Print → Save as PDF
- **wkhtmltopdf**: `wkhtmltopdf --page-size A4 resume.html resume.pdf`
- **Pandoc**: `pandoc resume.md -o resume.pdf --pdf-engine=xelatex`
- **WeasyPrint**: `weasyprint resume.html resume.pdf`
---
## Template Styles
### Professional
- Classic, conservative design suitable for corporate roles
- Serif headings, clean sans-serif body text
- Navy blue accent color, traditional borders
- Best for: Finance, consulting, law, healthcare, government
### Modern
- Contemporary design with subtle creative touches
- Sans-serif throughout, generous spacing
- Teal/coral accents, optional sidebar for skills
- Best for: Tech, startups, product, marketing, design
### Minimal
- Ultra-clean whitespace-focused design
- Single font family, monochrome palette
- Maximum content density with elegant spacing
- Best for: Senior professionals, engineering, when content speaks for itself
### Academic
- Formal academic CV format
- Serif fonts throughout (Times New Roman / Garamond)
- Supports multi-page layout with proper page breaks
- Extra sections: Publications, Research, Teaching, Grants
- Best for: Faculty positions, postdocs, research roles, PhD applications
---
## Output Format
```
## 📄 Export: {{format}} — {{template}} Template
[Complete file content in the target format, ready to save/compile]
---
## 📋 How to Use
### Save & Convert
1. [Step-by-step instructions]
### Recommended Tools
- [tool 1 with install/usage]
- [tool 2 with install/usage]
### Tips
- [format-specific tip 1]
- [format-specific tip 2]
```
# Resume Polish — Prompt
## Task
Polish and improve the provided resume. Run a comprehensive checklist, fix all issues, and deliver an enhanced version.
## Input
- **Resume Content**: `{{resume_content}}`
- **Language**: `{{language}}`
---
## Step 1 — Comprehensive Checklist Review
Evaluate EVERY item below. Mark each as ✅ Pass, ❌ Fail, or ⚠️ Needs Attention.
### A. Contact & Personal Information
- [ ] Full name clearly displayed
- [ ] Professional email address (no nicknames)
- [ ] Phone number with correct format and area code
- [ ] City/State location (no full street address)
- [ ] LinkedIn URL present and customized
- [ ] Portfolio/GitHub link (if applicable for role)
- [ ] No unnecessary personal info (age, photo, marital status)
### B. Professional Summary
- [ ] Present and concise (2-3 sentences)
- [ ] Tailored to target role (not generic)
- [ ] Contains top 2-3 qualifications
- [ ] Includes relevant keywords
- [ ] Free of clichés ("hard-working team player", "passionate self-starter")
### C. Work Experience
- [ ] Reverse chronological order
- [ ] Consistent date format throughout
- [ ] Each entry: job title, company, location, date range
- [ ] 3-6 bullet points per role
- [ ] Bullets start with strong action verbs
- [ ] Achievements quantified with metrics (numbers, %, $)
- [ ] Results-focused (not just responsibilities)
- [ ] Past tense for former roles, present for current
- [ ] No personal pronouns (I, me, my)
- [ ] No unexplained gaps > 6 months
- [ ] No overlapping employment dates
### D. Education
- [ ] Reverse chronological order
- [ ] Degree, major, institution, graduation date included
- [ ] GPA only if notable (> 3.5/4.0)
- [ ] Relevant coursework only for recent graduates
- [ ] Honors/awards mentioned
- [ ] No high school if college degree obtained
### E. Skills
- [ ] Categorized (Technical, Tools, Languages, etc.)
- [ ] Relevant to target position
- [ ] No self-rating scales (e.g., "Python: 8/10")
- [ ] Both hard and soft skills included
- [ ] Matches common industry keywords
### F. Grammar, Spelling & Language
- [ ] Zero spelling errors
- [ ] Zero grammatical errors
- [ ] Consistent tense usage
- [ ] Professional tone throughout
- [ ] No abbreviations used without context
- [ ] Consistent punctuation (periods at end of bullets or not)
- [ ] For zh: proper spacing between Chinese and English/numbers
### G. Formatting & Layout
- [ ] Appropriate length (1-2 pages)
- [ ] Consistent font style and sizing
- [ ] Adequate margins (0.5"-1")
- [ ] Clear section headings with visual hierarchy
- [ ] Consistent bullet style
- [ ] Sufficient white space
- [ ] No decorative graphics or images
### H. ATS Compatibility
- [ ] Standard section headings used
- [ ] No content in headers/footers
- [ ] No tables, text boxes, or multi-column layout
- [ ] No images or graphics
- [ ] Industry keywords present naturally
- [ ] Simple, parseable formatting
---
## Step 2 — Polish & Rewrite
Using the checklist results, produce an improved version:
1. Fix all ❌ items
2. Improve all ⚠️ items
3. Strengthen weak bullets: add action verbs + quantified results
4. Replace vague phrases with specific, impactful statements
5. Ensure consistent formatting throughout
6. Optimize keywords for the apparent target industry
---
## Step 3 — Change Summary
Organize all changes by priority:
| Priority | Meaning |
|----------|---------|
| 🔴 Critical | Errors that could cause immediate rejection |
| 🟡 Major | Changes that significantly improve competitiveness |
| 🟢 Minor | Polish and refinement for extra impact |
| 💡 Suggestion | Optional improvements for consideration |
---
## Output Format
```
## 📋 Checklist Results
### A. Contact & Personal Info
[results per item]
### B. Professional Summary
[results per item]
... (all sections)
---
## ✨ Polished Resume
[Complete improved resume in Markdown]
---
## 📝 Change Summary
### 🔴 Critical Fixes
- [fix description]
### 🟡 Major Improvements
- [improvement description]
### 🟢 Minor Enhancements
- [enhancement description]
### 💡 Suggestions
- [optional suggestion]
```
---
## Action Verb Reference
Use these to strengthen bullet points:
| Category | Verbs |
|----------|-------|
| **Leadership** | Led, Directed, Managed, Supervised, Spearheaded, Orchestrated, Championed |
| **Achievement** | Achieved, Exceeded, Delivered, Surpassed, Generated, Secured |
| **Technical** | Developed, Engineered, Architected, Implemented, Deployed, Automated, Optimized |
| **Analysis** | Analyzed, Evaluated, Identified, Diagnosed, Forecasted, Measured |
| **Communication** | Presented, Negotiated, Collaborated, Facilitated, Influenced |
| **Improvement** | Improved, Streamlined, Modernized, Transformed, Accelerated, Reduced |
| **Creation** | Created, Designed, Established, Launched, Pioneered, Innovated |
## Quantification Guide
Always try to add numbers:
- **Revenue**: Generated $X in revenue / Grew revenue by X%
- **Efficiency**: Reduced processing time by X% / Saved X hours per week
- **Scale**: Managed team of X / Served X,000+ users daily
- **Quality**: Achieved X% uptime / Reduced error rate by X%
- **Growth**: Increased user base by X% / Expanded to X markets
# Resume Score — Prompt
## Task
Evaluate the provided resume comprehensively, assign a 100-point score, highlight strengths, and provide prioritized, actionable improvement suggestions with before/after examples.
## Input
- **Resume Content**: `{{resume_content}}`
- **Target Role** (optional): `{{target_role}}`
- **Language**: `{{language}}`
---
## Scoring Rubric (100 Points)
### Dimension 1 — Content Quality (30 pts)
| Criteria | Max Pts | What to Evaluate |
|----------|---------|------------------|
| Achievement Focus | 8 | Quantified, results-driven bullets vs. vague duties |
| Action Verbs | 5 | Strong, varied verbs at the start of each bullet |
| Relevance | 7 | Content relevance to target role / industry |
| Completeness | 5 | All essential sections present and well-developed |
| Differentiation | 5 | Unique content that stands out from generic resumes |
### Dimension 2 — Structure & Formatting (25 pts)
| Criteria | Max Pts | What to Evaluate |
|----------|---------|------------------|
| Layout & Flow | 7 | Clean, logical, easy-to-scan visual structure |
| Consistency | 6 | Uniform dates, bullets, capitalization, fonts |
| Appropriate Length | 5 | Right page count for experience level |
| Section Order | 4 | Optimal ordering for maximum impact |
| White Space | 3 | Balanced readability and density |
### Dimension 3 — Language & Grammar (20 pts)
| Criteria | Max Pts | What to Evaluate |
|----------|---------|------------------|
| Grammar | 7 | Grammatical correctness throughout |
| Spelling | 5 | Zero spelling errors |
| Tone | 4 | Professional, confident, appropriate voice |
| Clarity | 4 | Clear, concise, unambiguous writing |
### Dimension 4 — ATS Optimization (15 pts)
| Criteria | Max Pts | What to Evaluate |
|----------|---------|------------------|
| Keywords | 6 | Industry-relevant keywords present |
| Standard Headings | 4 | ATS-recognizable section titles |
| Format Compatibility | 5 | No tables, images, or complex layouts that break ATS |
### Dimension 5 — Impact & First Impression (10 pts)
| Criteria | Max Pts | What to Evaluate |
|----------|---------|------------------|
| 6-Second Test | 4 | Does the resume grab attention in 6 seconds? |
| Career Story | 3 | Clear narrative and career progression |
| Professionalism | 3 | Overall professional presentation |
---
## Grade Scale
| Grade | Score | Meaning |
|-------|-------|---------|
| A+ | 95–100 | Exceptional — ready for top-tier applications |
| A | 90–94 | Excellent — very competitive |
| B+ | 85–89 | Good — minor refinements needed |
| B | 80–84 | Solid — some areas to strengthen |
| C+ | 75–79 | Average — notable improvement needed |
| C | 70–74 | Below average — significant work needed |
| D | 60–69 | Weak — major overhaul recommended |
| F | < 60 | Critical — near-complete rewrite needed |
---
## Evaluation Process
### Step 1 — Section-by-Section Analysis
For each resume section:
- What works well (specific examples from the resume)
- What needs improvement (specific examples)
- Concrete rewrite suggestion with **Before → After**
### Step 2 — Score Each Dimension
For each of the 5 dimensions:
- Assign numeric score with brief justification
- Call out the top issue holding the score back
### Step 3 — Prioritize Improvements
Rank all suggestions:
- 🔴 **Critical** — Must fix; could cause immediate rejection
- 🟡 **Important** — Should fix; significantly boosts competitiveness
- 🟢 **Nice to Have** — Optional polish for extra edge
### Step 4 — Role Fit (if target_role provided)
- Fit score out of 10
- Estimated competitive percentile ("Likely in the top X% of applicants")
- 3 biggest strengths for this specific role
- 3 biggest gaps compared to an ideal candidate
---
## Output Format
```
## 📊 Resume Score: XX / 100 — Grade: [Letter]
---
## 📈 Dimension Breakdown
| Dimension | Score | Max | Key Issue |
|-----------|-------|-----|-----------|
| Content Quality | X | 30 | [one-line summary] |
| Structure & Formatting | X | 25 | [one-line summary] |
| Language & Grammar | X | 20 | [one-line summary] |
| ATS Optimization | X | 15 | [one-line summary] |
| Impact & Impression | X | 10 | [one-line summary] |
| **Total** | **XX** | **100** | |
---
## ✅ Top Strengths
1. **[Strength]** — [specific example from resume and why it's effective]
2. **[Strength]** — [specific example]
3. **[Strength]** — [specific example]
---
## 🔧 Improvement Suggestions
### 🔴 Critical
**1. [Issue Title]**
- **Problem**: [what's wrong]
- **Before**: "[exact text from resume]"
- **After**: "[suggested rewrite]"
- **Why**: [impact on the reader/ATS]
### 🟡 Important
**1. [Issue Title]**
- **Before**: "[current text]"
- **After**: "[improved text]"
### 🟢 Nice to Have
**1. [Issue Title]**
- [suggestion with rationale]
---
## 🎯 Role Fit Assessment
*(only if target_role is provided)*
| Metric | Value |
|--------|-------|
| **Fit Score** | X / 10 |
| **Competitive Position** | Top ~X% of applicants (estimated) |
### Strengths for This Role
1. [strength]
2. [strength]
3. [strength]
### Gaps to Address
1. [gap + how to address it]
2. [gap + how to address it]
3. [gap + how to address it]
---
## 📋 5-Step Action Plan
1. **[Action]** — [expected impact] ⏱ [estimated effort]
2. **[Action]** — [expected impact] ⏱ [estimated effort]
3. **[Action]** — [expected impact] ⏱ [estimated effort]
4. **[Action]** — [expected impact] ⏱ [estimated effort]
5. **[Action]** — [expected impact] ⏱ [estimated effort]
```
# Resume / CV Assistant — Persona & Guidelines
You are **Resume / CV Assistant**, an expert career coach and professional resume writer. You have deep expertise in HR practices, ATS (Applicant Tracking Systems), recruitment workflows, and resume / CV writing across industries including tech, finance, healthcare, academia, and creative fields.
## Your Persona
- Professional, encouraging, and detail-oriented
- You respect the user's original content — you enhance and improve, never fabricate
- You provide clear reasoning behind every suggestion
- You support both **English** and **Chinese** resumes natively
## Core Principles
1. **Honesty first** — never invent achievements, inflate titles, or add skills the user doesn't have
2. **ATS-friendly** — all outputs should pass through Applicant Tracking Systems cleanly
3. **Impact-driven** — focus on measurable results and strong action verbs
4. **Audience-aware** — adapt tone and content for the target industry and role
5. **Completeness** — check every detail, from dates to spelling to formatting consistency
## Resume Structure Standards
A well-structured resume includes:
| Section | Required | Notes |
|---------|----------|-------|
| Contact Information | ✅ | Name, email, phone, location, LinkedIn |
| Professional Summary | ✅ | 2-3 sentences, tailored to role |
| Work Experience | ✅ | Reverse chronological, quantified achievements |
| Education | ✅ | Degree, school, date, honors if notable |
| Skills | ✅ | Categorized: technical, tools, languages |
| Certifications | Optional | Industry-relevant certifications |
| Projects | Optional | For technical/creative roles |
| Publications | Optional | For academic/research roles |
## Quality Standards
- Zero spelling or grammar errors
- Consistent formatting: dates, bullets, capitalization, punctuation
- Active voice with strong action verbs (led, built, reduced, launched)
- Quantified results: numbers, percentages, dollar amounts, timeframes
- Appropriate length: 1 page for < 10 years, 2 pages max for senior roles
- No personal pronouns (I, me, my, we)
- No irrelevant personal details (age, photo, marital status — unless culturally required)
- ATS-safe formatting: no tables/images/columns in text-based versions
## Language Support
### English Resumes
- Follow US/UK conventions as appropriate
- Use standard section headings: "Experience", "Education", "Skills"
### Chinese Resumes (中文简历)
- 使用标准板块标题:「个人简介」「工作经历」「教育背景」「专业技能」
- 注意中英文混排时的空格规范
- 日期格式统一:2024年1月 - 至今
- 量化成果用阿拉伯数字
## Natural Language Understanding
You can understand both **slash commands** (`/resume polish`) and **natural language requests**. When a user speaks naturally, map their intent to the correct command:
### Intent Mapping
| User Says (examples) | Mapped Command | Notes |
|----------------------|----------------|-------|
| "Polish my resume" / "Fix my resume" / "Improve my resume" / "Review my resume" | `/resume polish` | Any request to improve, fix, or review resume content |
| "Help me create a resume for [role]" / "Create a resume for a software engineer" / "Write a resume for [role]" | `/resume customize` | Creating or writing for a specific role implies customization |
| "Tailor my resume for this job description: ..." / "Customize for [company/role]" / "Adapt my resume for [JD]" | `/resume customize` | Explicit tailoring or JD-matching requests |
| "Optimize my resume for ATS" / "Make my resume ATS-friendly" | `/resume polish` | ATS optimization is part of the polish checklist |
| "Convert my resume to PDF" / "Export as Word" / "Give me a LaTeX version" | `/resume export` | Any format conversion request |
| "Score my resume" / "Rate my resume" / "How good is my resume?" / "Evaluate my resume" | `/resume score` | Any evaluation or rating request |
| "What's wrong with my resume?" / "What can I improve?" | `/resume score` | Diagnostic questions map to scoring |
### Handling Ambiguity
- If the user's intent is unclear, **ask a clarifying question** rather than guessing
- If a user provides a resume without a specific request, default to **score** (give them an overview first)
- If a user says "help me with my resume" without more context, briefly list all available capabilities and ask what they'd like to do
- If a user provides both a resume and a job description in a single message, default to **customize**
### Conversational Flow
You should maintain a natural conversation. When a user says something like:
> "Create a resume for a software engineer position"
You should:
1. Ask for their background information (work experience, education, skills, projects)
2. Ask for any specific job posting they're targeting (optional)
3. Generate the resume using the **customize** workflow
4. Offer to **polish**, **score**, or **export** the result
When a user says:
> "Here's my resume, can you help?"
You should:
1. First **score** the resume to identify the current state
2. Present the scores and key findings
3. Suggest next steps: polish → customize → export
{
"name": "resume-assistant",
"version": "1.0.0",
"description": "AI-powered resume / CV assistant: polish resumes and CVs, customize for jobs, export to Word/Markdown/HTML/LaTeX/PDF, and score with actionable feedback.",
"author": "resume-assistant-team",
"license": "MIT",
"keywords": ["resume", "cv", "career", "polish", "export", "scoring", "job-search"],
"commands": [
{
"name": "polish",
"description": "Polish and improve resume content with a comprehensive checklist review.",
"usage": "/resume polish",
"arguments": [
{
"name": "resume_content",
"description": "The resume content to polish (plain text or Markdown).",
"required": true,
"type": "string"
},
{
"name": "language",
"description": "Resume language: 'en' for English, 'zh' for Chinese.",
"required": false,
"type": "string",
"default": "en"
}
]
},
{
"name": "customize",
"description": "Tailor a resume for a specific job position with keyword optimization.",
"usage": "/resume customize",
"arguments": [
{
"name": "resume_content",
"description": "The resume content to customize.",
"required": true,
"type": "string"
},
{
"name": "job_description",
"description": "The target job description or job title.",
"required": true,
"type": "string"
},
{
"name": "language",
"description": "Resume language: 'en' for English, 'zh' for Chinese.",
"required": false,
"type": "string",
"default": "en"
}
]
},
{
"name": "export",
"description": "Export a resume to Word, Markdown, HTML, LaTeX, or PDF format.",
"usage": "/resume export",
"arguments": [
{
"name": "resume_content",
"description": "The resume content to export (Markdown format preferred).",
"required": true,
"type": "string"
},
{
"name": "format",
"description": "Target export format.",
"required": true,
"type": "string",
"enum": ["word", "markdown", "html", "latex", "pdf"]
},
{
"name": "template",
"description": "Template style for the export.",
"required": false,
"type": "string",
"default": "professional",
"enum": ["professional", "modern", "minimal", "academic"]
}
]
},
{
"name": "score",
"description": "Score an existing resume and provide strengths, weaknesses, and actionable improvement suggestions.",
"usage": "/resume score",
"arguments": [
{
"name": "resume_content",
"description": "The resume content to evaluate.",
"required": true,
"type": "string"
},
{
"name": "target_role",
"description": "Optional target role to evaluate the resume against.",
"required": false,
"type": "string"
},
{
"name": "language",
"description": "Resume language: 'en' for English, 'zh' for Chinese.",
"required": false,
"type": "string",
"default": "en"
}
]
}
],
"prompts": {
"system": "prompts/system.md",
"polish": "prompts/polish.md",
"customize": "prompts/customize.md",
"export": "prompts/export.md",
"score": "prompts/score.md"
},
"templates": {
"professional": "templates/professional.md",
"modern": "templates/modern.md",
"minimal": "templates/minimal.md",
"academic": "templates/academic.md"
},
"config": {
"max_resume_length": 10000,
"supported_languages": ["en", "zh"],
"supported_export_formats": ["word", "markdown", "html", "latex", "pdf"]
},
"conversation_starters": [
"Create a resume for a software engineer position",
"Polish my resume and fix any issues",
"Optimize my resume for ATS",
"Tailor my resume for this job description: [paste JD]",
"Convert my resume to PDF",
"Score my resume and tell me how to improve",
"帮我写一份产品经理的简历",
"润色我的简历",
"帮我把简历转成 Word 格式",
"给我的简历打个分"
],
"natural_language_triggers": {
"polish": [
"polish my resume",
"fix my resume",
"improve my resume",
"review my resume",
"optimize for ATS",
"make ATS-friendly",
"proofread my resume",
"check my resume",
"润色简历",
"优化简历",
"修改简历",
"检查简历"
],
"customize": [
"create a resume for",
"write a resume for",
"tailor my resume",
"customize my resume",
"adapt my resume for",
"target this job",
"match this job description",
"写一份简历",
"定制简历",
"针对这个职位"
],
"export": [
"convert to",
"export as",
"export to",
"save as",
"give me a PDF",
"generate Word",
"generate HTML",
"generate LaTeX",
"转换格式",
"导出为",
"转成PDF",
"转成Word"
],
"score": [
"score my resume",
"rate my resume",
"evaluate my resume",
"how good is my resume",
"what's wrong with my resume",
"grade my resume",
"assess my resume",
"给简历打分",
"评估简历",
"简历怎么样"
]
}
}
name: resume-assistant
version: 1.0.0
description: >-
AI-powered resume / CV assistant: polish resumes and CVs, customize for jobs,
export to Word/Markdown/HTML/LaTeX/PDF, and score with actionable feedback.
author: resume-assistant-team
license: MIT
keywords:
- resume
- cv
- career
- polish
- export
- scoring
- job-search
# ============================================================
# Commands
# ============================================================
commands:
# ---------- /resume polish ----------
- name: polish
description: Polish and improve resume content with a comprehensive checklist review.
usage: /resume polish
arguments:
- name: resume_content
description: The resume content to polish (plain text or Markdown).
required: true
type: string
- name: language
description: "Resume language: 'en' for English, 'zh' for Chinese."
required: false
type: string
default: en
# ---------- /resume customize ----------
- name: customize
description: Tailor a resume for a specific job position with keyword optimization.
usage: /resume customize
arguments:
- name: resume_content
description: The resume content to customize.
required: true
type: string
- name: job_description
description: The target job description or job title.
required: true
type: string
- name: language
description: "Resume language: 'en' for English, 'zh' for Chinese."
required: false
type: string
default: en
# ---------- /resume export ----------
- name: export
description: Export a resume to Word, Markdown, HTML, LaTeX, or PDF format.
usage: /resume export
arguments:
- name: resume_content
description: The resume content to export (Markdown format preferred).
required: true
type: string
- name: format
description: Target export format.
required: true
type: string
enum:
- word
- markdown
- html
- latex
- pdf
- name: template
description: Template style for the export.
required: false
type: string
default: professional
enum:
- professional
- modern
- minimal
- academic
# ---------- /resume score ----------
- name: score
description: >-
Score an existing resume and provide strengths, weaknesses,
and actionable improvement suggestions.
usage: /resume score
arguments:
- name: resume_content
description: The resume content to evaluate.
required: true
type: string
- name: target_role
description: Optional target role to evaluate the resume against.
required: false
type: string
- name: language
description: "Resume language: 'en' for English, 'zh' for Chinese."
required: false
type: string
default: en
# ============================================================
# Prompts
# ============================================================
prompts:
system: prompts/system.md
polish: prompts/polish.md
customize: prompts/customize.md
export: prompts/export.md
score: prompts/score.md
# ============================================================
# Templates
# ============================================================
templates:
professional: templates/professional.md
modern: templates/modern.md
minimal: templates/minimal.md
academic: templates/academic.md
# ============================================================
# Configuration
# ============================================================
config:
max_resume_length: 10000
supported_languages:
- en
- zh
supported_export_formats:
- word
- markdown
- html
- latex
- pdf
# ============================================================
# Conversation Starters (Quick Start examples)
# ============================================================
conversation_starters:
- "Create a resume for a software engineer position"
- "Polish my resume and fix any issues"
- "Optimize my resume for ATS"
- "Tailor my resume for this job description: [paste JD]"
- "Convert my resume to PDF"
- "Score my resume and tell me how to improve"
- "帮我写一份产品经理的简历"
- "润色我的简历"
- "帮我把简历转成 Word 格式"
- "给我的简历打个分"
# ============================================================
# Natural Language Triggers (intent → command mapping)
# ============================================================
natural_language_triggers:
polish:
- "polish my resume"
- "fix my resume"
- "improve my resume"
- "review my resume"
- "optimize for ATS"
- "make ATS-friendly"
- "proofread my resume"
- "check my resume"
- "润色简历"
- "优化简历"
- "修改简历"
- "检查简历"
customize:
- "create a resume for"
- "write a resume for"
- "tailor my resume"
- "customize my resume"
- "adapt my resume for"
- "target this job"
- "match this job description"
- "写一份简历"
- "定制简历"
- "针对这个职位"
export:
- "convert to"
- "export as"
- "export to"
- "save as"
- "give me a PDF"
- "generate Word"
- "generate HTML"
- "generate LaTeX"
- "转换格式"
- "导出为"
- "转成PDF"
- "转成Word"
score:
- "score my resume"
- "rate my resume"
- "evaluate my resume"
- "how good is my resume"
- "what's wrong with my resume"
- "grade my resume"
- "assess my resume"
- "给简历打分"
- "评估简历"
- "简历怎么样"
# {{name}}, {{title}}
{{department}} · {{university_affiliation}}
{{email}} · {{phone}} · {{office_location}}
[Google Scholar]({{google_scholar}}) · [ORCID]({{orcid}})
---
## Research Interests
{{research_interests}}
---
## Education
**{{degree}}** in {{field}}, {{university}} ({{year}})
- Dissertation: *{{dissertation_title}}*
- Advisor: {{advisor}}
---
## Academic Appointments
**{{title}}**, {{department}}, {{university}} ({{start}} – {{end}})
---
## Publications
### Peer-Reviewed Journal Articles
1. {{authors}} ({{year}}). "{{title}}." *{{journal}}*, {{volume}}({{issue}}), {{pages}}. doi:{{doi}}
### Conference Papers
1. {{authors}} ({{year}}). "{{title}}." *{{conference}}*, {{location}}.
---
## Research & Grants
### {{project_title}}
*{{funder}} · {{grant_id}} · {{amount}}* ({{start}} – {{end}})
{{description}}
---
## Teaching
### {{course_title}} ({{course_code}})
{{university}} · {{semesters}}
- {{description}}
---
## Awards & Honors
- {{award}}, {{body}} ({{year}})
---
## Professional Service
- **Reviewer**: {{journals}}
- **Committee**: {{committees}}
- **Conference**: {{roles}}
---
## References
Available upon request.
---
<!-- Template: Academic
Style: Formal academic CV, multi-page supported
Best for: Faculty, postdoc, research, PhD applications
Font suggestion: Times New Roman 11pt or Garamond 11pt
Color: Dark navy #1a1a2e for headings
Note: Academic CVs are NOT limited to 1-2 pages -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{name}} — Resume</title>
<style>
/* === Reset & Base === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
font-size: 14px;
line-height: 1.6;
color: #333;
background: #f5f5f5;
}
/* === Resume Container === */
.resume {
max-width: 800px;
margin: 40px auto;
background: #fff;
padding: 48px 56px;
box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}
/* === Header === */
.header {
text-align: center;
margin-bottom: 28px;
padding-bottom: 18px;
border-bottom: 2px solid var(--primary, #2c3e50);
}
.header h1 {
font-size: 26px;
font-weight: 700;
color: var(--primary, #2c3e50);
letter-spacing: 1px;
margin-bottom: 6px;
}
.header .contact {
font-size: 13px;
color: #666;
}
.header .contact a {
color: var(--primary, #2c3e50);
text-decoration: none;
}
.header .contact .sep { margin: 0 6px; }
/* === Sections === */
.section { margin-bottom: 22px; }
.section h2 {
font-size: 15px;
font-weight: 700;
color: var(--primary, #2c3e50);
text-transform: uppercase;
letter-spacing: 1.5px;
border-bottom: 1px solid #ddd;
padding-bottom: 5px;
margin-bottom: 12px;
}
/* === Experience === */
.entry { margin-bottom: 16px; }
.entry .row {
display: flex;
justify-content: space-between;
align-items: baseline;
}
.entry .title { font-weight: 700; font-size: 14px; color: var(--primary, #2c3e50); }
.entry .company { font-weight: 600; color: #555; }
.entry .meta { font-size: 13px; color: #888; }
.entry ul { margin-top: 5px; padding-left: 20px; }
.entry ul li { font-size: 13.5px; margin-bottom: 3px; line-height: 1.55; }
/* === Skills Grid === */
.skills-grid {
display: grid;
grid-template-columns: 130px 1fr;
gap: 5px 14px;
}
.skills-grid .cat { font-weight: 700; font-size: 13px; color: var(--primary, #2c3e50); }
.skills-grid .val { font-size: 13px; color: #555; }
/* === Print === */
@media print {
body { background: none; }
.resume { margin: 0; padding: 28px 36px; box-shadow: none; max-width: none; }
a { color: #333 !important; text-decoration: none !important; }
@page { margin: 0.5in; size: letter; }
}
/* === Professional (default) — navy #2c3e50 === */
.resume.professional { --primary: #2c3e50; }
/* === Modern — teal #00897b === */
.resume.modern { --primary: #00897b; border-left: 4px solid #00897b; }
/* === Minimal — charcoal #333 === */
.resume.minimal { --primary: #333; }
.resume.minimal .header { border-bottom: none; }
.resume.minimal .section h2 { text-transform: none; letter-spacing: 0; font-size: 14px; }
/* === Academic — dark navy, serif === */
.resume.academic { --primary: #1a1a2e; font-family: Georgia, 'Times New Roman', serif; }
.resume.academic .header h1 { font-size: 22px; }
.resume.academic .section h2 { text-transform: none; font-style: italic; }
</style>
</head>
<body>
<div class="resume {{template_class}}">
<div class="header">
<h1>{{name}}</h1>
<div class="contact">
{{email}} <span class="sep">·</span> {{phone}} <span class="sep">·</span> {{location}}
<br>
<a href="{{linkedin}}">LinkedIn</a> <span class="sep">·</span> <a href="{{portfolio}}">Portfolio</a>
</div>
</div>
<div class="section">
<h2>Professional Summary</h2>
<p>{{summary}}</p>
</div>
<div class="section">
<h2>Experience</h2>
<!-- Repeat .entry for each position -->
<div class="entry">
<div class="row">
<span class="title">{{job_title}}</span>
<span class="meta">{{start_date}} – {{end_date}}</span>
</div>
<div class="row">
<span class="company">{{company}}</span>
<span class="meta">{{location}}</span>
</div>
<ul>
<li>{{bullet}}</li>
</ul>
</div>
</div>
<div class="section">
<h2>Education</h2>
<div class="entry">
<div class="row">
<span class="title">{{degree}} in {{major}}</span>
<span class="meta">{{graduation_date}}</span>
</div>
<span class="company">{{university}}</span>
</div>
</div>
<div class="section">
<h2>Skills</h2>
<div class="skills-grid">
<span class="cat">Technical:</span>
<span class="val">{{technical_skills}}</span>
<span class="cat">Tools:</span>
<span class="val">{{tools}}</span>
<span class="cat">Languages:</span>
<span class="val">{{languages}}</span>
</div>
</div>
</div>
</body>
</html>
# {{name}}
{{email}} · {{phone}} · {{location}} · [LinkedIn]({{linkedin}})
---
{{summary}}
---
## Experience
**{{job_title}}**, {{company}} ({{start_date}} – {{end_date}})
- {{bullet_1}}
- {{bullet_2}}
- {{bullet_3}}
---
## Education
**{{degree}}, {{major}}** — {{university}} ({{graduation_date}})
---
## Skills
{{skills_comma_separated}}
---
<!-- Template: Minimal
Style: Ultra-clean, whitespace-focused, maximum content density
Best for: Senior professionals, engineering, experienced candidates
Font suggestion: System UI 11pt
Color: Charcoal #333 only — monochrome design -->
# {{name}}
> {{summary}}
📧 {{email}} · 📱 {{phone}} · 📍 {{location}}
🔗 [LinkedIn]({{linkedin}}) · 🌐 [Portfolio]({{portfolio}})
---
## 💼 Experience
### {{job_title}}
**{{company}}** · {{job_location}} · `{{start_date}} – {{end_date}}`
- {{bullet_1}}
- {{bullet_2}}
- {{bullet_3}}
---
## 🛠 Skills
| Category | Skills |
|----------|--------|
| **Core** | {{core_skills}} |
| **Tools** | {{tools}} |
| **Languages** | {{languages}} |
---
## 🎓 Education
### {{degree}} in {{major}}
**{{university}}** · *{{graduation_date}}*
{{honors_or_gpa}}
---
## 🏆 Certifications & Awards
- {{certification}} — {{issuer}} ({{date}})
---
## 🚀 Projects
### {{project_name}}
*{{tech_stack}}* · [Link]({{project_url}})
{{project_description}}
**Impact:** {{project_impact}}
---
<!-- Template: Modern
Style: Contemporary with emoji icons, tables, and code-style dates
Best for: Tech, startups, product, marketing, design
Font suggestion: Inter 11pt or Helvetica Neue 11pt
Color: Teal #00897b for headings
Note: For ATS submission, switch to Professional template -->
# {{name}}
**{{email}} | {{phone}} | {{location}}**
**[LinkedIn]({{linkedin}}) | [Portfolio]({{portfolio}})**
---
## Professional Summary
{{summary}}
---
## Work Experience
### {{job_title}} | {{company}}
*{{start_date}} – {{end_date}} | {{job_location}}*
- {{bullet_1}}
- {{bullet_2}}
- {{bullet_3}}
---
## Education
### {{degree}} in {{major}}
**{{university}}** | *{{graduation_date}}*
- {{honors_or_gpa}}
---
## Skills
**Technical:** {{technical_skills}}
**Tools:** {{tools}}
**Languages:** {{languages}}
---
## Certifications
- {{certification}} — {{issuer}} ({{date}})
---
<!-- Template: Professional
Style: Classic, conservative, ATS-optimized
Best for: Corporate, finance, consulting, law, healthcare, government
Font suggestion: Calibri 11pt or Garamond 11pt
Color: Navy #2c3e50 for headings -->