Стек в IT-резюме живёт в трёх местах: шапка, опыт, блок skills. Если во всех трёх одна и та же простыня аббревиатур, файл не читается. Если стек только в skills, а в опыте «разработка функционала», ATS может найти слова, а человек — нет: непонятно, чем вы пользовались на самом деле.
Ниже — как разложить технологии по местам, как не врать про уровень, что делать с устаревшим и модным, два примера раскладки и короткий чек-лист под отклик. Общие правила блока навыков — в навыках в IT-резюме. Каркас документа — в как составить резюме.
Коротко:
- Шапка — 5–8 якорей роли. Опыт — стек внутри задачи. Skills — группы без дублей шапки.
- Пишите то, чем готовы дебажить на тестовом и в первую неделю.
- Шкалы «80% Python» не измеримы. Честнее корзины или меньше пунктов.
- Не копируйте стек вакансии целиком. Совпадение по лжи закрывает компанию, не одну роль.
- Перед рассылкой сверните список в разборе резюме — там часто всплывает каша и противоречие заголовку.
Три места — три задачи
Шапка / строка под именем. Человек и иногда ATS смотрят сюда раньше skills. Сюда — роль и якоря: «Backend, Python, Postgres, Django». Не двадцать библиотек.
Опыт и проекты. Технология появляется как инструмент задачи: «очередь, чтобы не терять письма», не «работал с RabbitMQ, Kafka, SQS». Повтор стека в каждой пуле раздражает.
Блок skills. Сверка с требованиями и навигация. Группы, без эссе. Если слова нет ни в опыте, ни в проекте, его опасность на скрининге максимальна.
Summary может повторить 3–4 якоря, не весь список. Формула — в как написать summary.
Практический тест: закройте skills рукой и прочитайте только шапку и две пули опыта. Если технологий «не хватает» — они должны появиться в опыте, не обязательно дублироваться третьим списком. Если наоборот в опыте пусто, а skills богатый — на скрининге поверят опыту и разочаруются в skills. В CIS 2026 так отсеивают сгенерированные файлы: простыня инструментов без задачи.
Ещё тест: отправьте PDF себе на телефон и откройте. Если шапка стека съехала или иконки стали пустыми квадратами — убирайте графику. Человек с телефона тоже смотрит отклики. Тот же файл должен копироваться в hh текстом без потери Python и PostgreSQL.
Как собрать список из вакансий
Возьмите пять объявлений одной роли, не пяти профессий. Выпишите пересечения из трёх и больше — это каркас. Добавьте 3–5 отличий: домен, тип тестов, конкретная админка, склад, облачный сервис, которым пользовались.
Единичные требования «было бы плюсом Kubernetes» не тащите в шапку, если вы пользователь манифеста, а не админ кластера. Можно вниз skills: «K8s — деплой джобов, не администрирование».
Живые формулировки смотрите в каталоге вакансий. Для входа — junior-роли. Не собирайте стек из оглавления курса: курс даёт имена, навык — повторённая работа.
Заведите короткую таблицу на время поиска: вакансия, must-стек, что из этого у вас в опыте, что только в skills, чего нет. Если колонка «нет» длиннее «в опыте» — это не та вакансия или не тот файл. Таблица уберегает от копипаста стека в полночь перед откликом. Её не надо класть в CV, она для вас.
Группы вместо алфавита
Плоский список из тридцати слов не сканируется. Рабочие группы:
- языки и рантайм;
- фреймворки и библиотеки;
- данные и очереди;
- инфраструктура и CI;
- инструменты команды — коротко.
Для QA группы другие: типы тестирования, окружения, инструменты отчётов, автоматизация отдельно от ручного контура. Для аналитика — источники, BI, SQL, что строили. Для ПМ — домен и стек управления, не Zoom. Для поддержки — каналы, тикетницы, языки эскалации.
Синонимы уберите: JS и JavaScript, React и React.js. Выберите форму из вакансий вашего круга. Про ATS-совпадения без спама — в как пройти ATS.
Порядок групп тоже сигнал. Первая группа — ядро роли. Если вы backend, не ставьте Figma и Excel наверх «потому что тоже умею». Если вы аналитик — SQL и источники выше Docker, которым пользовались один раз. Человек сканирует начало блока так же, как шапку.
Уровни владения без шкалы
Не рисуйте полоски и проценты. Если градация нужна, три корзины в тексте: основное / уверенно / базово. Ещё честнее — вынести базовое вниз или убрать.
Критерий «основное»: готовы чинить типичный сбой без туториала. «Базово»: делали один раз, на созвоне так и скажете. Граница вранья: учебный запрос к Kafka в основном списке. Если сомневаетесь — вниз или вон. Сомнение на бумаге всё равно станет паузой на интервью, и тогда пострадают соседние честные пункты.
Занижение тоже бьёт. Git, SQL, Linux вычёркивают «потому что все знают» — и фильтр вакансии их не находит. Базовое для роли оставьте, если оно в требованиях. Продающая специфика — в опыте, не в «знаю HTML». И наоборот: не держите в шапке редкий инструмент, которым не готовы дебажить — его спросят первым именно потому, что он редкий.
Пример 1. Backend middle
Шапка: Backend-разработчик · Python · Django · Postgres
В опыте: «Перевёл рассылку на очередь, письма перестали теряться на пике» — без повторного перечня Python/Django/Postgres в каждой пуле. Один раз в роли: «стек контура: Django, Postgres, Redis, Celery».
Skills: Python, Django, DRF; Postgres, Redis; Celery; Docker, GitHub Actions. Kubernetes — «джобы, не админ кластера». Kafka нет: только смотрел на воркшопе.
Человек видит якоря сразу. ATS находит Python и Postgres. Скрининг не разберёт вас как platform engineer.
Пример 2. Junior frontend
Шапка: Junior frontend · React · TypeScript
В проектах: стек внутри карточки кабинета — React, TypeScript, CSS-модули. Next.js нет, хотя «все пишут»: не использовали.
Skills: JavaScript, TypeScript, React; HTML, CSS; Git. Redux — базово, один учебный магазин. Тесты — RTL на формах, не «эксперт по Jest».
HTML/CSS для junior имеют смысл как слова фильтра. Для middle frontend их можно не выделять храмом, если вакансия не про вёрстку с нуля. Глубина — состояния, доступность, контракт ошибок. См. навыки frontend.
Модное, устаревшее, «касался»
Модное в 2026 (очередной фреймворк, «AI-интеграция») пишите, только если есть задача: что вызывали, какой сбой, какая граница. Строка «ChatGPT» в skills ничего не даёт.
Устаревшее: jQuery, SVN, живой легаси-контур — оставляйте, если откликаетесь на поддержку легаси. На новый React-продукт не тащите на первый экран, можно вниз или убрать.
«Касался» лучше честной пометкой внизу, чем в основном списке. На интервью спросят с конца. Ответ «это с курса» обесценивает и основное. Карты глубины по ролям: backend, QA, DevOps.
Согласованность с заголовком
Заголовок «QA engineer» и стена из Kubernetes без тест-артефактов — два человека в одном файле. Заголовок «fullstack» и skills только React — тоже. Сначала роль, потом стек под неё. Сборка роли — в резюме IT-специалиста.
В опыте стек не заменяет результат. Технологии без задачи — типичный провал, рядом с канцеляритом. См. как описать опыт и как описывать проекты.
Как стыковать стек с вакансией без копипаста
Откройте объявление и выделите must. Перенесите в файл только то, что у вас есть, в той форме слова, которую использует вакансия, если это тот же инструмент. PostgreSQL и Postgres — один смысл; если ATS ищет PostgreSQL, имейте его текстом хотя бы в skills. Не плодите оба и ещё «PSQL».
Wish-список вакансии («было бы плюсом GraphQL, k8s, Kafka») не обязан появиться в шапке. Если касались — вниз с пометкой. Если нет — молчите. Дописанный wish вскрывается первым техническим вопросом и обнуляет must, которым вы владеете.
Перед/после skills:
Было: «JavaScript, JS, ES6, ES2015, React, React.js, ReactJS, Redux, HTML5, CSS3, SASS, LESS, Bootstrap, Material UI, REST, REST API, HTTP, Git, GitHub, Jira, Agile, Scrum, OOP».
Стало: «JavaScript, TypeScript, React; CSS-модули; Git. Redux — базово. HTML/CSS не выношу отдельным храмом: это в работе каждый день».
Вторая версия оставляет якоря фильтра и не обещает Agile как технологию. Первая выглядит как парсер вакансий. В CIS 2026 такие списки уже маркер «файл не читали после генератора».
Две версии стека имеют смысл, если вы реально ходите на две линии: например Python-backend и fullstack с админкой. Не десять версий под каждое объявление — запутаетесь и отправите не ту. Каркас роли держите, якоря подкручивайте.
Проверьте PDF: скопируйте текст в блокнот. Если стек исчез или склеился в «PythonDjangoPostgres» без пробелов — колонки или иконки. Чините формат, см. ошибки в резюме. Для hh то же: поле skills не должно противоречить PDF, который вы приложите отдельно.
Что никогда не делать
- Копипаст стека из вакансии, половины нет.
- Двадцать облачных сервисов вендора, трогали один бакет.
- Иконки технологий вместо текста — ATS и скринридеры.
- Колонки skills, которые в PDF склеиваются в кашу.
- Уровень «эксперт» по всему.
Формат: текст, одна колонка. Подробности — в ошибках в резюме. Для удалёнки стек тот же, плюс язык и часы — резюме для удалённой работы.
Частые вопросы
Нужно ли писать версии (Python 3.12, React 19)?
Имеет смысл, если вакансия явно режет по версии или вы мигрировали мажор. Иначе шум. Актуальность важнее номера в шапке.
Куда деть английский и софт-скиллы?
Язык — отдельной строкой с уровнем. Софт-скиллы не в стек. Их доказывают пули опыта. Исключение: письменный статус / тикетницы для поддержки.
Можно ли один skills на все отклики?
Каркас — да. Порядок групп и «плюсы» — под роль. Backend-вакансии не обязаны видеть ваш учебный Flutter первым.
Стоит ли писать Excel и Windows?
Для аналитика и операций — да, если это рабочий инструмент. Для backend-разработчика на первом экране — нет.
Как указать облако, если всё через консоль команды?
«Пользователь сервисов: бакеты, управляемый Postgres. IAM и сеть — не моя зона». Это сильнее логотипа AWS без факта.
Видит ли ATS группы и заголовки вроде «Данные»?
Часто важнее сами токены Python, PostgreSQL, Docker. Группы для человека. Не прячьте ключевые слова в картинки.
Что сделать сейчас
Выпишите стек на три листа: шапка, опыт, skills. Вычеркните всё, чем не готовы дебажить. Соберите skills в группы, шапку урежьте до якорей роли.
Откройте три целевые вакансии и проверьте, что пересечения есть в тексте, а не только в голове. Затем прогоните файл через разбор резюме. Если разбор цепляется к случайному пункту с конца списка — этого пункта в файле быть не должно. Сохраните две версии только если линии ролей разные. Третью «на всякий случай» обычно не открывают и отправляют не туда.