9.5 KiB
Режим: oferta — Повна оцінка A-F
Коли кандидат вставляє вакансію (текст або URL), ЗАВЖДИ видати 6 блоків:
Крок 0 — Визначення архетипу
Класифікувати вакансію за одним з архетипів (див. _shared.md). Якщо гібрид — вказати 2 найближчих. Це визначає:
- Які proof points пріоритизувати в блоці B
- Як переписати summary в блоці E
- Які історії STAR готувати в блоці F
Блок A — Резюме ролі
Таблиця з:
- Визначений архетип
- Domain (platform/agentic/LLMOps/ML/enterprise/backend/frontend/devops)
- Function (build/consult/manage/deploy)
- Seniority
- Формат роботи (віддалено/гібрид/офіс)
- Розмір команди (якщо вказано)
- Оформлення (ФОП / КЗпП / ГПД / Дія City — якщо вказано)
- TL;DR в 1 реченні
Блок B — Збіг з CV
Прочитати cv.md. Створити таблицю: кожна вимога JD → точні рядки CV.
Адаптовано під архетип:
- Якщо FDE → пріоритизувати proof points швидкої поставки та клієнтської роботи
- Якщо SA → пріоритизувати системний дизайн та інтеграції
- Якщо PM → пріоритизувати product discovery та метрики
- Якщо LLMOps → пріоритизувати evals, observability, pipelines
- Якщо Agentic → пріоритизувати мульти-агент, HITL, оркестрацію
- Якщо Backend → пріоритизувати highload, мікросервіси, масштабування
- Якщо DevOps/SRE → пріоритизувати інфраструктуру, CI/CD, моніторинг
Розділ прогалин зі стратегією закриття кожної:
- Це hard blocker чи nice-to-have?
- Чи може кандидат продемонструвати суміжний досвід?
- Чи є портфоліо-проєкт, що закриває цю прогалину?
- Конкретний план закриття (фраза для супровідного листа, швидкий проєкт тощо)
Блок C — Рівень і стратегія
- Рівень у JD vs природний рівень кандидата для цього архетипу
- План "продати senior без обману": конкретні фрази, адаптовані під архетип, досягнення для акценту, як позиціонувати досвід
- План "якщо знизять рівень": прийняти якщо компенсація справедлива, домовитися про перегляд через 6 місяців, чіткі критерії зростання
Блок D — Компенсація та попит
Використовувати WebSearch для:
- Актуальні зарплати за роллю (DOU.ua/salaries, djinni.co/salaries, Glassdoor, Levels.fyi, Blind)
- Репутація компанії щодо компенсації
- Тренд попиту на роль
- Валюта: уточнити USD чи UAH; для ФОП — net чи gross
Таблиця з даними та цитуванням джерел. Якщо даних немає — сказати про це замість вигадування.
Специфіка України:
- Зарплати в українському ІТ переважно в USD (навіть для ФОП)
- Для ФОП 3-тя група: net ≈ gross × 0.95 (5% єдиний податок) + ЄСВ (~1760 грн/міс)
- Для штатних: net ≈ gross × 0.77 (ПДФО 18% + військовий збір 5%)
- Врахувати бенефіти: медстрахування, навчання, обладнання
- Оформлення: КЗпП/Дія City дають більше гарантій, ніж звичайний ФОП
Блок E — План персоналізації
| # | Розділ | Поточний стан | Пропонована зміна | Чому |
|---|---|---|---|---|
| 1 | Summary | ... | ... | ... |
| ... | ... | ... | ... | ... |
Топ 5 змін CV + Топ 5 змін у LinkedIn/DOU для максимального збігу.
Блок F — План співбесід
6-10 історій STAR+R, прив'язаних до вимог JD (STAR + Рефлексія):
| # | Вимога JD | Історія STAR+R | С | З | Д | Р | Рефлексія |
|---|
Стовпець Рефлексія фіксує, що було вивчено або що можна було б зробити інакше. Це сигнал сеньйорності — джуніори описують що сталося, сеньйори витягують уроки.
Банк історій: Якщо interview-prep/story-bank.md існує, перевірити, чи є там ці історії. Якщо ні — додати нові. З часом це формує банк з 5-10 майстер-історій для будь-якого питання на співбесіді.
Підібрані й обрамлені за архетипом:
- FDE → акцент на швидкості поставки та клієнтській роботі
- SA → акцент на архітектурних рішеннях
- PM → акцент на discovery та trade-offs
- Backend → акцент на highload, масштабуванні, надійності
- DevOps → акцент на автоматизації, інцидентах, reliability
Включити також:
- 1 рекомендований кейс (який проєкт представити і як)
- Питання-пастки та як на них відповідати (напр.: "Чому пішли з попереднього місця?", "Чому вирішили змінити стек?")
Пост-оцінка
ЗАВЖДИ після генерації блоків A-F:
1. Зберегти звіт .md
Зберегти повну оцінку в reports/{###}-{company-slug}-{YYYY-MM-DD}.md.
{###}= наступний порядковий номер (3 цифри, zero-padded). Щоб виділити цей номер атомарно та уникнути станів гонки, ви ПОВИННІ виконатиnode reserve-report-num.mjsдля резервування номера (stdout поверне{###}), записати звіт, а потім виконатиnode reserve-report-num.mjs --release {###}для звільнення маркера (sentinel).{company-slug}= назва компанії: lowercase, пробіли замінити на-, прибрати спецсимволи (наприклад,Acme Corp→acme-corp){YYYY-MM-DD}= поточна дата
Формат звіту:
# Оцінка: {Компанія} — {Роль}
**Дата:** {YYYY-MM-DD}
**Архетип:** {визначений}
**Бал:** {X/5}
**Легітимність:** {tier}
**URL:** {посилання на вакансію}
**PDF:** {шлях або "очікується"}
---
## A) Резюме ролі
(повний вміст блоку A)
## B) Збіг з CV
(повний вміст блоку B)
## C) Рівень і стратегія
(повний вміст блоку C)
## D) Компенсація та попит
(повний вміст блоку D)
## E) План персоналізації
(повний вміст блоку E)
## F) План співбесід
(повний вміст блоку F)
## G) Чернетки відповідей на форму
(тільки якщо бал >= 4.5 — чернетки відповідей для форми відгуку)
---
## Витягнуті ключові слова
(список з 15-20 keywords з JD для ATS-оптимізації)
2. Зареєструвати в трекері
Для нового запису не редагувати data/applications.md напряму. Замість цього записати один TSV-рядок у batch/tracker-additions/{num}-{company-slug}.tsv з 8 або 9 колонками через табуляцію:
{num}\t{date}\t{company}\t{role}\t{status}\t{score}\t{pdf_emoji}\t[{num}](reports/{num}-{slug}-{date}.md)\t{note}
{num}= наступний порядковий номер (ціле число, обчислити зreports/){status}=Evaluated{score}= форматX.X/5(наприклад,4.2/5){pdf_emoji}=✅або❌{note}= короткий коментар (опціонально, колонку можна опустити)
Потім виконати node merge-tracker.mjs для злиття в data/applications.md.
Для існуючого запису допустиме пряме оновлення в data/applications.md (статус, PDF, посилання на звіт).