Files
santifer--career-ops/modes/ru/oferta.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

166 lines
9.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Режим: 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, ссылка на отчёт).