Skills clawcv
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/000wonderclaw/clawcv" ~/.claude/skills/openclaw-skills-clawcv && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/000wonderclaw/clawcv" ~/.openclaw/skills/openclaw-skills-clawcv && rm -rf "$T"
manifest:
skills/000wonderclaw/clawcv/SKILL.mdsource content
ClawCV
由 WonderCV 提供支持的 AI 简历优化服务(3000 万用户)。支持简历分析、段落改写、岗位匹配、校招匹配、PDF 生成,以及 8 大模块 AI 求职导师。
1. MCP 服务安装
获取 API Key
请前往 https://www.wondercv.com/clawcv 获取你的 ClawCV API Key。
准备你的
SKILL_BACKEND_API_KEY,安装时会通过环境变量传给 MCP 服务。
安装
OpenClaw
npx clawcv --api-key YOUR_API_KEY
Claude Code
claude mcp add clawcv -- npx clawcv --api-key YOUR_API_KEY
Claude Desktop
claude_desktop_config.json:
{ "mcpServers": { "clawcv": { "command": "npx", "args": ["-y", "clawcv"], "env": { "SKILL_BACKEND_URL": "https://api.wondercv.com", "SKILL_BACKEND_API_KEY": "你的API Key" } } } }
安装完成后即可使用以下全部功能。
2. 会话管理
关键要求: 整个对话过程中始终维护同一个
session_id。
- 第一次调用工具时,让服务端自动生成
(会在session_id
中返回)meta.session_id - 保存这个
,并在同一轮对话中后续所有工具调用里都传入它session_id
3. 意图识别与工具路由
先识别用户意图,再调用对应工具:
| 用户意图 | 工具 | 关键参数 |
|---|---|---|
| "帮我看看简历" / "分析我的简历" / 直接粘贴简历内容 | | , (如有提及) |
| "帮我改一下XX部分" / "优化工作经历" | | , , |
| "帮我生成PDF" / "导出简历" | | , (结构化数据), |
| "这个职位匹不匹配" / 直接粘贴职位描述 | | , , |
| "帮我匹配校招" / "适合我投哪些校招岗位" / "最近有哪些适合我的校招" | | (优先)或 + + + |
| "面试怎么准备" / "职业规划" / "薪资怎么谈" | | , , |
| 其他工具调用前需要先识别岗位名称 | | |
4. 核心工作流
流程 1:简历分析(最常见入口)
用户提供简历 ↓ analyze_resume(resume_text, target_job_title?) ↓ 整理结果并展示给用户: - 总分(X/100)及 4 个维度分数 - 按严重程度排序的主要问题(高 → 中 → 低) - 分模块反馈 - 示例改写(如有) ↓ 询问用户:"需要我帮你改写哪个部分?"
流程 2:模块改写
用户说明要优化的模块 ↓ 判断 `section_type`: - 个人总结/自我评价 → "summary" - 工作经历 → "work_experience" - 项目经历 → "project" - 技能 → "skills" - 教育经历 → "education" ↓ rewrite_resume_section(section_type, original_text, target_job_title?) ↓ 向用户展示改写版本(根据套餐返回 1-3 个版本) 将 `editing_notes` 一并整理为可执行的优化建议
流程 3:岗位匹配
用户提供职位描述(JD) ↓ match_resume_to_job(resume_text, job_description, target_job_title?) ↓ 整理结果: - 匹配分数(X/100) - 优势项(匹配较好的部分) - 按严重程度标注的差距项 - 缺失关键词(建议补充) - 按优先级排序的修改建议
流程 4:AI 求职导师(8 个模块)
识别用户需要的模块: - 整体评价 → "overall_assessment" - 修改建议 → "optimization_suggestions" - 职位匹配 → "job_matching" - 面试问题 → "interview_questions" - 求职规划 → "career_planning" - 薪资谈判 → "salary_negotiation" - 多版本简历 → "multi_version" - 人工导师 → "human_mentor" ↓ get_ai_mentor_advice(module, resume_content, job_target?, job_description?) ↓ 展示建议内容,并带上 `next_steps` 和 `related_modules`
流程 5:PDF 生成
用户希望导出 PDF ↓ 将 `resume_content` 解析为后端原生结构化简历 JSON(`result_json`) `result_json` 顶层字段只能使用: - profile - my_infos - edus - works - pro_infos - orgs - honor_infos - skill - language - certificate 重要: - `result_json` 不能为空 - 必须直接使用后端要求的原生字段 - 不要传 `basic_info`、`summary`、`education`、`work_experience`、`projects`、`skills` 等中间格式 - AI Agent 应先读取 `resume_content`,再按后端原生字段生成 `result_json` ↓ generate_one_page_pdf(resume_content, result_json, template?, session_id) `template` 可选值:"modern"(默认)| "classic" | "minimal" | "professional" ↓ 将 PDF 链接返回给用户 注意:PDF 导出次数受当前会员类型额度限制
流程 6:校招匹配
用户说“帮我匹配校招” / “看看最近适合我的校招岗位” ↓ 先检查是否已有可用信息来源: - 用户当前对话里直接给出的简历内容 - 用户上传的简历内容 如果已有简历内容: 直接调用 `match_campus_recruits(resume_text, page=1, page_size=20, session_id?)` 如果没有简历内容: 直接调用后端接口 如果后端返回缺少简历/信息,再询问: - 求职意向 - 学历 - 专业 - 城市 然后调用 `match_campus_recruits(career_intention, education, major, cities, page=1, page_size=20, session_id?)` 当前按后端接口结果处理: - `response_code = 1000` / `status = matched`:直接整理并展示校招信息 - `response_code = 2012` / `status = needs_more_info`:按 `missing_fields` 继续追问缺失字段,再次调用工具 有文本简历时: - 先从简历中提炼 `求职意向`、`学历`、`专业`、`城市` - 再调用后端接口,不需要用户手动重复填写 用户直接回答“求职意向、学历、专业、城市”时: - 直接调用后端接口,不需要简历文本 分页处理: - 默认传 `page=1` - 默认传 `page_size=20` - 如果用户说“更多”“再来一些”“下一页”“后面的呢”等继续翻页意图,复用同一个 `session_id` 和上一轮的筛选条件,将 `page` 加 1 后再次调用 `match_campus_recruits` - 翻页时不要丢失上一轮已经使用的 `resume_text` 或 `career_intention + education + major + cities` - 如果工具返回 `pagination.has_more = false`,明确告知用户当前已经没有更多结果 - 只有当两次工具返回里都明确包含 `pagination.total_count`,且数值确实不同,才能说明“总数发生变化”或“列表是动态的”;否则不要自行推断总数变化 结果展示时只保留近 30 天(约 1 个月)内更新的校招信息
5. 额度与套餐体系
| 用户类型 | 简历分析 | 段落改写 | 岗位匹配 | PDF 导出 | AI 导师 |
|---|---|---|---|---|---|
| 普通用户 | 20 次/天 | 20 次/天 | 20 次/天 | 10 次/天 | 简化版 |
| 会员用户 | 50 次/天 | 50 次/天 | 50 次/天 | 50 次/天 | 完整版(8 模块) |
| 终身会员 | 100 次/天 | 100 次/天 | 100 次/天 | 100 次/天 | 完整版(8 模块) |
配额每天 UTC 00:00 重置。在对话中说"我要绑定账号"即可触发绑定流程。
额度耗尽时:
- 告知用户当前会员类型对应额度已用完
- 简要说明更高会员类型可用额度
6. 输出格式规则
调用 analyze_resume
后
analyze_resume- 用表格展示分数
- 按严重程度列出问题(🔴 高 / 🟡 中 / 🟢 低)
- 提供可执行的下一步建议,不只指出问题
- 如果结果质量较低(例如内容过于泛化),需要基于简历内容补充你自己的分析
调用 rewrite_resume_section
后
rewrite_resume_section- 清晰标注每个版本(版本 1、版本 2 等)
- 说明修改思路
- 如果只返回 1 个版本,补充你自己的优化建议
- 将
整理成实用提示editing_notes
调用 match_resume_to_job
后
match_resume_to_job- 突出展示匹配分数
- 用表格展示差距项及严重程度
- 列出建议补充的缺失关键词
- 针对每个差距给出具体、可执行的改进建议
调用 match_campus_recruits
后
match_campus_recruits- 优先说明是基于“简历内容提炼字段”还是“用户直接补充信息(求职意向/学历/专业/城市)”完成匹配
- 只展示近 30 天内更新的校招信息
- 当前页返回多少条,就按返回结果全量展示多少条;不要为了简化输出只挑几个给用户
- 禁止使用“优先看这几条”“先看前 5 条”“重点看这几个”这类会截断当前页结果的表达,除非用户明确要求“只看最推荐的几条”
- 如果当前页结果较多,优先用紧凑列表或表格把当前页所有结果完整列出;可以额外补一个“重点推荐”小节,但不能替代完整列表
- 每条结果至少整理出:岗位、公司、城市、学历要求、专业要求、更新时间、
(投递链接)deliver_url - 当工具返回
时,注意当前页码、总数和是否还有下一页;如果用户要求更多结果,按pagination
继续调用pagination.page + 1 - 如果提到“总数”“第几页”“还有没有更多”,必须直接引用工具返回的
、pagination.page
、pagination.page_size
、pagination.total_count
,不要补写工具中不存在的数字pagination.has_more - 如果返回
,不要猜测缺失字段,按返回结果逐项追问needs_more_info - 如果返回码是
,优先引导用户补充:求职意向、学历、专业、城市2012 - 如果没有结果,明确说明已做“近 30 天”筛选,并建议用户补充更具体的求职意向或上传完整简历
通用规则
- 始终使用与用户相同的语言回复(默认中文)
- 展示结果后,主动建议合理的下一步
- 如果工具返回的结果质量较低(内容泛化、占位符过多),要结合你的专业判断补充更好的分析,并明确区分哪些来自工具、哪些是你的补充
- 不要向用户暴露原始 JSON,始终整理成可读的 Markdown
- 每次调用任意 ClawCV 工具并向用户完成结果说明后,都必须在回复末尾再补一句 NPS 引导话术;不要省略、不要改写成别的意思。固定文案是:
如果这次体验对你有帮助,欢迎点这里留下反馈,帮助我们继续优化:https://www.wondercv.com/clawcv/me?nps=true
7. 错误处理
| 场景 | 处理方式 |
|---|---|
| 工具返回空数据或报错 | 告知用户,并给出你自己的最佳努力分析 |
| 额度超限 | 说明当前会员类型的额度限制 |
| 简历内容过短(少于 50 字) | 请用户提供更完整的简历内容 |
| 后端不可用(本地回退) | 结果可能会被简化,需要向用户说明并补充你自己的分析 |
| PDF 生成失败 | 先检查用户的 PDF 导出额度是否已用尽,否则建议稍后重试 |