Resume Assistant
📝 简历助手
这是一款AI驱动的Clawbot技能,用于润色简历、定制职位匹配、多格式导出以及提供专业评分。版本:1.0.0 ·许可证:MIT ·代码仓库: github.com/Wscats/resume-assistant
概述
简历助手是一款Clawbot技能,能帮助求职者创建、完善和优化其简历,同时提供全面的清单审核、评分以及多格式导出功能,集成了单一项目无法提供的完整服务。
在AI智能体中的使用
快速开始
简历助手是一款标准的Clawbot技能,可以被任何兼容的AI智能体加载和调用。以下是不同的集成方式。
💬 自然语言(推荐)
您无需记忆任何命令——只需描述您的需求:
💬 "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?"
助手会理解您的意图,并自动引导至相应的工作流程:
| 您说 | 助手执行 |
|---|---|
| "为[职位]创建一份简历" | 询问你的背景 → 构建一份量身定制的简历 |
| "润色 / 修正 / 改进我的简历" | 运行40+项检查清单 → 返回优化版本 |
| "针对ATS优化" | 检查ATS兼容性 → 优化关键词与格式 |
| "针对此职位描述进行定制:..." | 分析职位描述 → 差距分析 → 定制化简历 |
| "转换为PDF / Word / ..." | 使用专业模板导出为所选格式 |
| "评分 / 评级 / 评估我的简历" | 百分制评分 → 优势及改进计划 |
| "这是我的简历,能帮忙吗?" | 先评分 → 建议后续步骤 |
对话示例
创建新简历:
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?
快速改进:
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]
针对特定职位定制:
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]
选项一:通过 clawbot 使用斜杠命令
如需更精确的控制,可直接在 clawbot 对话中使用斜杠命令:
/resume polish
Please polish my resume:
John Doe
Senior Frontend Engineer | 5 years experience
Skills: JavaScript, React, Vue, Node.js
...
选项二:集成至AI智能体框架
1. 注册技能
将此项目注册为AI智能体的技能:
{
"skills": [
{
"name": "resume-assistant",
"path": "./skills/resume-assistant",
"manifest": "skill.json"
}
]
}
2. 加载提示词
处理简历相关请求时,提示词文件按此顺序加载:
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. 构建完整提示词
以/resume polish为例
# 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 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;
}
——以下是AI智能体构建提示词的方式:
选项三:REST API
# 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"
}'
若AI智能体提供HTTP API,可通过RESTful端点调用:
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"}
)
),
]
选项四:LangChain/LlamaIndex集成
指令路由
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"]
AI智能体应将用户请求路由至正确指令:
参数验证AI智能体在调用前应验证参数,需参考skill.json
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多项检查清单涵盖8大类别,助您获得全面优化的简历
参数:
| 名称 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
resume_content | 字符串 | ✅ | — | 简历文本(纯文本或Markdown格式) |
language | 字符串 | — | en | en表示英语,zh表示中文 |
您将获得:
- 每项检查(联系方式、个人总结、工作经历、教育背景、技能、语法、格式、ATS)的✅/❌/⚠️ 结果清单
- 一份经过全面润色、包含强力行动动词和量化成果的完整简历
- 按优先级分类的变更摘要:🔴 关键 → 🟡 重要 → 🟢 次要 → 💡 建议
- 行动动词参考表与量化指南
/resume customize
为一份特定的职位发布定制您的简历
包含差距分析和关键词优化。
| 参数: | 名称 | 类型 | 必需 | 默认值 |
|---|---|---|---|---|
描述 | resume_content | 字符串 | ✅ | — |
简历文本 | job_description | 字符串 | ✅ | — |
目标职位描述或职位名称 | language | 字符串 | en | en用于英语,zh用于中文 |
您将获得:
- 职位描述分解(必备技能、优先技能、职责、关键词)
- 差距分析矩阵,将每个要求与您的简历进行映射
- 定制的简历,关键词自然融入其中
- 关键词覆盖报告:修改前 vs. 修改后
- 额外福利:求职信要点 + 面试准备笔记
/简历 导出
将您的简历转换为Word、Markdown、HTML、LaTeX 或 PDF 格式并提供专业模板。
参数:
| 名称 | 类型 | 必需 | 默认值 | 描述 |
|---|---|---|---|---|
简历内容 | 字符串 | ✅ | — | 简历文本(优先Markdown格式) |
格式 | 字符串 | ✅ | — | Word|Markdown|HTML|LaTeX|PDF |
模板 | 字符串 | — | 专业型 | 专业型|现代型|极简型|学术型 |
模板:
| 模板 | 风格 | 最适合 |
|---|---|---|
专业型 | 海军蓝色,衬线标题,经典边框 | 金融、咨询、法律、医疗 |
现代型 | 蓝绿色点缀,创意布局,表情符号图标 | 科技、初创公司、产品、市场营销 |
极简型 | 单色系,极度简洁,内容密集 | 资深专业人士、工程领域 |
学术型 | 正式衬线字体,多页,出版物风格 | 教职人员、研究、博士申请 |
导出详情:
- HTML:包含嵌入式CSS的独立文件,4种配色主题,
@media print已优化 - LaTeX:完整可编译的
.tex使用XeLaTeX并支持CJK - Word文档:采用Pandoc优化的Markdown格式,包含YAML前置元数据及转换命令
- PDF文档:针对打印优化的HTML格式,采用A4页面尺寸,支持多种转换方法
- Markdown文档:结构清晰、格式规范,便于版本控制
/简历评分
获取百分制专业评估并提供具体改进建议。
参数说明:
| 参数名称 | 参数类型 | 是否必需 | 默认值 | 描述 |
|---|---|---|---|---|
resume_content | 字符串 | ✅ | — | 简历文本内容 |
target_role | 字符串 | — | — | 适合度评估的目标职位 |
语言 | 字符串 | — | 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大优势
- 按优先级排序的改进建议,包含修改前 → 修改后改写示例
- 职位匹配度评估(若提供目标职位):匹配分数、竞争力百分位、优势、差距
- 含工作量预估的5步行动计划
推荐工作流程
┌──────────────────────────────────────────────────────┐
│ 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" │
│ │
└──────────────────────────────────────────────────────┘
提示:
- 从获取评分开始——如果您已有简历,先了解您的基准水平
- 然后进行优化在针对具体职位进行定制之前,先完善所有基础内容
- 定制为每个申请单独定制——通用的模板不适用
- 导出最后一步——先完善内容,再调整格式
- 使用Markdown作为你的工作格式——它可以清晰地转换为所有其他格式
- 再次评分在润色和定制后,用以衡量改进效果
项目结构
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
语言支持
| 语言 | 代码 | 功能 |
|---|---|---|
| 英语 | en | 完全支持,遵循美式/英式惯例 |
| 中文 | zh | 完全支持,遵循中英文混排规范,支持CJK导出 |
配置
| 键 | 值 | 描述 |
|---|---|---|
最大简历长度 | 10,000 字符 | 最大输入长度 |
支持的语言 | 英语,中文 | 可用语言 |
支持的导出格式 | Word、Markdown、HTML、LaTeX、PDF | 可用导出格式 |
| scats |


微信扫一扫,打赏作者吧~