# Режим: 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
- Формат работы (удалённо/гибрид/офис)
- Размер команды (если указано)
- Оформление (ТК РФ / ГПХ / самозанятость — если указано)
- 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, мониторинг

Раздел **пробелов** со стратегией закрытия каждого:
1. Это hard blocker или nice-to-have?
2. Может ли кандидат продемонстрировать смежный опыт?
3. Есть ли портфолио-проект, закрывающий этот пробел?
4. Конкретный план закрытия (фраза для сопроводительного, быстрый проект и т.д.)

## Блок C — Уровень и стратегия

1. **Уровень в JD** vs **естественный уровень кандидата для этого архетипа**
2. **План "продать senior без обмана"**: конкретные фразы, адаптированные под архетип, достижения для акцента, как позиционировать опыт
3. **План "если понизят уровень"**: принять если компенсация справедлива, договориться о пересмотре через 6 месяцев, чёткие критерии роста

## Блок D — Компенсация и спрос

Использовать WebSearch для:
- Актуальные зарплаты по роли (habr.com/salary, hh.ru/salary, Glassdoor, Levels.fyi, Blind)
- Репутация компании по компенсации
- Тренд спроса на роль
- **Gross vs Net**: уточнить, что указано в JD (до вычета НДФЛ 13% или на руки)

Таблица с данными и цитированием источников. Если данных нет — сказать об этом вместо выдумывания.

**Специфика РФ:**
- Если зарплата указана gross → показать приблизительный net: `net ≈ gross × 0.87` (стандартный НДФЛ 13%; реальная ставка может отличаться)
- Учесть бенефиты: ДМС, питание, спорт, обучение
- Оформление: ТК РФ даёт больше гарантий, чем ГПХ/самозанятость

## Блок E — План персонализации

| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | ... | ... | ... |
| ... | ... | ... | ... | ... |

Топ 5 изменений CV + Топ 5 изменений в LinkedIn/hh.ru для максимального совпадения.

## Блок F — План собеседований

6-10 историй STAR+R, привязанных к требованиям JD (STAR + **Reflection**):

| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---------------|----------------|---|---|---|---|------------|

Столбец **Reflection** фиксирует, что было изучено или что можно было бы сделать иначе. Это сигнал сеньорности — джуниоры описывают что произошло, сеньоры извлекают уроки.

**Банк историй:** Если `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}` = текущая дата

**Формат отчёта:**

```markdown
# Оценка: {Компания} — {Роль}

**Дата:** {YYYY-MM-DD}
**Архетип:** {определённый}
**Балл:** {X/5}
**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, ссылка на отчёт).
