# モード: oubo -- 応募ライブアシスタント

候補者がブラウザで応募フォームを記入しているときのインタラクティブモード。画面に表示されている内容を読み取り、事前評価のコンテキストを読み込み、フォームの各質問にパーソナライズされた回答を生成する。

## 要件

- **Playwright が表示されている場合が最適**：候補者がブラウザを見れて、Claude がページとインタラクトできる。
- **Playwright なし**：候補者がスクリーンショットを共有するか、質問を手動で貼り付ける。

## ワークフロー

```
1. 検出    → Chrome のアクティブタブを読む（スクリーンショット/URL/タイトル）
2. 特定    → ページから企業名 + 求人を抽出
3. 検索    → reports/ 内の既存レポートとマッチング
4. 読込    → 完全なレポート + ブロック G（存在する場合）を読み込む
5. 比較    → 画面の求人は評価済みのものと一致するか？変更されていれば → 通知
6. 分析    → フォームに表示されているすべての質問を特定
7. 生成    → 各質問に対してパーソナライズされた回答を生成
8. 提示    → コピペ用にフォーマットされた回答を表示
```

## ステップ 1 -- 求人を検出

**Playwright あり：** アクティブページのスナップショットを取得。タイトル、URL、表示内容を読む。

**Playwright なし：** 候補者に以下を依頼：
- フォームのスクリーンショットを共有（Read tool で画像を読める）
- またはフォームの質問をテキストとして貼り付け
- または企業名 + 求人を伝えてもらってコンテキストを検索

## ステップ 2 -- コンテキストの特定と検索

1. ページから企業名と求人タイトルを抽出
2. `reports/` 内で企業名を検索（Grep、大文字小文字区別なし）
3. マッチあり → 完全なレポートを読み込む
4. ブロック G あり → 以前の回答下書きをベースとして読み込む
5. マッチなし → 通知し、クイック auto-pipeline の実行を提案

## ステップ 3 -- 求人の変更を検出

画面の求人が評価済みのものと異なる場合：
- **候補者に通知：**「求人が [X] から [Y] に変更されています。再評価しますか、それとも新しいタイトルに回答を適応させますか？」
- **適応する場合：** 再評価せず新しいタイトルに回答を調整
- **再評価する場合：** 完全評価 A-F を実行、レポートを更新、ブロック G を再生成
- **tracker を更新：** 必要に応じて `applications.md` の求人タイトルを変更

## ステップ 4 -- フォームの質問を分析

表示されているすべての質問を特定：
- 自由テキスト欄（志望動機、この求人に応募する理由、モチベーションなど）
- ドロップダウン（この求人をどこで知ったか、就労資格など）
- はい/いいえ（転居、ビザ、稼働開始時期など）
- 給与欄（希望年収、給与レンジ）
- アップロード欄（履歴書、カバーレター PDF）

各質問を分類：
- **ブロック G で回答済み** → 既存の回答を適応
- **新しい質問** → レポート + `cv.md` から回答を生成

## ステップ 5 -- 回答を生成

各質問について、以下に従って回答を生成：

1. **レポートのコンテキスト**：ブロック B の proof point、ブロック F の STAR ストーリーを使用
2. **以前のブロック G**：下書きがあればベースとして使い、洗練する
3. **「御社を選んでいる」トーン**：auto-pipeline と同じフレームワーク — 自信を持って、卑屈にならない
4. **具体性**：画面に見える JD の具体的な内容を参照
5. **career-ops の proof point**：「追加情報」欄があれば含める

**日本市場で頻出するフォーム特有の質問：**
- **希望年収（月額/年額、税込み）** → `profile.yml` のレンジを日本円で、「パッケージ全体に応じて応相談」と注記
- **雇用形態の希望（正社員/業務委託）** → `profile.yml` に従って回答、または該当する場合は「どちらも対応可能」
- **稼働開始可能日** → 現在の退職予告期間を考慮した現実的な日付（正社員：通常 1-2 ヶ月）
- **就労資格** → 明確に回答。日本人の場合：「日本国籍、就労資格は不要」
- **語学力** → 言語ごとにレベルを記載（ネイティブ、ビジネスレベル、日常会話レベル、初級）
- **転居の可否** → `profile.yml` のロケーション設定に従って回答

**出力フォーマット：**

```
## [企業名] -- [求人タイトル] への回答

ベース: Report #NNN | スコア: X.X/5 | アーキタイプ: [タイプ]

---

### 1. [フォームの質問（原文）]
> [コピペ用の回答]

### 2. [次の質問]
> [回答]

...

---

注記:
- [求人に関する所見、変更点など]
- [候補者がレビューすべきパーソナライゼーションの提案]
```

## ステップ 6 -- 応募後（任意）

候補者が応募を送信したことを確認した場合：
1. `applications.md` のステータスを「Evaluated」から「Applied」に更新
2. レポートのブロック G を最終回答で更新
3. 次のステップを提案：LinkedIn アウトリーチ用に `/career-ops contacto`

## スクロール対応

フォームの質問が表示範囲を超える場合：
- 候補者にスクロールして別のスクリーンショットを共有してもらう
- または残りの質問を貼り付けてもらう
- フォーム全体をカバーするまで繰り返し処理
