Добавить навык resume-ru — резюме под рынок РФ

This commit is contained in:
2026-05-31 21:41:43 +03:00
parent ed2a69798a
commit edf5e0668d
9 changed files with 1109 additions and 0 deletions
+63
View File
@@ -0,0 +1,63 @@
# Происхождение и лицензия
Навык `resume-ru` — производная работа (форк) от плагина
**resume-tailor-plugin**.
- Автор оригинала: Oleg Gaidukov
- Оригинал: https://github.com/olegvg/resume-tailor-plugin
- Лицензия оригинала: MIT
- Лицензия этого навыка: MIT (сохранена)
## Что сохранено от оригинала
Сильные механики: многостадийный процесс (Стадии 0–6), мастер-профиль с
системой видимости, формула ATS-скоринга, subagent для разбора, вывод PDF
через HTML + weasyprint, структура шаблонов разделов.
## Что переработано под РФ-2026
- **Специализация на РФ.** Убрана англоязычная локаль (EN/US) и
двуязычность — навык сфокусирован на российском рынке. Для двуязычных
резюме используйте оригинальный плагин.
- `references/locale-ru.md` — обновлено под 2026: фото / дата рождения /
семейное положение переведены в «опционально» (антидискриминационный
тренд); опыт перед образованием для опытных; объём 1–2 страницы (вместо
«2 стандарт, 1 никогда»); зарплатные ожидания.
- `references/ats-rules-ru.md` — западные ATS (Greenhouse/Lever/Workday/
iCIMS) заменены на российские (hh-поиск, Talantix, Huntflow, Поток,
FriendWork, E-Staff, СберПодбор, VK HR Tek); формула скоринга сохранена;
добавлено «ключевые навыки hh = поисковый индекс».
- `references/hh-ru.md` — новый материал: специфика hh.ru и Habr Career.
- `references/anti-cliche-ru.md` — новый материал: анти-канцелярит, список
мусорных «качеств», сильные глаголы, рус-формула XYZ.
- `references/anti-ai-fingerprint.md` — новый материал: защита от
«нейросетевого» вида текста.
- `references/section-templates-ru.md` — только RU; сопроводительное
переведено в короткий формат hh (3–6 предложений).
- `references/html-template-ru.html` — фото сделано опциональным (по
умолчанию выключено); добавлено поле зарплатных ожиданий.
- Вывод дополнен fallback на DOCX (pandoc) и режимом «текст под анкету hh».
## Текст лицензии MIT
```
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
+369
View File
@@ -0,0 +1,369 @@
---
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 НЕ начинается с «Опытный/Целеустремлённый/Ответственный»
- [ ] Нет «рекомендации предоставлю по запросу»
- [ ] Нет процентных шкал владения навыком
- [ ] Ранний опыт не вырезан в ноль
- [ ] Смежный домен переформулирован, а не выброшен
@@ -0,0 +1,49 @@
# Чтобы текст не выглядел «нейросетевым»
К 2026 рекрутёры и ИИ-скрининг РФ научились распознавать резюме и
сопроводительные, написанные нейросетью «в лоб». Шаблонный AI-текст
снижает доверие: кажется, что кандидат не вложился. Цель — живой
профессиональный текст с конкретикой, а не гладкая вода.
## Маркеры AI-стиля — убирать
**Лексика-клише:**
- «в современном быстро меняющемся мире»
- «играет ключевую роль», «является неотъемлемой частью»
- «позволяет значительно повысить эффективность»
- «обладаю обширным опытом», «широкий спектр задач»
- «зарекомендовал себя как», «успешно реализовал ряд проектов»
**Структурные шаблоны:**
- Конструкция «не только …, но и …» (особенно по нескольку раз).
- Идеально ровные трёхчастные перечисления везде.
- Длинное тире `—` в каждом втором предложении как универсальный разделитель.
- Каждое предложение одинаковой длины и ритма.
- Вводный абзац-«вода» без единого факта.
## Что делать вместо
1. **Конкретика вместо общих фраз.** Не «большой опыт автоматизации», а
«6 лет, 14 внедрений 1С, из них 4 — ERP с нуля».
2. **Реальные названия и цифры.** Компании, системы, объёмы, проценты,
сроки — то, что нельзя выдумать у нейросети.
3. **Разная длина предложений.** Живой текст неровный по ритму.
4. **Профессиональный жаргон к месту** — показывает, что человек в теме
(без перебора и без расшифровки очевидного).
5. **Без воды во вступлении.** Первая строка «О себе» — сразу суть.
## Финальный скан (10 пунктов)
Перед выдачей проверить, что в тексте НЕТ:
1. Клише из списка выше.
2. «Не только … но и …» более одного раза.
3. Длинных тире как разделителя в каждом абзаце.
4. Прилагательных-усилителей без цифр («значительно», «существенно»).
5. Вводных абзацев без фактов.
6. Одинакового ритма всех предложений.
7. Обязанностей без результата.
8. Пустых качеств (см. `anti-cliche-ru.md`).
9. Расшифровки очевидного для этой профессии.
10. Общих фраз там, где можно поставить конкретную цифру/название.
Если хоть один пункт сработал — переписать это место конкретикой.
+64
View File
@@ -0,0 +1,64 @@
# Анти-канцелярит и сильные формулировки
Российские резюме чаще всего портят два явления: пустые «качества» и
канцелярит. И то, и другое игнорируется ATS и раздражает рекрутёров,
занимая место, где должны быть факты.
## Мусорные слова — удалять или доказывать фактом
Эти слова ничего не доказывают и не участвуют в поиске:
- стрессоустойчивость
- коммуникабельность
- обучаемость / быстро обучаюсь
- ответственность / исполнительность
- многозадачность
- нацеленность на результат
- активная жизненная позиция
- пунктуальность
- внимательность к деталям
- умение работать в команде
**Правило:** качество не называют — его доказывают фактом.
- ❌ «Стрессоустойчивость, многозадачность».
- ✅ «Вёл одновременно 4 проекта внедрения в срок; закрывал инциденты P1
в режиме 24/7 без срыва SLA».
- ❌ «Ответственность, нацеленность на результат».
- ✅ «Снизил просрочку дебиторки с 18% до 6% за два квартала».
## Канцелярит — заменять живым глаголом
- «осуществлял деятельность по сопровождению» → «сопровождал»
- «принимал участие в разработке» → «разработал» / «участвовал в
разработке (моя часть — …)»
- «производил настройку оборудования» → «настраивал оборудование»
- «было реализовано внедрение системы» → «внедрил систему»
- «в рамках исполнения должностных обязанностей» → удалить
## Формула сильного пункта (рус-версия XYZ)
**Глагол действия + что сделал + измеримый результат / масштаб.**
- «Автоматизировал расчёт себестоимости в 1С:ERP — закрытие месяца
сократилось с 7 до 3 дней».
- «Перевёл инфраструктуру на Docker + Traefik — деплой с 40 до 8 минут,
простоев при релизах больше нет».
## Сильные глаголы действия
внедрил, запустил, автоматизировал, разработал, спроектировал, построил,
настроил, наладил, оптимизировал, сократил, увеличил, ускорил,
масштабировал, перевёл, мигрировал, возглавил, выстроил, формализовал,
стандартизировал, обучил, вывел (на рынок), согласовал.
### Избегать (слабые формулировки)
участвовал в, занимался, помогал с, был вовлечён в, отвечал за (без
результата).
## Чего избегать
- Перечисление обязанностей без результата.
- Превосходные степени без цифр («значительно повысил эффективность»).
- Местоимение «я» в каждой строке — резюме и так от первого лица.
- Несколько шрифтов, цветов, эмодзи в деловом резюме.
+111
View File
@@ -0,0 +1,111 @@
# ATS и машинный отбор — Россия. Правила и скоринг
В РФ ландшафт ATS отличается от западного. Главный «фильтр» — встроенный
поиск hh.ru, плюс ряд российских систем рекрутинга. Западные Workday /
Greenhouse / Lever / iCIMS почти не встречаются (только в зарубежных
компаниях). Оптимизировать надо под РФ-реальность.
## Где резюме проходит машинный отбор
- **hh.ru** — поиск и фильтры рекрутёра (главное), ИИ-рекомендации.
- **Talantix** — ATS от hh, тесно интегрирован с базой hh.
- **Huntflow** — популярная ATS у агентств и средних/крупных компаний.
- **Поток (Potok)** — ATS с ИИ-скринингом откликов.
- **FriendWork Recruiter**, **E-Staff** — корпоративный рекрутинг.
- **СберПодбор**, **VK HR Tek** — внутри крупных экосистем.
## Правила формата (универсальны для всех систем)
### Вёрстка
- ТОЛЬКО один столбец. Без многоколоночной вёрстки, таблиц для разметки,
текстовых блоков (text boxes).
- Без графики, иконок, диаграмм, шкал-прогрессбаров для уровня навыков.
- Контакты — в теле документа (НЕ только в колонтитуле: многие ATS
пропускают колонтитулы целиком).
- **Фото** мешает парсингу (сдвигает текст, ломает извлечение полей). Для
ATS-отклика — без фото. Фото добавлять только для прямых откликов / hh,
где оно ожидается (см. `locale-ru.md`).
- Без спецсимволов (★ ● ◆) — стандартные маркеры или дефисы.
### Заголовки разделов
Использовать точные стандартные заголовки (ATS ищет именно их):
«Краткое описание», «Ключевые навыки», «Опыт работы», «Образование»,
«Курсы и сертификаты», «Знание языков». Креативные («Мой путь», «Чем
полезен») ломают распознавание разделов.
### Формат файла
- `.docx` — самый надёжный парсинг; брать по умолчанию для отправки файлом.
- `.pdf` (текстовый, не скан!) — тоже хорошо парсится. Проверка: если
текст в PDF выделяется и копируется — машина его прочитает.
- На hh резюме хранится в анкете — там важна структура полей, не файл.
- Никогда: `.pages`, `.odt`, ссылки на Google Docs, скан-картинки в PDF.
### Шрифты и поля
- Calibri, Arial, Cambria (тело 1012pt, заголовки 1314pt).
- Поля 15–20 мм. Без декоративных шрифтов.
### Даты и аббревиатуры
- Единый формат дат по всему документу (ММ.ГГГГ).
- Аббревиатуры — расшифровка при первом употреблении: «ВЭД
(внешнеэкономическая деятельность)»; затем можно сокращённо.
## Ключевые слова — как работает отбор
### hh.ru — «Ключевые навыки» это поисковый индекс
Рекрутёр ищет кандидатов запросом по навыкам. Резюме попадает в выдачу,
если содержит искомые формулировки. Поэтому:
- Внести в «Ключевые навыки» точные теги из целевых вакансий.
- Дублировать ключевые формулировки и в опыте (в контексте достижений).
- Давать синонимы и обе формы аббревиатур: «1С»/«1C», «ТЗ»/«техническое
задание». Подробнее — `hh-ru.md`.
### Размещение и плотность
- Каждый обязательный навык вакансии — минимум в 2 местах: «Ключевые
навыки» + буллет в «Опыте работы».
- Желательные навыки — минимум 1 упоминание.
- Не более 2–3 упоминаний одного слова на весь документ (иначе «накрутка»,
распознаётся и штрафуется).
- Должность из вакансии — отразить в «Кратком описании».
### Чего НЕ делать
- Невидимый белый текст с ключевыми словами — детектируется; при выгрузке
на страницу профиля форматирование снимается и текст вскрывается.
- Скрытые инструкции для ИИ (prompt injection) в резюме — компании активно
строят детект.
- Перечислять навыки без подтверждения опытом — современный ИИ-скрининг
это распознаёт (анализирует контекст, а не только кейворды).
## Формула скоринга (оценка перед выводом)
```
Оценка = 0.4 * покрытие_обязательных_навыков
+ 0.2 * покрытие_желательных_навыков
+ 0.2 * доля_буллетов_с_метриками
+ 0.1 * полнота_разделов
+ 0.1 * распределение_ключевых_слов
```
- **покрытие_обязательных** — найдено обязательных навыков / всего обязательных.
- **покрытие_желательных** — найдено желательных / всего желательных.
- **доля_буллетов_с_метриками** — доля буллетов опыта с числом (₽, %,
размер команды, сокращение времени, масштаб).
- **полнота_разделов** — наличие и заполненность 5 стандартных разделов
(Контакты, Краткое описание, Навыки, Опыт, Образование) / 5.
- **распределение** — ключевые слова в нескольких разделах, не в одном.
### Интерпретация
- 85%+ — сильное совпадение, вероятно пройдёт фильтры.
- 70–84% — среднее, зависит от конкуренции.
- ниже 70% — слабое, нужно закрывать пробелы.
## Анти-паттерны — выявлять и флагать
- «Краткое описание» начинается с «Опытный / Целеустремлённый /
Ответственный / Коммуникабельный» → переписать (`anti-cliche-ru.md`).
- Метрики без бизнес-контекста: «увеличил выручку на 30%» — от какой базы?
- Только обязанности без достижений.
- Описание роли, подходящее любому в этой должности.
- Необъяснённые перерывы > 6 мес. (флагать пользователю, не прятать).
- «Рекомендации предоставлю по запросу» — удалить (устарело).
- Шкалы/проценты владения навыком.
- Текст, выглядящий «нейросетевым» (`anti-ai-fingerprint.md`).
+64
View File
@@ -0,0 +1,64 @@
# Специфика hh.ru и Habr Career
hh.ru — главный канал найма в РФ. Резюме на hh одновременно: анкета,
объект поиска рекрутёра и вход для ИИ-скрининга. Оптимизировать надо
именно под это, а не только «красивый PDF».
## Как рекрутёр находит резюме
Рекрутёр ищет кандидатов **запросом по навыкам и ключевым словам**.
Резюме показывается в выдаче, если содержит искомые формулировки.
- **«Ключевые навыки» — это поисковый индекс, а не украшение.** Внести
точные теги из целевых вакансий: технологии, системы, методологии,
конфигурации («1С:ERP», «Python», «Traefik», «бюджетирование», «ВЭД»,
«руководство командой»).
- Дублировать ключевые формулировки и в опыте (в контексте), и в навыках —
поиск учитывает оба места.
- Синонимы и обе формы аббревиатур: «1С»/«1C», «ТЗ»/«техническое задание»,
«БП»/«бизнес-процессы».
## Поля резюме на hh — заполнять все значимые
- **Желаемая должность** — конкретная, совпадает с вакансиями.
- **Специализация / профобласть** — выбрать корректно (влияет на выдачу).
- **Зарплата** — указывать (фильтр «с зарплатой» отсекает пустые).
- **Опыт** — с измеримыми результатами, не должностной инструкцией.
- **Обо мне** — 2–4 строки сути; не дублировать список навыков.
- **Готовность к переезду / командировкам** — если релевантно.
## Отклик и сопроводительное
- Сопроводительное письмо при отклике заметно повышает конверсию в
приглашение. Короткое и по делу — см. `section-templates-ru.md`.
- Под значимые вакансии — отдельная адаптированная версия резюме
(на hh можно держать несколько резюме под разные роли).
## Поднятие в поиске
- Резюме ранжируется в т. ч. по свежести: кнопка «обновить дату»
поднимает его в выдаче — бесплатный буст.
- Полнота профиля влияет на видимость.
## Фото на hh
На hh фото — норма и повышает отклик в «людных» сферах. Деловое,
нейтральный фон. Для IT/удалёнки не обязательно. ATS-версия — без фото
(`ats-rules-ru.md`).
## Вывод текста под анкету hh
Когда цель — заполнить анкету hh (а не файл), выдать готовые блоки для
копирования в поля:
- Желаемая должность (точная формулировка).
- Ключевые навыки (теги через запятую — поисковый индекс).
- Обо мне (2–4 строки).
- По каждой роли: компания, должность, период, достижения с метриками.
## Habr Career (для IT)
Второй ключевой канал для разработчиков/инженеров/админов:
- Профиль с зарплатной вилкой, стеком, форматом работы.
- Точные теги стека = находимость.
- Ссылки на GitHub, пет-проекты, доклады, статьи.
- Тон более «инженерный», меньше формализма, чем на hh.
+155
View File
@@ -0,0 +1,155 @@
<!--
RU-шаблон резюме для конвертации weasyprint → PDF.
Слот-маркеры: [CAPS_SNAKE_CASE] — подставляются скиллом при генерации.
Дизайн:
- A4, поля 14мм/16мм — помещается 1–2 страницы
- break-inside: avoid на .role/.condensed — без разрыва роли между страницами
- Сетка навыков: колонка 135px + 8.5pt, чтобы русский текст не переносился
- Короткие названия категорий («Лидерство», не «Техническое лидерство»)
- Акцентный цвет: #2a5da8
ФОТО (РФ-2026): по умолчанию ВЫКЛЮЧЕНО (для ATS и нейтральности). Чтобы
включить — раскомментировать <img> в .header и положить photo.jpeg рядом
с HTML (90x90px). Для ATS-версии фото не добавлять (см. ats-rules-ru.md).
Команда конвертации:
cd docs/resume && DYLD_LIBRARY_PATH="$(brew --prefix)/lib" \
uv run weasyprint resume-[SLUG].html [ИМЯ]-[РОЛЬ].pdf
-->
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>[FULL_NAME_RU] — [TARGET_ROLE] Резюме</title>
<style>
@page { size: A4; margin: 14mm 16mm; }
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 9.5pt; line-height: 1.35; color: #1a1a1a;
}
a { color: #2a5da8; text-decoration: none; }
/* Шапка — flexbox; фото опционально (РФ-2026) */
.header {
display: flex; align-items: flex-start; gap: 16px;
margin-bottom: 10px; padding-bottom: 8px;
border-bottom: 2px solid #2a5da8;
}
.header img {
width: 90px; height: 90px; border-radius: 6px;
object-fit: cover; flex-shrink: 0;
}
.header-text { flex: 1; }
.header-text h1 { font-size: 20pt; font-weight: 700; color: #1a1a1a; margin-bottom: 1px; }
.header-text .subtitle { font-size: 11pt; color: #4a4a4a; margin-bottom: 5px; }
.header-text .contacts { font-size: 8.5pt; color: #555; line-height: 1.5; }
.header-text .contacts .sep { color: #bbb; margin-right: 6px; }
.header-text .contacts span { margin-right: 6px; }
.salary { font-size: 9pt; color: #2a5da8; font-weight: 600; margin-top: 3px; }
.section { margin-top: 10px; }
.section-title {
font-size: 10pt; font-weight: 700; color: #2a5da8;
text-transform: uppercase; letter-spacing: 0.5px;
border-bottom: 1px solid #d0d0d0; padding-bottom: 2px; margin-bottom: 6px;
}
.summary { font-size: 9.5pt; line-height: 1.4; }
.skills-grid { display: grid; grid-template-columns: 135px 1fr; row-gap: 2px; font-size: 8.5pt; }
.skill-cat { font-weight: 600; color: #333; }
.skill-list { color: #444; }
.role { margin-bottom: 8px; break-inside: avoid; }
.role-header { display: flex; justify-content: space-between; align-items: baseline; }
.role-company { font-weight: 700; font-size: 10pt; color: #1a1a1a; }
.role-dates { font-size: 8.5pt; color: #666; white-space: nowrap; }
.role-title { font-style: italic; font-size: 9pt; color: #444; margin-bottom: 2px; }
.role-scope { font-size: 9pt; color: #444; margin-bottom: 3px; }
.role ul { margin-left: 14px; font-size: 9pt; }
.role li { margin-bottom: 1px; }
.role-tech { font-size: 8pt; color: #666; margin-top: 2px; }
.condensed { margin-bottom: 6px; break-inside: avoid; }
.condensed .role-header { margin-bottom: 1px; }
.condensed .role-desc { font-size: 8.5pt; color: #444; }
.languages { font-size: 9pt; }
</style>
</head>
<body>
<div class="header">
<!-- ФОТО опционально: раскомментировать при необходимости (не для ATS)
<img src="photo.jpeg" alt="[FULL_NAME_RU]">
-->
<div class="header-text">
<h1>[FULL_NAME_RU]</h1>
<div class="subtitle">[SUBTITLE]</div>
<div class="contacts">
<span>[LOCATION_RU]</span><span class="sep">|</span>
<span><a href="mailto:[EMAIL]">[EMAIL]</a></span><span class="sep">|</span>
<span><a href="[TELEGRAM_URL]">[TELEGRAM_DISPLAY]</a></span><br>
<span><a href="[HH_OR_PORTFOLIO_URL]">[HH_OR_PORTFOLIO_DISPLAY]</a></span><span class="sep">|</span>
<span><a href="[GITHUB_URL]">[GITHUB_DISPLAY]</a></span>
</div>
<!-- Зарплатные ожидания опционально (см. locale-ru.md):
<div class="salary">Зарплатные ожидания: [SALARY]</div>
-->
</div>
</div>
<div class="section">
<div class="section-title">Краткое описание</div>
<div class="summary">[EXECUTIVE_SUMMARY_RU]</div>
</div>
<div class="section">
<div class="section-title">Ключевые навыки</div>
<div class="skills-grid">
<div class="skill-cat">[CATEGORY_1_RU]</div><div class="skill-list">[SKILLS_1]</div>
<div class="skill-cat">[CATEGORY_2_RU]</div><div class="skill-list">[SKILLS_2]</div>
<div class="skill-cat">[CATEGORY_3_RU]</div><div class="skill-list">[SKILLS_3]</div>
<div class="skill-cat">[CATEGORY_4_RU]</div><div class="skill-list">[SKILLS_4]</div>
</div>
</div>
<div class="section">
<div class="section-title">Опыт работы</div>
<!-- ПОЛНЫЙ ФОРМАТ (свежие 2–3 роли) -->
<div class="role">
<div class="role-header">
<span class="role-company">[COMPANY] — [COMPANY_CONTEXT_RU]</span>
<span class="role-dates">[START] — [END_OR_НАСТ_ВРЕМЯ]</span>
</div>
<div class="role-title">[JOB_TITLE] · [LOCATION_RU]</div>
<div class="role-scope">[SCOPE_1_2_SENTENCES_RU]</div>
<ul>
<li>[ACHIEVEMENT_1_RU]</li>
<li>[ACHIEVEMENT_2_RU]</li>
<li>[ACHIEVEMENT_3_RU]</li>
</ul>
<div class="role-tech">[TECH_STACK_DOT_SEPARATED]</div>
</div>
<!-- СЖАТЫЙ ФОРМАТ (старые роли) -->
<div class="condensed">
<div class="role-header">
<span class="role-company">[COMPANY] — [COMPANY_CONTEXT_RU]</span>
<span class="role-dates">[START] — [END]</span>
</div>
<div class="role-title">[JOB_TITLE] · [LOCATION_RU]</div>
<div class="role-desc">[1_2_SENTENCES_WITH_METRICS_RU]</div>
</div>
</div>
<div class="section">
<div class="section-title">Знание языков</div>
<div class="languages">[LANGUAGES_RU]</div>
</div>
</body>
</html>
+112
View File
@@ -0,0 +1,112 @@
# Конвенции резюме — Россия (2026)
Базовая локаль скилла. Рассчитано на hh.ru и российского работодателя.
Отражает сдвиг рынка к 2026 году: персональные данные стали опциональными,
акцент сместился на измеримые результаты и прохождение машинного отбора.
## Персональные данные
- **Фото** — *опционально*. На hh.ru остаётся нормой и повышает отклик в
«людных» сферах; для IT/удалёнки не обязательно. ATS-версия — без фото
(см. `ats-rules-ru.md`). Если есть — деловое, нейтральный фон.
- **Дата рождения / возраст** — *опционально*. Многие убирают, чтобы
снизить риск возрастного отсева. Указывать, если возраст — преимущество.
- **Семейное положение, дети** — как правило **не указывать**
(нерелевантно, риск дискриминации).
- **ФИО** — полностью, с отчеством.
- **Гражданство / разрешение на работу** — если важно для вакансии
(релокация, гособоронзаказ, иностранный работодатель).
- **Город** — полностью + статус («готов к удалёнке/релокации»).
## Контакты
- Телефон: `+7 (XXX) XXX-XX-XX`.
- Email — деловой (имя.фамилия), не «koteyka2007@».
- Telegram — норма в РФ, особенно в IT: `@username`.
- Ссылки: профиль hh, портфолио, GitHub (для IT).
## Порядок разделов
1. ФИО (+ фото опционально)
2. Желаемая должность — конкретная, как в целевых вакансиях
3. Контакты
4. Зарплатные ожидания (см. ниже)
5. О себе / Краткое описание — 2–4 строки по сути
6. **Опыт работы** — обратный хронологический порядок
7. Ключевые навыки
8. Образование
9. Знание языков
10. Дополнительно (опционально)
### Порядок «опыт ↔ образование»
- **Опытные специалисты** — опыт ПЕРЕД образованием (современная норма,
в т. ч. на hh).
- **Студенты / выпускники без опыта** — образование перед опытом.
(Старая школа всегда ставила образование первым; для опытных это устарело.)
## Объём
- **1 страница** — норма для джунов и до ~5 лет опыта.
- **2 страницы** — для senior/руководителей с большим стажем.
- 3+ страницы — почти всегда признак нередактированного текста.
(Это отличие от старой нормы «2 стр. стандарт, 1 стр. никогда».)
## Зарплатные ожидания
В РФ принято указывать, особенно на hh — иначе резюме отсекается фильтром
«с зарплатой». Давать реалистичную вилку по рынку (свериться с медианой по
вакансиям этой роли в регионе). «По итогам собеседования» допустимо для
топ-позиций, но снижает отклик.
## Заголовки разделов (русский)
| Назначение | Заголовок |
|------------|-----------|
| Кратко | Краткое описание / О себе |
| Опыт | Опыт работы |
| Навыки | Ключевые навыки |
| Образование | Образование |
| Языки | Знание языков |
| Сертификаты | Курсы и сертификаты |
| Проекты | Проекты |
(Точные заголовки важны для ATS — `ats-rules-ru.md`.)
## Опыт работы — оформление
- Обратный хронологический порядок.
- Каждая роль: компания + чем занимается (краткий контекст); должность +
даты (ММ.ГГГГ — ММ.ГГГГ или «по настоящее время»); зона ответственности
(1–2 предложения); достижения с метриками.
- Свежие роли — подробно; старые — сжато, но не удалять.
## Формула достижения
```
[Глагол действия] [что конкретно] [в каком масштабе/контексте], [результат с метрикой]
```
Сильные глаголы и анти-канцелярит — `anti-cliche-ru.md`.
## Знание языков
- Русский: родной.
- Английский: A1–C2 или описательно (например, «техническое чтение»,
«свободный»).
- Другие — при наличии.
## Формат дат
- ДД.ММ.ГГГГ — для даты рождения (если указывается).
- ММ.ГГГГ — для дат работы.
- Единообразно по всему документу.
## Тон и язык
- Деловой, без чрезмерного самопиара и без ложной скромности.
- Без канцелярита и пустых качеств (`anti-cliche-ru.md`).
- Технические термины можно на английском (Kubernetes, CI/CD, API, 1С:ERP) —
не переводить устоявшиеся.
- Смешанная RU + EN лексика в IT-резюме нормальна и ожидаема.
@@ -0,0 +1,122 @@
# Шаблоны разделов (РФ)
Слот-маркеры — `[CAPS_SNAKE_CASE]` для значений, которые подставляет скилл.
---
## Краткое описание (summary)
### Шаблон
```
[ЦЕЛЕВАЯ_ДОЛЖНОСТЬ] с [N]-летним опытом в [ОСНОВНОЙ_ДОМЕН], [МАСШТАБ].
[ГЛАВНОЕ_ДОСТИЖЕНИЕ_С_МЕТРИКОЙ]. [ОТЛИЧИЕ_ПОД_ЭТУ_РОЛЬ].
```
Пример:
```
Системный аналитик 1С с 8-летним опытом внедрения 1С:ERP и КА, 4 проекта
с нуля. Автоматизировал учёт себестоимости и бюджетирование по ЦФО —
закрытие месяца сократилось с 7 до 3 дней. Сильная сторона — перевод
требований бизнеса в ТЗ и бесшовная миграция с УПП.
```
Анти-паттерн — НИКОГДА:
```
Ответственный и целеустремлённый специалист с большим опытом работы в
динамичной среде. Стрессоустойчив, коммуникабелен, нацелен на результат.
```
---
## Ключевые навыки
### Шаблон группировки
```
[КАТЕГОРИЯ_1]: [Навык] | [Навык] | [Навык] | [Навык]
[КАТЕГОРИЯ_2]: [Навык] | [Навык] | [Навык] | [Навык]
[КАТЕГОРИЯ_3]: [Навык] | [Навык] | [Навык] | [Навык]
```
Правила: 3–5 категорий, 4–6 навыков в каждой, самая релевантная первой,
обязательные навыки вакансии присутствуют. Это поисковый индекс на hh —
`hh-ru.md`.
### Примеры коротких названий категорий
Разработка · Базы данных · DevOps · Инфраструктура · Аналитика ·
Управление · 1С-конфигурации · Учёт и финансы · Языки.
---
## Опыт работы — полный формат (свежие 2–3 роли)
```
### [КОМПАНИЯ] — [ЧЕМ ЗАНИМАЕТСЯ]
[ДОЛЖНОСТЬ] | [НАЧАЛО] — [КОНЕЦ или «по настоящее время»]
[1–2 предложения: зона ответственности, размер команды, ключевой мандат]
Ключевые достижения:
- [ГЛАГОЛ] [что конкретно] [масштаб], результат: [МЕТРИКА]
- [ГЛАГОЛ] [что конкретно] [масштаб], результат: [МЕТРИКА]
```
## Опыт работы — сжатый формат (старые роли)
```
[ДОЛЖНОСТЬ] | [КОМПАНИЯ] | [НАЧАЛО] — [КОНЕЦ]
[1–2 наиболее релевантных достижения с метриками]
```
---
## Формула буллета достижения
```
[Глагол действия] [что конкретно] [масштаб/контекст], [результат с метрикой] [срок если важен]
```
Хорошо:
```
Спроектировал событийную интеграцию 1С ↔ Bitrix24 на 12 000 заказов/мес,
сократив ручной ввод на 90% и ошибки сверки до нуля.
```
Плохо:
```
Занимался интеграцией 1С с CRM и улучшением бизнес-процессов.
```
---
## Образование
```
[ВУЗ], [ФАКУЛЬТЕТ]
[Степень/квалификация], [Специальность], [Год]
```
---
## Сопроводительное письмо (РФ / hh) — короткий формат
Принципы: 3–6 предложений, под вакансию, без штампов, не пересказ резюме.
Тон по `anti-cliche-ru.md` и `anti-ai-fingerprint.md`. Не начинать с
«Прошу рассмотреть мою кандидатуру».
### Структура
1. **Зацепка под вакансию** — почему именно эта роль/компания и чем
подходишь (1 предложение).
2. **Доказательство** — 1–2 релевантных достижения с цифрой, прямо
отвечающих ключевому требованию.
3. **Следующий шаг** — короткая готовность обсудить, контакт.
### Пример (1С-аналитик, отклик на внедрение ERP)
```
Здравствуйте! Увидел вакансию аналитика на проект внедрения 1С:ERP — это
ровно мой профиль: за 8 лет провёл 4 внедрения ERP с нуля, включая миграцию
с УПП.
На последнем проекте автоматизировал учёт себестоимости и бюджетирование
по ЦФО — закрытие месяца сократилось с 7 до 3 дней, ручных корректировок
стало меньше на 80%.
Готов обсудить ваши задачи и сроки — на связи в Telegram @username и по
телефону.
```