# Режим: apply — Асистент відгуку в реальному часі Інтерактивний режим для заповнення форми відгуку в Chrome. Читає екран, завантажує контекст вакансії, генерує персоналізовані відповіді. ## Вимоги - **Краще з Playwright**: Кандидат бачить браузер, Claude взаємодіє зі сторінкою. - **Без Playwright**: Кандидат ділиться скріншотом або вставляє питання вручну. ## Workflow ``` 1. ВИЗНАЧИТИ → Прочитати активну вкладку Chrome (скріншот/URL/заголовок) 2. РОЗПІЗНАТИ → Витягти компанію + роль зі сторінки 3. ЗНАЙТИ → Збіг з існуючими звітами в reports/ 4. ЗАВАНТАЖИТИ → Прочитати повний звіт + секцію G (якщо є) 5. ПОРІВНЯТИ → Роль на екрані збігається з оціненою? Якщо змінилася → попередити 6. АНАЛІЗ → Визначити ВСІ видимі питання форми 7. ГЕНЕРАЦІЯ → Для кожного питання — персоналізована відповідь 8. ПОКАЗАТИ → Відформатовані відповіді для copy-paste 9. СТОП → НІКОЛИ не натискати Submit/Send/Apply. Чекати явного підтвердження від користувача. ``` > **⚠️ Human-in-the-Loop:** Цей режим генерує відповіді та заповнює поля, але НІКОЛИ не відправляє форму. Фінальне рішення про подачу заявки — завжди за користувачем. ## Крок 1 — Визначити вакансію **З Playwright:** Snapshot активної сторінки. Прочитати заголовок, URL, видимий вміст. **Без Playwright:** Попросити кандидата: - Поділитися скріншотом форми - Або вставити питання як текст - Або назвати компанію + роль ## Крок 2 — Знайти контекст 1. Витягти назву компанії та посаду 2. Шукати в `reports/` за назвою компанії (Grep, case-insensitive) 3. Якщо є збіг → завантажити повний звіт 4. Якщо є секція G → завантажити чернетки як базу 5. Якщо НЕМАЄ збігу → попередити та запропонувати запустити auto-pipeline ## Крок 3 — Виявити зміни Якщо роль на екрані відрізняється від оціненої: - **Попередити кандидата**: "Роль змінилася з [X] на [Y]. Переоцінити чи адаптувати відповіді?" - Оновити трекер за потреби ## Крок 4 — Аналізувати питання форми Визначити ВСІ видимі питання: - Поля вільного тексту (супровідний лист, "чому ця роль" тощо) - Випадаючі списки (звідки дізналися, дозвіл на роботу тощо) - Так/Ні (переїзд, віза тощо) - Поля зарплати (діапазон, очікування) - Поля завантаження (резюме, супровідний PDF) ## Крок 5 — Генерувати відповіді Для кожного питання: 1. **Контекст звіту**: Proof points з блоку B, історії STAR з блоку F 2. **Секція G**: Якщо є чернетка — використовувати як базу та покращити 3. **Тон "Я обираю вас"**: Кандидат має варіанти і обирає цю компанію з конкретних причин 4. **Конкретика**: Посилання на щось конкретне з видимого JD 5. **Мова відповідей**: Мовою JD. Для україномовних вакансій — українською. Для англомовних — англійською. **Формат виводу:** ``` ## Відповіді для [Компанія] — [Роль] На основі: Звіт #NNN | Бал: X.X/5 | Архетип: [тип] --- ### 1. [Точне питання з форми] > [Відповідь, готова для copy-paste] ### 2. [Наступне питання] > [Відповідь] ... --- Примітки: - [Спостереження про роль, зміни тощо] - [Пропозиції щодо персоналізації для перевірки кандидатом] ``` ### Специфічні поля українських форм - **Зарплатні очікування**: Вказувати в USD (для ІТ) або UAH, уточнити gross/net та форму оформлення (ФОП/штат) - **Дата початку**: Враховувати відпрацювання (2 тижні за КЗпП, для ФОП — за контрактом) - **Дозвіл на роботу**: Для українців в ЄС — тимчасовий захист (Temporary Protection Directive) - **Мовні навички**: Українська (рідна), англійська (рівень), інші мови - **Готовність до переїзду / timezone**: Уточнити поточну локацію та timezone overlap ## Крок 6 — Після відгуку (тільки після явного підтвердження користувача) **СТОП.** Не продовжувати, поки користувач явно не підтвердить, що він переглянув відповіді та відправив форму самостійно. Якщо кандидат підтвердив відправку: 1. Оновити статус на "Applied" через канонічний CLI: `node set-status.mjs Applied` (не редагувати таблицю `data/applications.md` вручну) 2. Оновити секцію G звіту фінальними відповідями 3. Запропонувати: `/career-ops contacto` для LinkedIn outreach