Files
claude-skills/resume-ru/SKILL.md
T

370 lines
21 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.
---
name: resume-ru
description: >
Составление, рецензирование и адаптация резюме и сопроводительных писем
под российский рынок труда (hh.ru, Habr Career) с учётом ATS-РФ и реалий
2026 года. Многостадийный процесс: разбор резюме и вакансии, gap-анализ,
стратегические вопросы, оптимизация под ATS и поиск рекрутёра, скоринг,
вывод в PDF/DOCX. Используй этот скилл ВСЕГДА, когда речь идёт о: создании
или обновлении резюме/CV, рецензировании и улучшении резюме, адаптации
резюме под конкретную вакансию, прохождении ATS- или hh-фильтров, подборе
ключевых навыков под запрос рекрутёра, написании или правке
сопроводительного письма, удалении из резюме «воды» и канцелярита, оценке
резюме глазами рекрутёра, или когда пользователь упоминает «резюме»,
«резюме под вакансию», «CV», «hh.ru», «хедхантер», «хх», «Habr Career»,
«отклик на вакансию», «сопроводительное письмо», «ключевые навыки»,
«составь/проверь/адаптируй резюме», «пройти ATS», «карьерный консультант».
Базовая локаль — Россия (структура hh-резюме, зарплатные ожидания,
анти-канцелярит, ATS-системы РФ, защита от «нейросетевого» вида текста).
Работает для любых специальностей (IT, инженерия, 1С, менеджмент, рабочие
профессии).
user-invocable: true
---
# Резюме РФ
Многостадийный скилл: превращает резюме в адаптированный под конкретную
вакансию документ, оптимизированный под ATS и поиск рекрутёра на hh.ru.
Базовая и единственная локаль — **Россия** (2026). Для двуязычных/западных
резюме существует исходный плагин — см. `ATTRIBUTION.md`.
## Справочные файлы
Читать на соответствующих стадиях — в них правила, конвенции и шаблоны:
- `references/ats-rules-ru.md` — ATS-РФ, правила формата, ключевые слова,
формула скоринга, анти-паттерны.
- `references/locale-ru.md` — конвенции резюме РФ (2026).
- `references/hh-ru.md` — специфика hh.ru и Habr Career.
- `references/anti-cliche-ru.md` — анти-канцелярит и сильные глаголы.
- `references/anti-ai-fingerprint.md` — чтобы текст не выглядел «нейросетевым».
- `references/section-templates-ru.md` — шаблоны разделов и сопроводительного.
- `references/html-template-ru.html` — HTML-шаблон для PDF через weasyprint.
## Мастер-профиль
Расположение: `docs/resume/master-profile.md`
Мастер-профиль — это полное хранилище карьерных данных (все роли, метрики,
навыки, контекст переходов). Это НЕ готовое резюме. Скилл адаптирует резюме
ИЗ мастер-профиля под каждую вакансию.
- Если мастер-профиль есть — использовать как основной источник.
- Если нет — построить его из присланного резюме при первом запуске.
- После каждой сессии — предложить дополнить его новой информацией.
Структура мастер-профиля:
```
# Мастер-профиль
## Контакты (ФИО, email, телефон, Telegram, город)
## Карьерный нарратив (сырой, неформатированный — полная история)
## Схема видимости (определения enum и известные варианты)
## Роли (для каждой: Видимость, Варианты, контекст компании, должность,
даты, размер/структура команды, обязанности, достижения с метриками,
технологии)
## Образование (с Видимостью)
## Сертификаты
## Инвентарь навыков (полный, не отфильтрованный)
## Языки
## Заметки (пробелы, пет-проекты, консалтинг и т. п.)
```
### Система видимости
У каждой роли/раздела может быть поле `Видимость`. Если полей нет — считать
все роли `always`.
| Значение | Смысл | Поведение |
|---|---|---|
| `always` | Во всех вариантах резюме | Всегда рассматривать к включению |
| `variant-specific` | Только в вариантах из поля `Варианты` | Включать, если целевой вариант совпал или пользователь явно попросил |
| `on-request` | Никогда без явной просьбы | По умолчанию пропускать |
| `reference-only` | Псевдоним/метаданные | Никогда не включать в вывод |
### Правила разрешения видимости
1. **Определить целевой вариант** — из запроса, домена вакансии или спросить.
Пользователь может задать исключение («без варианта X»).
2. **Отфильтровать роли:** `always` → включить; `variant-specific` → только
при совпадении варианта; `on-request` → пропустить, если не названа явно;
`reference-only` → никогда.
3. **Образование, сертификаты, языки** — уважать их `Видимость` так же.
4. **Решение пользователя приоритетно.**
---
## Рабочий процесс
```
СТАДИЯ 0: Сбор входных данных
|
СТАДИЯ 1: Разбор и анализ (через subagent)
|
СТАДИЯ 1.5: Фидбэк по резюме (пользователю)
|
СТАДИЯ 2: Стратегические вопросы (AskUserQuestion)
|
СТАДИЯ 3: Оптимизация под ATS и адаптация
|
СТАДИЯ 4: Черновик (.md)
|
СТАДИЯ 5: Ревью и итерации
|
СТАДИЯ 6: Финальный вывод (PDF/DOCX + опц. сопроводительное)
```
---
## СТАДИЯ 0: Сбор входных данных
### Резюме
```
ЕСЛИ в аргументах путь к файлу (PDF/MD/TXT): прочитать файл
ИНАЧЕ ЕСЛИ есть docs/resume/master-profile.md: прочитать, подтвердить с
пользователем «Использую ваш мастер-профиль как основу. Верно?»
ИНАЧЕ: попросить резюме (текст, путь к файлу или PDF).
```
### Вакансия
```
ЕСЛИ в аргументах URL: WebFetch, извлечь название, компанию, требования,
обязанности, квалификацию. Если контента мало — попросить вставить текст.
ИНАЧЕ ЕСЛИ вставлен текст: разобрать напрямую.
ИНАЧЕ: попросить описание вакансии (текст или URL).
```
### Первый запуск: создание мастер-профиля
Если профиля нет, а резюме передано — построить мастер-профиль по структуре
выше, сохранить в `docs/resume/master-profile.md`, сообщить пользователю.
---
## СТАДИЯ 1: Разбор и анализ
**Использовать subagent** — чтобы защитить основной контекст от тяжёлого
парсинга. Subagent получает сырой текст резюме/профиля и вакансии и
возвращает:
**Из резюме:** роли (должность, компания, даты, достижения с метриками,
технологии); инвентарь навыков; образование и сертификаты; карьерную линию.
**Из вакансии:** компанию и контекст; целевую должность и грейд; обязательные
навыки (must-have); желательные (nice-to-have); ключевые обязанности; домен;
неявные требования (между строк).
**Gap-анализ:** сильные совпадения; частичные (можно переформулировать);
пробелы; отличительные преимущества; красные флаги (пересечения дат,
необъяснённые перерывы, нестыковки должностей).
---
## СТАДИЯ 1.5: Фидбэк по резюме
**Показать анализ пользователю до стратегических вопросов.** Формат:
```
## Анализ резюме под [роль] в [компания]
### Сильные стороны (что работает на эту роль)
- [конкретно, привязано к требованию вакансии]
### Что исправить
- [конкретная проблема + действие]
### Gap-анализ против вакансии
| Требование вакансии | Покрытие в резюме | Статус |
|---|---|---|
| [навык/опыт] | [где есть или «не найдено»] | Совпадение / Частично / Пробел |
### Красные флаги (если есть)
- [пересечения дат, перерывы, нестыковки — только если реально есть]
### Рекомендации
- [конкретное действие, привязанное к вакансии]
```
Правила: конкретика, а не общие советы; каждое наблюдение привязано к
вакансии; флагать только реальные проблемы; отличать структурные проблемы
(всегда чинить) от контентных (под эту вакансию). Если у профиля есть поля
Видимости — отдельным блоком показать исключённые роли и причину.
---
## СТАДИЯ 2: Стратегические вопросы
Задать 3–5 вопросов через AskUserQuestion, адаптируя под результаты анализа.
**Q1: Позиционирование**
«Судя по вакансии — [краткое резюме]. Как вас позиционировать?»
— Техническая глубина / Управленческая широта / Сбалансированно.
**Q2: Акценты**
«Сильнейшие совпадения: [топ-3-4]. Пробелы: [топ-2-3]. Что выделить, что
приглушить?» — Использовать мои рекомендации / [указания пользователя].
**Q3: Зарплатные ожидания**
«Указать зарплатные ожидания? На hh это поднимает резюме в выдаче с
фильтром „с зарплатой“.» — Указать вилку [сумма] / Не указывать / «по
итогам собеседования».
**Условные:** пересечение дат (если есть); судьба нерелевантного домена;
нужно ли сопроводительное письмо.
После вопросов — собрать внутреннюю стратегию адаптации (не сохранять).
---
## СТАДИЯ 3: Оптимизация под ATS и адаптация
Прочитать: `references/ats-rules-ru.md`, `references/locale-ru.md`,
`references/hh-ru.md`, `references/section-templates-ru.md`.
### 3.1 Краткое описание (summary)
Написать под ЭТУ роль по шаблону из section-templates-ru. Указать целевую
должность + 1–2 метрики, бьющие в приоритеты вакансии.
АНТИ-ПАТТЕРН: не начинать с «Опытный/Целеустремлённый/Ответственный…» —
переписать. См. `anti-cliche-ru.md`.
### 3.2 Ключевые навыки
3–5 функциональных категорий, самая релевантная — первой. Каждый
обязательный навык вакансии присутствует. Это поисковый индекс для
рекрутёра hh — см. `hh-ru.md`. Нерелевантное убрать (оставить в профиле).
### 3.3 Опыт работы
Свежие 2–3 роли — полный формат (контекст компании, масштаб, 3–5 буллетов
с метриками по формуле). Старые — сжато (1–2 релевантных достижения), но не
удалять. Каждый буллет — с числом и бизнес-контекстом. Сильные глаголы из
`anti-cliche-ru.md`.
### 3.4 Ключевые слова
Каждый обязательный навык — минимум в 2 местах (навыки + буллет опыта).
Семантические варианты, рус + англ синонимы («1С»/«1C»). Не более 3
упоминаний (без «накрутки»).
### 3.5 Образование и сертификаты
Порядок по локали (см. `locale-ru.md`: для опытных — после опыта; для
студентов/выпускников — перед). Релевантные сертификаты — на видном месте.
### 3.6 Правки под локаль РФ
По `locale-ru.md`: фото/ДР/семейное — опционально (по умолчанию без
фото и ДР для ATS-версии); зарплата — по решению из Q3; объём 1–2 страницы.
### 3.7 Анти-канцелярит
Прогнать весь текст по `anti-cliche-ru.md`: убрать мусорные «качества»
(стрессоустойчивость, коммуникабельность…) и канцелярит, заменить фактами.
---
## СТАДИЯ 4: Черновик
Сохранить в `docs/resume/draft-[компания-slug]-[ГГГГ-ММ-ДД].md`. Файл
содержит: (1) полное адаптированное резюме в markdown; (2) маркер
`<!-- ATS-ANALYSIS-START -->`; (3) блок анализа (только для ревью, удаляется
перед финалом):
```markdown
<!-- ATS-ANALYSIS-START -->
## Анализ ATS (только для ревью — в финал не войдёт)
### Оценка ATS: [XX]%
### Покрытие ключевых слов
| Требование | Найдено | Раздел |
### Разбивка скоринга
- Покрытие обязательных навыков: X/Y
- Покрытие желательных: X/Y
- Доля буллетов с метриками: Z%
- Полнота разделов: Z%
- Распределение ключевых слов: Z%
### Оставшиеся пробелы / Принятые решения
```
Перед показом прогнать **чек-лист анти-AI** (`anti-ai-fingerprint.md`).
Показать черновик пользователю.
---
## СТАДИЯ 5: Ревью и итерации
```
ЦИКЛ:
ждать обратную связь
ЕСЛИ «ок»/«финал»/«готово»: → Стадия 6
ИНАЧЕ: внести правки, пересчитать ATS-скоринг, обновить черновик,
показать с подсветкой изменений
```
---
## СТАДИЯ 6: Финальный вывод
### 6.1 Чистый markdown
Удалить блок анализа (всё после `<!-- ATS-ANALYSIS-START -->`).
### 6.2 Выбор формата вывода
Определить по запросу/контексту вакансии:
- **PDF (по умолчанию для прямого отклика)** — через HTML + weasyprint,
шаблон `references/html-template-ru.html`. Точный РФ-формат, фото
опционально (по умолчанию выкл; включать только если пользователь
просит и канал — hh/прямой отклик, не ATS).
- **DOCX** — если портал/вакансия просит .docx или нет weasyprint.
Через pandoc: `pandoc resume.md -o resume.docx` (опц.
`--reference-doc=reference.docx` для стилей).
- **Текст на hh.ru** — если цель: заполнить анкету hh. Выдать готовые
блоки (должность, ключевые навыки, о себе, опыт) для копирования в
поля hh; см. `hh-ru.md`.
### 6.3 PDF через weasyprint (если выбран)
Заполнить слоты `[SLOT]` в html-template-ru.html. Конвертация:
```bash
cd docs/resume && DYLD_LIBRARY_PATH="$(brew --prefix)/lib" \
uv run weasyprint resume-[slug].html [Имя]-[Роль].pdf
```
Требует weasyprint (`uv add weasyprint` или `pip install weasyprint`) и
system-deps `glib`/`pango`/`cairo` (через brew). На macOS нужен
`DYLD_LIBRARY_PATH`. Если weasyprint недоступен — fallback на DOCX (pandoc).
### 6.4 Сопроводительное письмо (если просили)
По `references/section-templates-ru.md` — короткое (3–6 предложений), под
вакансию, без штампов. Тон по `anti-cliche-ru.md` и `anti-ai-fingerprint.md`.
### 6.5 Отчёт и обновление профиля
Перечислить созданные файлы. Предложить дополнить мастер-профиль новой
информацией из сессии.
---
## Чек-лист перед выводом (Стадия 4)
### Соответствие ATS / hh
- [ ] Один столбец (без таблиц для вёрстки)
- [ ] Контакты в теле документа (не только в шапке)
- [ ] Стандартные заголовки разделов (по `ats-rules-ru.md`)
- [ ] Единый формат дат
- [ ] Без шкал навыков, иконок, графики
- [ ] Аббревиатуры расшифрованы при первом употреблении
- [ ] Ключевые навыки покрывают теги поиска рекрутёра (hh)
### Покрытие ключевых слов
- [ ] Каждый обязательный навык — в 2+ местах
- [ ] Ни одно слово не повторяется более 3 раз
- [ ] Должность из вакансии отражена в summary
### Качество контента
- [ ] Summary конкретно под ЭТУ роль (не шаблон)
- [ ] В каждом буллете опыта — метрика с бизнес-контекстом
- [ ] Свежие 2–3 роли подробно, старые сжато (не удалены)
- [ ] Перерывы > 6 мес. отмечены пользователю
- [ ] Нет мусорных «качеств» и канцелярита (`anti-cliche-ru.md`)
- [ ] Пройден скан анти-AI (`anti-ai-fingerprint.md`)
### Локаль РФ
- [ ] Фото/ДР/семейное — по решению (по умолчанию ATS-версия без них)
- [ ] Зарплата — по решению Q3
- [ ] Объём 1–2 страницы
### Анти-паттерны
- [ ] Summary НЕ начинается с «Опытный/Целеустремлённый/Ответственный»
- [ ] Нет «рекомендации предоставлю по запросу»
- [ ] Нет процентных шкал владения навыком
- [ ] Ранний опыт не вырезан в ноль
- [ ] Смежный домен переформулирован, а не выброшен