# 模式: apply — 实时表单填写助手

当候选人在 Chrome 浏览器中填写职位投递表单时，此实时助手能读取当前屏幕内容、调取该职位的历史评估报告，并为表单中的每一个开放性或选择性问题生成个性化的高质量回答草稿。

## 运行要求

- **首选使用 Playwright 显式模式**：在此模式下，候选人能直观看到浏览器窗口，且 AI 助手能够直接与表单页面进行元素交互和状态提取。
- **不使用 Playwright 时**：候选人需要提供包含表单问题的截图，或者手动将表单问题复制粘贴发送给助手。

## 实时工作流

```text
1. 捕获 (DETECT)    → 读取当前 Chrome 活动标签页 (截图/URL/网页标题)
2. 识别 (IDENTIFY)  → 从页面中提取公司名称与职位名称
3. 检索 (SEARCH)    → 匹配 reports/ 目录下已保存的评估报告
4. 载入 (LOAD)      → 读取对应的评估报告及 H 部分的拟答草稿 (若存在)
5. 校准 (COMPARE)   → 比对当前屏幕上的职位是否与之前评估的职位完全一致。若有变动，进行提示
6. 解析 (ANALYZE)   → 识别出页面上所有可见的表单提问输入框
7. 生成 (GENERATE)  → 结合报告背景与简历 cv.md，为每个问题生成定制草稿
8. 呈现 (PRESENT)   → 输出可供直接复制粘贴的格式化文本
```

---

## 步骤 1 — 捕获当前职位表单

**使用 Playwright**：对活动页面进行快照截图，并读取网页标题、URL 以及页面主体文本。

**不使用 Playwright**：提示候选人执行以下操作之一：
- 发送当前表单页面的屏幕截图（Read 工具能识别并分析图片）。
- 手动复制表单上的问题并贴在对话框中。
- 直接说出公司名称与职位名称，以便助手从本地历史中搜索。

---

## 步骤 2 — 检索历史报告

1. 提取屏幕或输入信息中的公司名称与职位名称。
2. 在 `reports/` 目录下搜索对应的评估报告文件（执行大小写不敏感的模糊检索）。
3. 如果匹配成功，载入完整的评估报告内容。
4. 检查报告中是否有“维度 H (开放性问题拟答草稿)”，如果有，将其作为回答的基础模板。
5. 如果未匹配到任何历史报告，告知候选人，并询问是否需要针对此链接快速运行一次 `auto-pipeline` 自动评估流程。

---

## 步骤 3 — 校验岗位一致性

如果表单上显示的职位细节（如职级、所属部门）与历史报告存在偏差：
- **向候选人进行提示**：表现为：“检测到当前的职位已从 [X] 变为 [Y]。需要我重新为您进行一次快速评估，还是直接在当前话术基础上微调适配新职位？”
- **若选择微调适配**：直接根据新职位名称调整生成词汇，不重新打分。
- **若选择重新评估**：运行完整的 A-G 评估，生成新报告并覆盖旧报告。
- **更新 Tracker**：如果需要，在 `applications.md` 中同步更新该行记录的职位名称。

---

## 步骤 4 — 分析表单问答框

定位并解析当前页面上所有的表单输入项：
- 开放性问答框（如“你为什么想加入我们？”、“描述一次你解决棘手技术问题的经历”等）。
- 下拉选择框（如求职渠道、是否需要工作签证支持等）。
- 单选/复选框（如是否接受出差、地点偏好等）。
- 薪资期望框（期望范围、薪酬构成）。
- 文件上传框（上传简历 PDF、自荐信 PDF）。

对每个问题进行归类：
- **已在维度 H 中有拟答** → 提取并根据当前表单的精细要求进行润色。
- **新提问** → 根据报告背景分析、STAR故事及 `cv.md` 的量化指标现场撰写。

---

## 步骤 5 — 生成定制答案

在生成每个问题的回答草稿时，必须严格遵守以下原则：

1. **立足报告背景**：融入维度 B 的量化成果佐证与维度 F 的 STAR 面试故事。
2. **调和声线风格**：如果 `_profile.md` 中已经配置了候选人的 `## 写作风格`，必须以候选人的口吻进行语气拟合。
3. **“双向奔赴”的语气**：回答既表现出对该职位的浓厚兴趣，又通过具体指标展现出解决他们核心痛点的能力。
4. **细节决定成败**：在段落中提及 JD 里提到的具体系统架构或业务模式，证明自己认真研究过该岗位。

**输出格式示例：**

```text
## [公司名称] — [职位名称] 表单拟答草稿

关联报告: #NNN | 综合评分: X.X/5 | 检测画像: [类型]

---

### 问题 1: [表单上的原始问题描述]
> [为候选人准备的无缝复制粘贴的精修中文/英文回答]

### 问题 2: [表单上的下一个原始问题描述]
> [回答]

...

---

投递建议提示：
- [此处填入需要候选人手动确认的个人信息，例如期望薪资、最早入职时间等]
- [提醒候选人在此处上传之前定制好的简历 PDF]
```

---

## 步骤 6 — 投递后动作

当候选人确认已经成功点击“提交申请/投递”后，执行以下清理与建档工作：
1. 将 `data/applications.md` 中该职位的状态从 `Evaluated` 修改更新为 `Applied`。
2. 将最终实际提交的表单回答归档并更新至该报告的维度 H 模块中，以便后续面试对照。
3. 推荐下一步行动：引导候选人使用 `/career-ops contacto` 指令生成 LinkedIn 招聘负责人直达勾兑话术。

---

## 长表单滚动处理

如果表单提问较多，单次截图无法完整覆盖：
- 指导候选人向下滚动页面，并发送下一部分的截图或文本。
- 采用迭代处理模式，逐屏识别并记录问答项，直至表单所有问题处理完毕。
