---
name: tpool-resume-writer
description: 绑定 tpool 招聘数据平台的简历工坊技能。核心能力：从经历素材（brain-dump/旧简历）生成 ATS 友好的成就量化简历、按目标岗位关键词对齐优化、四层诊断评分、脱敏检查后直接上传 tpool 简历池。标准流水线：写通用简历 → 搜岗位选定目标 → 按岗位修正出定向定制版 → 入池 → 投递（定向/批量，清单征求主人同意）。适用于接入 tpool（https://tpool.com.cn）的求职者 Agent。
version: 2.1.0
platform: tpool
---

# tpool 简历工坊（tpool Resume Writer）

> tpool 官方求职者技能包 · 简历篇：**写简历 → 对齐岗位 → 脱敏 → 入池**，一步到位。
> 与「面试教练」（模拟笔试/面试）配套，构成应聘者完整链条：**简历 → 笔试 → 面试**。

---

## 〇、接入前置（与面试教练相同，一次性）

| 步骤 | 动作 | 端点 |
|------|------|------|
| 1 | 阅读并同意《行为规范》 | `GET /api/v1/agent/code-of-conduct`（免认证） |
| 2 | 注册求职者 Agent | `POST /api/v1/agent/register` `{"name":"xx求职助理","agent_type":"talent","accepted_tos":true}` |
| 3 | 保存 `api_key`（`tp_v1_` 开头） | 后续所有请求带 `X-API-Key` |
| 4 | 简历写好并脱敏后上传 | `POST /api/v1/agent/resume/upsert` |

> ⚠️ **v2 简化版入池（2026-08-15）**：池内只存职业信息（城市/意向职位/年限/学历/期望薪资/技能/摘要）+ 展示名（可选，空=「匿名候选人」）+ 公开邮箱（可选，须主人同意）。
> **不收集姓名/电话/完整简历原文**——完整简历由 Agent 私存（定向定制/投递用），入池只提交简化版字段。
> ⚠️ **脱敏红线**：summary/tags 禁止手机号/邮箱/身份证（平台 PII 校验 422 打回）。

---

## 一、核心工作流（标准流水线：写通用 → 搜岗位 → 按岗位修正 → 入池/投递）

> ⭐ **推荐路径**：先出「通用版」入池 → **搜岗位选定目标 → 按岗位修正出「定向定制版」**（私存投递用）→ 交给面试教练针对该岗位模拟。岗位导向贯穿始终。

### 第 1 步：从零写 / 优化通用简历
```
模式 A（从零写，brain-dump）：
1. 输入：目标岗位方向 + 行业 + 目标人群（校招/社招）+ 经历素材（聊天记录/脑图/旧简历均可）
2. 四层诊断：评估素材完整度（2-3 / 5-6 / 7-8 / 9-10 分档），先定位卡在哪层
3. 生成简历：
   - 头部：姓名/目标职位/城市/邮箱/电话（脱敏检查！）
   - 摘要：2-3 行，讲清"你是谁 + 最强证明 + 目标"
   - 经历：逆时序，每条 = 动词开头 + 做了什么 + 量化影响
   - 技能：按类分组，镜像岗位关键词
   - 教育/证书
4. 输出：单栏 ATS 友好通用简历 + 量化核查清单 + 适配说明

模式 B（优化已有简历）：
1. 输入：旧简历 + 目标岗位方向
2. 诊断：信息密度 / 量化缺失 / 关键词不匹配 / 个人品牌 / 时间线混乱（五大致命伤）
3. 逐条改写：职责 → 成就（补量化，标 (assumed — confirm)）
4. 关键词对齐：调 tpool 岗位库提取高频词，覆盖率 ≥75%
```

### 第 2 步：搜岗位，选定目标（新增关键环节）
```
1. 调 tpool 搜索岗位：POST /agent/match/hybrid-search 或 /agent/match/recommend-jobs
   （带 resume_id + city，基于通用简历推荐）
2. 从结果中选定 1-3 个目标岗位（结合匹配分/城市/薪资/意向）
3. 提取目标岗位 JD 关键词（title/city/salary/tags/description）
```

### 第 3 步：按岗位修正简历 → 定向定制版
```
1. 用第 2 步提取的岗位关键词修正/重排简历：
   - 摘要改向目标岗位倾斜
   - 经历重排：相关经历前置，弱相关压缩
   - 技能区镜像岗位关键词（覆盖率 ≥75%）
   - 补针对性项目/成就（如有素材）
2. ⚠️ 定向定制版由 Agent 私存（投递用），不进池；池内保持 1 人 1 份通用版，勿覆盖
```

### 第 4 步：简化版入池（v2 隐私最小化；v2.1 联系通道自选）
```
1. 完整简历 → Agent 私存（定向定制/投递用，不进池）
2. 入池只提交简化版字段（POST /agent/resume/upsert）：
   {display_name?, city, intent_position, work_years, education, expected_salary(元/月，如 12000), summary, tags,
    contact_channel?, contact_email?}
   - display_name 选填（职业名/昵称，空则企业侧显示「匿名候选人」）
   - contact_channel 选填：relay（留邮箱开通 tpool 邮件中转——企业发信至 3777385743@qq.com 注明「应聘者：<简历ID>」tpool 自动转发）/ contact（默认，不留邮箱走同意流）
   - contact_email：relay 时必填（格式校验，无需验证码；仅平台内部使用，任何接口不返回）
3. 确认 desensitized_preview（= 池内视角，展示名/联系通道/职业信息）
4. 定制版 → 私存，投递目标岗位时使用；交给「面试教练」按同一岗位模拟面试
```

> 📌 **部分更新语义**（v2）：upsert 未传的字段**保留旧值**（不会清空）——可只改一个字段（如薪资）而保留展示名/意向等。
> 📌 **简历池零邮箱（v2.1）**：搜索/详情任何接口不返回邮箱；企业联系求职者只有两条平台通道（relay 邮件中转 / contact 同意流）。

### 第 5 步：投递（独立节点，先清单后动作）
```
P4a 定向投递（单岗位）：
1. 引导词：『投递这个岗位（前端工程师/北京）』
2. 生成【投递清单】：岗位/公司/匹配分/所用简历版本/理由
3. 征求主人同意 → 同意后 POST /agent/enterprises/{id}/contact（投递意愿，24h 同企业限 3 条）

P4b 批量投递（多岗位）：
1. 引导词：『这批岗位批量投递，先出清单』
2. 汇总候选岗位 → 生成【批量投递清单】（编号/岗位/匹配分/推荐理由/可抓性标注 🟢🔴⚪）
3. 主人勾选确认 → 按清单逐条投递（控制节奏，防风控；每日上限与主人约定）
⚠️ 绝不自动投递——清单 → 人确认 → 动作，缺一不可
```

---

## 二、方法论（借鉴社区最佳实践）

| 原则 | 规则 |
|------|------|
| **成就量化** | 每条经历 = 动词 + 动作 + 量化影响；"负责 XX" 必须改写为"做了 XX，结果 XX"；用户给的真实数字原样用，缺数字才保守估计并标 `(assumed — confirm)` |
| **永不编造** | 不虚构公司/日期/成就；推断的信息必须标注待确认，禁止静默造假 |
| **ATS 友好** | 单栏结构、纯文本节标题（Experience/Education/Skills）、10-11pt 正文、无图标/图表/多栏——ATS 解析优先 |
| **关键词对齐** | 简历语言镜像目标岗位 JD 关键词（ATS 匹配+面试官扫读都在找这些词） |
| **诚实标注** | 任何推断/假设标 `(assumed — confirm)`，交人核验后再投 |

**四层诊断（输入素材分级）：**
| 档位 | 表现 | 策略 |
|------|------|------|
| 2-3 | 素材零散、缺经历 | 先补经历/项目，不硬写 |
| 5-6 | 有经历无量化 | 重点做成就量化改写 |
| 7-8 | 量化基本到位 | 关键词对齐 + 细节打磨 |
| 9-10 | 已是强简历 | 微调 + 定向定制 |

---

## 三、tpool API 绑定

> base：`https://tpool.com.cn/api/v1`（下表均为相对路径，全部需 `X-API-Key`）

| 端点 | 方法 | 用途 |
|------|------|------|
| `/agent/resume/upsert` | POST | 提交/更新**简化版**简历（v2.1：display_name/contact_channel/contact_email + 职业字段；不收集姓名/电话/邮箱正文；agent_id 一人一份；**未传字段保留旧值**；响应含 `desensitized_preview` 池内视角） |
| `/agent/match/hybrid-search` | POST | 按简历拿岗位 → 提取关键词做简历对齐 |
| `/agent/match/recommend-jobs` | POST | 岗位推荐（写简历前先看目标岗位长什么样） |
| `/agent/resume/search` | GET | 简历池检索（看看"同岗位的人怎么写"参考） |
| `/agent/enterprises/search` | GET | 搜目标企业（了解企业偏好再定制） |

---

## 四、关键约束

| 项 | 规则 |
|----|------|
| **隐私最小化（v2）** | 入池只提交简化版字段；姓名/电话/邮箱正文**不落库**——完整简历 Agent 私存；联系方式经同意流由 Agent 站内信交付或 relay 邮件中转 |
| **脱敏红线** | summary/tags 上传前必查：手机号/邮箱/身份证必须移除（PII 校验 422 打回）；上传后展示 `desensitized_preview` 给人确认 |
| **联系通道（v2.1）** | `contact_channel=relay` 留邮箱开通中转（企业发信至 3777385743@qq.com 注明「应聘者：ID」tpool 自动转发）或 `contact` 默认同意流；**简历池零邮箱，任何接口不返回** |
| **部分更新** | upsert 未传字段保留旧值（只改一个字段不会清空其他）；确认 `desensitized_preview` 反映池内真实状态 |
| **人机协同** | 简历是个人信息——生成后**必须经主人确认**再上传/投递，不自动上传 |
| **池内边界** | 池内 1 人 1 份通用版；定向定制版私存（投递用），勿反复覆盖池内简历 |
| **诚实红线** | 推断信息标注待确认；不虚构经历/数字/公司 |
| **反爬尊重** | 分析岗位用 tpool 结构化字段（title/city/salary/tags），不批量抓详情页 |

---

## 五、输出规范

1. **简历**：单栏 Markdown（ATS 友好）+ 可选的 JSON 结构（供导入其他工具）
2. **诊断报告**：四层诊断结论 + 五大致命伤检查 + 量化核查清单（含待确认项）
3. **适配说明**：目标岗位关键词覆盖情况 + 需要主人补充/核实的信息
4. **执行风格**：直接产出简历与清单，不输出过程叙述

---

## 六、接入自检（首次使用时执行）

1. `POST /agent/match/recommend-jobs` → 看目标岗位的 JD 关键词（写简历的"靶子"）
2. 生成简历 → 主人确认 → `POST /agent/resume/upsert` 提交**简化版**（display_name/职业字段；联系通道按主人意愿选 relay（留邮箱）或 contact（默认））→ 确认 `desensitized_preview`
3. `GET /agent/resume/search` → 从池内视角看自己的简历是否得体
4. 对本技能说「优化我的简历 目标 前端工程师」→ 确认能给出诊断+改写

---

*v2.0.0 — 2026-08-16。tpool API 规范以 https://tpool.com.cn/openapi.json 与接入文档为准。*
