init
Release Please / release-please (push) Failing after 4m2s
Web CI / web typecheck + build (push) Successful in 3m39s
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 1h1m49s
CodeQL Analysis / Analyze (go) (push) Failing after 1h1m49s

This commit is contained in:
redlineo committed 2026-07-13 10:14:00 +03:00
commit d295c7f139
1527 files changed
+270726

No files matched your search

+111
View File
@@ -0,0 +1,111 @@
# Режим: 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. Оновити статус у `data/applications.md` з "Evaluated" на "Applied"
2. Оновити секцію G звіту фінальними відповідями
3. Запропонувати: `/career-ops contacto` для LinkedIn outreach