Files
santifer--career-ops/modes/ua/apply.md
T
wehub-resource-sync d083df1fdb
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 2s
Web CI / web typecheck + build (push) Failing after 1s
Release Please / release-please (push) Failing after 1s
CodeQL Analysis / Analyze (go) (push) Failing after 16s
chore: import upstream snapshot with attribution
2026-07-13 12:02:43 +08:00

6.5 KiB
Raw Blame History

Режим: 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 <report#> Applied (не редагувати таблицю data/applications.md вручну)
  2. Оновити секцію G звіту фінальними відповідями
  3. Запропонувати: /career-ops contacto для LinkedIn outreach