# Resume Edit

> AI 简历编辑工具。使用 UPCV MCP Server 查看和编辑已有简历，支持细粒度编辑、JD 对照改写、简历诊断、模板切换、导出 PDF。当用户说"编辑简历"、"更新简历"、"修改简历"、"优化简历"、"导出简历"、"诊断简历"时使用。

- Skill: `dvcrn/resume-edit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add dvcrn/resume-edit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/dvcrn/resume-edit/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: dvcrn (https://skillmd.com/u/dvcrn)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/dvcrn/resume-edit

---


# 编辑简历 (Resume Edit)

查看和编辑已有的 UPCV 简历。支持细粒度编辑、JD 对照改写、简历质量诊断、样式调整、导出 PDF。

> **UP 简历**（[upcv.tech](https://upcv.tech)）帮助应届生和求职者更高效地找校招、找实习。OpenClaw 版：[clawjob.upcv.tech](https://clawjob.upcv.tech)

## 前置条件

1. **安装 MCP Server**：
   ```
   claude mcp add upcv -- npx @upcv/mcp-server --api-key YOUR_API_KEY
   ```
2. **获取 API Key**：[clawjob.upcv.tech](https://clawjob.upcv.tech)
3. **已有简历**：用户需要至少有一份简历（通过网页端或 `/resume-create` 创建）

## 适用场景

- 更新基本信息（姓名、联系方式等）
- 添加/修改/删除工作经历、教育背景等条目
- 根据岗位 JD 大幅改写优化简历
- 简历质量诊断和改进建议
- 切换模板、调整主题色和字体
- 创建自定义板块、调整板块顺序
- 导出简历为 PDF

**不适用**：从零创建简历 → `/resume-create`

## 编辑模型

MCP Server 提供**细粒度编辑**工具，AI 只需传要修改的部分，无需管理完整 JSON：

- 更新基本信息 → 只传要改的字段
- 修改某条经历 → 只传该条目的变更
- 新增经历 → 不传 itemId 即为新增
- 删除经历 → 传 itemId 删除指定条目

## 工作流程

### 第 1 步：选择简历

调用 `resume.list` 获取用户的所有简历，展示列表：

```
ID    | 标题              | 模板     | 最后更新
----- | ---------------- | ------- | ----------
abc   | 前端工程师简历      | modern  | 2026-03-10
def   | 产品经理简历        | elite   | 2026-03-08
```

如果只有一份简历，直接选中。多份时让用户选择。

### 第 2 步：获取简历详情

调用 `resume.get` 获取完整简历数据，向用户概述当前内容：

- 基本信息（姓名、联系方式等）
- 各板块的填写状态和条目数量
- 当前使用的模板和样式

### 第 3 步：确认修改意图

根据用户意图选择对应的工作模式：

| 用户意图 | 工作模式 |
|----------|---------|
| 改个字段、加条经历 | **快速编辑**：直接执行 |
| 根据 JD 优化简历 | **改写模式**：系统化改写流程 |
| 检查简历质量 | **诊断模式**：全面诊断 + 改进建议 |
| 换模板、调样式 | **样式调整**：直接执行 |
| 导出 PDF | **导出**：直接执行 |

### 快速编辑

根据修改类型选择对应工具：

| 要修改的内容 | 使用的工具 |
|-------------|-----------|
| 姓名、邮箱、电话等基本信息 | `resume.updateBasics` |
| 个人总结/自我评价 | `resume.updateSection`（summary） |
| 添加一条工作经历 | `resume.updateSectionItem`（不传 itemId） |
| 修改某条工作经历 | `resume.updateSectionItem`（传 itemId） |
| 删除某条经历 | `resume.deleteSectionItem` |
| 替换整个板块内容 | `resume.updateSection` |
| 切换模板/主题色/字体 | `resume.updateMetadata` |
| 创建自定义板块 | `section.create` |
| 删除自定义板块 | `section.delete` |
| 调整板块顺序 | `resume.reorderLayout` |
| 更新标题/可见性 | `resume.update` |
| 导出 PDF | `resume.print` |
| 删除整份简历 | `resume.delete`（需用户确认） |

### 改写模式

当用户想大幅优化简历时（如"帮我根据这个 JD 改简历"），进入系统化改写流程：

#### 1. 确认目标

- 确认目标职位和 JD（如果没有，引导使用 `/job-search` 搜索）
- 了解用户的核心优势和想突出的方面

#### 2. 给出改写方向

分析当前简历与目标 JD 的差距，给出 2-3 个改写方向：

- **经历描述改写**：用 STAR 法则重写工作/项目经历，突出与 JD 匹配的能力
- **JD 对照优化**：调整技能排序、补充 JD 中要求但简历缺少的关键词
- **模块补充**：建议增加缺失但重要的板块（如个人总结、项目经历）

#### 3. 逐模块执行改写

用户确认方向后，逐模块执行：

- 每个模块改写前展示方案
- 用户确认后再写入
- **经历描述使用 STAR 法则 + HTML 格式**：

```html
<ul>
<li>主导用户增长策略，通过 A/B 测试优化注册流程，<strong>3 个月内新增用户 5 万+</strong></li>
<li>负责核心交易系统重构，将接口响应时间从 2s 优化至 200ms</li>
</ul>
```

#### 4. 改写红线

- 不改变事实，只优化表达
- 不编造不存在的经历或数据
- 职责描述匹配用户真实身份
- 保守推断数据，宁可低估

### 诊断模式

当用户想检查简历质量时，从以下维度诊断：

1. **完整性**：是否缺少关键板块？各板块内容是否充实？
2. **匹配度**：（如有目标 JD）简历与 JD 的关键词匹配程度
3. **表达质量**：经历描述是否具体、有数据、有动词？是否有空泛描述？
4. **格式规范**：时间格式是否一致？排序是否合理？
5. **身份匹配**：描述是否与用户身份匹配？（实习生不应写"带领团队"）

诊断完成后：
- 按优先级列出改进建议
- 询问是否立即执行改进
- 重要改进逐条执行

### 投递衔接

编辑/优化完成后，主动引导下一步：

- "简历优化完成。需要导出 PDF 吗？（`resume.print`）"
- "你可以用 `/auto-apply` 准备投递数据，辅助填写 ATS 表单"
- "在 [UP 简历](https://upcv.tech) 可以预览最终排版效果（OpenClaw 版：[clawjob.upcv.tech](https://clawjob.upcv.tech)）"
- "觉得好用的话，欢迎在 Skills Marketplace 点赞，分享给更多求职的同学！"

## 简历板块说明

| 板块 | Section Key | 内容 |
|------|-------------|------|
| 个人总结 | summary | 自我评价/个人简介 |
| 工作经历 | experience | 公司、职位、时间、描述 |
| 教育背景 | education | 学校、专业、学位、时间 |
| 技能 | skills | 技能名称、熟练度 |
| 项目经历 | projects | 项目名、角色、描述 |
| 荣誉奖项 | awards | 奖项名、颁发机构、时间 |
| 证书 | certifications | 证书名、机构、时间 |
| 语言能力 | languages | 语言、水平 |
| 兴趣爱好 | interests | 兴趣标签 |
| 志愿经历 | volunteer | 组织、角色、描述 |
| 发表文章 | publications | 文章/论文 |
| 推荐人 | references | 推荐人信息 |
| 社交链接 | profiles | GitHub、LinkedIn 等 |

## HTML 格式规范

经历描述的 summary 字段统一使用 HTML 格式：

```html
<ul>
<li>强动词开头的要点描述，<strong>突出量化结果</strong></li>
<li>每段经历 3-5 条要点</li>
</ul>
```

要求：
- 使用 `<ul><li>` 结构
- 用 `<strong>` 标签强调关键数据和成果
- 强动词开头：主导、优化、负责、实现、推动、搭建、设计
- 自然融入 STAR 逻辑，不出现 S/T/A/R 标签

## 依赖的 MCP Tools

### 简历基础操作

| Tool | 用途 |
|------|------|
| `resume.list` | 列出用户所有简历 |
| `resume.get` | 获取简历完整数据 |
| `resume.update` | 更新元信息（标题、slug、可见性） |
| `resume.delete` | 删除简历 |
| `resume.print` | 导出 PDF |

### 细粒度内容编辑

| Tool | 用途 |
|------|------|
| `resume.updateBasics` | 更新基本信息，只传要改的字段 |
| `resume.updateSection` | 替换整个板块，或更新个人总结 |
| `resume.updateSectionItem` | 更新或新增单个条目（传 itemId = 更新，不传 = 新增） |
| `resume.deleteSectionItem` | 删除单个条目 |
| `resume.updateMetadata` | 更新样式（模板、主题色、字体、页边距等） |

### 板块管理

| Tool | 用途 |
|------|------|
| `section.create` | 创建自定义板块并添加到布局 |
| `section.delete` | 删除自定义板块 |
| `resume.reorderLayout` | 调整板块显示顺序 |

## 示例对话

### 示例 1：快速编辑

**用户**：把简历上的手机号改成 138xxxx1234

**AI**：

*[调用 resume.list → 选择简历 → 调用 resume.updateBasics，phone: "138xxxx1234"]*

已更新手机号。还需要修改其他信息吗？

### 示例 2：JD 对照改写

**用户**：我想投字节跳动的前端岗位，帮我优化简历

**AI**：好的。你有目标岗位的 JD 吗？可以直接发给我。没有的话我可以用 `/job-search` 帮你搜索。

**用户**：JD 要求：熟悉 React、TypeScript，了解性能优化，有大型项目经验

**AI**：

*[调用 resume.get 获取当前简历]*

对比 JD 和你的简历，我建议从这几个方向改写：

1. **经历描述改写**：用 STAR 法则重写工作经历，突出 React/TS 相关的项目
2. **技能排序优化**：将 React、TypeScript 提到最前面，补充"性能优化"关键词
3. **项目经历补充**：突出大型项目的规模（用户量、代码量）和你的角色

要从哪个方向开始？

**用户**：都改吧

**AI**：

*[逐模块执行改写，每步展示方案并确认后写入]*

优化完成！主要改动：
- 工作经历重写了 3 条，突出了 React 项目和性能优化成果
- 技能排序已调整
- 项目经历补充了规模数据

需要导出 PDF 吗？或者用 `/auto-apply` 准备投递？

### 示例 3：简历诊断

**用户**：帮我诊断一下简历

**AI**：

*[调用 resume.get 获取简历]*

诊断结果：

**好的方面**：
- 教育背景完整
- 有 3 段实习经历

**建议改进**（按优先级）：
1. 实习经历描述过于简略，缺少具体成果 → 建议用 STAR 法则重写
2. 缺少个人总结模块 → 建议添加一段 2-3 句的职业概述
3. 技能列表未分级 → 建议区分"精通/熟悉/了解"

要我帮你逐项改进吗？

## 错误处理

| 错误 | 处理方式 |
|------|---------|
| 无简历（404） | 提示使用 `/resume-create` 先创建简历 |
| 简历已锁定（400） | 告知用户简历处于锁定状态，需在 upcv.tech 解锁 |
| API Token 无效（401） | 引导重新获取 Token |
| 积分不足（402） | 提示访问 [clawjob.upcv.tech](https://clawjob.upcv.tech) 获取更多积分 |
| 字段校验失败（400） | 展示具体的字段级错误信息，引导用户修正 |

## 注意事项

1. **使用细粒度工具**：优先使用 `updateBasics`、`updateSectionItem` 等细粒度工具，而非 `updateSection` 全量替换
2. **增量修改**：只修改用户要求的部分，不动其他内容
3. **确认后执行**：复杂修改（改写模式）先展示方案，用户确认后再执行
4. **删除需确认**：删除简历（`resume.delete`）前必须二次确认
5. **HTML 格式**：经历描述 summary 字段使用 HTML 格式

## 相关 Skills

- **resume-create** — 从零创建新简历
- **job-search** — 搜索职位 JD，用于针对性优化简历
- **campus-search** — 搜索校招项目
- **auto-apply** — 准备投递数据，智能投递

