init
Release Please / release-please (push) Failing after 4m2s
Web CI / web typecheck + build (push) Successful in 3m39s
CodeQL Analysis / Analyze (javascript-typescript) (push) Failing after 1h1m49s
CodeQL Analysis / Analyze (go) (push) Failing after 1h1m49s

This commit is contained in:
redlineo committed 2026-07-13 10:14:00 +03:00
commit d295c7f139
1527 files changed
+270726

No files matched your search

View File
Whitespace-only changes.
+152
View File
@@ -0,0 +1,152 @@
# Оценка: Яндекс (Лавка) — Разработчик фронтенда (Vue/React) в Лавку
**Дата:** 2026-07-06
**URL:** https://yandex.ru/jobs/vacancies/razrabotchik-frontenda-vuereact-v-lavku-45878
**Архетип:** Frontend-разработчик (Vue.js), гибрид с React
**Балл:** 1.0/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (Vue.js), с частичным React (десктопная админка) |
| Domain | Frontend / retail-tech (складская логистика, дарксторы, кухни) |
| Function | Build (продуктовая разработка) + повышение надёжности (автотесты, метрики, алерты) + работа с legacy |
| Seniority | Middle+ (JD: "От 3 лет"; команда — 7 фронтенд-разработчиков) |
| Формат работы | **Гибридный / Офис. Санкт-Петербург или Москва. Удалённый формат в вакансии НЕ упомянут.** |
| Размер команды | 7 фронтенд-разработчиков (руководитель группы — Павел Жданов) |
| Оформление | Не указано явно; крупная компания, по умолчанию предполагается ТК РФ |
| TL;DR | Один из лучших стековых мэтчей в подборке (Vue 3 + тестирование + legacy-рефакторинг + ритейл-логистика), но формат работы — гибрид/офис в Москве или Санкт-Петербурге без опции удалёнки — прямо нарушает жёсткое ограничение кандидата (Тула, без переезда, без командировок), поэтому глобальный балл принудительно занижен. |
**Локация — ключевой блокер.** Кандидат живёт в Туле, релокацию и командировки не рассматривает (`config/profile.yml`, `modes/_profile.md`). Вакансия требует физического присутствия в офисе в Санкт-Петербурге или Москве ("Гибридный · Офис"), альтернативы "удалённо" в описании нет. По правилу из `modes/_profile.md`: *"Hybrid/office roles requiring relocation outside Тула, or requiring business travel: score 1.0 — hard constraint, not soft preference"*. Это применяется здесь в полном объёме.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Опыт от 3 лет | Здравсервис (ноя 2024 — наст. время, ~20 мес) + ТулГУ/БиоХимТех (мар–дек 2022, 10 мес фронтенд+бэкенд разработки) = ~2.5 года совокупного опыта. Немного не дотягивает до формальных "3 лет", но близко, и опыт непрерывный и разнообразный (3 продукта одновременно) |
| Vue или React ("можно и с одним") | **Сильное совпадение по Vue**: "Vue 3, Composition API, TypeScript, Pinia" — точная формулировка из cv.md для «Здесь ЕКОМ» и «РМК». React в cv.md не указан вовсе — но JD явно допускает владение только одним из двух фреймворков |
| REST, SSE, асинхронные процессы | cv.md: "REST API, WebSocket/WSS". SSE отдельно не упомянуто, но WebSocket (WSS) — близкий по духу протокол реального времени (внедряла WSS-оповещения на РМК) |
| Юнит- и E2E-тесты (Playwright/Vitest — плюс) | **Точное совпадение**: cv.md — "Vitest (unit-тесты Vue-компонентов), Storybook, Playwright (E2E-тесты на РМК)" — это прямо названный "большой плюс" в JD |
| Поддерживаемый, читаемый код | cv.md — Feature Branching, ESLint/Prettier, ревью через обучение коллеги системе версионирования |
| Готовность работать с legacy и улучшать его | **Сильное совпадение**: РМК — legacy-проект ~6 месяцев, ~20 багов исправлено, включая сложный кейс с замыканием в глобальном классе клавиатуры, внедрён Feature Branching и версионирование сборок |
| Плюс: опыт в логистике/ритейле/фудтехе | **Сильное совпадение**: «Здесь ЕКОМ» — система управления заказами, курьерами и логистикой для аптечной сети (~1200 точек) — прямой аналог складской/ритейл-логистики Лавки |
| Плюс: мобильные интерфейсы (UX склад/кухня) | cv.md: Flutter-приложение «Здесь Аптека», редизайн кнопки «Избранное», компактный блок информации о заказе — опыт мобильного UX в компании без дизайнера |
| Плюс: агрегация данных/аналитика (админка) | cv.md: интерфейс списка заказов с фильтрацией по 9 параметрам, RBAC с разграничением по отделам — релевантно для десктопной админки директоров/менеджеров |
**Пробелы:**
1. **React** — nice-to-have, не hard blocker (JD явно допускает один фреймворк). Стратегия закрытия: указать в сопроводительном письме готовность быстро закрыть разрыв, сослаться на быстрое освоение Vue 3/Composition API как доказательство скорости обучения новых фреймворков.
2. **Формальные "3 года опыта"** — soft blocker, реальный опыт ~2.5 года. Стратегия: подавать совокупный опыт (коммерческий + заказная разработка ТулГУ) как непрерывный трек с ноября 2022 по настоящее время.
3. **SSE** — nice-to-have. WebSocket — близкий транспортный протокол, можно упомянуть в сопроводительном письме как переносимый навык.
## C) Уровень и стратегия
1. **Уровень в JD** — Middle+ (команда из 7 опытных фронтендеров, "опытного фронтенд-разработчика"). **Естественный уровень кандидата** для архетипа Frontend (Vue.js) — Middle (`config/profile.yml`). Совпадает.
2. **План "продать senior без обмана"** — не требуется, уровни совпадают. Акцент делать на: (а) тестовой культуре (Vitest + Playwright — точное совпадение с "большим плюсом" JD), (б) legacy-рефакторинге (РМК), (в) домене логистики/ритейла (ЕКОМ ~1200 точек как аналог дарксторов).
3. **Если бы не локация** — при удалённом формате это была бы одна из сильнейших заявок в подборке (~4.3/5 без учёта локации): стек, тестирование, legacy и домен совпадают почти идеально.
**Итог по локации:** формат работы (гибрид/офис в Москве или Санкт-Петербурге, без удалёнки) обнуляет привлекательность оффера независимо от силы остальных измерений. Балл принудительно снижен до 1.0/5.
## D) Компенсация и спрос
WebSearch (RU market, июль 2026, использовано для этой и последующих 2 оценок — общий бюджет 5 запросов на вакансию, здесь применены рыночные данные без повторного поиска специфично под Яндекс):
| Источник | Данные |
|---|---|
| Общий рынок Middle Vue/React, Москва (2026) | Vue Middle: 290 000–380 000 ₽ gross; React Middle: медиана ~230 000 ₽ gross; общий диапазон Middle/Senior в Москве — 150 000–400 000 ₽ gross |
| Общий контекст | Москва платит на 15-30% больше регионов; конкуренция выросла (16 резюме на вакансию в 2025 vs 9 в 2023) |
JD не публикует вилку зарплаты — типично для Яндекса (закрытая политика, обсуждается на собеседовании). Ориентировочно, при её опыте (~2.5 года, Vue-стек) реалистичный диапазон gross — **180 000–250 000 ₽/мес**, что после НДФЛ (net ≈ gross × 0.87) даёт **~155 000–215 000 ₽/мес на руки** — выше цели кандидата (100 000–120 000+ ₽ на руки). Даже с учётом расходов на съём/дорогу при гипотетическом переезде это выше минимума. Однако вопрос комп не имеет значения при жёстком блокере по локации.
**Бенефиты:** расширенная ДМС с первого месяца (включая ментальное здоровье, стоматологию, коррекцию зрения, 30 дней полностью оплачиваемого больничного, страховка для родственников 80/20) — сильный пакет, выше среднего по рынку.
**Оформление:** не указано явно, но Яндекс как крупный публичный работодатель практически всегда оформляет по ТК РФ.
## E) План персонализации
*(Ниже — гипотетический план на случай, если кандидат решит откликнуться несмотря на локационный блокер, например ради получения оффера для последующих переговоров об удалёнке.)*
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Общий фокус на Vue3+Flutter+RBAC | Добавить акцент на legacy-рефакторинг и тестовую культуру (Vitest/Playwright) | Прямое совпадение с "большим плюсом" JD |
| 2 | Порядок буллетов ЕКОМ | График курьеров первым | Список заказов с 9 фильтрами и RBAC — первыми | Прямая аналогия с складской/ритейл-логистикой Лавки |
| 3 | Порядок буллетов РМК | В целом ровно | Вывести на первый план внедрение Playwright E2E и Feature Branching | JD явно называет автотесты и техдолг/рефакторинг ключевыми задачами |
| 4 | Skills | Vue 3 и Flutter вперемешку | Сгруппировать: Vue 3 / тестирование (Vitest, Playwright) на первое место | Соответствие структуре JD (стек → тестирование → legacy) |
| 5 | Cover letter | — | Явно указать готовность подтвердить формат работы (удалённо/Тула) на созвоне до продолжения процесса | Экономит время обеих сторон при жёстком локационном ограничении |
**Топ 5 изменений в LinkedIn/hh.ru:** синхронизировать заголовок с "Frontend-разработчик (Vue 3 + тестирование)", вынести Vitest/Playwright в топ навыков, указать домен "ритейл/логистика" явно, обновить локацию с пометкой "рассматриваю удалённо", добавить релевантный опыт RBAC в заголовок проекта ЕКОМ.
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Legacy + рефакторинг | РМК — баг с замыканием в клавиатуре | Клавиатура переставала работать после серии действий | Найти причину сбоя в legacy-коде | Диагностировала утечку через реактивную переменную в глобальном классе биндинга кнопок, исправила | Баг устранён, стабильность выросла | Осознала важность жизненного цикла реактивности в глобальных синглтонах — теперь всегда проверяет это в code review |
| 2 | Автотесты (плюс) | Внедрение Playwright E2E на РМК | Отсутствие автотестов на legacy-кассе | Снизить риск регрессий | Внедрила Playwright E2E тесты, покрытие позитивных/негативных сценариев | Проект на этапе стабилизации через автотесты | В следующий раз начала бы с E2E раньше, до накопления техдолга |
| 3 | Ритейл/логистика (плюс) | ЕКОМ — график курьеров vue-cal | Логистика вручную вносила расписание SQL-запросами через разработчиков | Дать логистике самостоятельность | Спроектировала drag-and-drop календарь на vue-cal | Отдел логистики полностью самостоятельно управляет графиком | Поняла ценность "давать бизнесу самостоятельность" как метрику успеха фичи |
| 4 | Работа с REST/WebSocket | РМК — WebSocket-оповещения в реальном времени | Не было видимости, какие аптеки онлайн | Дать наблюдаемость в реальном времени | Внедрила WSS-оповещения с индикацией прочтения | Видимость по ~1200 точкам, почти без задержки | Заметила поведенческий паттерн (половина читает сразу, остальные — в течение получаса) — использовала для планирования эскалаций |
| 5 | Мобильный UX (плюс) | «Здесь Аптека» — диагностика бага «Избранное» | Раздел не открывался, жалобы пользователей | Найти причину и исправить | Диагностировала загрузку одним запросом, реализовала постраничную загрузку | Жалобы прекратились | Стала активнее искать похожие проблемы производительности до жалоб |
| 6 | Аналитика/админка (плюс) | ЕКОМ — RBAC с разграничением по отделам | Не было разграничения доступа между логистикой и другими отделами | Спроектировать модель доступа | Спроектировала и объяснила бэкенд-команде ролевую модель, опираясь на профильное ИБ-образование | Разграничение внедрено и работает | Осознала ценность нестандартного бэкграунда (ИБ) как отличия от типичных frontend-кандидатов |
**Рекомендуемый кейс:** «Здесь ЕКОМ» целиком — единственный проект, где кандидат вела фронтенд с нуля, включая RBAC, drag-and-drop и списки с фильтрацией — максимально близко к складскому/ритейл-домену Лавки.
**Вопросы-ловушки:**
- *"Почему рассматриваете гибрид/офис при отсутствии релокации?"* — честно: "Живу в Туле, не рассматриваю переезд и командировки. Готова обсуждать этот оффер только если удалёнка возможна — иначе не смогу продолжить процесс."
- *"Почему нет коммерческого опыта с React?"* — "Мой основной стек — Vue 3, но архитектурные паттерны (компонентный подход, state management, работа с реактивностью) переносятся между фреймворками — Composition API и React Hooks решают похожие задачи."
## G) Легитимность вакансии
**Оценка: Высокая уверенность.**
1. **Свежесть/сигналы:** дата публикации не показана явно, но кнопка отклика активна ("Войти и откликнуться"), что указывает на открытый набор.
2. **Качество описания:** высокое. Названы конкретные технологии (Vue.js для мобильных приложений, React.js для десктопной админки), указан размер команды (7 человек), названо ФИО и роль руководителя (Павел Жданов, руководитель сектора), описана структура из трёх продуктов с чёткими доменами (склад/кухня/админка), явно расписаны задачи (надёжность, автотесты, метрики, алерты, legacy, DX) и разделены "обязательные" vs "плюсом" требования. Минимальный boilerplate — почти весь текст специфичен для этой команды.
3. **Компания:** Яндекс — публичная компания с многолетней историей найма через тот же портал (yandex.ru/jobs), дополнительное подтверждение легитимности не требуется; WebSearch на предмет hiring-сигналов не расходовался ввиду отсутствия каких-либо тревожных признаков.
Классифицирую как **Высокая уверенность** — нет оснований для "Требует осторожности" или "Подозрительно".
---
## Извлечённые ключевые слова
Vue.js, React.js, REST API, SSE, асинхронные процессы, юнит-тесты, E2E-тесты, Playwright, Vitest, поддерживаемый код, legacy, рефакторинг, автотесты, метрики, алерты, DX, ритейл, логистика, фудтех, мобильные интерфейсы, аналитика, админка, дарксторы
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover yandex-lavka` to fill in angles, confirm research, and generate the PDF. **Внимание: балл 1.0/5 из-за жёсткого локационного ограничения — компания настоятельно не рекомендуется к отклику до прояснения возможности удалённой работы.**
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Разрабатываю фронтенд для внутренних систем логистики и заказов на Vue 3 уже почти два года — задачи склада, дарксторов и кухонь в Лавке кажутся мне естественным продолжением этого пути.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). С ноября 2024 года веду фронтенд внутренней системы управления заказами и логистикой для аптечной сети из ~1200 точек, параллельно поддерживаю legacy-проект кассы и мобильное приложение на Flutter. Профильное образование в информационной безопасности дало нестандартный для frontend-разработчика опыт проектирования моделей авторизации.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **График курьеров на базе календаря vue-cal с drag-and-drop,** раньше расписание вносили разработчики вручную SQL-запросами по заявке логистики, теперь отдел логистики полностью самостоятельно управляет графиком.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** для отслеживания проблемных заказов — заменил неудобные таблицы 1С; сейчас им пользуются логисты, отдел работы с клиентами, техподдержка и разработчики.
- **Внедрила Playwright E2E-тесты** на legacy-проекте кассы (РМК) — покрытие позитивных и негативных сценариев.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые в компании видно, сколько аптек онлайн прямо сейчас, интерфейс показывает, кто и когда прочитал оповещение.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи по надёжности (автотесты, метрики, алерты) и legacy-рефакторингу актуальны для команды бэк-офиса Лавки прямо сейчас?
**Closing**
Готова обсудить формат работы — рассматриваю только удалённую занятость либо гибрид/офис в Туле; для продолжения диалога важно прояснить этот момент в первую очередь.
---
**Gaps flagged:**
- **Локация (критично):** вакансия требует гибрид/офис в Санкт-Петербурге или Москве без указания удалённого формата — прямой конфликт с ограничением кандидата (Тула, без переезда/командировок). Это должно быть прояснено до отклика.
- React — не hard blocker, но стоит явно обозначить как зону быстрого роста.
**JD keywords to mirror** *(extracted for ATS + human read)*
Vue.js, легаси, автотесты, надёжность, DX, ритейл-логистика, склад, дарксторы, юнит- и E2E-тесты, Playwright, Vitest, мобильные интерфейсы, аналитика
---
*Run `/career-ops cover yandex-lavka` to complete angles, confirm company research, and generate the PDF.*
+145
View File
@@ -0,0 +1,145 @@
# Оценка: VK — Frontend-разработчик (MAX)
**Дата:** 2026-07-06
**URL:** https://team.vk.company/vacancy/45699/
**Архетип:** Frontend-разработчик (React) — не входит в основные архетипы кандидата
**Балл:** 2.3/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик, стек — React (хуки, контекст, Redux Toolkit/RTK Query/React Query) |
| Domain | Мессенджер/платформа MAX — мини-приложения, Цифровой ID, спецпроекты интеграций |
| Function | Build — разработка фронтенда мини-приложений и спецпроектов |
| Seniority | Middle (указано явно в JD) |
| Формат работы | **Москва · Дистанционный / Комбинированный — удалённый формат явно доступен как опция** |
| Размер команды | Не указан |
| Оформление | Не указано явно |
| TL;DR | Уровень (Middle) и локация (удалёнка доступна) подходят кандидату, но ядро требований — глубокий коммерческий React (хуки, Redux Toolkit, RTK Query/React Query) — отсутствует в CV кандидата, чей основной стек — Vue 3. Это не архетип из North Star кандидата, а смежная, но иная экосистема. |
**Локация — не блокер.** В отличие от вакансии Яндекс Лавки, здесь явно указан формат "Дистанционный / Комбинированный" — удалённая работа доступна как штатная опция. Хард-ограничение из `modes/_profile.md` (переезд/командировки) здесь не срабатывает: оцениваем по обычной шкале.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Коммерческая разработка фронтенда от 3 лет | Здравсервис (~20 мес) + ТулГУ/БиоХимТех (10 мес) ≈ 2.5 года. Ближе к границе, чем в других вакансиях подборки, но формально не хватает |
| JavaScript и TypeScript | **Совпадение**: cv.md — "JavaScript, TypeScript, HTML5/CSS3, Dart" |
| React: хуки, контекст, оптимизация рендеринга, Redux Toolkit / RTK Query / React Query | **Отсутствует.** cv.md не упоминает React вовсе — весь фреймворковый опыт на Vue 3 (Composition API, Pinia) и Flutter (BLoC). Pinia и BLoC — паттерны управления состоянием, концептуально близкие к Redux, но не эквивалент практического опыта |
| Сложные интерфейсы: формы, таблицы, списки, фильтры | **Частичное совпадение** — cv.md: "Интерфейс списка заказов с фильтрацией по 9 параметрам" (TanStack Table), "график курьеров... drag-and-drop" — тот же класс задач, но реализован на Vue-экосистеме (TanStack Table работает и с React, это нейтральный инструмент) |
| Vite, линтеры, форматтеры, CI | **Совпадение**: cv.md — "Vite, npm, ESLint, Prettier"; "CI/CD (рабочий опыт)" |
| REST API, обработка ошибок, сетевые состояния, аналитика/мониторинг на фронте | **Частичное совпадение**: "REST API, WebSocket/WSS"; явного опыта интеграции продуктовой аналитики (метрики фронта) в cv.md нет |
| Код-ревью, декомпозиция задач, документирование | **Совпадение**: cv.md — "документирование, участие в планировании спринтов и приоритизации бэклога"; обучила коллегу системе версионирования (менторский элемент) |
**Пробелы:**
1. **React как основной фреймворк (hard blocker для этой роли).** JD требует глубокого практического владения React-экосистемой (хуки, Redux Toolkit, RTK Query/React Query) — это ядро задач, не периферийный навык. У кандидата ноль коммерческого опыта с React. Стратегия закрытия: честно обозначить это как переход между экосистемами state-менеджмента (Pinia/BLoC → Redux), но признать, что для этой конкретной роли разрыв велик и потребует значительного онбординга именно во время испытательного срока.
2. **3 года коммерческого опыта** — то же ограничение, что и в других вакансиях: ~2.5 года по факту.
3. **Продуктовая аналитика/мониторинг фронта** — не описано в cv.md явно, вероятно nice-to-have пробел, закрываемый на месте.
## C) Уровень и стратегия
1. **Уровень в JD** — Middle (указано явно). **Естественный уровень кандидата** — Middle (`config/profile.yml`). Уровни совпадают номинально, но при отсутствии React содержательно кандидат ближе к junior-в-React, даже будучи middle-в-Vue.
2. **План "продать senior без обмана"** — неприменимо (уровни и так совпадают на бумаге); релевантнее план "продать несмотря на разрыв в стеке": подчёркивать перенос архитектурных паттернов (компонентный подход, паттерны стейт-менеджмента, работа с формами/таблицами/фильтрами) как способность быстро выйти на продуктивность, а не выдавать себя за опытного React-разработчика.
3. **Если понизят уровень / предложат testing period с акцентом на обучение React** — разумный компромисс: принять только если работодатель прозрачно закладывает время на онбординг в React, иначе риск быстрого несоответствия ожиданиям.
**Честная рекомендация:** учитывая, что ядро роли — React, а кандидат осознанно строит карьеру вокруг Vue.js (`modes/_profile.md`, `config/profile.yml`), эта вакансия — не стратегический шаг к её North Star ролям, а скорее смена специализации. Стоит откликаться только при осознанном решении сменить основной фреймворк.
## D) Компенсация и спрос
| Источник | Данные (общий рынок Middle React, Москва, июль 2026 — WebSearch, использован общий поиск, разделяемый с остальными вакансиями подборки) |
|---|---|
| Медиана Middle React | ~230 000 ₽/мес gross |
| Диапазон Middle/Senior Москва | 150 000–400 000 ₽/мес gross, Москва платит на 15-30% выше регионов |
JD не раскрывает вилку. VK — крупная публичная компания, комп обычно на уровне рынка или чуть выше для продуктовых команд с большим охватом (MAX — мессенджер федерального масштаба). Ориентировочно gross **170 000–230 000 ₽/мес** для Middle без глубокого React (вероятно нижняя часть вилки из-за пробела в стеке), net ≈ gross × 0.87 → **~148 000–200 000 ₽/мес на руки** — выше цели кандидата (100 000–120 000+ на руки), но эта оценка не учитывает вероятное понижение предложения из-за отсутствия практического React на собеседовании.
**Бенефиты (из JD):** гибкий график, бонусы и скидки от партнёров, офис в центре города, ДМС, профессиональная команда — стандартный, но не выдающийся пакет.
**Оформление:** не указано.
## E) План персонализации
*(Актуально только при осознанном решении сменить фокус на React — иначе применять не рекомендуется.)*
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Сместить на "паттерны компонентной архитектуры и стейт-менеджмента, переносимые между Vue/React/Flutter" | Не скрывать пробел, но показать концептуальный перенос |
| 2 | Порядок буллетов | Курьерский график первым | Список заказов с 9 фильтрами и TanStack Table — первым (инструмент нейтрален к фреймворку) | TanStack Table используется и в React-экосистеме — снижает воспринимаемый разрыв |
| 3 | Skills | Vue/Flutter в начале | Добавить явную строку "готова к быстрому onboarding в React (хуки, Redux Toolkit) — опыт быстрого освоения Flutter/BLoC с нуля как прецедент" | Даёт рекрутеру доказательство скорости обучения, а не голословное заявление |
| 4 | Cover letter | — | Прямо назвать отсутствие коммерческого React и предложить тестовое задание/техническое интервью с фокусом на архитектурное мышление, а не синтаксис | Снижает риск отсева на этапе резюме за нечестность |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Сложные формы/таблицы/фильтры | ЕКОМ — список заказов с 9 фильтрами | Логисты пользовались неудобными таблицами 1С | Заменить интерфейсом с фильтрацией | Спроектировала список заказов с TanStack Table и 9 параметрами фильтрации | Используется логистикой, клиентским отделом, техподдержкой, разработчиками | Поняла ценность единого интерфейса для нескольких ролей вместо разрозненных инструментов |
| 2 | Redux/стейт-менеджмент (перенос из Pinia/BLoC) | ЕКОМ — Pinia в масштабном проекте с нуля | Нужен предсказуемый стейт-менеджмент для нескольких модулей | Спроектировать стор на Pinia | Внедрила модульную структуру Pinia-сторов | Проект стабильно растёт больше года | Изучила, как паттерны stores/actions переносятся между Pinia и другими state-библиотеками |
| 3 | Vite/CI/линтеры | РМК и ЕКОМ — тулинг | Требовалась стабильная сборка и качество кода | Настроила/использовала Vite, ESLint, Prettier, Feature Branching | Команда перешла на стабильные еженедельные релизы | Осознала, что процессные инструменты важнее личного героизма разработчика |
| 4 | Обработка ошибок/сетевые состояния | РМК — WebSocket-оповещения в реальном времени | Не было надёжной доставки статусов в реальном времени | Внедрить WSS с отслеживанием доставки/прочтения | Оповещения доходят практически без задержки, видно кто прочитал и когда | Работает на ~1200 точках | Узнала, как важно проектировать состояния "частичного успеха" (не все точки читают сразу) |
| 5 | Код-ревью/менторство | РМК — обучение коллеги с 11-летним стажем Git/GitLab | Коллега не работал с Feature Branching | Обучить и внедрить процесс | Ввела Feature Branching, обучила коллегу | Сократилось количество "зависших" фич | Поняла, что менторство работает лучше через демонстрацию на реальной задаче, а не лекцию |
**Рекомендуемый кейс:** ЕКОМ — список заказов с фильтрами (TanStack Table) как самый нейтральный к фреймворку пример сложного UI, максимально близкий к формулировкам JD ("формы, таблицы, списки, фильтры").
**Вопросы-ловушки:**
- *"Почему нет коммерческого опыта с React?"* — честно: "Мой стек — Vue 3 и Flutter, оба используют похожие паттерны компонентной архитектуры и реактивности. Готова к интенсивному онбордингу, но резонно ожидать более длинный период выхода на продуктивность, чем у кандидата с опытом в React."
- *"Почему решили сменить основной фреймворк?"* — нужен честный ответ от кандидата до отклика; в текущем виде мотивация не задокументирована в исходных файлах.
## G) Легитимность вакансии
**Оценка: Высокая уверенность.**
1. **Свежесть/сигналы:** кнопка отклика активна ("Откликнуться", ведёт на `/feedback/45699/`) — открытый набор.
2. **Качество описания:** хорошее. Указан уровень (middle), график (полный), три конкретные группы задач (мини-приложение Цифровой ID MAX, мини-приложения спецсервисов, спецпроекты интеграций с маркетингом), детализированный технический стек требований (хуки, контекст, Redux Toolkit/RTK Query/React Query — не общие фразы), описан продукт (MAX — мессенджер + мини-приложения + нейропомощник + платежи + конструктор ботов). Умеренный boilerplate в блоке "Мы предлагаем" (стандартные формулировки), но основной текст специфичен.
3. **Компания:** VK — крупная публичная компания с официальным карьерным порталом (team.vk.company). Дополнительный WebSearch по hiring-сигналам не производился — нет оснований для настороженности.
Классифицирую как **Высокая уверенность**.
---
## Извлечённые ключевые слова
JavaScript, TypeScript, React, хуки, контекст, оптимизация рендеринга, Redux Toolkit, RTK Query, React Query, сложные интерфейсы, формы, таблицы, списки, фильтры, Vite, линтеры, форматтеры, CI, REST API, обработка ошибок, код-ревью, документирование, мини-приложения, MAX
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover vk-max` to fill in angles, confirm research, and generate the PDF. **Внимание: балл 2.3/5 — основной технический стек роли (React) отсутствует в опыте кандидата; настоятельно рекомендуется не откликаться без явного намерения сменить специализацию.**
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Два года веду продуктовую разработку фронтенда с нуля на Vue 3 и Flutter — интересно, что MAX объединяет мессенджер, мини-приложения и платёжный сервис в одной платформе.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и Flutter. Веду несколько продуктов одновременно: систему управления заказами и логистикой с нуля, legacy-проект кассы и мобильное приложение. Профильное образование в информационной безопасности дало нестандартный опыт проектирования моделей авторизации и доступа.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** для отслеживания проблемных заказов — заменил неудобные таблицы 1С; сейчас им пользуются логисты, отдел работы с клиентами, техподдержка и разработчики.
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** работе с системой версионирования — команда перешла на стабильные еженедельные релизы.
- **График курьеров на базе календаря vue-cal с drag-and-drop** — заменил ручной ввод расписания SQL-запросами разработчиков.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые видно, сколько аптек онлайн и кто прочитал оповещение и когда.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие конкретные задачи сейчас стоят перед командой MAX по мини-приложениям (Цифровой ID, спецпроекты интеграций)?
**Closing**
Готова обсудить формат онбординга в React-экосистему — открыта к техническому собеседованию, ориентированному на архитектурное мышление, а не только синтаксис фреймворка.
---
**Gaps flagged:**
- **React (критично):** нет коммерческого опыта; ядро роли — React-экосистема (хуки, Redux Toolkit, RTK Query/React Query). Это самый серьёзный разрыв во всей подборке вакансий.
- Формально не хватает нескольких месяцев до заявленных "3 лет" коммерческого опыта.
- Домен (мессенджер/мини-приложения) не пересекается напрямую с опытом кандидата (ритейл/логистика/аптеки) — потребует отдельного объяснения мотивации.
**JD keywords to mirror** *(extracted for ATS + human read)*
React, TypeScript, Redux Toolkit, RTK Query, хуки, сложные интерфейсы, формы и таблицы, Vite, REST API, код-ревью, мини-приложения
---
*Run `/career-ops cover vk-max` to complete angles, confirm company research, and generate the PDF.*
@@ -0,0 +1,147 @@
# Оценка: VK — Старший Frontend-разработчик сообщества (ВКонтакте)
**Дата:** 2026-07-06
**URL:** https://team.vk.company/vacancy/52033/
**Архетип:** Senior Frontend-разработчик (React) — не входит в архетипы кандидата, серьёзный разрыв по уровню
**Балл:** 1.8/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Senior Frontend-разработчик, React, архитектурная ответственность за платформу сообществ ВКонтакте |
| Domain | Высоконагруженная социальная платформа (до 125 млрд запросов к API в сутки, до 30 релизов в сутки) |
| Function | Build + архитектура + менторство + технические инициативы |
| Seniority | **Senior** (указано явно в JD: "более четырёх лет" frontend-разработки) |
| Формат работы | Москва или Санкт-Петербург (офис) · Комбинированный / Дистанционный. JD прямо пишет: "специалиста, который сможет посещать офис... и работать в комбинированном или дистанционном режиме" — удалёнка формально доступна, но формулировка предполагает готовность приезжать в офис |
| Размер команды | Не указан явно ("небольшая команда разработчиков", суперпрофессионалы) |
| Оформление | Не указано |
| TL;DR | Двойной разрыв: (1) требуемый уровень — Senior, 4+ года опыта, архитектурная ответственность и менторство — тогда как у кандидата ~2.5 года и уровень Middle; (2) требуемый стек — React, тогда как у кандидата коммерческого React нет вовсе. Локация формально не блокер (удалёнка упомянута), но пограничная (JD ожидает готовности приезжать в офис). |
**Локация — не жёсткий блокер, но требует уточнения.** В отличие от вакансии Яндекс Лавки, здесь явно перечислен формат "Комбинированный / Дистанционный", то есть чисто удалённый режим формально доступен. Однако фраза JD "специалиста, который сможет посещать офис в Москве или Санкт-Петербурге" сигнализирует, что компания рассчитывает на периодическую личную явку — это не то же самое, как "полностью удалённая роль без каких-либо условий". Кандидат не рассматривает командировки/переезд (`modes/_profile.md`). Поскольку JD прямо перечисляет "дистанционный" как отдельный принимаемый формат (а не только "комбинированный"), это не квалифицируется как жёсткий блокер по правилу оценки, но требует явного уточнения на первом созвоне: действительно ли доступен полностью удалённый трек без периодических визитов в офис.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Frontend-разработка более 4 лет | **Существенный разрыв.** Здравсервис (~20 мес) + ТулГУ/БиоХимТех (10 мес) ≈ 2.5 года совокупного опыта — почти вдвое меньше требуемых 4+ лет |
| JavaScript/TypeScript, HTML, CSS "отлично" | cv.md: "JavaScript, TypeScript, HTML5/CSS3" — формально присутствует, но JD подразумевает экспертный, а не рабочий уровень |
| Разработка веб-приложений на React и проектирование их архитектуры | **Отсутствует.** Весь архитектурный опыт кандидата — на Vue 3 (спроектировала фронтенд ЕКОМ с нуля, включая RBAC, роутинг, стор) и Flutter (Clean Architecture). React в cv.md не упомянут ни разу |
| Разбираться в большом количестве чужого кода | **Частичное совпадение**: РМК — legacy-проект, ~20 багов исправлено, включая сложный кейс с замыканием в чужом коде |
| Процессные и технические улучшения | **Совпадение**: Feature Branching, версионирование сборок, обучение коллеги, инициировала возврат к целеполаганию на полгода/год |
| Плюс: менторство, участие в найме | **Слабое частичное совпадение**: обучила одного коллегу системе версионирования — это не формальное менторство и не участие в найме |
| Плюс: mobx/effector | Отсутствует (кандидат работает с Pinia — Vue-экосистема) |
| Плюс: базовое знание PHP | Отсутствует в cv.md |
| Плюс: ведение сообщества в соцсети | Не упомянуто |
**Пробелы:**
1. **Уровень (hard blocker).** JD прямо требует "более четырёх лет" и архитектурную ответственность senior-уровня. У кандидата ~2.5 года и уровень Middle по всем архетипам в `config/profile.yml`. Подавать заявку на позицию с завышением уровня — прямое нарушение принципа "keywords get reformulated, never fabricated" из `CLAUDE.md`, и рискованно с этической точки зрения (тратит время и кандидата, и рекрутера).
2. **React как основной фреймворк архитектуры (hard blocker)** — та же проблема, что и в VK MAX, но здесь требования выше: не просто "знание React", а "проектировали архитектуру" на нём.
3. **Менторство/найм** — заявлено как плюс, у кандидата минимальный релевантный опыт (обучение одного коллеги).
4. **mobx/effector, PHP** — nice-to-have, отсутствуют, не критично.
## C) Уровень и стратегия
1. **Уровень в JD** — явный Senior (4+ года, архитектура, менторство, участие в найме). **Естественный уровень кандидата** — Middle. Разрыв в 2 ступени по факту опыта (senior обычно 4-6+ лет против её ~2.5).
2. **План "продать senior без обмана" — неприменим.** Честная оценка: заявленный уровень требует опыта, которого у кандидата пока нет, и стека (React), которого у неё нет вовсе. Попытка представить Middle-опыт на Vue как соответствие Senior-роли на React означала бы либо преувеличение (недопустимо по правилам `CLAUDE.md`), либо неизбежный провал на техническом интервью.
3. **План "если понизят уровень"** — в данном случае не про понижение оффера, а про то, стоит ли вообще претендовать. Рекомендация: **не откликаться на эту роль сейчас**. Если кандидат хочет двигаться в сторону такой позиции в будущем, реалистичный путь — сначала закрыть разрыв в опыте (до 4 лет) и стек (получить коммерческий React), а не пытаться закрыть оба разрыва одним прыжком через сопроводительное письмо.
## D) Компенсация и спрос
| Источник | Данные (общий рынок Senior Frontend/React, Москва, июль 2026 — WebSearch, использован общий поиск, разделяемый с остальными вакансиями подборки) |
|---|---|
| Медиана Senior Frontend, Москва (hh.ru, февраль 2026) | ~287 500 ₽/мес gross |
| Диапазон (P25–P75) | ~215 625–388 125 ₽/мес gross |
| Другие источники | 300 000–400 000 ₽/мес gross для Senior в Москве в 2026 |
Комп для этой роли объективно привлекателен и заметно выше цели кандидата (100 000–120 000+ ₽ на руки): даже нижняя граница P25 (~215 000 ₽ gross → net ≈ 187 000 ₽ на руки) превышает минимум почти вдвое. **Однако это не повод откликаться при столь явном разрыве по уровню и стеку** — привлекательная зарплата senior-роли не отменяет реального несоответствия требованиям, а искусственное позиционирование под неё создаёт риск быстрого провала на техническом собеседовании и репутационные издержки.
**Бенефиты (из JD):** гибкий график, бонусы и скидки от партнёров, офис в центре города, ДМС, профессиональная команда — тот же стандартный пакет, что и в VK MAX.
**Оформление:** не указано.
## E) План персонализации
**Рекомендация: не готовить персонализацию CV/PDF для этой вакансии сейчас.** При балле 1.8/5 и двойном хард-разрыве (уровень + стек) любая тонкая настройка резюме не изменит фундаментального несоответствия. Вместо плана персонализации — roadmap на будущее:
| # | Что нужно закрыть | Как | Срок (ориентировочно) |
|---|---|---|---|
| 1 | Коммерческий React | Проектный опыт или смена команды на React-стек | 6-12 месяцев практики |
| 2 | 4+ года опыта | Продолжать текущую роль в Здравсервис | ~1.5-2 года |
| 3 | Менторство/найм | Формально взять на себя менторство джуниора в текущей команде | Договориться с руководителем в Здравсервис |
## F) План собеседований
*(Приведено для полноты формата — не рекомендуется использовать для реального отклика на эту роль сейчас.)*
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Разбираться в чужом коде | РМК — баг с замыканием в глобальном классе клавиатуры | Клавиатура переставала работать, код был чужим legacy | Найти причину в незнакомой кодовой базе | Диагностировала утечку реактивной переменной, исправила | Баг устранён | Осознала ценность систематической диагностики перед изменением чужого кода |
| 2 | Технические инициативы/процессы | РМК — Feature Branching и версионирование | Не было стабильного процесса релизов | Внедрить Git Flow и версионирование сборок | Обучила коллегу, внедрила процесс | Команда перешла на стабильные еженедельные релизы | Поняла, что процессные изменения требуют личного примера, а не только документации |
| 3 | Архитектура (частичный перенос с Vue) | ЕКОМ — фронтенд с нуля на Vue 3 | Не было архитектуры для нового внутреннего продукта | Спроектировала структуру (Composition API, Pinia, Vue Router, RBAC) | Продукт растёт больше года, используется несколькими отделами | Полезный, но не React-специфичный опыт — честно обозначать как таковой |
**Рекомендуемый кейс:** не применимо при текущем балле — сначала закрыть разрывы по уровню и стеку.
**Вопросы-ловушки (если кандидат всё же решит откликнуться ради опыта собеседования):**
- *"Расскажите про архитектуру React-приложения, которую вы проектировали"* — честного ответа с реальным опытом нет; это будет заметно на техническом интервью.
- *"Как обеспечиваете совместимость с разными браузерами при 125 млрд запросов в сутки?"* — вне текущего опыта кандидата.
## G) Легитимность вакансии
**Оценка: Высокая уверенность.**
1. **Свежесть/сигналы:** кнопка отклика активна ("Откликнуться", ведёт на `/feedback/52033/`) — открытый набор.
2. **Качество описания:** высокое. Указан уровень (senior) и график, конкретные цифры масштаба (до 30 релизов/сутки, до 125 млрд запросов к API/сутки), детализированные задачи (веб-инструменты для сообществ, архитектура фронтенда, код-ревью, взаимодействие с продуктом/дизайном/бэкендом), явно перечислены "плюсом" навыки (mobx/effector, PHP, ведение сообщества в соцсети) — специфичные, не шаблонные детали. Умеренный boilerplate в блоке "Мы предлагаем" (идентичен блоку VK MAX — типично для стандартного HR-шаблона одной компании), но основной текст описания роли уникален и детализирован.
3. **Компания:** VK, тот же официальный карьерный портал (team.vk.company), что и в VK MAX. Дополнительный WebSearch по hiring-сигналам не производился — нет оснований для настороженности.
Классифицирую как **Высокая уверенность**.
---
## Извлечённые ключевые слова
Frontend-разработка, JavaScript, TypeScript, HTML, CSS, React, архитектура фронтенда, масштабируемость, переиспользуемость, код-ревью, технические инициативы, оптимизация производительности, менторство, найм, mobx, effector, PHP, сообщества, высоконагруженный, релизы, API
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover vk-vkontakte-senior` to fill in angles, confirm research, and generate the PDF. **Внимание: балл 1.8/5 — двойной разрыв по уровню (Senior vs фактический Middle, ~2.5 года опыта) и по стеку (React отсутствует). Настоятельно не рекомендуется откликаться на эту вакансию сейчас.**
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Слежу за тем, как ВКонтакте развивает инструменты для сообществ и авторов — этот масштаб задач по производительности и совместимости очень привлекателен.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). Спроектировала с нуля фронтенд внутренней системы управления заказами и логистикой для сети из ~1200 точек, включая ролевую модель авторизации (RBAC). Профильное образование в информационной безопасности даёт нестандартный взгляд на архитектуру доступа.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC) с разграничением между отделами** — объясняла бэкенд-разработчику принцип работы, опираясь на профильное ИБ-образование.
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** работе с системой версионирования — команда перешла на стабильные еженедельные релизы.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** — заменил неудобные таблицы 1С, используется несколькими отделами.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые видно, сколько из ~1200 аптек онлайн и кто прочитал оповещение и когда.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: этот раздел не рекомендуется заполнять для отклика при текущем уровне несоответствия — сначала закрыть разрывы по опыту и стеку (см. Блок E).
**Closing**
Открыта к обратной связи о том, какой опыт нужен, чтобы дорасти до такой роли в будущем.
---
**Gaps flagged:**
- **Уровень (критично):** JD требует Senior/4+ года опыта; у кандидата ~2.5 года и уровень Middle. Это самый серьёзный разрыв во всей подборке.
- **React (критично):** ядро роли — проектирование архитектуры на React; у кандидата нет коммерческого React-опыта.
- **Менторство/найм** — заявлено как плюс, реального релевантного опыта почти нет.
- **Локация** — формально не блокер (доступна "дистанционный" формат), но формулировка JD предполагает готовность периодически приезжать в офис Москвы/Петербурга — уточнить на первом созвоне, прежде чем продолжать процесс.
**JD keywords to mirror** *(extracted for ATS + human read)*
React, архитектура фронтенда, масштабируемость, высоконагруженный, код-ревью, технические инициативы, менторство, производительность
---
*Run `/career-ops cover vk-vkontakte-senior` to complete angles, confirm company research, and generate the PDF.*
+152
View File
@@ -0,0 +1,152 @@
# Оценка: Ozon — Frontend-разработчик (ERP и учётные системы)
**Дата:** 2026-07-06
**URL:** https://ozon.tech/vacancies/cd28fe61-26c7-4a28-9d26-aafcde3fc189-frontend-razrabotchik-razrabotka-pol-zovatel-skikh-interfeisov/
**Архетип:** Frontend Developer (Vue.js) — primary
**Балл:** 4.2/5
**Legitimacy:** Высокая уверенность
**PDF:** output/cv-romanova-valeriya-ozon-erp-2026-07-06.pdf
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (Vue.js) — прямое совпадение с primary-архетипом кандидата |
| Domain | Enterprise / ERP и учётные системы (ЭДО, работа с контрагентами, зарплатные расчёты складов) |
| Function | Build — разработка интерфейсов + прототипирование UX + участие в проектировании API |
| Seniority | Middle (заявлено в JD) |
| Формат работы | Офис / удалённая работа / гибрид — Москва, СПб, Иннополис, Новосибирск, Алматы, Астана. **Удалёнка указана явно** → не попадает под жёсткое ограничение по локации |
| Размер команды | Не указан (команда «ERP и учётные системы») |
| Оформление | Не указано в JD — предположительно ТК РФ (стандарт для Ozon), требует уточнения на собеседовании |
| TL;DR | Крепкая Middle-позиция на Vue 3/TS в высоконагруженной команде ERP Ozon (200K RPS чтение, 8K RPS запись) с удалённым форматом работы — сильное совпадение по стеку; главный риск — формальный порог «3+ года JS» при фактическом опыте кандидата около 2 лет. |
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Опыт разработки на JavaScript от 3-х лет | Нояб. 2024 — наст. время (Здравсервис, Frontend/Flutter, ~1.5 года) + март–дек. 2022 (ТулГУ, заказная разработка на Vue.js, 10 мес.) = совокупно ~2 года практики. **Пробел** (см. ниже) |
| Экспертное знание JavaScript/TypeScript/HTML/CSS/Git | «Vue 3, Composition API, TypeScript, Pinia... Vite, ESLint, Prettier... Git, GitLab» (Навыки, cv.md) |
| Опыт разработки на Vue (NuxtJS) 2/3 | «Vue 3, Composition API, Vue Router, Pinia, Vue 2 (базово)» — коммерческий опыт на Vue 3 в проекте «Здесь ЕКОМ» (разработан с нуля). Nuxt не использовался коммерчески — **пробел** |
| Понимание принципов UX | «UI/UX: самостоятельное проектирование интерфейсов и редизайн ... в компании без штатного дизайнера» — редизайн кнопки «Избранное», редизайн блока информации о заказе |
| Клиент-серверная архитектура, опыт работы с API | «REST API, WebSocket/WSS»; «Внедрила WebSocket для оповещений в реальном времени» (РМК); проектирование RBAC во взаимодействии с бэкенд-командой (ЕКОМ) |
| Умение писать простой, структурированный, читаемый код | Feature Branching (Git Flow) внедрён в команде; Vitest unit-тесты, Storybook |
| Понимание классических алгоритмов и структур данных | Не отражено явно в CV — **пробел** |
| Опыт работы в команде | «менторство, кросс-командное взаимодействие (логистика, бэкенд, техподдержка, отдел работы с клиентами)»; обучила коллегу с 11-летним стажем работе с Git |
| Плюс: Figma | Не указано в CV — **пробел** (частично закрывается опытом самостоятельного UI/UX-редизайна) |
| Плюс: GitLab, Docker, Nginx, WebSockets | GitLab — да; Docker — в разделе «Быстро осваиваю» (не коммерческий опыт); WebSockets — да, коммерческий опыт (РМК) |
| Плюс: оптимизация Performance | Явно не отражена, но косвенно — оптимизация загрузки «Избранное» (постраничная загрузка вместо одного тяжёлого запроса) |
| Плюс: тесты (CodeceptJS/Playwright/Jest) | Playwright E2E внедрён на РМК; Vitest — юнит-тесты компонентов Vue |
**Пробелы и стратегия закрытия:**
1. **«3+ года JS»** — мягкий блокер (количественный, но не жёсткий фильтр уровня Middle в целом). Стратегия: не спорить с цифрой напрямую, а показать плотность и объём ownership — три продукта одновременно (веб с нуля, legacy-проект, мобильное приложение), проектирование RBAC, менторство разработчика с 11-летним стажем. Это поведение уровня выше формального стажа.
2. **Nuxt** — nice-to-have. Кандидат владеет Vue 3 core на продакшн-уровне и указывает Nuxt в «быстро осваиваю» — честно сказать: коммерческого опыта с Nuxt нет, но архитектурные принципы (SSR, роутинг, конвенции) осваиваются быстро при глубоком знании Vue 3.
3. **Алгоритмы и структуры данных** — риск на техническом интервью, а не блокер резюме. Стратегия: точечная подготовка к типовым задачам перед этапом.
4. **Figma** — nice-to-have. Закрывается через рассказ о самостоятельном UI/UX-проектировании (кнопка «Избранное», компоновка блока заказа, app-иконки) — дизайнерский вкус без инструмента Figma специально не терялся.
5. **Performance optimization** — nice-to-have. Использовать кейс с постраничной загрузкой «Избранное» как пример реальной оптимизации отклика интерфейса.
## C) Уровень и стратегия
1. **Уровень в JD:** Middle. **Естественный уровень кандидата для этого архетипа:** переходный Junior+/Middle — по формальному стажу (~2 года) ближе к Junior+, но по объёму ответственности (продукт с нуля, RBAC-дизайн, менторство сеньора) — на уровне Middle.
2. **План «продать Middle без обмана»:** делать акцент не на годах, а на фразах ownership — «разработала фронтенд ЕКОМ с нуля», «спроектировала и объяснила бэкенд-команде ролевую модель авторизации», «обучила коллегу с 11-летним стажем работе с системой версионирования — команда перешла на стабильные еженедельные релизы». Эти формулировки продают уровень ответственности, а не мнимый стаж.
3. **План «если понизят уровень»:** если предложат Junior+ по деньгам — принять только при условии пересмотра через 3-6 месяцев с чёткими критериями роста (закрытие пробелов по Nuxt/Docker/perf), зафиксированными письменно.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| Рыночная вилка Middle Vue-разработчик, Москва | 180 000 – 380 000 ₽ gross (общий разброс по нескольким источникам); TypeScript добавляет +12-18% к зарплате, тестирование/CI/CD/Docker — ещё +15-22% к медиане |
| Ozon Tech — уровень оплаты | Компания оценивается как конкурентная по рынку; для Senior база от 550 000 ₽, суммарный доход с бонусами может превышать 12 млн ₽/год — сигнал, что Middle-вилка внутри Ozon также выше медианы рынка |
| Отзывы сотрудников (Хабр Карьера, Dream Job) | В основном положительные: интересные задачи, отсутствие микроменеджмента, высоконагруженные системы, гибрид/полная удалёнка сохраняются для большинства ИТ-команд. Есть критика: «хорошее место для старта карьеры, но сложно развиваться дальше» |
| Бенефиты (из JD) | ДМС со стоматологией + льготная страховка для близких, страхование от несчастных случаев, полис для выезжающих за рубеж, психолог, корпоративные курсы (Ozon Универ), спортивные клубы, льготная жилищная программа, оплата участия в конференциях |
**Gross vs Net:** в JD зарплата не указана явно. Если ориентироваться на рыночную вилку Middle Vue в Москве (180 000–380 000 ₽ gross), net ≈ gross × 0.87 → **~157 000–330 000 ₽ на руки** — существенно выше минимума кандидата (100 000 ₽ на руки) и выше цели (100 000–120 000+ ₽). Комп-дименсия оценивается высоко.
**Оформление:** не указано в JD, требует уточнения на собеседовании (ожидание — ТК РФ, стандарт для крупных ИТ-компаний вроде Ozon).
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Общее описание Vue3+Flutter опыта | Добавить акцент на «клиент-серверная архитектура», «API design», «структурированный код» — точные формулировки JD | ATS-совпадение + человеческое чтение за 6 секунд |
| 2 | Компетенции | Общий список навыков | Вынести в грид: TypeScript, Vue 3 (Composition API), REST API, WebSocket, RBAC/авторизация, Git/GitLab, Vitest/Playwright, UI/UX-редизайн | Прямое зеркалирование JD-требований |
| 3 | Опыт — ЕКОМ | Стандартный порядок буллетов | Поднять наверх RBAC-дизайн и работу с API/бэкендом (это прямое совпадение с «участвовать в проектировании API») | Самый сильный релевантный proof point первым |
| 4 | Опыт — РМК | Буллеты в исходном порядке | Поднять наверх внедрение Playwright E2E и код-ревью/рефакторинг (закрытие бага с замыканием) | Совпадает с «поддержка и развитие существующей кодовой базы» |
| 5 | Skills | Nuxt/Docker в общем списке | Явно пометить как «быстро осваиваю» рядом с Vue 3/TS, а не прятать | Честность + видимость готовности закрыть Nuxt-пробел |
**Топ 5 изменений hh.ru/LinkedIn:** заголовок профиля → «Frontend-разработчик Vue 3 / TypeScript»; добавить ключевые слова «клиент-серверная архитектура», «API», «WebSocket», «код-ревью»; в шапке резюме упомянуть готовность к удалёнке и офису в Москве (без переезда); указать желаемую зарплату в диапазоне 150 000–200 000 ₽ на руки, чтобы не занижать себя относительно рынка; добавить раздел «Проекты» с ЕКОМ как flagship-кейсом.
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Проектирование API, взаимодействие с бэкендом | RBAC для ЕКОМ | В ЕКОМ не было разграничения доступа между отделами | Спроектировать ролевую модель авторизации | Использовала профильное ИБ-образование, самостоятельно спроектировала модель ролей, объяснила бэкенд-разработчику принцип и отличие от других моделей доступа | Логистика и заказы теперь корректно разграничены между отделами | Поняла, что образование в ИБ даёт редкое для frontend-разработчика преимущество в разговоре с бэкендом на одном языке |
| 2 | Поддержка/развитие legacy кодовой базы, код-ревью | Баг с замыканием на РМК | Реактивная переменная передавалась в глобальный класс работы с клавиатурой, старые переменные не очищались | Найти причину зависания клавиатуры | Отследила цепочку передачи реактивной переменной в глобальный класс, локализовала утечку | Клавиатура перестала «залипать», баг закрыт | В следующий раз буду сразу проверять жизненный цикл реактивных переменных при передаче в нереактивные классы |
| 3 | Разработка инструментов для внутренних пользователей | Список заказов с 9 фильтрами | Логисты и техподдержка пользовались неудобными таблицами 1С | Заменить их удобным интерфейсом с фильтрацией | Спроектировала и реализовала интерфейс с фильтрацией по 9 параметрам | Интерфейсом пользуются логисты, клиентский отдел, техподдержка и разработчики | Осознала ценность UX-исследования: разные роли фильтруют по разным параметрам, это надо было учесть с самого начала |
| 4 | Понимание UX | Редизайн кнопки «Избранное» и блока информации о заказе | Нет дизайнера в компании, элементы неудобны | Сделать интерфейс компактнее и удобнее для нажатия | Самостоятельно спроектировала и внедрила изменения | Кнопка стала крупнее и удобнее, блок информации — компактнее | Поняла, что UX-решения нужно тестировать на реальных пользователях до релиза, а не полагаться только на интуицию |
| 5 | Тестируемый код (Playwright/Jest) | Внедрение Playwright E2E на РМК | Отсутствие автотестов на legacy-проекте | Внедрить E2E-покрытие | Настроила Playwright, начала покрывать критичные сценарии (позитивные и негативные) | Проект на этапе внедрения устойчивого E2E-покрытия | В следующий раз буду внедрять тесты параллельно с фичами, а не догонять legacy |
| 6 | Работа в команде | Обучение коллеги с 11-летним стажем Git Flow | Команда не использовала Feature Branching, релизы были нестабильными | Обучить процессу версионирования | Внедрила Feature Branching в GitLab, лично обучила коллегу | Команда перешла на стабильные еженедельные релизы, сократилось число «зависших» фич | Менторство сработало лучше через практику на реальных задачах, а не через документацию |
| 7 | Клиент-серверная архитектура, WebSocket | Real-time оповещения на РМК | Не было видимости, сколько аптек онлайн | Внедрить оповещения в реальном времени | Реализовала WebSocket-канал с индикацией прочтения | Видно ~1200 аптек онлайн, около половины читают оповещение в первые минуты | В следующий раз добавлю метрики задержки доставки с самого начала, а не постфактум |
**Рекомендуемый кейс для показа:** график курьеров на vue-cal (drag-and-drop) — законченный продуктовый кейс «от ручного SQL до самостоятельного управления отделом логистики», хорошо иллюстрирует ownership уровня Middle.
**Вопросы-ловушки:**
- *«У вас всего около 2 лет опыта, а мы ищем 3+»* → Честно: «Коммерческого опыта — около полутора лет, плюс проектная разработка на Vue во время учёбы. За это время я вела 3 продукта параллельно и спроектировала RBAC самостоятельно — предлагаю оценить по объёму ответственности, а не только по годам».
- *«Работали ли вы с нагрузкой уровня 200K RPS?»* → Честно: «Нет, наибольший масштаб — ~1200 аптек в реальном времени через WebSocket. Готова обсудить, как переносятся принципы масштабирования, и быстро учусь».
## G) Легитимность вакансии
**Сигналы свежести:** Дата публикации не показана явно, но контрол отклика активен («Откликнуться» доступна) — вакансия принимает отклики.
**Качество описания:** Высокое. Указаны конкретные метрики нагрузки (200K RPS на чтение, 8K RPS на запись), названа конкретная команда (ERP и учётные системы, ЭДО), перечислен конкретный стек (TypeScript, Vue/Nuxt 2/3), уровень указан явно (Middle), требования реалистичны и разграничены на «важно» и «плюсом». Раздел про бенефиты подробный и специфичный для Ozon (Ozon Универ, Route 256, льготная жилищная программа) — не generic-шаблон. Соотношение конкретики к воде — высокое.
**Компания:** Ozon Tech — крупный, хорошо известный работодатель, дополнительный WebSearch по репутации найма не потребовался (нет тревожных сигналов ни в JD, ни в общих отзывах, найденных при исследовании компенсации).
**Вывод: Высокая уверенность.**
---
## Извлечённые ключевые слова
TypeScript, Vue 3, Nuxt.js, JavaScript, HTML5/CSS3, Git, UX, API, клиент-серверная архитектура, структурированный код, алгоритмы и структуры данных, Figma, GitLab, Docker, WebSockets, оптимизация Performance, Playwright, Jest, CodeceptJS, код-ревью, рефакторинг, ERP, электронный документооборот, прототипирование
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover ozon-erp` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Команда ERP и учётные системы Ozon Tech обрабатывает миллионы документов ЭДО и расчёты зарплат для складов в реальном времени — задача такого масштаба на Vue 3/TypeScript напрямую пересекается с моим опытом построения внутренних систем с нуля.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и Flutter. С ноября 2024 года разработала с нуля фронтенд внутренней системы управления заказами и логистикой (ЕКОМ) для аптечной сети из ~1200 точек, а также подключилась к legacy-проекту кассы (РМК). Профильное образование в информационной безопасности дало нестандартный для frontend-разработчика опыт — самостоятельно спроектировала и объяснила бэкенд-команде ролевую модель авторизации (RBAC).
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами (например, логистика не видит заказы, и наоборот) — объясняла бэкенд-разработчику принцип работы и отличие от других моделей доступа.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** для отслеживания проблемных заказов — заменил неудобные таблицы 1С; используется логистами, отделом работы с клиентами, техподдержкой и разработчиками.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые в компании видно, сколько аптек онлайн прямо сейчас, интерфейс показывает, кто и когда прочитал оповещение.
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** работе с системой версионирования — команда перешла на стабильные еженедельные релизы.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие конкретные проблемы команды ERP и учётные системы вы бы решали в первую очередь (масштабирование ЭДО, оптимизация UX внутренних инструментов и т.д.)?
**Closing**
Готова обсудить детали в удобное для вас время.
---
**Gaps flagged:**
- Формальный порог «3+ года JS» — фактический стаж кандидата около 2 лет (закрывается объёмом ответственности, не годами).
- Nuxt.js — нет коммерческого опыта (только Vue 3 core).
**JD keywords to mirror** *(extracted for ATS + human read)*
TypeScript, Vue 3, Nuxt, клиент-серверная архитектура, API, структурированный код, WebSocket, код-ревью, рефакторинг, UX, ERP, электронный документооборот
---
*Run `/career-ops cover ozon-erp` to complete angles, confirm company research, and generate the PDF.*
+135
View File
@@ -0,0 +1,135 @@
# Оценка: Ozon — Стажёр Frontend-разработчик (Маркетинговая платформа)
**Дата:** 2026-07-06
**URL:** https://ozon.tech/vacancies/27a256a2-c82d-4de3-af35-c9d634514617-stazhior-frontend-razrabotchik-marketingovaia-platforma/
**Архетип:** Frontend Developer (Vue.js/React-агностично) — primary по стеку, но не по уровню
**Балл:** 2.5/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer — JD формулирует стек как «реактивные фреймворки (Vue.js, React, etc)», совпадает с primary-архетипом кандидата, но роль — стажёрская |
| Domain | Маркетплейс / маркетинговая платформа (промо-акции для маркетологов) |
| Function | Build — разработка интерфейсов управления промо-акциями, работа над скоростью интерфейсов |
| Seniority | **Intern** (заявлено в JD) — кандидат по факту Middle-уровня. **Существенное несовпадение уровня**, требует честной оценки в блоке C |
| Формат работы | Гибрид / удалённая работа — офисы в Москве, СПб, Иннополисе, Новосибирске, Алматы, Астане. Удалёнка указана явно → локация не является ограничивающим фактором |
| Размер команды | Не указан («команда Маркетплейс», «Маркетинговые акции») |
| Оформление | Не указано в JD — для стажировок в Ozon типично либо ученический договор, либо срочный ГПХ до перехода в штат (не подтверждено) |
| TL;DR | Технически позиция кандидату по силам (JS/TS/реактивные фреймворки/Git), но это стажёрская роль для входа в профессию — для кандидата с уже подтверждённым Middle-опытом это шаг назад по уровню и, вероятно, по компенсации, а не рост. |
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Умение писать структурированный и читаемый код | Feature Branching, код-ревью на РМК, Vitest/Storybook покрытие |
| Уверенные знания JavaScript и TypeScript | «Vue 3, Composition API, TypeScript, Pinia» — коммерческий опыт выше требуемого для стажёра |
| Опыт работы с реактивными фреймворками (Vue.js, React, etc) | Vue 3 — да, коммерческий опыт (ЕКОМ, РМК). React — не указан в CV, но JD формулирует требование мягко («etc»), не как жёсткий фильтр |
| Уверенные знания HTML, CSS (flexbox, gridlayout) | «HTML5/CSS3» в разделе языков — базовое совпадение, специфика flexbox/grid явно не выделена, но подразумевается опытом Vue-разработки |
| Уверенная работа с Git | «Git, GitLab, CI/CD (рабочий опыт)» |
**Пробелы:** технических пробелов нет — навыки кандидата **превышают** заявленный уровень позиции. Единственный «пробел» — обратный: несоответствие уровня и опыта кандидата формату стажировки.
1. **Уровень (Intern vs фактический Middle)** — hard mismatch по карьерной траектории. Стратегия: если рассматривать отклик, прямо спросить рекрутера на первом контакте, возможен ли найм сразу на позицию Frontend-разработчика (не стажёра) с учётом опыта — иначе отклик не имеет смысла.
2. **Компенсация стажёра** — как правило, ниже целевого диапазона кандидата (100 000–120 000+ ₽ на руки). Данных о точной сумме нет (см. блок D) — риск существенного разрыва с целью.
## C) Уровень и стратегия
1. **Уровень в JD:** Intern. **Естественный уровень кандидата:** Middle (для архетипа Frontend Developer (Vue.js) — см. `config/profile.yml`). Это **обратный** сценарий относительно типовой оценки: кандидат переквалифицирована для этой роли, а не недоквалифицирована.
2. **План «продать Middle без обмана» — неприменим напрямую.** Продавать себя как стажёра было бы нечестной недооценкой собственного опыта. Более честная стратегия: обратиться к рекрутеру с прямым вопросом о вакансиях уровня Junior/Middle Frontend в той же команде («Маркетинговые акции»), используя эту стажёрскую вакансию как сигнал о том, что команда растёт и нанимает.
3. **План «если понизят уровень»** — здесь роль не понижают, она **уже** ниже уровня кандидата. Принимать стажировку имеет смысл только при исключительных обстоятельствах (например, явный fast-track перевод в штат в течение 1-2 месяцев с гарантированным пересмотром грейда и зарплаты — нужно уточнять до отклика).
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| Оплата стажировок Frontend в Москве (общий поиск, включая листинги Ozon на superjob.ru) | В большинстве публичных объявлений о стажировках Ozon зарплата указана как «по договорённости» — точная сумма не публикуется. Прямых данных по конкретной сумме для этой вакансии не найдено — **не выдумываю цифру** |
| Формат стажировки (career.ozon.ru/internships) | Гибкий график 30-40 часов/неделю, обучающие интенсивы, возможность перехода в штат при успешном результате |
| Ozon Tech — общий уровень оплаты (справочно, полная позиция) | Base для Senior от 550 000 ₽; штатные Middle-позиции по рынку — 180 000–380 000 ₽ gross. Стажёрские ставки исторически существенно ниже штатных (типично для крупных компаний РФ) |
**Вывод по компенсации:** данных о точной сумме для стажёрской ставки нет — это прямо отражено, а не скрыто домыслом. Но по общей практике рынка стажёрская оплата в Москве для топ-tech компаний обычно ощутимо ниже минимума кандидата (100 000 ₽ на руки). Это делает комп-риск высоким. Требуется уточнение суммы напрямую у рекрутера до дальнейших шагов, если кандидат решит откликаться.
**Оформление:** не указано, вероятно срочный договор на период стажировки — уточнять.
## E) План персонализации
Учитывая низкий балл и мисматч уровня, полноценная персонализация CV/PDF не рекомендуется (см. блок Legitimacy/итог). Если кандидат всё же решит откликнуться (например, из интереса к конкретной команде или продукту):
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Ориентирован на Middle-роли | Указать прямо в сопроводительном письме (не в резюме) готовность обсуждать формат — стажировка или прямой найм | Избежать автоматического отсева рекрутером «слишком опытная для стажёра» без объяснения интереса |
| 2 | Опыт | Стандартный порядок | Поднять кейсы, связанные со скоростью интерфейсов (постраничная загрузка «Избранное») — прямое совпадение с «работать над скоростью интерфейсов» | Прямое зеркалирование JD |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Работать над скоростью интерфейсов | Постраничная загрузка «Избранное» | Раздел «Избранное» не открывался — все товары грузились одним запросом | Устранить причину и ускорить загрузку | Обсудила с бэкенд-разработчиком, реализовала постраничную загрузку | Жалобы пользователей на раздел прекратились | В следующий раз буду проверять паттерн загрузки данных на этапе проектирования, а не после жалоб |
| 2 | Участие во всех командных процессах | Backlog-адвокация | Команда теряла приоритеты в планировании | Вернуть фокус на цели полугодия/года | Регулярно поднимала вопрос на планировании спринтов | Product owner начал привлекать её к формулировке задач, связанных с бизнес-целями | Поняла ценность проактивной позиции даже без формального лидерства |
| 3 | Разработка интерфейсов для маркетологов (промо-акции) | Интерфейс списка заказов с фильтрацией по 9 параметрам (ЕКОМ) | Логисты пользовались неудобными таблицами 1С | Спроектировать удобный интерфейс с фильтрацией | Реализовала фильтрацию и таблицу на TanStack Table | Используется несколькими отделами одновременно | Разные роли фильтруют по разным критериям — учитывать это с самого начала проектирования |
**Рекомендуемый кейс:** «Здесь ЕКОМ» целиком — как аргумент того, что кандидат уже прошла путь «стажёр → владелец продукта» и ищет позицию, соответствующую этому уровню.
**Вопросы-ловушки:**
- *«Почему стажировка при вашем опыте?»* → Честно: «Мне интересен продукт/команда, но по опыту я ближе к позиции Frontend-разработчика, а не стажёра — хотела бы обсудить, возможен ли прямой найм на соответствующий уровень».
## G) Легитимность вакансии
**Сигналы свежести:** контрол отклика активен («Откликнуться»). Формат и структура описания совпадают с типовыми стажёрскими вакансиями Ozon, найденными на superjob.ru («Стажёр-разработчик Frontend», «Стажёр Frontend разработчик, Ozon Банк») — паттерн подтверждает подлинность программы стажировок.
**Качество описания:** Среднее. Указана конкретная команда («Маркетинговые акции», платформа промо-акций на маркетплейсе), но перечень обязанностей более общий и шаблонный («участвовать в разработке интерфейсов», «работать над скоростью интерфейсов») по сравнению с более детализированной вакансией 004 той же компании. Раздел бенефитов идентичен вакансии 004 (шаблонный блок про Ozon Tech в целом) — ожидаемо для стажёрской позиции.
**Компания:** Ozon Tech — крупный известный работодатель, дополнительный WebSearch по репутации найма не потребовался.
**Вывод: Высокая уверенность** (вакансия реальна и активна), при этом низкий итоговый балл обусловлен не легитимностью, а несоответствием уровня и вероятной компенсации целям кандидата.
---
## Извлечённые ключевые слова
JavaScript, TypeScript, Vue.js, React, реактивные фреймворки, HTML, CSS, flexbox, grid layout, Git, промо-акции, маркетинговая платформа, интерфейсы, скорость интерфейсов, код-ревью, рефакторинг, кроссфункциональная команда, маркетплейс, стажировка
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover ozon-intern-marketing` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
>
> **Рекомендация перед использованием:** учитывая балл 2.5/5 и несоответствие уровня (Intern vs фактический Middle), рекомендуется НЕ откликаться на эту вакансию в текущем виде — либо связаться с рекрутером напрямую с вопросом о прямом найме на позицию Frontend-разработчика в этой же команде.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Команда «Маркетинговые акции» Ozon строит платформу, которая напрямую помогает маркетологам управлять промо-акциями на маркетплейсе — мне откликается эта задача, хотя по опыту я, вероятно, ближе к позиции Frontend-разработчика, чем к стажёрскому треку.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). С ноября 2024 года разработала с нуля внутреннюю систему управления заказами и логистикой для аптечной сети из ~1200 точек.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Диагностировала причину жалоб на не открывающийся раздел «Избранное»** — реализовала постраничную загрузку, жалобы прекратились.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** — заменил неудобные таблицы 1С, используется несколькими отделами.
- **Активно участвует в планировании спринтов и анализе бэклога** — после её инициативы команда вернулась к постановке целей на полгода/год.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: если решите откликаться — уточнить у рекрутера формат стажировки и возможность прямого найма, прежде чем формулировать этот раздел.
**Closing**
Готова обсудить формат сотрудничества — стажировка или прямой найм — в удобное для вас время.
---
**Gaps flagged:**
- Уровень позиции (Intern) значительно ниже фактического уровня кандидата (Middle) — карьерный шаг назад.
- Компенсация стажёра, вероятно, ниже целевого минимума кандидата (100 000 ₽ на руки) — точная сумма не публикуется, требует уточнения.
- React явно не входит в стек кандидата (только упомянут в JD как альтернатива Vue.js).
**JD keywords to mirror** *(extracted for ATS + human read)*
JavaScript, TypeScript, Vue.js, реактивные фреймворки, HTML, CSS, Git, промо-акции, интерфейсы, скорость интерфейсов
---
*Run `/career-ops cover ozon-intern-marketing` to complete angles, confirm company research, and generate the PDF.*
+144
View File
@@ -0,0 +1,144 @@
# Оценка: Wildberries — Frontend-разработчик (Платформа)
**Дата:** 2026-07-06
**URL:** https://career.rwb.ru/vacancies/19015
**Архетип:** Frontend Developer — стек React (не Vue.js); adjacent к primary-архетипу кандидата
**Балл:** 2.8/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer — JD требует React как основной стек. Ближайшие архетипы кандидата: Frontend Developer (Vue.js) (primary, но другой фреймворк) и Fullstack Developer (Vue+Node) (adjacent, не совпадает по домену) |
| Domain | B2B / госзакупки — Цифровая платформа поставщиков (ЦПП), автоматизация закупочной деятельности |
| Function | Build — клиентская бизнес-логика, проектирование нового функционала, анализ и увеличение производительности, адаптивная/кросс-браузерная вёрстка |
| Seniority | Явно не назван (JD говорит «опыт от 3 лет» в шапке вакансии, но в требованиях — «опыт разработки и построения архитектуры современных web-приложений от 4-х лет») → фактически Middle/Senior по объёму требуемого опыта |
| Формат работы | Офисный, гибридный или удалённый — **удалёнка указана явно в тексте JD** → локация не является ограничивающим фактором |
| Размер команды | Не указан |
| Оформление | Не указано в JD |
| TL;DR | Технически сильная и, вероятно, хорошо оплачиваемая позиция, но с двумя структурными несовпадениями: стек (React вместо Vue.js) и требуемый стаж (4+ года против фактических ~2 лет у кандидата) — оба являются явными, измеримыми критериями отбора, а не мягкими предпочтениями. |
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Знание React для создания пользовательских интерфейсов | **Отсутствует.** Коммерческий опыт кандидата — Vue 3 (Composition API, Pinia), не React. Это названный явно, а не подразумеваемый стек — **жёсткий пробел** |
| Опыт разработки и построения архитектуры современных web-приложений от 4-х лет | Фактический опыт: ~1.5 года коммерческой разработки (Здравсервис, с нояб. 2024) + 10 месяцев проектной разработки (ТулГУ, 2022) ≈ **~2 года совокупно** — **количественный пробел** |
| Писали различные утилиты для webpack, npm-пакеты и т.д. | Не отражено в CV — **пробел**, не закрывается смежным опытом |
| Уверенные знания JS, TS | «Vue 3, Composition API, TypeScript, Pinia... Vite» — прямое совпадение по языкам, различие только во фреймворке |
| Клиентская бизнес-логика | «Здесь ЕКОМ» — фронтенд системы управления заказами и логистикой разработан с нуля, включает бизнес-логику фильтрации, ролевую модель доступа |
| Участие в проектировании нового функционала | Курьерский календарь на vue-cal (drag-and-drop), список заказов с 9 фильтрами — оба спроектированы и реализованы с нуля |
| Анализ и увеличение производительности | Частичное совпадение: диагностика и устранение причины медленной/неоткрывающейся загрузки «Избранное» через постраничную загрузку |
| Адаптивная и кросс-браузерная вёрстка | Не отражено явно в CV — **пробел**, нет прямого proof point |
| Обеспечение и улучшение качества кодовой базы | Feature Branching, код-ревью, Vitest/Storybook, Playwright E2E, рефакторинг legacy (РМК) |
**Пробелы и стратегия закрытия:**
1. **React (названный фреймворк)** — жёсткий блокер для дословного соответствия. Стратегия: не заявлять несуществующий опыт (запрещено правилами системы). Честно указать глубокий опыт Vue 3 + TS и способность быстро адаптироваться (пример: полностью самостоятельно освоила Flutter/Dart и вышла на продакшн в течение нескольких месяцев). Риск: многие ATS/рекрутеры отсеивают по точному совпадению ключевого слова «React» — вероятность прохождения первичного скрининга снижена.
2. **4+ года опыта** — количественный, измеримый критерий. Не закрывается фреймингом. Честная стратегия: либо не тратить время на глубокую персонализацию (см. итоговую рекомендацию), либо в сопроводительном письме открыто предложить оценивать по объёму ответственности, а не по стажу, понимая, что это может не пройти автоматический фильтр.
3. **Webpack-тулинг/npm-пакеты** — nice-to-have, пробел без proof point, не выдумывать.
4. **Адаптивная/кросс-браузерная вёрстка** — пробел без явного proof point в CV; при интересе к роли стоит честно уточнить объём такой работы в текущей должности перед собеседованием, а не заявлять готовый кейс.
## C) Уровень и стратегия
1. **Уровень в JD:** Middle/Senior (подразумевается требованием 4+ года архитектурного опыта). **Естественный уровень кандидата:** Junior+/Middle (~2 года практики).
2. **План «продать Middle без обмана»:** здесь это не «продажа сеньорности», а честное признание разрыва. Аргумент в пользу рассмотрения — скорость роста (три продукта одновременно, менторство сотрудника с 11-летним стажем, самостоятельное владение RBAC-дизайном), но сам по себе этот аргумент не устраняет формальное несоответствие 4+ годам и незнание React.
3. **План «если понизят уровень»:** маловероятный сценарий — скорее всего результатом станет отказ на этапе резюме-скрининга по формальным критериям (стек + стаж), а не предложение более низкого грейда. Рекомендация: не рассчитывать на переговоры об уровне, а сразу оценить, стоит ли тратить время на отклик при известном стек-мисматче.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| Зарплаты IT-специалистов Wildberries (общий поиск) | Middle-уровень: 350 000 – 430 000 ₽; Senior: 550 000 – 700 000 ₽; Lead: от 850 000 ₽ |
| Политика оплаты для удалённых сотрудников | Компания сохраняет «московский уровень» зарплаты для регионов при удалённой работе, но без офисных бонусов (питание, парковка, фитнес) — при удалёнке из Тулы кандидат получит зарплату «как в Москве», просто без офисных плюшек |
| Отзывы сотрудников (Dream Job, SuperJob) | Смешанные: реальные зарплаты часто соответствуют заявленным в вакансиях или превышают их, есть возможность пересмотра после испытательного срока; из негатива — упоминания задержек зарплаты и претензии к менеджменту |
**Gross vs Net:** зарплата в JD не указана. Если бы кандидат прошла отбор на Middle-уровень (350 000–430 000 ₽ gross), net ≈ gross × 0.87 → **~305 000–374 000 ₽ на руки** — значительно выше цели (100 000–120 000+ ₽). Комп-потенциал очень высокий **при условии** прохождения отбора, что маловероятно из-за стек/стаж-мисматча.
**Оформление:** не указано в JD.
## E) План персонализации
Учитывая низкий итоговый балл (2.8/5) из-за жёсткого стек-мисматча (React vs Vue) и количественного разрыва по опыту (4+ года vs ~2 года), **полноценная персонализация CV/PDF не рекомендуется** до тех пор, пока кандидат не подтвердит намерение откликнуться несмотря на явные риски отсева. Если решение — откликаться:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Vue 3 + Flutter фокус | Явно и честно указать «глубокий опыт компонентной архитектуры и TypeScript (Vue 3), готовность к переходу на React» — не писать «опыт React» | Соответствует этическому правилу «никогда не выдумывать навыки» |
| 2 | Опыт | Стандартный порядок | Поднять кейсы производительности (постраничная загрузка «Избранное») и качества кода (Feature Branching, тесты) | Прямое совпадение с «анализировать и увеличивать производительность» и «улучшать качество кодовой базы» |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Клиентская бизнес-логика | Система управления заказами ЕКОМ | Логистике и разработчикам не хватало единого инструмента управления заказами | Спроектировать бизнес-логику фильтрации и управления заказами | Разработала фронтенд с нуля на Vue 3/TS/Pinia | Инструментом пользуются логисты, клиентский отдел, техподдержка, разработчики | В следующий раз буду вовлекать все заинтересованные роли в проектирование раньше |
| 2 | Проектирование нового функционала | Курьерский календарь (vue-cal, drag-and-drop) | Расписание курьеров вносилось вручную SQL-запросами разработчиков | Дать логистике самостоятельный инструмент планирования | Реализовала календарь с drag-and-drop на vue-cal | Отдел логистики полностью самостоятельно управляет графиком | Понимание, что убрать разработчиков из рутинного процесса — это тоже продуктовая ценность |
| 3 | Анализ и увеличение производительности | Оптимизация загрузки «Избранное» | Раздел не открывался, товары грузились одним тяжёлым запросом | Ускорить и стабилизировать загрузку | Реализовала постраничную загрузку по согласованию с бэкендом | Жалобы пользователей прекратились | Проверять паттерн загрузки данных нужно на этапе проектирования, а не по факту жалоб |
| 4 | Улучшение качества кодовой базы | Внедрение Feature Branching + Playwright E2E на РМК | Нестабильные релизы, отсутствие автотестов на legacy-проекте | Стабилизировать процесс релизов и покрытие тестами | Внедрила Git Flow, обучила коллегу, настроила Playwright | Команда перешла на стабильные еженедельные релизы | Процессные изменения масштабируются лучше через личное менторство, а не только документацию |
**Рекомендуемый кейс:** курьерский календарь (vue-cal) — наиболее «архитектурный» кейс кандидата, ближе всего к духу задачи «проектирование архитектуры современных веб-приложений», даже при разнице фреймворков.
**Вопросы-ловушки:**
- *«У вас нет коммерческого опыта на React — как будете переходить?»* → Честно: «Мой продакшн-опыт — Vue 3 и Flutter. Я самостоятельно осваивала Flutter с нуля и довела приложение до релиза в App Store за несколько месяцев — готова так же системно перейти на React, если стек является приоритетом команды».
- *«Мы ищем 4+ года опыта, у вас — около 2»* → Честно: «Соглашусь, что по годам это ниже, но за это время я вела 3 продукта параллельно и полностью владела архитектурными решениями по одному из них. Предлагаю обсудить это прямо, чтобы не терять время обеих сторон, если для вас стаж — жёсткий фильтр».
## G) Легитимность вакансии
**Сигналы свежести:** контрол отклика активен («Откликнуться» + встроенная форма заявки с полями ФИО/E-mail/Телефон/Резюме) — вакансия принимает отклики напрямую на сайте career.rwb.ru.
**Качество описания:** Хорошее. Описание содержит специфичный контекст (слияние Wildberries и Russ, конкретное название платформы — Цифровая платформа поставщиков, назначение — автоматизация закупок для государственных нужд и МСП), обязанности сформулированы конкретно (бизнес-логика, производительность, кросс-браузерная вёрстка), требования по стеку и опыту заданы количественно. Раздел условий стандартный для крупной компании, но не выглядит generic-шаблоном без содержания.
**Компания:** Wildberries & Russ (RWB) — крупный, хорошо известный работодатель на рынке e-commerce/логистики РФ; отзывы сотрудников реальны и разнообразны (найдены на Dream Job, Хабр Карьера, SuperJob) — подтверждает, что это не фиктивный листинг.
**Вывод: Высокая уверенность** (вакансия реальна и активна). Низкий итоговый балл обусловлен исключительно несоответствием стека и стажа, а не сомнениями в легитимности.
---
## Извлечённые ключевые слова
React, JavaScript, TypeScript, клиентская бизнес-логика, архитектура веб-приложений, webpack, npm-пакеты, производительность, адаптивная вёрстка, кросс-браузерная вёрстка, качество кодовой базы, проектирование функционала, Цифровая платформа поставщиков, госзакупки, ДМС, корпоративный университет
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover wildberries-platforma` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
>
> **Рекомендация перед использованием:** балл 2.8/5, ниже порога 3.5 — по этическому правилу системы, откликаться стоит только при наличии весомой причины (например, кандидат сама решает инвестировать время в переход на React). Стек (React) и требуемый стаж (4+ года) — оба явные, количественные критерии отбора, которые персонализация резюме не устраняет.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Цифровая платформа поставщиков решает задачу прозрачности и эффективности закупок для тысяч поставщиков, включая малый и средний бизнес — мне откликается масштаб этой задачи, хотя мой продакшн-стек сегодня — Vue 3, а не React.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). Разработала с нуля внутреннюю систему управления заказами и логистикой для сети из ~1200 точек, включая проектирование ролевой модели авторизации и оптимизацию производительности ключевых разделов.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **График курьеров на базе календаря vue-cal с drag-and-drop** — заменил ручной ввод расписания SQL-запросами разработчиков; отдел логистики полностью самостоятельно управляет графиком.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** — заменил неудобные таблицы 1С, используется несколькими отделами.
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** — команда перешла на стабильные еженедельные релизы.
- **Диагностировала причину жалоб на раздел «Избранное»** — реализовала постраничную загрузку, жалобы прекратились.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие конкретные проблемы производительности или архитектуры ЦПП вы бы решали, учитывая переход на React?
**Closing**
Готова обсудить, насколько мой опыт на Vue 3 переносится на ваш стек, в удобное для вас время.
---
**Gaps flagged:**
- React явно не входит в стек кандидата (продакшн-опыт — Vue 3) — названный, жёсткий критерий отбора в JD.
- Требуемый стаж 4+ года архитектурного опыта против фактических ~2 лет у кандидата — количественный разрыв.
- Нет явного proof point по адаптивной/кросс-браузерной вёрстке и webpack-тулингу.
**JD keywords to mirror** *(extracted for ATS + human read)*
React, JavaScript, TypeScript, бизнес-логика, производительность, архитектура веб-приложений, качество кодовой базы
---
*Run `/career-ops cover wildberries-platforma` to complete angles, confirm company research, and generate the PDF.*
+146
View File
@@ -0,0 +1,146 @@
# Оценка: Wildberries (RWB) — Senior Frontend developer (Angular) в WB Job
**Дата:** 2026-07-06
**URL:** https://career.rwb.ru/vacancies/37091
**Архетип:** Frontend-разработчик (Angular) — не входит в основные архетипы кандидата (Vue.js/Flutter), близкий архетип по `_shared.md`: "Frontend-разработчик"
**Балл:** 1.7/5
**Legitimacy:** Требует осторожности
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (Angular) |
| Domain | Frontend / e-commerce (RWB = Wildberries + Russ) |
| Function | Build (разработка и поддержка UI-компонентов) |
| Заявленный уровень | Senior |
| Формат работы | **Удалённо** (полностью remote, без указания привязки к городу) |
| Размер команды | Не указан |
| Оформление | Не указано (упоминается "аккредитованная IT-компания" — косвенный сигнал на ТК РФ + льготы аккредитации, не подтверждено явно) |
| TL;DR | Senior-позиция на Angular с 4+ годами коммерческого опыта фронтенда — полностью удалённая, но кандидат не имеет опыта с Angular и общий стаж коммерческой разработки существенно короче требуемого. |
**Проверка соответствия локации:** JD указывает "Удалённо" без оговорок о необходимом присутствии в офисе или командировках — противоречий с требованием "жёсткого правила локации" из `_profile.md` нет. Роль оценивается по общим критериям (удалённая работа = нормальная оценка, без штрафа 1.0).
## B) Совпадение с CV
| Требование JD | Совпадение с CV | Оценка |
|---|---|---|
| Опыт работы в разработке клиентской части веб-приложений от 4-х лет | cv.md: работа в Здравсервис с ноября 2024 (~1 год 8 мес.) + учебно-заказная разработка в ТулГУ март–декабрь 2022 (10 мес.) + хакатон май 2024. Совокупный релевантный опыт ≈ 1.5–2 года | **Hard gap** — почти вдвое меньше требуемого |
| Владение Angular | Не упоминается нигде в cv.md. Стек кандидата — Vue 3 (Composition API, Pinia, Vue Router) | **Hard gap** — нулевой опыт с фреймворком |
| JavaScript, HTML, CSS | "JavaScript, TypeScript, HTML5/CSS3" (Навыки) | Совпадает |
| Навык создания адаптивных веб-сайтов/приложений с нуля | "разработала с нуля фронтенд внутренней системы управления заказами/логистикой (ЕКОМ)" — Vue 3, Vite, Tailwind CSS | Совпадает по сути задачи (адаптивная вёрстка, "с нуля"), но не на Angular |
| Знание особенностей кросс-браузерной верстки | Не упоминается явно в cv.md | Не подтверждено — не хардкодить, не указывать как совпадение |
| Взаимодействие с бэкенд-разработчиками, дизайнерами, PO | "Обсудила с бэкенд-разработчиком и реализовала постраничную загрузку"; "объясняла бэкенд-разработчику принцип работы RBAC"; "участвует в планировании спринтов... product owner начал привлекать её к планированию" | Совпадает |
| Создание UI-компонентов | "Редизайн кнопки «Избранное»"; интерфейс списка заказов с 9 фильтрами; график курьеров на vue-cal | Совпадает по сути (компонентная работа), другой фреймворк |
**Пробелы:**
1. **Angular (hard blocker).** Это не nice-to-have — первая строка блока требований. Angular (RxJS, DI, модульная архитектура, TS-first) концептуально дальше от Vue 3 Composition API, чем React с его хуками. У кандидата нет ни одного проекта на Angular.
- Демонстрация смежного опыта: TypeScript есть (Vue 3 + TS в ЕКОМ), общее понимание SPA/компонентной архитектуры есть — это снижает время адаптации, но не закрывает требование "владение Angular" для Senior-роли.
- Портфолио-проект, закрывающий пробел: отсутствует.
- План: честно указать в сопроводительном письме, что коммерческого Angular нет, но есть перенос архитектурных паттернов (RBAC, компонентный подход, работа с реактивным состоянием) — этого недостаточно для Senior Angular-роли с порогом входа в 4 года.
2. **Общий стаж (hard blocker).** Требование "от 4-х лет" против фактических ≈1.5–2 лет коммерческого/квазикоммерческого опыта. Разрыв не закрывается фразировкой.
## C) Уровень и стратегия
1. **Уровень в JD:** Senior, 4+ года коммерческого опыта. **Естественный уровень кандидата:** Middle (для архетипа Frontend Vue.js) — здесь роль на другом фреймворке, поэтому кандидат по факту ближе к Junior+/Middle-, если оценивать именно по Angular-стеку.
2. **План "продать senior без обмана":** невозможен честно — блокер по стажу (в 2+ раза меньше требуемого) и полное отсутствие Angular не позволяют закрыть разрыв фразировкой резюме. Не рекомендуется пытаться "продавать" senior-уровень на этой позиции.
3. **План "если понизят уровень":** даже гипотетическое понижение до Middle не решает проблему Angular = 0. Единственный реалистичный сценарий — компания готова обучать с нуля, что противоречит формулировке "владение Angular" как обязательному требованию.
## D) Компенсация и спрос
WebSearch (в рамках общего бюджета 5 запросов на вакансию, часть запросов также использована для блока G):
| Показатель | Значение | Источник |
|---|---|---|
| Senior Frontend (общий рынок), Москва | 300 000–400 000 ₽/мес (медиана ≈287 500 ₽ по данным hh.ru, февраль 2026) | [practicum.yandex.ru](https://practicum.yandex.ru/blog/skolko-zarabatyvayut-frontend-razrabotchiki/), hh.ru |
| Angular-специфика | Angular описывается как "нишевый инструмент для enterprise/banking/ERP"; в 5 раз меньше вакансий, чем на React, но выше медиана из-за дефицита кадров — ≈250 000 ₽ | [enigmai.ru](https://enigmai.ru/salary/frontend/frontend-salary-2026/) |
| Зарплата в вакансии | Не указана в JD | — |
**Специфика РФ:** зарплата в объявлении не указана вовсе (нет ни gross, ни net значения) — оценить конкретное предложение невозможно, будет обсуждаться на этапе интервью. Диапазон таргета кандидата (100 000–120 000+ ₽/мес на руки) находится значительно ниже рыночной медианы для Senior Angular (250 000+ ₽), но это не компенсирует стек/стаж-разрыв — компания ищет Senior и вряд ли рассмотрит кандидата без Angular независимо от компенсационных ожиданий.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Не адаптировать под Angular — риск CV, читающегося как несоответствие с первой строки | Balance между ATS-ключевыми словами и правдой: добавление "Angular" в summary без реального опыта — фабрикация |
| 2 | Competencies | Vue-ориентированный список | Подчеркнуть TypeScript, компонентную архитектуру, SPA, REST/WebSocket как переносимые навыки | Единственная честная точка входа для смежного фреймворка |
| 3 | Опыт | Bullet-порядок под Vue | Не переупорядочивать специально под Angular-JD — стек всё равно не совпадёт | Учитывая балл < 3.0, PDF не генерируется |
**Рекомендация:** генерация PDF и таргетированного резюме не оправдана при балле 1.7/5 — компания ищет владение Angular как обязательное требование, а не "готовность выучить".
## F) План собеседований
Поскольку балл значительно ниже порога (1.7 < 3.5), детальная подготовка STAR+R сторис для этой конкретной роли нецелесообразна. Ниже — минимальный набор на случай, если кандидат всё же решит откликнуться:
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Создание UI-компонентов с нуля | Редизайн блока информации о заказе в «Здесь Аптека» | Компания без дизайнера, нужен компактный вывод данных заказа | Самостоятельно спроектировать интерфейс | Redesign layout, тестирование на реальных пользователях (аптеки) | Компактнее отображение, положительный отклик | Богатый UX-контекст даже без дизайнера в штате |
| 2 | Взаимодействие с бэкенд/PO | RBAC-модель в ЕКОМ | Нужно разграничение доступа логистика/заказы | Спроектировать ролевую модель, объяснить бэкенд-команде | Использовала ИБ-образование для проектирования RBAC | Бэкенд принял модель, разграничение внедрено | ИБ-бэкграунд — нестандартное преимущество для frontend |
**Рекомендуемый кейс:** ЕКОМ (RBAC + список заказов) — но честно предупредить рекрутёра, что это Vue 3, не Angular.
**Вопрос-ловушка:** "Почему нет опыта с Angular?" → Честный ответ: "Мой коммерческий опыт — Vue 3 и Flutter. Angular не использовала в проде, но работала с TypeScript, реактивным состоянием и SPA-архитектурой — готова обсудить скорость адаптации, если это приемлемо для команды."
## G) Легитимность вакансии
**Оценка:** Требует осторожности
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Дата публикации не показана на странице | Нейтральный (недостаточно данных) |
| Состояние отклика | Кнопка "Откликнуться" активна, есть встроенная форма заявки | Positive |
| Качество описания | Всего 3 пункта обязанностей, 4 пункта требований, без размера команды, без scope на первые 6–12 месяцев, без зарплаты — высокая доля типового блока льгот относительно ролевого контента | Concerning (мягко) |
| Реализм требований | "От 4-х лет" для Senior — реалистично для Angular enterprise-роли, внутренних противоречий не найдено | Positive |
| Репост | В `data/scan-history.tsv` только одна запись по этому URL, вторая вакансия Wildberries (Frontend-разработчик, Платформа) — отдельная роль, признаков множественных повторных публикаций этой конкретной вакансии не найдено | Нейтральный |
| Компания | RWB (Wildberries + Russ) — крупная, реально существующая технологическая компания, публичный домен career.rwb.ru | Positive |
**Контекст:** Отсутствие даты публикации и скупое описание — типичная ситуация для крупных компаний с потоковым (rolling) наймом на frontend-позиции, а не обязательно признак "фантомной" вакансии. WebSearch по сигналам увольнений/hiring freeze в Wildberries не проводился — не найдено оснований для расходования бюджета (ничего в JD не выглядит подозрительным), два запроса из бюджета использованы для компенсационного анализа (Блок D).
---
## Извлечённые ключевые слова
Angular, JavaScript, HTML, CSS, фронтенд, клиентская часть веб-приложений, адаптивные веб-сайты, кросс-браузерная вёрстка, UI-компоненты, бэкенд-разработчики, дизайнеры, владельцы продукта, удалённо, ДМС со стоматологией, корпоративный спорт, корпоративный университет, аккредитованная IT-компания, Senior, 4 года опыта, RWB, Wildberries
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover wildberries` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Меня заинтересовала позиция Senior Frontend developer (Angular) в WB Job — возможность создавать интерфейсы, которыми пользуются миллионы клиентов Wildberries, в полностью удалённом формате.
**Profile introduction**
Я frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и Flutter. С ноября 2024 года веду несколько продуктов в аптечной сети «Здравсервис» (~1200 аптек по всей России) — от мобильного приложения до внутренней системы управления заказами и логистикой, разработанной с нуля.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами (логистика/заказы), опираясь на профильное ИБ-образование.
- **Разработала с нуля фронтенд внутренней системы ЕКОМ** — график курьеров на vue-cal с drag-and-drop, заменивший ручной ввод расписания SQL-запросами разработчиков.
- **Внедрила Feature Branching в Git (GitLab)**, обучила коллегу с 11-летним стажем — команда перешла на стабильные еженедельные релизы.
- **Диагностировала и исправила баг раздела «Избранное»** в мобильном приложении — реализовала постраничную загрузку, жалобы пользователей прекратились.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи frontend-команды WB Job сейчас в приоритете? Как подойти к ним, учитывая отсутствие коммерческого опыта с Angular?
**Closing**
Буду рада обсудить детали в удобное для вас время.
---
**Gaps flagged:**
- **Стек:** нет коммерческого опыта с Angular (требование — обязательное владение). Это единственный, но критичный разрыв.
- **Стаж:** JD требует 4+ года клиентской разработки, фактический опыт кандидата ≈1.5–2 года.
**JD keywords to mirror** *(extracted for ATS + human read)*
Angular, JavaScript, HTML, CSS, адаптивные веб-сайты, кросс-браузерная вёрстка, UI-компоненты, бэкенд, дизайнеры, владельцы продукта
---
*Run `/career-ops cover wildberries` to complete angles, confirm company research, and generate the PDF.*
+149
View File
@@ -0,0 +1,149 @@
# Оценка: Т-Банк — Frontend-разработчик (React)
**Дата:** 2026-07-06
**URL:** https://www.tbank.ru/career/it/vacancy/moscow/frontend-developer-react/637c5c46-2c90-4c0b-aef2-42a4ad2addb3/
**Архетип:** Frontend-разработчик (React) — не входит в основные архетипы кандидата (Vue.js/Flutter), близкий архетип по `_shared.md`: "Frontend-разработчик"
**Балл:** 2.0/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (React) |
| Domain | Fintech (интернет-банк, инвестиции, Т-Ж, поиск авиарейсов/отелей, внутренние инструменты) |
| Function | Build (клиентские и внутренние интерфейсы + инструменты) |
| Заявленный уровень | Senior |
| Формат работы | **Удалённый · Любой город** (офис или удалённо — по договорённости) |
| Размер команды | Не указан явно, но описана широкая продуктовая линейка (несколько команд, общий стек, внутреннее фронтенд-сообщество) |
| Оформление | Не указано явно; "аккредитованная IT-компания" упомянута как плюс — косвенный сигнал ТК РФ + льготы аккредитации |
| TL;DR | Senior React-роль в крупном финтехе с полностью гибким удалённым форматом — сильный fit по локации, но кандидат не имеет коммерческого React (обязательное требование) и стаж вдвое короче заявленного порога. |
**Проверка соответствия локации:** JD прямо указывает "Удалённый · Любой город (офис или удалённо по договорённости)" — противоречий с "жёстким правилом локации" из `_profile.md` нет. Формат подходит кандидату из Тулы без переезда и командировок — локация/компенсационное измерение оценивается нормально, без штрафа 1.0.
## B) Совпадение с CV
| Требование JD | Совпадение с CV | Оценка |
|---|---|---|
| Опыт коммерческой разработки на React от 4-х лет | Отсутствует — стек кандидата: Vue 3 (Composition API, Pinia, Vue Router), не React | **Hard gap** |
| Отличное знание JavaScript | "Языки программирования: JavaScript, TypeScript, HTML5/CSS3, Dart" | Совпадает |
| Понимание современного стека веб-разработки | Vite, ESLint, Prettier, Vitest, Storybook, TanStack Table, WebSocket/WSS — современный инструментарий, но на Vue-экосистеме, не React | Частично совпадает (общий уровень инструментальной зрелости) |
| Готовность работать в распределённой команде | "Кросс-командное взаимодействие (логистика, бэкенд, техподдержка, отдел работы с клиентами)" — команда 4 человека, но не географически распределённая в явном виде | Косвенно совпадает |
| (Плюс) TypeScript | "Vue 3, Composition API, TypeScript, Pinia" | Совпадает |
| (Плюс) Unit-тесты | "Vitest (unit-тесты Vue-компонентов)" | Совпадает |
| (Плюс) Node.js | "Backend (ознакомительный уровень): Node.js, Express, MongoDB" — хакатон + учебный проект ТулГУ | Совпадает частично (ознакомительный уровень) |
| (Плюс) CI/CD — GitLab | "Внедрила Feature Branching в Git (GitLab)... команда перешла на стабильные еженедельные релизы"; "DevOps/инфраструктура: Git, GitLab, CI/CD (рабочий опыт)" | Совпадает |
**Пробелы:**
1. **React (hard blocker).** Обязательное требование JD, единственный первый пункт блока "Требования". У кандидата нет ни одного проекта на React — весь коммерческий frontend-опыт на Vue 3.
- Смежный опыт: концептуально React (хуки, компонентный state) ближе к Vue 3 Composition API, чем Angular — реактивные примитивы и компонентная модель во многом пересекаются. Это облегчает потенциальный переход, но не покрывает требование "коммерческий опыт от 4 лет".
- Портфолио-проект на React: отсутствует.
- План: в сопроводительном письме честно указать отсутствие коммерческого React, но подчеркнуть переносимые паттерны (компонентная архитектура, управление состоянием, TypeScript, тестирование).
2. **Стаж (hard blocker).** JD требует 4+ года; фактический опыт кандидата ≈1.5–2 года. Разрыв не закрывается ни фразировкой, ни плюс-требованиями (TS/тесты/Node/CI покрыты, но это "будет плюсом", а не основной барьер).
## C) Уровень и стратегия
1. **Уровень в JD:** Senior (явно указано в шапке вакансии), 4+ года коммерческого React. **Естественный уровень кандидата** для основного архетипа (Vue.js): Middle. Для архетипа React — фактически ниже Middle, так как нет ни одного коммерческого проекта на этом фреймворке.
2. **План "продать senior без обмана":** невозможен честно — блокеры по стеку и стажу одновременны и оба фундаментальны для Senior-роли в крупном финтехе с высокой нагрузкой (интерфейсы "для миллионов пользователей ежедневно").
3. **План "если понизят уровень":** даже гипотетическое понижение до Middle не решает отсутствие React. Реалистичный путь — только если Т-Банк рассматривает кандидатов с сильным Vue-бэкграундом на "переученную" React-позицию, что противоречит явной формулировке "опыт коммерческой разработки на React от 4-х лет" как основному требованию.
## D) Компенсация и спрос
WebSearch (в рамках общего бюджета 5 запросов на вакансию, часть переиспользована для Блока G и для второй Т-Банк вакансии 009 — та же компания):
| Показатель | Значение | Источник |
|---|---|---|
| Senior Frontend (React), медиана по России | 550 000 ₽/мес; React занимает ≈55% рынка frontend-вакансий в 2026 | web search results |
| Senior Frontend, Москва (диапазон) | 270 000–410 000 ₽/мес (по данным Yandex Practicum) | [practicum.yandex.ru](https://practicum.yandex.ru/blog/skolko-zarabatyvayut-frontend-razrabotchiki/) |
| Т-Банк — специфика удалённой оплаты | Полная ставка при работе из Москвы/СПб/hub-городов; для полностью удалённой работы из других регионов возможно снижение на 10–15% | web search results |
| Т-Банк — бонусная структура | Для Senior+ при высокой оценке Performance Review годовой бонус может достигать 3–4 окладов | web search results |
| Зарплата в вакансии | Не указана — "Достойную зарплату — обсудим ее на собеседовании" | JD |
**Специфика РФ:** зарплата не раскрыта в объявлении. Учитывая региональный коэффициент Т-Банка (потенциальное снижение на 10-15% для удалённых сотрудников не из hub-городов, Тула не входит в перечисленные), даже верхний диапазон рынка (270–410 тыс. ₽) для Senior React заметно выше таргета кандидата (100–120 тыс. ₽ на руки) — компенсационно роль выглядит привлекательно, но это не компенсирует отсутствие обязательного стека.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Не переписывать под React — фабрикация опыта, которого нет | Этичность: "keywords reformulated, never fabricated" |
| 2 | Competencies | Vue-ориентированный список | При отклике честно указать TypeScript, компонентную архитектуру, тестирование, GitLab CI/CD как переносимые навыки | Единственная честная точка входа |
| 3 | PDF | — | Не генерировать при балле 2.0/5 | Ниже порога auto-PDF (3.0) |
**Рекомендация:** генерация PDF не оправдана — это Senior-роль с обязательным 4-летним React-опытом, у кандидата которого нет вовсе.
## F) План собеседований
Балл значительно ниже порога уверенного отклика (2.0 < 3.5). Минимальный набор историй на случай отклика:
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Понимание современного стека веб-разработки | Внедрение WebSocket-оповещений в РМК | Нужна информация об онлайн-статусе аптек в реальном времени | Внедрить WSS-канал впервые в компании | Реализовала real-time оповещения с отметкой прочтения | Впервые видно, сколько из ~1200 аптек онлайн; половина читает в первые минуты | Реальный опыт с сетевыми технологиями, применимый вне зависимости от фреймворка |
| 2 | Готовность обучаться новым технологиям | Переход Flutter → Vue 3 фронтенд с нуля (ЕКОМ) | Компания нуждалась в новом внутреннем продукте | Освоила Vue 3 экосистему параллельно с Flutter-работой | Frontend ЕКОМ запущен и используется логистикой/поддержкой | Подтверждённая способность быстро войти в новый стек — довод для React, но не замена реального опыта |
**Рекомендуемый кейс:** WebSocket-интеграция в РМК — демонстрирует зрелость в работе с real-time данными независимо от фреймворка. Честно предупредить, что стек — Vue, не React.
**Вопрос-ловушка:** "Почему нет коммерческого React?" → "Мой опыт — Vue 3 в продакшене; React не использовала коммерчески, но принципы компонентного State-management и хуков мне знакомы концептуально. Готова обсудить, насколько команда готова инвестировать время на онбординг."
## G) Легитимность вакансии
**Оценка:** Высокая уверенность
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Дата не показана явно, но URL — актуальный путь (`/career/it/vacancy/moscow/...`), отличный от найденного в `scan-history.tsv` старого пути (`front-end-razrabotka/...`), помеченного `skipped_expired` | Positive (миграция на новую структуру сайта — не признак фантомности) |
| Состояние отклика | Кнопка "Откликнуться на вакансию" активна, встроенная форма | Positive |
| Качество описания | Конкретные продукты (интернет-банк, Т-Ж, поиск авиарейсов, бронирование), явное описание внутреннего инструментария (админки, конструкторы, UI-Kit, микросервисы на Node.js), рабочие практики команды (общий стек, регулярные встречи фронтенд-сообщества, доклады/статьи) — низкая доля типового boilerplate относительно ролевого контента | Positive |
| Реализм требований | "От 4 лет" для Senior React в высоконагруженном финтех-продукте — реалистично, TS/тесты/CI помечены явно как "будет плюсом", а не обязательные — внутренних противоречий нет | Positive |
| Репост | В `scan-history.tsv` найден старый URL этой же роли (`front-end-razrabotka/frontend-developer-react/`) со статусом `skipped_expired` — старая ссылка устарела, появилась новая структура пути | Neutral — типично для реорганизации карьерного сайта крупной компании, не признак множественных фиктивных republish |
| Компания | Т-Банк (экс-Тинькофф) — крупный публичный финтех, множество отзывов сотрудников на career.habr.com/Dream Job (средние оценки 3.3–5.0 в зависимости от команды), явных сигналов о заморозке найма/массовых сокращениях в IT не найдено | Positive |
**Контекст:** Описание существенно более содержательное и специфичное, чем в среднестатистической "рамочной" вакансии — упоминается конкретный продуктовый портфель, размер комьюнити (для похожей Angular-роли — 300+ разработчиков), внутренняя инфраструктура. Дополнительный WebSearch по увольнениям/hiring freeze не проводился отдельно для Т-Банка — использованные запросы (Блок D) косвенно подтвердили отсутствие признаков сокращений в отзывах сотрудников за 2026 год.
---
## Извлечённые ключевые слова
React, JavaScript, TypeScript, Node.js, CI/CD, GitLab, unit-тесты, интерфейсы, миллионы пользователей, интернет-банк, инвестиции, микросервисы, UI-Kit, внутренние библиотеки, распределённая команда, удалённо, Senior, коммерческая разработка, ДМС со стоматологией, Т-Банк
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover tbank-react` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Меня заинтересовала позиция Frontend-разработчика (React) в Т-Банке — возможность создавать интерфейсы, которыми пользуются миллионы клиентов ежедневно, в полностью гибком удалённом формате.
**Profile introduction**
Я frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и Flutter. С ноября 2024 года веду несколько продуктов в аптечной сети «Здравсервис» (~1200 аптек по всей России), включая внутреннюю систему управления заказами и логистикой, разработанную с нуля.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Внедрила WebSocket для оповещений в реальном времени** — впервые в компании видно, сколько аптек онлайн прямо сейчас, оповещения доходят практически без задержки.
- **Внедрила Feature Branching в Git (GitLab)**, обучила коллегу с 11-летним стажем — команда перешла на стабильные еженедельные релизы.
- **Разработала с нуля фронтенд внутренней системы ЕКОМ** на Vue 3, TypeScript, Pinia, Vitest, Storybook.
- **Спроектировала ролевую модель авторизации (RBAC)**, опираясь на профильное ИБ-образование.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи стоят перед React-командой Т-Банка сейчас? Учитывая отсутствие коммерческого React, какой формат онбординга обсуждать с рекрутёром?
**Closing**
Буду рада обсудить детали в удобное для вас время.
---
**Gaps flagged:**
- **Стек:** нет коммерческого опыта с React (обязательное требование от 4 лет). Критичный разрыв.
- **Стаж:** JD требует 4+ года, фактический опыт кандидата ≈1.5–2 года.
**JD keywords to mirror** *(extracted for ATS + human read)*
React, JavaScript, TypeScript, Node.js, unit-тесты, CI/CD, GitLab, распределённая команда, интерфейсы, миллионы пользователей
---
*Run `/career-ops cover tbank-react` to complete angles, confirm company research, and generate the PDF.*
+146
View File
@@ -0,0 +1,146 @@
# Оценка: Т-Банк — Frontend-разработчик (Angular)
**Дата:** 2026-07-06
**URL:** https://www.tbank.ru/career/it/vacancy/moscow/senior-frontend-developer-angular/ec1e861d-d4c4-4cac-b641-e7170c123c7c/
**Архетип:** Frontend-разработчик (Angular) — не входит в основные архетипы кандидата (Vue.js/Flutter), близкий архетип по `_shared.md`: "Frontend-разработчик"
**Балл:** 2.3/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (Angular) |
| Domain | Fintech / внутренние инструменты (Т-Бизнес, Т-Банк CRM, Т-Банк Мессенджер, HR-проекты) |
| Function | Build (новая функциональность + поддержка существующего кода + код-ревью) |
| Заявленный уровень | **Middle / Senior** (обе метки указаны на странице; URL-слаг говорит "senior", видимый заголовок — "Frontend-разработчик — Angular" без уточнения уровня в названии) |
| Формат работы | **Удалённый · Любой город** (офис или удалённо — по договорённости) |
| Размер команды | Angular-комьюнити Т-Банка — более 300 разработчиков (десятки SPA-приложений в разных бизнес-линиях) |
| Оформление | Не указано явно; "аккредитованная IT-компания" упомянута как плюс |
| TL;DR | Middle/Senior Angular-роль в крупном финтех-комьюнити (300+ разработчиков) с полностью гибким удалённым форматом — сильный локационный fit, но у кандидата нет коммерческого Angular (обязательное требование), а порог входа по стажу (3+ года) выше фактического. |
**Проверка соответствия локации:** JD прямо указывает "Удалённый · Любой город (офис или удалённо по договорённости)" — противоречий с "жёстким правилом локации" из `_profile.md` нет. Локация оценивается нормально, без штрафа 1.0.
## B) Совпадение с CV
| Требование JD | Совпадение с CV | Оценка |
|---|---|---|
| Отличное знание JavaScript, коммерческий опыт от 3 лет | JS/TS входят в стек; фактический стаж ≈1.5–2 года (Здравсервис с ноября 2024 + учебно-заказная разработка ТулГУ 2022 + хакатон 2024) | **Gap** — короче требуемого, но разрыв меньше, чем в аналогичных вакансиях с порогом 4 года |
| Опыт работы с Angular от 2 лет | Отсутствует полностью — стек кандидата: Vue 3 | **Hard gap** — обязательное требование, нулевой опыт |
| Опыт работы в Agile-команде | "Активно участвует в планировании спринтов и анализе бэклога; неоднократно обращала внимание руководства на забытые/утерянные приоритеты — после этого команда вернулась к постановке целей на полгода/год, а product owner начал привлекать её к планированию спринтов" | Совпадает, причём с проактивным вкладом сверх стандартного участия |
| Понимание HTTP-протокола, REST API | "Сеть: REST API, WebSocket/WSS" | Совпадает |
| Умение проводить качественное код-ревью | Не описано явно в cv.md (нет прямого упоминания код-ревью), но "обучила коллегу с 11-летним стажем работе с системой версионирования" косвенно говорит о менторской/ревью-роли в команде | Частично совпадает — не хардкодить как прямое совпадение |
**Пробелы:**
1. **Angular (hard blocker).** Обязательное требование ("есть опыт работы с Angular от 2 лет"), второй пункт блока требований. У кандидата нет ни одного коммерческого проекта на Angular — весь опыт на Vue 3.
- Смежный опыт: TypeScript есть (Vue 3 + TS), понимание компонентной SPA-архитектуры и реактивного стейта присутствует — но Angular как экосистема (RxJS, DI-контейнер, модули, Angular CLI) требует отдельного обучения, не покрываемого переносом Vue-паттернов напрямую.
- Портфолио-проект на Angular: отсутствует.
- План: в сопроводительном письме честно обозначить отсутствие Angular, подчеркнуть перенос архитектурных решений (RBAC, компонентная декомпозиция, тестирование) и готовность обсуждать онбординг-план.
2. **Стаж (gap, но менее критичный, чем в 007/008).** JD требует 3+ года против фактических ≈1.5–2 лет — разрыв меньше, чем в других двух вакансиях (там требовалось 4 года), но всё ещё не закрыт.
## C) Уровень и стратегия
1. **Уровень в JD:** Middle/Senior (обе метки на странице), 3+ года общего опыта + 2+ года Angular. **Естественный уровень кандидата** для основного архетипа (Vue.js): Middle. Для Angular конкретно — ближе к нулевому, так как фреймворк не использовался коммерчески.
2. **План "продать senior без обмана":** невозможен честно для Senior-трека, но раз JD допускает и Middle-уровень — теоретически ближе к реалистичному сценарию, чем 007/008, если бы не полное отсутствие Angular. Это по-прежнему остаётся основным блокером независимо от заявляемого уровня.
3. **План "если понизят уровень":** даже при рассмотрении на Middle-уровне требование "опыт работы с Angular от 2 лет" стоит явно и отдельно от общего стажа коммерческой разработки — снижение до Middle не отменяет этот пункт.
## D) Компенсация и спрос
Комп-данные переиспользованы из общего WebSearch-бюджета, проведённого для парной вакансии Т-Банк/React (та же компания, тот же рынок; в рамках лимита 5 запросов на вакансию, включая пересечение с Блоком G):
| Показатель | Значение | Источник |
|---|---|---|
| Senior Angular, Москва | Angular описывается как нишевый инструмент для enterprise/banking/ERP; медиана ≈250 000 ₽/мес, в 5 раз меньше вакансий, чем на React, но конкурентная зарплата из-за дефицита кадров | [enigmai.ru](https://enigmai.ru/salary/frontend/frontend-salary-2026/) |
| Senior Frontend, Москва (диапазон) | 270 000–410 000 ₽/мес | [practicum.yandex.ru](https://practicum.yandex.ru/blog/skolko-zarabatyvayut-frontend-razrabotchiki/) |
| Т-Банк — специфика удалённой оплаты | Полная ставка из Москвы/СПб/hub-городов; для полностью удалённой работы из других регионов возможно снижение на 10–15% | web search results |
| Т-Банк — бонусная структура | Для Senior+ при высокой оценке Performance Review годовой бонус может достигать 3–4 окладов | web search results |
| Зарплата в вакансии | Не указана — "Достойную зарплату — обсудим ее на собеседовании" | JD |
**Специфика РФ:** зарплата не раскрыта. Даже с учётом возможного регионального понижения на 10–15% (Тула не входит в hub-города), диапазон Angular-медианы (≈250 000 ₽) заметно выше таргета кандидата (100–120 тыс. ₽ на руки на данный момент) — компенсационно роль привлекательна, но не компенсирует полное отсутствие обязательного стека.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Не переписывать под Angular — фабрикация опыта | Этичность: keywords reformulated, never fabricated |
| 2 | Опыт | Vue-ориентированные bullets | При отклике подчеркнуть Agile/backlog-вклад, REST/WebSocket, TypeScript как переносимые сильные стороны | Единственные честные точки пересечения |
| 3 | PDF | — | Не генерировать при балле 2.3/5 | Ниже порога auto-PDF (3.0) |
**Рекомендация:** генерация PDF не оправдана — Angular остаётся обязательным требованием независимо от уровня (Middle или Senior).
## F) План собеседований
Балл ниже порога уверенного отклика (2.3 < 3.5). Минимальный набор историй на случай отклика:
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Опыт работы в Agile-команде | Возврат команды к целеполаганию на полгода/год | Приоритеты в бэклоге терялись, руководство не замечало | Проактивно подняла вопрос на планировании | Команда вернулась к формальной постановке целей, PO начал привлекать кандидата к планированию спринтов | Показывает зрелость выше формального стажа — влияние на процесс, а не только исполнение задач |
| 2 | Понимание HTTP/REST, качественный код | Постраничная загрузка в разделе «Избранное» | Раздел не открывался — все товары грузились одним запросом | Обсудила с бэкендом, реализовала пагинацию через REST | Жалобы пользователей прекратились | Конкретное диагностическое мышление, применимое к любому фреймворку |
**Рекомендуемый кейс:** история с возвратом команды к целеполаганию — сильный сигнал proactive ownership, который важен именно для комьюнити из 300+ разработчиков с формализованными процессами код-ревью.
**Вопрос-ловушка:** "Почему нет опыта с Angular?" → "Мой коммерческий стек — Vue 3. Angular не использовала в проде, но работаю с TypeScript и понимаю компонентную SPA-архитектуру. Готова обсудить реалистичные сроки адаптации, если команда рассматривает такой вариант."
## G) Легитимность вакансии
**Оценка:** Высокая уверенность
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Дата не показана явно; текущий URL (`/career/it/vacancy/moscow/senior-frontend-developer-angular/...`) отличается от устаревшего пути в `scan-history.tsv` (`front-end-razrabotka/senior-frontend-developer-angular/`), помеченного `skipped_expired` | Positive — миграция на новую структуру сайта, а не признак фиктивности |
| Состояние отклика | Кнопка "Откликнуться на вакансию" активна, встроенная форма | Positive |
| Качество описания | Указан конкретный размер комьюнити (300+ разработчиков), конкретные продукты (Т-Бизнес, Т-Банк CRM, Мессенджер, HR-проекты), упоминание вклада в open-source — заметно выше среднего по конкретике | Positive |
| Реализм требований | 3+ года общего опыта + 2+ года Angular для Middle/Senior — реалистичное сочетание, внутренних противоречий (например, junior-требования при senior-заголовке) не найдено; расхождение между слагом URL ("senior") и отображаемым уровнем (Middle/Senior badge) отмечено в самом JD-файле как особенность страницы, не как признак фиктивности | Positive/Neutral |
| Репост | Найден устаревший путь той же роли со статусом `skipped_expired` — та же картина, что и в парной React-вакансии (008): реорганизация карьерного сайта, а не подтверждение множественных фиктивных republish | Neutral |
| Компания | Т-Банк — крупный публичный финтех с 300+ разработчиками в Angular-комьюнити, отзывы сотрудников со средними оценками 3.3–5.0, явных сигналов о заморозке найма не найдено | Positive |
**Контекст:** Оба сигнала — миграция URL-пути и отсутствие явной даты — типичны для крупных компаний с непрерывным (rolling) наймом на популярные позиции в большом инженерном комьюнити, а не признак ghost job. Дополнительный отдельный WebSearch по увольнениям для этой конкретной вакансии не проводился — данные Блока D (общие для обеих Т-Банк ролей) не выявили тревожных сигналов.
---
## Извлечённые ключевые слова
Angular, JavaScript, HTTP-протокол, REST API, код-ревью, Agile-команда, SPA-приложения, Т-Бизнес, Т-Банк CRM, Т-Банк Мессенджер, HR-проекты, опенсорс, удалённо, Middle, Senior, коммерческая разработка, ДМС со стоматологией, Т-Банк
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover tbank-angular` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Меня заинтересовала позиция Frontend-разработчика (Angular) в Т-Банке — возможность присоединиться к комьюнити из 300+ разработчиков и работать над продуктами вроде Т-Бизнеса и Т-Банк CRM в удобном удалённом формате.
**Profile introduction**
Я frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и Flutter. С ноября 2024 года веду несколько продуктов в аптечной сети «Здравсервис» (~1200 аптек по всей России), активно участвую в планировании спринтов и приоритизации бэклога.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Активно участвует в планировании спринтов и анализе бэклога** — после её инициативы команда вернулась к постановке целей на полгода/год, а product owner начал привлекать её к планированию спринтов.
- **Диагностировала причину жалоб на не открывающийся раздел «Избранное»** и реализовала постраничную загрузку через REST — жалобы прекратились.
- **Спроектировала ролевую модель авторизации (RBAC)**, опираясь на профильное ИБ-образование.
- **Внедрила Feature Branching в Git (GitLab)**, обучила коллегу с 11-летним стажем — команда перешла на стабильные еженедельные релизы.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: над какими из перечисленных продуктов (Т-Бизнес, Т-Банк CRM, Мессенджер, HR-проекты) идёт набор конкретно в эту команду? Учитывая отсутствие коммерческого Angular, какой формат онбординга обсуждать с рекрутёром?
**Closing**
Буду рада обсудить детали в удобное для вас время.
---
**Gaps flagged:**
- **Стек:** нет коммерческого опыта с Angular (обязательное требование от 2 лет). Критичный разрыв.
- **Стаж:** JD требует 3+ года, фактический опыт кандидата ≈1.5–2 года.
**JD keywords to mirror** *(extracted for ATS + human read)*
Angular, JavaScript, REST API, Agile, SPA-приложения, код-ревью, комьюнити, удалённо
---
*Run `/career-ops cover tbank-angular` to complete angles, confirm company research, and generate the PDF.*
@@ -0,0 +1,169 @@
# Оценка: МТС — Senior Frontend разработчик [NBA.Банк]
**Дата:** 2026-07-06
**URL:** https://job.mts.ru/vacancy/663323395236042942
**Архетип:** Frontend-разработчик (Vue.js) — первичный архетип кандидата
**Балл:** 1.6/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (Vue.js), primary fit |
| Domain | Frontend (виджет NBA.Банк, встроенный банковский продукт МТС) |
| Function | Build (новый функционал + рефакторинг существующего) |
| Seniority (в JD) | Senior, диапазон опыта 3-6 лет |
| Формат работы | **Москва · Гибридный · полный день** |
| Размер команды | Не указан |
| Оформление | Не указано в JD (ООО «МТС Веб Сервисы» — юрлицо; по умолчанию предполагается ТК РФ, стандарт для крупного корпоративного работодателя) |
| TL;DR | Технически сильное совпадение по стеку (Vue 3 + TS), но роль требует гибридного присутствия в московском офисе — это жёстко конфликтует с локацией кандидата (Тула, без переезда и командировок). |
**Ключевой блокер:** гибридный формат в Москве. Кандидат живёт в Туле, переезд и командировки исключены (`config/profile.yml`, `modes/_profile.md`). Тула не в зоне ежедневной доступности московского офиса (~180 км, не воспринимается рынком как "пригород Москвы"). Это подпадает под жёсткое правило локации: *"Hybrid/office roles requiring relocation outside Тула... score 1.0 — hard constraint, not a soft preference"*.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Опыт разработки на TypeScript | ✅ «Стек: Vue 3, Composition API, TypeScript, Pinia, Vue Router...» (ЕКОМ, ~1 год) |
| Опыт разработки на Vue 3 | ✅ ЕКОМ (frontend с нуля) + РМК (legacy, ~6 месяцев) — оба на Vue 3 |
| Понимание клиент-серверной архитектуры, работа с API | ✅ REST API упомянут в навыках; WebSocket/WSS — внедрила в РМК и ЕКОМ |
| HTML, CSS, адаптивная вёрстка | ✅ HTML5/CSS3 в навыках; Tailwind CSS в проекте ЕКОМ |
| Vite/Webpack | ⚠️ Частично — Vite указан в стеке ЕКОМ; Webpack не упомянут в CV |
| Микрофронтенды | ❌ Не упомянуты в CV — нет прямого опыта |
| Git | ✅ «Внедрила Feature Branching в Git (GitLab)», обучила коллегу системе версионирования |
| Юнит-тесты Jest/Vitest | ✅ «Vitest (unit-тесты Vue-компонентов)»; Jest не упомянут, но Vitest — прямой эквивалент |
**Пробелы:**
1. **Webpack** — nice-to-have, не hard blocker (Vite покрывает суть задачи сборки). Стратегия закрытия: указать в сопроводительном, что базовые концепции сборщиков (chunking, code splitting, dev server, plugins) переносятся между Vite и Webpack напрямую.
2. **Микрофронтенды** — потенциальный hard blocker, если в NBA.Банк это ядро архитектуры (виджет, встраиваемый в банковское приложение — вероятно, микрофронтенд-подход). Смежного опыта в CV нет. Стратегия: честно признать отсутствие прямого опыта, но привести пример модульной архитектуры ЕКОМ (разграничение по ролям/отделам через RBAC) как доказательство системного мышления о границах ответственности между модулями.
3. **Jest** — не hard blocker, Vitest как замена принимается почти везде, где мигрируют на Vite.
## C) Уровень и стратегия
**Уровень в JD:** Senior, 3-6 лет коммерческого опыта.
**Естественный уровень кандидата:** Middle (для архетипа Frontend/Vue.js) — на текущий момент около 1.5-2 лет непрерывного коммерческого опыта в frontend (ноябрь 2024 — настоящее время в «Здравсервис»), плюс 10 месяцев заказной разработки в 2022 (частично backend/Node.js, не чисто frontend). Совокупный опыт близок к нижней границе диапазона JD, но не достигает его комфортно.
**План "продать senior без обмана":**
- Не заявлять формальный тайтл senior — но подчеркнуть senior-поведение: единолично спроектировала frontend ЕКОМ с нуля, включая архитектуру ролевой модели (RBAC), которую объясняла бэкенд-команде.
- Обучение коллеги с 11-летним стажем работе с Git/Feature Branching — прямое доказательство того, что уровень влияния не завязан на годы в профессии.
- Проактивная роль в приоритизации бэклога (стала участником стратегического планирования спринтов с product owner) — сигнал системного, не только исполнительского мышления.
- Формулировка для скрининга: *"Около двух лет коммерческого опыта, но веду продукт от архитектуры до продакшна самостоятельно — включая проектирование системы доступа и обучение процессам команды"*.
**План "если понизят уровень":**
- Принять Middle-уровень, если компенсация справедлива относительно рынка (см. блок D).
- Договориться о пересмотре грейда через 6 месяцев с явными критериями: закрытие пробела по микрофронтендам, самостоятельная доставка минимум 1-2 фич без ревью архитектуры.
**Однако:** вся эта стратегия становится вторичной на фоне блокера локации (см. блок A/G) — компания в любом случае потребует гибридное присутствие в Москве, что делает вопрос грейда не главным риском этой вакансии.
## D) Компенсация и спрос
WebSearch (июль 2026, "Vue.js frontend developer зарплата Москва hh.ru 2026 middle senior"):
| Уровень | Диапазон gross (₽/мес, Москва) | Net ≈ gross × 0.87 |
|---|---|---|
| Middle Vue Developer | 290 000 — 380 000 | ≈ 252 300 — 330 600 |
| Senior Vue Developer | 480 000 — 650 000 | ≈ 417 600 — 565 500 |
Источник: агрегированные данные по рынку fronted-разработки в Москве, 2026 (sborka.work, enigmai.ru, hh.ru — см. Sources ниже). Прямых данных именно по МТС/ООО «МТС Веб Сервисы» не найдено; экстраполяция по рыночному уровню для крупного корпоративного работодателя в Москве.
**Оценка для кандидата:** если бы локация не была блокером, при грейдовании как Middle (реалистичный сценарий с учётом блока C) компенсация ~250-330 тыс ₽ на руки — заметно выше целевого минимума кандидата (100 000-120 000+ ₽ на руки). МТС как крупный работодатель дополнительно даёт ДМС со стоматологией с 1-го месяца, страхование от несчастных случаев, 28 дней отпуска, корпоративный университет — стандартный сильный соцпакет для big tech РФ.
**Но:** компенсационная привлекательность полностью нивелируется требованием гибридного присутствия в Москве (см. G и следующий раздел) — компания не предлагает удалённый формат для этой позиции.
Gross/Net в JD не указаны явно (типично для МТС — диапазон обсуждается на собеседовании).
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Общий фокус на Vue 3 + Flutter + RBAC | Сузить до Vue 3 + TS + продакшн-архитектура (без Flutter) | JD чисто frontend/Vue, Flutter — шум |
| 2 | Порядок буллетов ЕКОМ | RBAC и график курьеров равнозначны | RBAC — первым (соответствует "прорабатывать технические решения"), затем список заказов (архитектура фильтрации) | JD явно просит "участие в проработке технических решений" |
| 3 | Skills | Vite упомянут, Webpack — нет | Добавить фразу "инструменты сборки (Vite; общие принципы бандлинга переносимы на Webpack)" | Закрыть пробел честно, не выдумывая опыт |
| 4 | RMК блок | WebSocket и Git выделены отдельно | Объединить в один буллет "внедрение WebSocket + Feature Branching в Git" | Показать связку клиент-серверного мышления и процессной зрелости — оба маркера, которые JD ищет в "проработке технических решений" |
| 5 | Локация в форме | — | Указать явно: "Тула, готова к удалённой работе; для гибридного/офисного формата — только при базировании в Туле" | Прозрачность с первого контакта важнее, чем шанс дойти до интервью и получить отказ на этапе логистики |
**Топ для hh.ru/LinkedIn:** добавить ключевые слова "TypeScript", "Vue 3", "Composition API", "Vite", "REST API", "Vitest", "Git/GitLab" в заголовок и первую строку профиля.
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Проработка технических решений | RBAC в ЕКОМ | Нужна была ролевая модель доступа между отделами | Спроектировать и защитить модель перед бэкенд-командой | Разработала модель ролей (логистика/заказы/техподдержка), объяснила принцип бэкенд-разработчику с опорой на ИБ-образование | Модель принята и внедрена, разграничение работает | Поняла, что образование в ИБ — реальное конкурентное преимущество, а не просто диплом |
| 2 | Vue 3 / TS в продакшне | Frontend ЕКОМ с нуля | Нужна была система управления заказами/логистикой | Спроектировать и реализовать frontend на Vue 3 + TS + Pinia | Построила интерфейс с фильтрацией по 9 параметрам, заменивший таблицы 1С | Используется логистикой, техподдержкой, клиентским отделом и разработчиками | Осознала ценность UX-решений для непрофильных пользователей (не разработчиков) |
| 3 | Работа с API / клиент-серверная архитектура | WebSocket-оповещения в РМК | Не было realtime-статуса аптек | Внедрить WSS-соединение и обработку событий на клиенте | Реализовала оповещения почти без задержки, статус прочтения | Впервые видно онлайн-статус ~1200 аптек в реальном времени | Поняла важность обратной связи о доставке сообщения, не только самой доставки |
| 4 | Рефакторинг / поддержание качества кода | Баг с замыканием в РМК | Клавиатура переставала работать после многократного использования | Найти причину в глобальном классе биндинга кнопок | Устранила утечку реактивных переменных, исправила ~20 багов в проекте | Стабилизировала критичный для кассиров модуль | Стала внимательнее к жизненному циклу реактивных переменных в долгоживущих объектах |
| 5 | Git / процессная зрелость | Feature Branching + обучение коллеги | Хаотичный git-флоу, зависающие фичи | Внедрить Feature Branching и обучить команду | Обучила коллегу с 11-летним стажем; переход на стабильные еженедельные релизы | Сократилось количество зависших фич | Убедилась, что процессные изменения требуют личного менторства, не только документации |
| 6 | Работа с production-инцидентами | Диагностика бага "Избранное" | Пользователи жаловались, что раздел не открывается | Найти причину (загрузка всех товаров одним запросом) | Реализовала постраничную загрузку совместно с бэкенд-разработчиком | Жалобы прекратились | Поняла ценность профилирования перед тем, как чинить "на глаз" |
**Рекомендуемый кейс:** ЕКОМ — архитектура RBAC + список заказов с фильтрацией. Показывает end-to-end владение продуктом и системное мышление, наиболее близкое к формулировке JD "участие в проработке технических решений".
**Вопросы-ловушки:**
- *"Почему рассматриваете вакансию с меньшим опытом, чем указано (3-6 лет)?"* → Ответ: подчеркнуть темп роста и объём самостоятельной ответственности (частный продукт с нуля, обучение старшего коллеги, RBAC-дизайн), а не годы.
- *"Готовы к гибридному графику в Москве?"* → Честный ответ обязателен: "Нет, base — Тула, переезд не рассматриваю. Открыта к удалённому формату, если он возможен для этой роли." Не смягчать до "гибко" — это противоречит политике кандидата.
## G) Легитимность вакансии
**Сигналы свежести:** Дата публикации не показана в извлечённом JD; статус отклика — активный ("Откликнуться" + встроенная форма "Отклик на вакансию"), что подтверждает, что вакансия открыта на момент извлечения.
**Качество описания:** Высокое. Указан конкретный проект (виджет NBA.Банк), конкретный стек (Vue 3, TypeScript, Vite/Webpack, микрофронтенды, Jest/Vitest), реалистичный диапазон опыта, разграничение зон ответственности (новый функционал / оптимизация / участие в решениях). Соотношение generic-формулировок к конкретике низкое — не шаблонный "универсальный" текст. Список бенефитов подробный и специфичный для МТС (MTS Ocean, TechTalks, гильдии инженеров, конкретные конференции — HighLoad++, DataFest, Mobius).
**Компания:** ООО «МТС Веб Сервисы» — юрлицо крупной публичной телеком-группы МТС, вакансия размещена на собственном корпоративном портале (job.mts.ru). Ничего в описании не выглядит подозрительным (нет признаков "плати за обучение", нет расплывчатых обещаний дохода, нет требования личных данных сверх обычной формы). WebSearch по репутации найма компании не проводился — сигналов, требующих проверки, не обнаружено (бюджет WebSearch использован на Block D).
**Вывод:** **Высокая уверенность.**
---
## Извлечённые ключевые слова
TypeScript, Vue 3, Vue.js, клиент-серверная архитектура, REST API, HTML5, CSS3, адаптивная вёрстка, Vite, Webpack, микрофронтенды, Git, юнит-тесты, Jest, Vitest, рефакторинг, виджет, NBA.Банк, техническое решение, гибридный формат, качество кода
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover mts-senior-frontend-nba-bank` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Разработка виджета NBA.Банк на Vue 3 и TypeScript — стек, на котором я строю продукт с нуля последний год, и роль, где важна проработка технических решений, а не только реализация готовых макетов.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). За последний год спроектировала и реализовала с нуля frontend внутренней системы управления заказами и логистикой (ЕКОМ) для сети из ~1200 аптек, а также подключилась к legacy-проекту кассы на Vue 3 с WebSocket. Профильное образование в информационной безопасности дало нестандартный для frontend-разработчика опыт — самостоятельно спроектировала и объяснила бэкенд-команде ролевую модель авторизации (RBAC).
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами (например, логистика не видит заказы, и наоборот) — объясняла бэкенд-разработчику принцип работы, опираясь на профильное ИБ-образование.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** — заменил неудобные таблицы 1С; используется логистикой, отделом работы с клиентами, техподдержкой и разработчиками.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые в компании видно, сколько аптек онлайн прямо сейчас, оповещения доходят практически без задержки.
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** — команда перешла на стабильные еженедельные релизы.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи стоят перед виджетом NBA.Банк (масштабирование, производительность, интеграция с банковским приложением)? Как бы вы к ним подошли?
**Closing**
Готова обсудить детали в удобное время. Отдельно хочу сразу обозначить: моя база — Тула, переезд и командировки не рассматриваю; открыта к удалённому формату, если он применим к этой позиции.
---
**Gaps flagged:**
- **Локация (критично):** роль заявлена как гибридная в Москве. Кандидат не переезжает и не рассматривает командировки — это нужно прояснить с рекрутером в первом же контакте, до вложения времени в подготовку.
- **Уровень:** JD просит 3-6 лет опыта (Senior); у кандидата ~1.5-2 года непрерывного коммерческого опыта. Обсуждается в блоке C.
- **Микрофронтенды:** прямого опыта нет — честно обозначить как зону роста, если тема поднимется на техническом интервью.
**JD keywords to mirror** *(extracted for ATS + human read)*
Vue 3, TypeScript, клиент-серверная архитектура, REST API, адаптивная вёрстка, Vite, микрофронтенды, юнит-тесты Vitest, проработка технических решений, качество кода
---
*Run `/career-ops cover mts-senior-frontend-nba-bank` to complete angles, confirm company research, and generate the PDF.*
---
## Sources (WebSearch, Block D)
- [Зарплата Frontend-разработчика в 2026: Junior, Middle, Senior, Lead | СБОРКА](https://sborka.work/knowledge/salaries/frontend-developer-salary)
- [Зарплата Frontend разработчика в 2026 году: детальный разбор React, Vue и Angular](https://enigmai.ru/salary/frontend/frontend-salary-2026/)
- [Профессия Frontend-разработчик | hh.ru](https://career.hh.ru/profession/40)
@@ -0,0 +1,140 @@
# Оценка: МТС — Intern Frontend dev [Governance]
**Дата:** 2026-07-06
**URL:** https://job.mts.ru/vacancy/676760121979701260
**Архетип:** Frontend-разработчик — стек не совпадает с первичным архетипом кандидата (React, не Vue)
**Балл:** 2.0/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик — но на React, не на Vue.js (архетип кандидата — Frontend Vue.js, primary). React — стек, не заявленный ни в CV, ни в архетипах кандидата |
| Domain | Frontend (Governance — внутренний продукт МТС) |
| Function | Build (решение frontend-задач + взаимодействие с аналитиком) |
| Seniority (в JD) | Стажёр — "Без опыта", целевая аудитория "студент 3-4 курса бакалавриата или 1-2 курса магистратуры" |
| Формат работы | **Москва · Удалённая работа · полный день** — локация НЕ является блокером (роль явно удалённая, гибридное/офисное присутствие не требуется) |
| Размер команды | Не указан |
| Оформление | Не указано (стажировка — обычно ученический договор или ГПХ, реже полноценный ТК РФ) |
| TL;DR | Формат работы (удалённо) полностью подходит кандидату, но роль ориентирована на студентов без опыта на стеке React — двойной мисматч по уровню (кандидат выше) и по технологии (кандидат — Vue-специалист). |
**Важно:** это единственная вакансия в пакете, где локация НЕ тянет балл вниз — работа полностью удалённая, что прямо соответствует предпочтению кандидата ("Удалёнка: да (предпочтительно)"). Низкий балл здесь обусловлен другими факторами: стек (React вместо Vue) и целевой уровень (студент без опыта, а не Middle-специалист с ~1.5-2 годами коммерческого опыта).
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Front-end задачи на React | ❌ React не упомянут ни разу в CV. Стек кандидата — Vue 3, Flutter/Dart |
| Базовое знание react/go | ❌ Go также не упомянут в CV |
| Понимание базовых принципов ООП | ⚠️ Косвенно — Clean Architecture и BLoC во Flutter подразумевают ООП-мышление, но JD явно, по-видимому, ищет джуниора без коммерческого опыта, а не проверяет архитектурную зрелость |
| Взаимодействие с аналитиком | ✅ Есть опыт кросс-командного взаимодействия (бэкенд, логистика, техподдержка, отдел работы с клиентами) — переносимый навык |
| Работа по Agile | ✅ «Активно участвует в планировании спринтов и анализе бэклога» |
| Студент 3-4 курса / 1-2 курса магистратуры | ❌ Кандидат — выпускник ТулГУ (2024), не студент; это стажировка для тех, кто ещё учится |
**Пробелы:**
1. **React** — hard blocker для самой сути задач роли ("решение Front-end задач на react"). У кандидата нет ни коммерческого, ни pet-project опыта с React в CV. Стратегия закрытия: честно предупредить, что фундаментальные концепции (JSX как альтернатива Vue-шаблонам, хуки vs Composition API) переносятся быстро благодаря опыту с двумя reactive-фреймворками (Vue 3 + Flutter/BLoC), но реального React-кода нет.
2. **Go** — заявлено как "базовое знание", не hard blocker (второй язык через "/"), но кандидат не имеет опыта с Go вообще.
3. **Целевая аудитория "студент"** — не пробел в навыках, а structural mismatch: это программа для тех, кто ещё учится, а не для специалиста с оконченным образованием и почти двумя годами коммерческого опыта. Закрыть этот "пробел" искусственно нельзя и не нужно — честнее не претендовать на роль, задуманную для более раннего этапа карьеры.
## C) Уровень и стратегия
**Уровень в JD:** Стажёр, "без опыта", явно нацелен на действующих студентов.
**Естественный уровень кандидата:** Middle (архетип Frontend Vue.js) — кандидат уже почти два года работает как штатный frontend/Flutter-разработчик, ведёт продукты с нуля, обучает более опытных коллег. Это выше целевого уровня стажировки на голову.
**План "продать senior без обмана":** неприменим и нежелателен здесь — попытка "продать" себя выше уровня стажировки бессмысленна, потому что сама программа рассчитана на другую аудиторию (действующих студентов), а не на конкурс "кто сильнее". Заявка Middle-специалиста на позицию стажёра, скорее всего, будет отклонена автоматически на этапе скрининга резюме (overqualified) или, если пройдёт, обесценит переговорную позицию по компенсации.
**План "если понизят уровень":** неприменим в обратную сторону — здесь риск не "понизят", а "заявка не по адресу". Разумная стратегия: не откликаться на эту конкретную вакансию, но отслеживать другие открытые Vue/Middle-позиции в МТС (см. вакансию 012 в этом же пакете) или уточнить у рекрутера МТС, есть ли открытые Middle-роли на Vue с удалённым форматом — такой лид может быть ценнее самой этой вакансии.
## D) Компенсация и спрос
WebSearch ("стажер intern frontend developer зарплата Москва IT компании 2026"): точных цифр по стажёрским окладам во МТС не найдено в открытых источниках. Общий рыночный паттерн (по данным Skillbox, T-Образование, Т1-стажировки): оплачиваемые стажировки frontend в Москве существуют, но их ставки не публикуются в сравнимых с полноценным окладом диапазонах — по общей структуре рынка стажёрские программы платят существенно ниже штатного Middle-оклада (для контраста: средний frontend-оклад по Москве в целом — около 168 000-200 000 ₽/мес по GorodRabot.ru, а Middle Vue — 290 000-380 000 ₽ gross, см. отчёт 012).
**Вывод для кандидата:** даже без точной цифры, структурно стажёрская ставка почти наверняка ниже минимума кандидата в 100 000 ₽ на руки — компенсационная модель этой программы не рассчитана на специалиста её уровня. Данных, подтверждающих обратное, не найдено, поэтому оценка компенсации сделана консервативно в сторону "ниже целевого диапазона", а не выдумана.
Оформление (ГПХ / ученический договор vs ТК РФ) не указано в JD — для точной оценки стабильности нужно уточнять у рекрутера.
## E) План персонализации
Персонализация CV/PDF для этой вакансии не рекомендуется (балл < 3.0, PDF не генерируется). Если кандидат всё же решит откликнуться ради нетворкинга/лида на другие роли в МТС:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Сопроводительное | — | Явно указать, что интересна не столько сама стажировка, сколько компания и что кандидат открыта обсудить action на Middle-уровне на Vue | Превращает заведомо слабый матч в лид на более подходящую роль |
| 2 | Summary | Vue-фокус | Смягчить до "быстро осваиваю новые reactive-фреймворки (Vue 3, Flutter/BLoC)" без обещания React-экспертизы | Не завышать ожидания рекрутера от несуществующего опыта |
## F) План собеседований
Учитывая низкий фит и рекомендацию не откликаться, полный банк STAR+R не разрабатывается для этой роли отдельно — истории кандидата (RBAC, WebSocket, миграция мотивационной системы, обучение Git) уже развёрнуты в отчёте 010 и одинаково применимы, если разговор всё же состоится (например, как нетворкинг-контакт с рекрутером МТС).
**Вопросы-ловушки, если кандидат всё же решит поговорить:**
- *"Почему специалист с опытом откликается на стажировку?"* → Честный ответ: интересна компания и стек, но приоритетнее полноценная Middle-роль на Vue, если такая появится.
- *"Есть ли опыт с React?"* → Прямой ответ: "Нет, мой стек — Vue 3 и Flutter, но оба построены на реактивных примитивах, так что базовые концепции переносятся быстро."
## G) Легитимность вакансии
**Сигналы свежести:** Дата публикации не показана; статус отклика — активный ("Откликнуться" + многошаговая форма "Отклик на вакансию", Шаг 1/3), что подтверждает открытый статус на момент извлечения.
**Качество описания:** Среднее-высокое для стажёрской позиции — краткое, но специфичное (React, Go, конкретные курсы/уровень образования кандидата, взаимодействие с аналитиком, Agile). Меньше деталей, чем в двух других вакансиях пакета (010, 012), что типично для intern-постингов (компактный формат — норма для этого сегмента, не сигнал подозрительности).
**Компания:** та же головная структура — ООО «МТС Веб Сервисы», официальный портал job.mts.ru. Ничего подозрительного не обнаружено. WebSearch по репутации компании не проводился — сигналов, требующих проверки, не было (бюджет WebSearch использован на Block D).
**Вывод:** **Высокая уверенность.**
---
## Извлечённые ключевые слова
React, Go, ООП, Front-end, Agile, взаимодействие с аналитиком, стажировка, Governance, без опыта, студент, бакалавриат, магистратура, удалённая работа, наставник, корпоративный университет, экосистема МТС
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover mts-intern-frontend-governance` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
>
> **Рекомендация: не откликаться на эту роль напрямую (балл 2.0/5, ниже порога 3.5).** Черновик приведён на случай, если кандидат решит использовать контакт как лид на другую позицию в МТС, а не как полноценную заявку.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Продукт Governance и удалённый формат работы во МТС выглядят интересно, хотя мой опыт — уже за пределами стажёрского уровня, и мой стек — Vue 3, а не React.
**Profile introduction**
Frontend/Flutter-разработчик с почти двумя годами коммерческого опыта на Vue 3 и Flutter, веду несколько продуктов одновременно в аптечной сети из ~1200 точек. Прямого коммерческого опыта с React нет, но реактивные концепции Vue 3 и BLoC (Flutter) дают базу для быстрого переноса на другой фреймворк.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами, объясняла принцип бэкенд-команде.
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** — команда перешла на стабильные еженедельные релизы.
- **Диагностировала причину жалоб на не открывающийся раздел «Избранное»** и реализовала постраничную загрузку — жалобы прекратились.
- **Активно участвует в планировании спринтов и анализе бэклога** — стала участником стратегического планирования с product owner.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: не рекомендуется заполнять для этой конкретной роли — уровень (стажировка) и стек (React) не совпадают достаточно, чтобы обосновать полноценный отклик.
**Closing**
Готова обсудить, если в МТС есть открытые Middle-позиции на Vue с удалённым форматом — это было бы значительно более точным совпадением.
---
**Gaps flagged:**
- **Стек (критично):** роль на React, у кандидата нет опыта с React — это основной блокер, не компенсация или процесс.
- **Уровень (критично):** программа рассчитана на действующих студентов без опыта; кандидат — выпускник с почти двумя годами коммерческого опыта. Overqualified mismatch.
- **Компенсация:** данные не найдены напрямую, но структурно стажёрская ставка, вероятно, ниже минимума кандидата (100 000 ₽ на руки).
- **Плюс:** формат — полностью удалённый, единственный сильный сигнал в этой вакансии.
**JD keywords to mirror** *(extracted for ATS + human read)*
React, ООП, Front-end задачи, взаимодействие с аналитиком, Agile, удалённая работа, наставник
---
*Run `/career-ops cover mts-intern-frontend-governance` to complete angles, confirm company research, and generate the PDF — but consider whether this application is worth submitting given the score below 3.5.*
---
## Sources (WebSearch, Block D)
- [Зарплаты frontend-разработчиков в 2026 году | Skillbox Media](https://skillbox.ru/media/code/zarplaty-i-skilly-frontendrazrabotchikov-raznykh-greydov-issledovanie-skillbox-media/)
- [Зарплата Frontend-разработчика в Москве за 2026 год | ГородРабот.ру](https://moskva.gorodrabot.ru/salaries/frontend-razrabotchik)
@@ -0,0 +1,172 @@
# Оценка: МТС — Middle Frontend Developer (Vue) [GARNET]
**Дата:** 2026-07-06
**URL:** https://job.mts.ru/vacancy/679637913989810210
**Архетип:** Frontend-разработчик (Vue.js) — первичный архетип кандидата, лучшее стековое совпадение в пакете
**Балл:** 1.9/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (Vue.js), primary fit — самое точное стековое совпадение среди всех трёх вакансий пакета |
| Domain | Frontend (проект GARNET, МТС Веб Сервисы) |
| Function | Build (новый функционал + поддержка + переход на Vue 3 + совместная работа с дизайнером) |
| Seniority (в JD) | Middle, от 3 лет опыта на позиции Frontend |
| Формат работы | **Москва · Гибридный · полный день** |
| Размер команды | Не указан |
| Оформление | Не указано в JD (по умолчанию предполагается ТК РФ, стандарт для ООО «МТС Веб Сервисы») |
| TL;DR | Лучшее техническое совпадение по стеку во всём пакете (Vue 3 + Composition API + TS точь-в-точь), но тот же блокер локации — гибрид в Москве — обнуляет практическую ценность этого совпадения. |
**Ключевой блокер:** как и в вакансии 010, формат "Гибридный" подразумевает регулярное присутствие в московском офисе. Кандидат базируется в Туле, переезд и командировки исключены. Применяется то же жёсткое правило локации (`modes/_profile.md`): гибрид/офис вне Тулы → балл по этому измерению **1.0**, что тянет глобальный балл в диапазон 1.0-2.0 независимо от силы остальных измерений.
**Важное наблюдение:** если бы эта роль была удалённой (как 011) или базировалась в Туле, она была бы, вероятно, лучшим совпадением во всём пакете — стек, уровень и зона роста ("участвовать в переходе на Vue.js 3") совпадают с профилем кандидата почти идеально. Именно поэтому локация здесь — не формальность, а решающий фактор: технически сильная вакансия становится нерелевантной из-за формата работы.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Frontend от 3 лет | ⚠️ У кандидата ~1.5-2 года непрерывного коммерческого опыта — ниже требуемого порога |
| TypeScript, HTML5, CSS3, JS (ES6+) | ✅ Полное совпадение — «Языки программирования: JavaScript, TypeScript, HTML5/CSS3» |
| Vue.js 3 + Composition API | ✅ Точное совпадение — «Vue 3, Composition API» является основным стеком ЕКОМ и РМК |
| SCSS/LESS | ⚠️ Не упомянуты явно — кандидат использует Tailwind CSS/shadcn-vue; препроцессоры не в CV, но «быстро осваиваю... любые CSS-подходы» |
| Адаптивная и кросс-браузерная вёрстка | ✅ HTML5/CSS3 + Tailwind в проектах |
| Git | ✅ «Внедрила Feature Branching в Git (GitLab)» |
| Веб-безопасность | ✅ Профильное образование по ИБ + проектирование RBAC — прямое, нестандартное для frontend-кандидата преимущество |
| Webpack, Vite | ⚠️ Vite — да; Webpack не упомянут |
| Принципы UI/UX | ✅ Самостоятельные редизайны (кнопка «Избранное», блок информации о заказе), app-иконки — в компании без дизайнера |
| Алгоритмы, структуры данных, архитектура, паттерны | ⚠️ Явных упоминаний алгоритмических задач нет в CV, но архитектурная работа (RBAC, разделение по ролям) косвенно подтверждает системное мышление |
| Опыт создания сложных интерфейсов | ✅ ЕКОМ (график курьеров с drag-and-drop на vue-cal, список заказов с 9 фильтрами) — явно "сложные интерфейсы" |
**Пробелы:**
1. **3+ года опыта** — умеренный blocker (не hard, но заметный). Стратегия: акцент на плотность и объём ответственности за короткий срок (продукт с нуля, RBAC-архитектура, менторство), см. блок C.
2. **SCSS/LESS** — nice-to-have, не hard blocker. Стратегия: честно указать быстрое освоение любых CSS-подходов, сослаться на Tailwind как на демонстрацию владения современными CSS-методологиями.
3. **Webpack** — как и в 010, не критично при наличии Vite-опыта.
4. **Формальные алгоритмы/паттерны** — если на техническом интервью будет секция live-coding на алгоритмы, у кандидата нет прямых proof points в CV. Стратегия: подготовиться отдельно (LeetCode-style), не полагаться только на прикладной опыт.
## C) Уровень и стратегия
**Уровень в JD:** Middle, "опыт работы на позиции Frontend от 3х лет".
**Естественный уровень кандидата:** пограничный Junior+/Middle — около 1.5-2 лет непрерывного коммерческого опыта. Ближе к нижней границе Middle, чем к формальным "3 годам", но по глубине ответственности (продукт с нуля, RBAC, менторство более опытного коллеги) уже демонстрирует поведение, типичное для Middle+.
**План "продать senior/middle без обмана":**
- Открыто говорить о ~1.5-2 годах опыта, но подкреплять аргумент не стажем, а масштабом: единолично построила продакшн-продукт (ЕКОМ) с нуля, включая архитектуру доступа.
- Использовать формулировку: *"Меньше формальных лет, чем указано в вакансии, но за это время самостоятельно довела продукт от нуля до продакшна и участвовала в архитектурных решениях по доступу — готова обсудить тестовое задание или техническое интервью, чтобы показать это напрямую."*
- Подчеркнуть релевантность именно для GARNET: JD явно упоминает "участвовать в переходе на Vue.js 3" — у кандидата уже есть прямой опыт именно такого перехода (РМК — legacy-проект на Vue 3, где она системно исправляла технический долг).
**План "если понизят уровень":**
- Junior+/Middle-минус компенсация приемлема, если она всё равно перекрывает целевой минимум кандидата (100 000+ ₽ на руки — см. блок D, рыночная Middle-вилка Vue в Москве заметно выше этого порога).
- Договориться о пересмотре грейда через 6 месяцев по итогам участия в переходе на Vue 3.
**Но, как и в 010:** вопрос грейда становится второстепенным на фоне блокера локации — компания предлагает только гибридный формат в Москве, без варианта Тулы или полной удалёнки.
## D) Компенсация и спрос
WebSearch ("Vue.js frontend developer зарплата Москва hh.ru 2026 middle senior"):
| Уровень | Диапазон gross (₽/мес, Москва) | Net ≈ gross × 0.87 |
|---|---|---|
| Middle Vue Developer | 290 000 — 380 000 | ≈ 252 300 — 330 600 |
| Senior Vue Developer | 480 000 — 650 000 | ≈ 417 600 — 565 500 |
Источники: sborka.work, enigmai.ru, career.hh.ru (см. Sources ниже). Москва в целом платит на 15-30% больше, чем регионы — фактор, полностью нейтрализуемый требованием жить/присутствовать в Москве.
**Оценка для кандидата:** Middle-вилка (252 000-330 000 ₽ на руки после НДФЛ) значительно перекрывает целевой минимум кандидата (100 000-120 000+ ₽ на руки) — по чистой компенсации это была бы одна из самых сильных вакансий в пакете. Плюс сильный корпоративный соцпакет МТС (ДМС со стоматологией с 1-го месяца, страхование от несчастных случаев, 28+3 дня отпуска за ненормированный график, корпоративный университет).
**Но:** вся эта компенсационная привлекательность недостижима без переезда/регулярных поездок в Москву, которые кандидат исключает. Формально высокая компенсация не конвертируется в реальный оффер при данном формате работы.
Gross/Net не указаны явно в JD — типично для МТС, обсуждается на собеседовании.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Vue 3 + Flutter общий фокус | Сузить до Vue 3 + Composition API + TS, явно упомянуть опыт "перехода legacy → Vue 3" (проект РМК) | JD явно ищет опыт перехода на Vue 3 — прямое попадание |
| 2 | Порядок буллетов РМК | Баги, WebSocket, мотивация, Git — вперемешку | Вынести "работа с legacy Vue-проектом и системный рефакторинг" в заголовок раздела | Совпадает с "переход на Vue.js 3" и "поддерживать существующий функционал" |
| 3 | UI/UX буллеты | Разбросаны по разным продуктам | Собрать в один компактный блок ("самостоятельные UI/UX-редизайны при отсутствии дизайнера в команде") | JD явно просит "совместно с дизайнером прорабатывать UI/UX" — кандидат показывает дизайн-чутьё даже без дизайнера в команде |
| 4 | Skills | SCSS/LESS отсутствуют | Добавить: "CSS-препроцессоры и методологии — быстро осваиваю (опыт с Tailwind CSS, shadcn-vue)" | Закрыть формальный пробел честно, без выдумывания опыта с конкретными препроцессорами |
| 5 | Локация в форме | — | Указать явно с первого контакта: "Тула, удалённо или гибрид/офис только в Туле; переезд и командировки не рассматриваю" | Экономит время обеих сторон при явном офисном/гибридном требовании в Москве |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Переход на Vue.js 3 | Legacy-проект РМК на Vue 3 | Проект накопил технический долг (баг с замыканием, нестабильная клавиатура) | Стабилизировать и модернизировать legacy-код | Исправила ~20 багов, включая сложный кейс с утечкой реактивных переменных в глобальном классе | Кассовый модуль стал стабильным для ежедневной работы кассиров | Осознала, как аккуратно рефакторить, не ломая рабочий процесс живых пользователей |
| 2 | Сложные интерфейсы | График курьеров на vue-cal | Расписание вносили вручную SQL-запросами по заявке логистики | Спроектировать drag-and-drop календарь на Vue 3 | Логистика получила самостоятельное управление графиком без участия разработчиков | Устранена зависимость логистики от разработчиков в рутинной задаче | Поняла ценность самообслуживания для непрофильных отделов |
| 3 | Веб-безопасность / архитектура | RBAC в ЕКОМ | Нужно было разграничение доступа между отделами | Спроектировать ролевую модель, опираясь на профильное ИБ-образование | Реализовала и объяснила модель бэкенд-команде | Модель работает, разграничение соблюдается | Подтвердила, что ИБ-бэкграунд — реальное прикладное преимущество, не только формальность |
| 4 | Совместная работа с дизайнером / UI/UX | Редизайн кнопки «Избранное» и блока информации о заказе | Не было штатного дизайнера, но интерфейс требовал доработки | Самостоятельно спроектировать более удобные элементы | Кнопка стала крупнее и удобнее, блок компактнее | Оба изменения приняты в продакшн | Развила интуицию, когда решение можно принять самой, а когда нужен профильный дизайнер |
| 5 | Поддержание качества кода | Внедрение Playwright E2E + Vitest unit-тестов | Проект РМК не имел автотестов | Внедрить тестовое покрытие поэтапно | Playwright на этапе внедрения, Vitest — для Vue-компонентов ЕКОМ | Растущее покрытие снижает риск регрессий | Осознала важность постепенного внедрения тестов в уже работающий проект, а не "большого взрыва" |
| 6 | Оптимизация существующих решений | Постраничная загрузка «Избранное» | Раздел не открывался — все товары грузились одним запросом | Реализовать pagination совместно с бэкенд-разработчиком | Жалобы пользователей прекратились | Прямое улучшение производительности и UX | Поняла, что производительность — часть UX, а не отдельная техническая метрика |
**Рекомендуемый кейс:** РМК (legacy-проект, переход на Vue 3, рефакторинг) — прямое попадание в формулировку JD "участвовать в переходе на Vue.js 3" и "поддерживать существующий функционал".
**Вопросы-ловушки:**
- *"У вас меньше 3 лет опыта — почему откликаетесь?"* → Акцент на плотность ответственности и прямое совпадение с задачей "переход на Vue 3" (уже делала это на РМК).
- *"Готовы к гибридному графику в Москве?"* → Обязательный честный ответ: "Нет, база — Тула, переезд и командировки не рассматриваю. Готова обсуждать удалённый формат, если он возможен для этой роли."
## G) Легитимность вакансии
**Сигналы свежести:** Дата публикации не показана; статус отклика — активный ("Откликнуться" + встроенная форма "Отклик на вакансию"), что подтверждает открытый статус на момент извлечения.
**Качество описания:** Высокое. Указан конкретный проект (GARNET), конкретный стек (Vue.js 3 + Composition API, SCSS/LESS, Webpack/Vite), явная задача (переход с более старой версии на Vue 3), реалистичные и разнообразные требования (от вёрстки до алгоритмов и веб-безопасности). Список бенефитов детальный и специфичный для МТС, с явным указанием "+3 дополнительных дня за ненормированный рабочий день" — конкретная деталь, которую сложно взять из шаблона.
**Компания:** та же головная структура — ООО «МТС Веб Сервисы», официальный портал job.mts.ru. Ничего подозрительного не обнаружено. WebSearch по репутации компании не проводился — нет сигналов, требующих проверки (бюджет WebSearch использован на Block D, общий для всех трёх вакансий пакета).
**Вывод:** **Высокая уверенность.**
---
## Извлечённые ключевые слова
Vue.js 3, Composition API, TypeScript, HTML5, CSS3, JavaScript ES6+, SCSS, LESS, адаптивная вёрстка, кросс-браузерность, Git, веб-безопасность, Webpack, Vite, UI/UX, алгоритмы, структуры данных, архитектура, паттерны проектирования, сложные интерфейсы, GARNET, переход на Vue 3
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover mts-middle-frontend-vue-garnet` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Проект GARNET и переход команды на Vue.js 3 — именно та задача, которую я уже решала на legacy-проекте: стабилизация и модернизация Vue-кода без остановки продакшна.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). Параллельно с продуктом, построенным с нуля (ЕКОМ), веду legacy-проект на Vue 3 (РМК), где системно закрываю технический долг и внедряю тестовое покрытие. Профильное образование в информационной безопасности дало нестандартный для frontend-разработчика опыт — самостоятельно спроектировала и объяснила бэкенд-команде ролевую модель авторизации (RBAC), что напрямую перекликается с требованием "знания веб-безопасности" в вакансии.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Внедрила Feature Branching в Git (GitLab), обучила коллегу с 11-летним стажем** работе с системой версионирования — команда перешла на стабильные еженедельные релизы.
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами, опираясь на профильное ИБ-образование.
- **График курьеров на базе календаря vue-cal с drag-and-drop** — заменил ручной ввод расписания SQL-запросами разработчиков.
- **Редизайн блока информации о заказе и кнопки «Избранное»** — самостоятельное проектирование интерфейса в компании без штатного дизайнера.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи стоят перед GARNET в рамках перехода на Vue 3 (миграция компонентов, производительность, совместимость)? Как бы вы к ним подошли?
**Closing**
Готова обсудить детали в удобное время. Отдельно хочу сразу обозначить: моя база — Тула, переезд и командировки не рассматриваю; открыта к обсуждению удалённого формата, если он применим к этой позиции.
---
**Gaps flagged:**
- **Локация (критично):** роль заявлена как гибридная в Москве. Кандидат не переезжает и не рассматривает командировки — прояснить с рекрутером в первом контакте.
- **Уровень:** JD просит от 3 лет опыта; у кандидата ~1.5-2 года. Обсуждается в блоке C.
- **SCSS/LESS:** не в CV явно — обозначить как быстро осваиваемую зону, не как готовый навык.
**JD keywords to mirror** *(extracted for ATS + human read)*
Vue.js 3, Composition API, TypeScript, переход на Vue 3, веб-безопасность, сложные интерфейсы, UI/UX, адаптивная вёрстка, Git, рефакторинг
---
*Run `/career-ops cover mts-middle-frontend-vue-garnet` to complete angles, confirm company research, and generate the PDF.*
---
## Sources (WebSearch, Block D)
- [Зарплата Frontend-разработчика в 2026: Junior, Middle, Senior, Lead | СБОРКА](https://sborka.work/knowledge/salaries/frontend-developer-salary)
- [Зарплата Frontend разработчика в 2026 году: детальный разбор React, Vue и Angular](https://enigmai.ru/salary/frontend/frontend-salary-2026/)
- [Профессия Frontend-разработчик | hh.ru](https://career.hh.ru/profession/40)
+158
View File
@@ -0,0 +1,158 @@
# Оценка: МТС — Senior Frontend (ON Медиа)
**Дата:** 2026-07-06
**URL:** https://job.mts.ru/vacancy/678181160223770637
**Архетип:** Frontend-разработчик (Angular) — не совпадает с основным архетипом кандидата (Vue.js)
**Балл:** 1.7/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (JD) | Frontend-разработчик, Angular-стек |
| Ближайший архетип кандидата | Frontend Developer (Vue.js) — primary в `config/profile.yml`, но технологический стек не совпадает |
| Domain | Frontend внутренней системы управления медиа-инвентарём (АО МТС Веб Сервисы) |
| Function | Build + стабильность продакшена (баги, алерты, логи, мониторинг) + автотесты |
| Seniority (JD) | Senior, заявленный опыт 3-6 лет **именно с Angular** |
| Seniority (кандидат) | ~1 год 8 месяцев коммерческого frontend-опыта (с ноября 2024, «Здравсервис»); опыт с Angular — 0 |
| Формат работы | **Неоднозначно.** JD показывает только «Москва · Полный день» — без пометки «Гибридный» / «Удалённая работа», в отличие от сестринской вакансии МТС (014), где формат указан явно. Это, вероятно, сигнал офисного/гибридного формата, но однозначного подтверждения в тексте JD нет — требует уточнения у рекрутёра до отклика. |
| Размер команды | Не указано |
| Оформление | Не указано (юрлицо: АО МТС Веб Сервисы) |
| TL;DR | Senior Angular-роль в крупной телеком-компании; кандидат — Vue 3/Flutter-разработчик без коммерческого опыта Angular, формат работы не подтверждён как удалённый — комбинация стекового разрыва и вероятного офисного формата в Москве делает эту вакансию низкоприоритетной. |
**Замечание по локации (по правилу из `modes/_profile.md`):** кандидат живёт в Туле, релокация и командировки исключены. Удалённая работа оценивается нормально, гибрид/офис в Туле — нормально, но гибрид/офис/on-site вне Тулы без удалённой опции — жёсткий блокер (балл 1.0 по этому измерению). Так как JD не подтверждает удалёнку явно (в отличие от вакансии 014, где хотя бы указан «Гибкий график»), при консервативной интерпретации это выглядит как офисная/гибридная роль в Москве → правило применяется.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| TypeScript, JavaScript ES6+, HTML5, CSS3 | ✅ «Языки программирования: JavaScript, TypeScript, HTML5/CSS3, Dart» |
| Angular 15+ (архитектура, компоненты, директивы, DI, роутинг, формы) | ❌ Нет. В CV — только Vue 3 (Composition API) и Vue 2 «базово». Коммерческого опыта Angular нет вообще. |
| RxJS, signals/computed/effect | ❌ Нет прямого опыта. Концептуально близко к реактивности Vue (`ref`/`computed`/`watch`), но это не считается эквивалентным опытом. |
| REST API, WebSockets | ✅ «Внедрила WebSocket для оповещений в реальном времени» (РМК) — сильное совпадение, только протокол работает в другом фреймворке. |
| Автотесты Playwright | ✅ Прямое совпадение: «Внедрила Playwright E2E-тесты (сейчас на этапе внедрения)» на проекте РМК. |
| SOLID, DRY, KISS, компонентный подход | ⚠️ Не сформулировано явно в CV, но компонентная архитектура ЕКОМ и RBAC-дизайн демонстрируют похожее мышление. |
| Nx Monorepo | ❌ Нет опыта. |
| Оптимизация производительности (bundle size, lazy rendering) | ⚠️ Частично: постраничная загрузка в «Избранное» («Здесь Аптека») — концептуально похожая задача (lazy loading данных), но не bundle-level оптимизация. |
| Micro Frontends (Module Federation, Webpack 5) | ❌ Нет опыта. |
| SCSS/SASS, Flexbox, Grid | ⚠️ Частично: CV называет Tailwind CSS, а не SCSS/SASS напрямую; adaptивная вёрстка — да, но другой CSS-подход. |
| Figma, реализация по макетам | ⚠️ Косвенно: «самостоятельное проектирование интерфейсов и редизайн ... отрисовка app-иконок» — опыт UI-работы есть, но не подтверждена работа именно с Figma-макетами дизайнера. |
| Angular Material / UI-библиотеки | ❌ Нет — использует shadcn/shadcn-vue, Tailwind (экосистема Vue). |
**Пробелы:**
1. **Angular как основной стек — hard blocker.** Это не «nice-to-have», а сердце роли (архитектура, жизненный цикл, DI, RxJS/signals). Смежный опыт (Vue reactivity) не закрывает этот пробел для Senior-позиции.
2. **Nx/Module Federation/Micro Frontends** — nice-to-have, но накладываются на уже критичный пробел по Angular.
3. **Стратегия закрытия:** единственный честный аргумент — доказанная способность быстро осваивать новый стек (Flutter/BLoC с нуля за короткий курс, затем продакшн-приложения; порт Android→iOS). Это снижает риск для нанимающей стороны, но не заменяет требуемый коммерческий опыт Angular 3-6 лет.
4. Портфолио-проекта на Angular нет и создавать его специально под одну вакансию — не оправдано с учётом уровня рассинхрона.
## C) Уровень и стратегия
1. **Уровень в JD:** Senior, 3-6 лет опыта с указанным стеком. **Естественный уровень кандидата:** Middle по архетипу Vue.js/Flutter (см. `config/profile.yml`), и это не переносится на Angular — там уровень фактически «стажёр/самообучение».
2. **План «продать senior без обмана»:** в этом случае — не применим честно. Нельзя убедительно продать Angular-senior компетенцию без реального коммерческого опыта. Единственный правдивый ход — предложить себя как «быстро обучаемого frontend-инженера с сильным TypeScript/тестированием фундаментом», но явно обозначить отсутствие Angular и спросить про период адаптации/менторство.
3. **План «если понизят уровень»:** не актуален — проблема не в занижении уровня, а в отсутствии стекового соответствия в принципе.
**Рекомендация:** не позиционировать кандидата как senior Angular-разработчика. Если кандидат всё же хочет откликнуться, это стоит делать только как осознанный long-shot / нетворкинг-заход, а не как приоритетную заявку.
## D) Компенсация и спрос
| Показатель | Значение | Источник |
|---|---|---|
| Медиана Senior Frontend, Москва (все стеки) | 287 500 ₽/мес (февраль 2026) | [hh.ru career profession page](https://career.hh.ru/profession/40) |
| Диапазон Senior Frontend, Москва | 300 000 – 450 000 ₽/мес | [Зарплата Frontend-разработчика в 2026: Junior, Middle, Senior, Lead](https://sborka.work/knowledge/salaries/frontend-developer-salary) |
| Angular vs React (относительно) | Angular-специалисты в среднем получают на 15-18% меньше React-разработчиков (данные Habr Career) | см. агрегированные обзоры зарплат frontend 2026 |
| Указано в JD | «Оклад + годовой бонус» — конкретная цифра не раскрыта | jds/mts-senior-frontend-on-media.md |
| Gross/Net | В JD явно не указано; по умолчанию для корпоративных вакансий РФ предполагается gross. `net ≈ gross × 0.87` | modes/ru/_shared.md |
Даже с учётом скидки Angular vs React (~15-18%), нижняя граница рыночного диапазона для Senior Frontend в Москве (~300 000 ₽ gross ≈ 261 000 ₽ net) значительно превышает цель кандидата (100 000–120 000+ ₽/мес на руки). **Компенсация сама по себе не была бы блокером** — проблема исключительно в стеке и, вероятно, в формате работы.
## E) План персонализации
Балл ниже порога 3.0 — PDF не генерируется. Тем не менее, если кандидат решит откликнуться как long-shot:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Явно обозначить «быстро осваиваю новые фреймворки» с примером Flutter с нуля | Компенсирует отсутствие Angular честной демонстрацией скорости обучения |
| 2 | Навыки | Vue 3, Composition API на первом месте | Поднять TypeScript, тестирование (Vitest/Playwright), WebSocket выше | Это реально пересекающиеся с JD компетенции |
| 3 | Опыт (РМК) | Стандартное описание | Выделить Playwright E2E и WebSocket-оповещения отдельными буллетами | Прямое совпадение с задачами JD («автотесты», «алерты, логи, мониторинг») |
| 4 | Cопроводительное письмо | — | Прямо обозначить отсутствие Angular и предложить план адаптации | Честность снижает риск отказа на этапе скрининга резюме |
| 5 | LinkedIn/hh.ru заголовок | «Frontend-разработчик (Vue 3, Flutter)» | Не менять под Angular искусственно | Изменение заголовка под несуществующий опыт — манипуляция, а не позиционирование |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Автотесты (Playwright) | Внедрение E2E-тестов на РМК | Legacy-проект кассы без тестового покрытия | Снизить риск регрессий при релизах | Внедрила Playwright E2E-тесты | Тестирование на этапе внедрения, часть багов теперь ловится до продакшена | В следующий раз начала бы с тестов для самых критичных сценариев (авторизация, оплата), а не по порядку модулей |
| 2 | Алерты, логи, мониторинг, стабильность | WebSocket-оповещения в реальном времени (РМК) | Не было видимости, сколько аптек онлайн | Дать логистике и поддержке видимость статуса в реальном времени | Внедрила WebSocket (WSS), интерфейс с track «кто и когда прочитал» | Около половины аптек читают оповещение в первые минуты | Стоило сразу спроектировать метрики доставки/задержки, а не добавлять их постфактум |
| 3 | Быстрое освоение нового стека (проекция на Angular) | Переход в Flutter с нуля и релиз в App Store | Нужно было закрыть mobile-направление, специалиста не было | Пройти курс, освоить Flutter/BLoC, довести приложение до релиза | Собрала iOS-сборки, отправила в App Store, спроектировала иконки | Два приложения адаптированы под iOS, ранее не поддерживавшийся платформой | Заранее заложила бы больше времени на review Apple, т.к. процесс проверки занял больше, чем ожидала |
| 4 | Компонентный подход / SOLID (косвенно) | Проектирование RBAC-модели в ЕКОМ | Нужно разграничить доступ между отделами | Спроектировала ролевую модель, объяснила бэкенд-команде | Модель внедрена, отделы видят только свои данные | Использовала образование по ИБ как нестандартный для frontend угол | Задокументировала бы модель заранее, чтобы не объяснять её бэкенду устно каждый раз |
| 5 | UI по макетам (Figma, косвенно) | Редизайн кнопки «Избранное» и блока информации о заказе | В компании нет дизайнера, есть проблема удобства UI | Самостоятельно спроектировала и внедрила редизайн | Кнопка стала крупнее и удобнее, информация — компактнее | Взяла на себя роль де-факто дизайнера | В будущем стоит формализовать процесс UI-ревью, чтобы решения не принимались в одиночку |
| 6 | Стабильность релизов (баги, "500-ки" — проекция) | Feature Branching + баг с замыканием клавиатуры (РМК) | Нестабильные релизы, сложный баг с реактивной переменной в глобальном классе | Диагностировала утечку в биндинге клавиатуры, внедрила Feature Branching | Команда перешла на стабильные еженедельные релизы | Обучила коллегу с 11-летним стажем работе с Git-версионированием | Раньше стоило внедрить формальный код-ревью, а не только Feature Branching |
**Рекомендуемый кейс на интервью:** WebSocket-оповещения (РМК) — напрямую пересекается с задачами JD («стабильность, алерты, мониторинг»।).
**Вопросы-ловушки:**
- *«У вас нет опыта Angular — как планируете закрыть этот пробел?»* → Ответ: честно признать отсутствие, привести пример быстрого освоения Flutter/BLoC с нуля, спросить про период адаптации/менторство в команде.
- *«Почему решили сменить стек с Vue на Angular?»* → Не выдумывать «выбор», честно сказать: это отклик на конкретную открытую позицию, а не смена специализации.
## G) Легитимность вакансии
**Свежесть:** дата публикации не показана в извлечённом JD — нейтральный сигнал (не редкость для корпоративных ATS МТС), не понижает уверенность.
**Качество описания:** высокое — указана конкретная версия фреймворка (Angular 15+), конкретные технические паттерны (signals, computed, effect, Module Federation, Nx), конкретное юрлицо (АО МТС Веб Сервисы), реалистичный и подробный список требований и бенефитов (ДМС со стоматологией, страхование жизни, корпоративное обучение). Низкий процент «воды» в тексте.
**Компания:** МТС — крупный, публично известный телеком/tech-оператор в России; риска фиктивной вакансии практически нет. WebSearch по хайринг-сигналам компании не использовался (бюджет 5 запросов на вакансию распределён на п.D — экономия оправдана отсутствием тревожных сигналов в самом тексте JD).
**Apply control:** активна кнопка «Откликнуться» + встроенная форма.
**Итог:** **Высокая уверенность** — вакансия реальна и активна. Единственная неопределённость касается не легитимности, а формата работы (см. блок A).
---
## Извлечённые ключевые слова
TypeScript, JavaScript ES6+, Angular 15+, RxJS, Signals, Computed, Effect, Dependency Injection, Change Detection OnPush, HTTP-клиент, Lazy Loading, WebSockets, REST API, SOLID/DRY/KISS, Nx Monorepo, Micro Frontends, Module Federation, Webpack 5, SCSS/SASS, Flexbox/Grid, Figma, Angular Material, Playwright автотесты, Bundle size
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover mts-on-media` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Заинтересовало направление разработки внутренней системы управления медиа-инвентарём в АО МТС Веб Сервисы — задача сочетает стабильность продакшена и активное применение автотестов, что близко моему текущему опыту.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и Flutter. С ноября 2024 года веду несколько продуктов одновременно в аптечной сети «Здравсервис» (~1200 аптек), включая разработку фронтенда системы управления заказами и логистикой с нуля.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Внедрила Playwright E2E-тесты** (сейчас на этапе внедрения) на проекте РМК.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые в компании видно, сколько аптек онлайн прямо сейчас; интерфейс показывает, кто и когда прочитал оповещение.
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами, опираясь на профильное ИБ-образование.
- **Прошла профильный курс и перешла в Flutter с нуля**, довела два приложения до релиза в App Store после портирования Android → iOS.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи стабильности/автотестирования актуальны для системы медиа-инвентаря МТС и как вы бы их решали?
**Closing**
Буду рада обсудить детали в удобное для вас время.
---
**Gaps flagged:**
- **Стековое несоответствие (hard):** нет коммерческого опыта Angular — центральное требование роли.
- **Формат работы не подтверждён:** JD не указывает явно удалённую/гибридную работу, в отличие от других вакансий МТС — требует уточнения перед откликом.
- **Уровень:** заявлен Senior (3-6 лет), у кандидата ~1 год 8 месяцев коммерческого опыта.
**JD keywords to mirror** *(extracted for ATS + human read)*
Angular 15+, TypeScript, автотесты Playwright, стабильность системы, мониторинг, REST API, WebSockets, компонентный подход, SOLID/DRY/KISS, оптимизация производительности
---
*Run `/career-ops cover mts-on-media` to complete angles, confirm company research, and generate the PDF.*
@@ -0,0 +1,154 @@
# Оценка: МТС — Senior Frontend разработчик
**Дата:** 2026-07-06
**URL:** https://job.mts.ru/vacancy/548390212791698272
**Архетип:** Frontend-разработчик (Vue.js) — стек совпадает, но локация — жёсткий блокер
**Балл:** 1.6/5
**Legitimacy:** Высокая уверенность
**PDF:** не создан (балл < 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (JD) | Frontend-разработчик; стек на выбор — React.JS, Angular.JS, **Vue.JS**, Node.JS, TS |
| Архетип кандидата | Frontend Developer (Vue.js) — primary, прямое совпадение по стеку |
| Domain | Frontend-разработка (продукт не конкретизирован в тексте JD) |
| Function | Build (новый функционал, дефекты) + code review + участие в архитектуре и API-дизайне |
| Seniority (JD) | Senior, «не менее 3 лет» опыта с выбранным стеком |
| Seniority (кандидат) | ~1 год 8 месяцев коммерческого опыта (с ноября 2024) — ниже заявленного порога |
| Формат работы | **Москва · Гибкий график** — «гибкий график» относится к времени работы (гибкие часы), а не к формату присутствия. Удалённая работа явно не упомянута. |
| Размер команды | Не указано; упоминается «выстраивание процесса разработки распределённых команд» — намёк на удалённо-распределённую структуру, но не гарантия удалённого формата для этой роли |
| Оформление | Не указано (юрлицо: ООО МТС Веб Сервисы) |
| TL;DR | Senior frontend-роль с гибким по стеку требованием (Vue.js в списке) — сильное стековое совпадение с кандидатом, но локация в Москве без подтверждённой удалёнки тянет балл к минимуму по жёсткому правилу локации. |
**Локация — решающий фактор.** По правилу из `modes/_profile.md`: гибрид/офис/on-site вне Тулы без опции удалённой работы = балл **1.0** по этому измерению (жёсткое ограничение, не предпочтение). JD указывает «Москва» без пометки «удалённо»/«гибрид» — «Гибкий график» описывает часы, не место. При консервативной и honest интерпретации это на сегодня выглядит как офисная/гибридная роль в Москве, что требует переезда или регулярных поездок кандидата из Тулы — недопустимо по её условиям (переезд — нет, командировки — нет).
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| JavaScript, HTML5, CSS3 | ✅ Прямое совпадение |
| Опыт от 3 лет на выбор: React/Angular/**Vue.JS**/Node/TS | ⚠️ Стек (Vue.JS + TS) совпадает полностью, но общий стаж (~1 год 8 месяцев) не дотягивает до заявленных «не менее 3 лет» |
| Реализация компонентов UI и логики взаимодействия | ✅ «Здесь ЕКОМ» — frontend с нуля на Vue 3, Composition API, Pinia, Vue Router |
| Разработка нового функционала + модификация существующего | ✅ ЕКОМ (новая система) и РМК (legacy-проект) — оба типа задач представлены |
| Исправление дефектов | ✅ «Исправила порядка 20 багов» (РМК), «более 20 багов» (Здесь Аптека) |
| Код-ревью | ⚠️ Не упомянуто явно в CV как формальная практика — вероятный пробел или недостаточно задокументированный опыт |
| Ревью макетов в Figma | ⚠️ Косвенно — есть опыт самостоятельного UI-дизайна («редизайн кнопки Избранное», «app-иконки»), но не подтверждена работа именно как ревьюер чужих Figma-макетов |
| Декомпозиция задач и архитектурные решения в команде | ✅ Спроектировала RBAC-модель и объяснила её бэкенд-команде; участвует в планировании спринтов и анализе бэклога |
| Обсуждение и проектирование API | ⚠️ Косвенно — обсуждала с бэкенд-разработчиком постраничную загрузку и WebSocket-протокол, но формального «API design» опыта в CV не выделено отдельно |
**Пробелы:**
1. **Стаж (3+ года vs ~1 год 8 месяцев)** — это soft-blocker: реальный опыт качественный (RBAC design, продукт с нуля, менторство коллеги с 11-летним стажем), но количественно ниже порога. Стратегия: подчеркнуть плотность и разнообразие опыта (3 продукта одновременно, менторство, архитектурные решения) как компенсацию за меньший общий стаж.
2. **Формальное код-ревью** — nice-to-have, закрывается фразой в сопроводительном письме о ревью PR коллег в рамках Feature Branching workflow.
3. **API design** — можно закрыть, сославшись на обсуждение WebSocket-протокола и структуры данных для RBAC с бэкенд-командой.
## C) Уровень и стратегия
1. **Уровень в JD:** Senior, от 3 лет опыта. **Естественный уровень кандидата:** Middle (по `config/profile.yml`, растущий — расширение до архитектурных задач и менторства).
2. **План «продать senior без обмана»:** акцент на широту ответственности, а не на годы — ведёт 3 продукта параллельно, самостоятельно спроектировала RBAC и объяснила её более опытной команде, обучила коллегу с 11-летним стажем работе с Git. Это поведенческие маркеры senior, но при 1 год 8 месяцев общего стажа компания, скорее всего, всё равно оценит как Middle/Middle+.
3. **План «если понизят уровень»:** принять как Middle+ при справедливой компенсации, договориться о пересмотре через 6 месяцев на основе конкретных критериев (взятие на себя ревью, самостоятельное ведение фичи end-to-end).
**Но:** даже при отличном стековом совпадении этот пункт вторичен — локационный блокер (см. блок A) остаётся определяющим для итогового балла.
## D) Компенсация и спрос
| Показатель | Значение | Источник |
|---|---|---|
| Senior Vue-разработчик, Москва | 480 000 – 650 000 ₽/мес | результаты поиска по hh.ru-статистике зарплат 2026 |
| Медиана Senior Frontend, Москва (все стеки) | 287 500 ₽/мес (февраль 2026) | [hh.ru career profession page](https://career.hh.ru/profession/40) |
| Диапазон Senior Frontend, Москва (по стеку) | 300 000 – 450 000 ₽/мес | [Зарплата Frontend-разработчика 2026: Junior, Middle, Senior, Lead](https://sborka.work/knowledge/salaries/frontend-developer-salary) |
| Указано в JD | Конкретная цифра не раскрыта — только описание бенефитов (ДМС, страхование, отпуск 28+3 дня) | jds/mts-senior-frontend-razrabotchik.md |
| Gross/Net | Не указано явно; предполагается gross. `net ≈ gross × 0.87` | modes/ru/_shared.md |
Учитывая вероятное понижение уровня до Middle/Middle+ (см. блок C), реалистичная компенсация, скорее всего, ближе к медиане Middle (200 000–270 000 ₽ gross ≈ 174 000–235 000 ₽ net), что **всё ещё комфортно выше** цели кандидата (100 000–120 000+ ₽/мес на руки). Компенсация не является проблемой — проблема исключительно в локации.
## E) План персонализации
Балл ниже порога 3.0 — PDF не генерируется. Основной блокер (локация) не решается изменениями резюме. Если формат работы будет подтверждён как удалённый — переоценить с нуля, так как стек совпадает отлично:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Общий фокус на Vue3+Flutter | Выделить Vue 3 + TypeScript + Pinia как основной стек, Flutter — вторично | JD явно перечисляет Vue.JS как принимаемый стек |
| 2 | Опыт (ЕКОМ) | Стандартное описание | Поднять RBAC-дизайн и архитектурные решения на первое место | Совпадает с «участие в архитектурных решениях» и «декомпозиция задач» |
| 3 | Soft skills | В конце резюме | Вынести менторство (обучение коллеги Git) и участие в планировании в summary | Прямое совпадение с «выстраивание процесса разработки распределённых команд» |
| 4 | Сопроводительное письмо | — | Прямо уточнить формат работы (удалённо/гибрид) до подачи | Критично для honest-фильтрации по локации |
| 5 | Стаж | Не акцентируется | Явно указать «плотность» опыта — 3 параллельных продукта за 1.5 года | Компенсирует количественный разрыв со стажем 3+ года |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Реализация компонентов и логики | Frontend ЕКОМ с нуля (Vue 3, Composition API) | Не было системы управления заказами/логистикой, всё делалось вручную | Разработать frontend с нуля | Построила стек Vue3 + Pinia + TanStack Table + WebSocket | Логистика, поддержка, клиентский отдел и разработчики используют систему ежедневно | Изначально стоило сразу проектировать модель доступа (RBAC), а не добавлять её позже |
| 2 | Декомпозиция и архитектурные решения | Дизайн RBAC-модели | Нужно разграничить доступ между отделами | Спроектировать ролевую модель с нуля | Внедрена и объяснена бэкенд-команде модель ролей | Отделы видят только релевантные им данные | Задокументировала бы модель в едином файле сразу, а не объясняла устно |
| 3 | Код-ревью / процессы команды | Внедрение Feature Branching + менторство | Нестабильные релизы, зависшие фичи | Внедрить Git Flow и обучить команду | Обучила коллегу с 11-летним стажем, переход на стабильные еженедельные релизы | Сократилось количество зависших фич | Стоило формализовать чек-лист код-ревью с самого начала |
| 4 | Обсуждение и проектирование API | WebSocket-протокол оповещений (РМК) | Нужны были оповещения в реальном времени без задержек | Спроектировать протокол вместе с бэкендом | Внедрила WebSocket (WSS), статус прочтения оповещений | Половина аптек читает оповещения в первые минуты | В следующий раз заложила бы fallback на случай обрыва соединения на этапе дизайна, а не постфактум |
| 5 | Работа с фильтрацией/производительностью | Список заказов с фильтрацией по 9 параметрам | Логисты и поддержка не могли отслеживать проблемные заказы в неудобных таблицах 1С | Спроектировать интерфейс с множественной фильтрацией | Заменил таблицы 1С, используется 4 отделами | Стал стандартным инструментом для нескольких команд | Добавила бы сохранение пользовательских фильтров сразу, а не по отдельному запросу позже |
| 6 | Проактивность в планировании (аналог "распределённые команды") | Поднятие вопроса приоритизации бэклога | Приоритеты забывались/терялись при планировании | Явно указала руководству на проблему | Команда вернулась к целям на полгода/год, кандидат включена в спринт-планирование | Стала регулярным участником стратегического планирования | Раньше начала бы формально документировать цели спринтов |
**Рекомендуемый кейс на интервью:** «Здесь ЕКОМ» целиком (RBAC + WebSocket + фильтрация) — прямое покрытие большинства требований JD.
**Вопросы-ловушки:**
- *«Ваш общий стаж меньше 3 лет — почему претендуете на Senior-роль?»* → Ответ: акцент на плотности и широте ответственности (3 продукта, менторство, архитектурные решения), готовность обсудить реальный грейд по итогам технического интервью.
- *«Расскажите про удалённый формат работы для этой позиции»* → Уточняющий вопрос **кандидата** к рекрутёру в начале разговора — must-ask, так как JD не подтверждает формат.
## G) Легитимность вакансии
**Свежесть:** дата публикации не показана — нейтрально, типично для ATS МТС.
**Качество описания:** высокое — конкретный список технологий на выбор (не общая формулировка «фронтенд разработчик»), реалистичные и разнообразные обязанности (код-ревью, декомпозиция, API-дизайн), подробные бенефиты с конкретными деталями (MTS Ocean платформа, участие в HighLoad++/DataFest/Mobius/Test Driven Conf, отпуск 28+3 дня). Минимум шаблонного «воды».
**Компания:** ООО МТС Веб Сервисы — та же экосистема, что и вакансия 013; крупный, публично известный оператор. Отдельный WebSearch по хайринг-сигналам не потребовался — бюджет сохранён, так как ничего в тексте не вызывает сомнений.
**Apply control:** активна кнопка «Откликнуться» + встроенная форма.
**Итог:** **Высокая уверенность.**
---
## Извлечённые ключевые слова
JavaScript, HTML5, CSS3, Vue.JS, React.JS, Angular.JS, Node.JS, TypeScript, архитектура, распределённые команды, код-ревью, Figma, декомпозиция задач, проектирование API, веб-сервер, Git, компоненты интерфейса, логика взаимодействия, новый функционал, исправление дефектов
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover mts-frontend-razrabotchik` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Заинтересовала возможность применить опыт разработки на Vue 3 в масштабе крупной продуктовой компании — особенно задачи, связанные с архитектурными решениями и проектированием API в команде.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia). С ноября 2024 года разработала с нуля фронтенд внутренней системы управления заказами и логистикой для сети из ~1200 аптек, параллельно ведя ещё два продукта.
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами, объяснила принцип бэкенд-команде.
- **Внедрила Feature Branching в Git (GitLab)**, обучила коллегу с 11-летним стажем — команда перешла на стабильные еженедельные релизы.
- **Интерфейс списка заказов с фильтрацией по 9 параметрам** — заменил неудобные таблицы 1С, используется логистикой, клиентским отделом, техподдержкой и разработчиками.
- **Внедрила WebSocket для оповещений в реальном времени** — впервые видно, сколько аптек онлайн, кто и когда прочитал оповещение.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие архитектурные или продуктовые задачи актуальны для этой команды в МТС и как вы бы их решали?
**Closing**
Буду рада обсудить детали в удобное для вас время.
---
**Gaps flagged:**
- **Локация (hard):** формат работы указан только как «Москва», удалённая работа не подтверждена — требует уточнения перед откликом; кандидат не рассматривает переезд/командировки.
- **Стаж:** заявлено «не менее 3 лет», у кандидата ~1 год 8 месяцев — компенсируется широтой ответственности.
- **Код-ревью и API-дизайн:** не выделены явно в CV как отдельная практика — упомянуть в письме через смежный опыт.
**JD keywords to mirror** *(extracted for ATS + human read)*
Vue.JS, TypeScript, архитектура приложения, распределённые команды, код-ревью, декомпозиция задач, проектирование API, компоненты интерфейса, Figma, Git
---
*Run `/career-ops cover mts-frontend-razrabotchik` to complete angles, confirm company research, and generate the PDF.*
+161
View File
@@ -0,0 +1,161 @@
# Оценка: Kaspersky — JavaScript Developer (KES)
**Дата:** 2026-07-06
**URL:** https://careers.kaspersky.ru/vacancy/25684
**Архетип:** Frontend/Fullstack-разработчик (React + Node.js + TS) — ближайшие: Frontend Developer (Vue.js, primary) и Fullstack (Vue+Node, adjacent)
**Балл:** 3.2/5
**Legitimacy:** Высокая уверенность
**PDF:** output/cv-romanova-valeriya-kaspersky-kes-2026-07-06.pdf
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (JD) | Frontend/Fullstack JS-разработчик: React, Node.js, TypeScript |
| Ближайший архетип кандидата | Frontend Developer (Vue.js) — primary; Fullstack (Vue+Node) — adjacent. Основной стек JD (React) не совпадает напрямую, но общая ось (компонентный JS-фреймворк + Node.js) — совпадает |
| Domain | Enterprise — системы управления компонентами защиты Kaspersky Endpoint Security (KES) |
| Function | Build (комплексный веб-интерфейс, backend+frontend), тесное межкомандное взаимодействие, CI/CD, тестирование |
| Seniority (JD) | Не указана явно в заголовке (нет пометки Senior/Middle), но требования подразумевают уверенный uровень: «масштабные enterprise решения», «флагманский корпоративный продукт» |
| Seniority (кандидат) | ~1 год 8 месяцев коммерческого опыта (с ноября 2024) — ниже «enterprise flagship» уровня, но заголовок роли не завышает ожидания искусственно (в отличие от вакансий МТС, где стоит «Senior») |
| Формат работы | **Россия · Москва · Вся Россия** — удалённая работа по всей России явно поддерживается. Упомянутая «Программа релокации в HQ для кандидатов из регионов» — **опциональна**, не является требованием. |
| Размер команды | Не указано; «тесное межкомандное взаимодействие» |
| Оформление | Не указано |
| TL;DR | Enterprise JS-роль (React/Node/TS) с подтверждённой удалённой работой по всей России — локация не блокирует, но стек (React вместо Vue, более глубокий Node.js) создаёт умеренный, не критичный разрыв. |
**Локация — сильная сторона этой вакансии.** В отличие от обеих вакансий МТС, здесь явно заявлено «Вся Россия» — удалённая работа по правилу из `modes/_profile.md` оценивается нормально. Программа релокации в головной офис — это предложение для желающих, а не условие трудоустройства, поэтому жёсткое правило локации **не применяется**.
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Опыт с масштабными enterprise-решениями | ⚠️ Частично: «Здравсервис» обслуживает ~1200 аптек по всей России — реальный масштаб, но не международный enterprise-продукт уровня Kaspersky |
| React + Node.js | ❌/⚠️ React — нет опыта (только Vue 3/Vue 2). Node.js — «ознакомительный уровень» в CV, но есть практический опыт: хакатон (Express, Node.js, MongoDB) и учебный проект ТулГУ (серверная часть на Node.js) |
| JS ES6+ / TypeScript | ✅ Сильное совпадение: «Языки программирования: JavaScript, TypeScript» |
| Git | ✅ «Git, GitLab, CI/CD (рабочий опыт)», внедрила Feature Branching |
| Системы сборки (webpack/vite, gulp/grunt) | ⚠️ Частично: опыт с Vite подтверждён, Webpack явно не упомянут |
| Работа в команде, межкомандное взаимодействие | ✅ «Кросс-командное взаимодействие (логистика, бэкенд, техподдержка, отдел работы с клиентами)» |
| Английский для документации | ✅ «Английский — B1» — соответствует формулировке JD («для чтения документации и технической литературы») |
| CSS-modules / styled components (плюс) | ⚠️ Не указано explicit, но опыт с Tailwind CSS и компонентными UI-библиотеками (shadcn) демонстрирует смежный подход к стилизации компонентов |
| Unit-тесты (Jasmine/Jest) (плюс) | ✅ Аналог — «Vitest (unit-тесты Vue-компонентов)» — прямой концептуальный эквивалент |
| Функциональное программирование (плюс) | ⚠️ Не подтверждено явно в CV |
| Профиль GitHub с примерами кода (плюс) | ❌ Отсутствует (`config/profile.yml`: github не заполнен) — честно не упоминать в откликах, пока не появится |
| Оформленные npm-пакеты (плюс) | ❌ Нет |
| Интеграция с C++/C#/Java (плюс) | ❌ Нет |
**Пробелы:**
1. **React vs Vue (значимый, но не hard blocker).** Оба — компонентные декларативные фреймворки; концепции (state, props, lifecycle, hooks vs Composition API) переносятся, но синтаксис и экосистема разные. Стратегия закрытия: явно обозначить в сопроводительном письме, что архитектурные принципы (компонентный подход, реактивное состояние, разделение backend/frontend) переносимы, и опыт быстрого освоения нового стека (Flutter с нуля) — доказательство скорости адаптации.
2. **Глубина Node.js (soft).** В CV — «ознакомительный уровень», JD хочет полноценную backend+frontend реализацию. Смягчается реальным (хоть и небольшим) опытом Express/MongoDB на хакатоне и учебном проекте ТулГУ — стоит явно упомянуть оба, а не полагаться только на «ознакомительный уровень» из общего раздела навыков.
3. **Enterprise-масштаб.** Здравсервис — не международный продукт, но реальный масштаб (1200 точек, несколько отделов-пользователей) — использовать как ближайший proof point, честно не завышая до уровня Kaspersky.
4. **GitHub-портфолио отсутствует** — плюс-требование JD, которое сейчас закрыть нечем; не выдумывать, оставить как явный пробел.
## C) Уровень и стратегия
1. **Уровень в JD:** не завышен явно (нет «Senior» в заголовке), но контекст («флагманский продукт», «enterprise решения») подразумевает уверенного Middle+/Senior кандидата. **Естественный уровень кандидата:** Middle, растущий, ~1 год 8 месяцев коммерческого опыта.
2. **План «продать senior без обмана»:** акцент на плотности ответственности (3 продукта параллельно, RBAC-архитектура, менторство), а не на годах стажа; явно обозначить смежность React/Vue и Node.js-практику из проектов, а не только из основной работы.
3. **План «если понизят уровень»:** принять грейд по итогам технического интервью (вероятно, Middle), договориться о пересмотре через 6 месяцев на основе конкретных React/Node-задач, выполненных за это время.
## D) Компенсация и спрос
| Показатель | Значение | Источник |
|---|---|---|
| JS/React/Node.js стек, Middle-уровень (по России) | 170 000 – 190 000 ₽/мес | результаты поиска по getmatch.ru / getgrade.ru зарплатным обзорам 2026 |
| Junior fullstack (JS-стек), Россия | 121 900 – 152 500 ₽/мес | результаты поиска (обзор зарплат fullstack-разработчиков) |
| React vs Vue (относительно) | React-разработчики получают в среднем на 8-12% больше Vue-специалистов | агрегированные обзоры зарплат frontend 2026 |
| Удалённая работа vs офис | Удалёнка почти не уступает офису по уровню оплаты; компании из Москвы всё чаще нанимают из регионов с оплатой на 10-20% ниже московской, но на 30-50% выше локального рынка | результаты поиска (обзор рынка удалённой работы 2026) |
| Указано в JD | Конкретная цифра не раскрыта; перечислены бенефиты (ДМС+страхование жизни с 1 месяца, доплата на питание, оплата мобильной связи) | jds/kaspersky-javascript-developer-kes.md |
| Gross/Net | Не указано явно; предполагается gross. `net ≈ gross × 0.87` | modes/ru/_shared.md |
Даже нижняя граница диапазона (121 900 ₽ gross ≈ 106 000 ₽ net, junior fullstack) уже примерно соответствует минимальной цели кандидата (100 000 ₽/мес на руки), а реалистичный Middle-уровень (170 000-190 000 ₽ gross ≈ 148 000-165 000 ₽ net) комфортно превышает целевой диапазон 100 000–120 000+ ₽/мес на руки. **Компенсация — сильная сторона этой вакансии.**
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Добавить формулировку о переносимости компонентного/реактивного мышления на React, упомянуть Node.js/Express практику из проектов | JD ищет React+Node, а не конкретно Vue |
| 2 | Опыт | Node.js — только в общем разделе навыков | Явно вынести хакатон-проект (Express, Node.js, MongoDB) и проект ТулГУ (серверная часть на Node.js) как отдельные пункты | Закрывает пробел «ознакомительный уровень» конкретными примерами |
| 3 | Тестирование | Vitest упомянут вскользь | Явно провести параллель «Vitest (unit-тесты) — аналог Jest/Jasmine» | JD прямо называет Jasmine/Jest как плюс |
| 4 | CI/CD | Общее упоминание Git/GitLab CI/CD | Подчеркнуть конкретный опыт (Feature Branching, стабильные релизы) | Совпадает с «работа с инструментами CI/CD» |
| 5 | Портфолио | GitHub не заполнен | НЕ добавлять фиктивную ссылку; явно не упоминать раздел вместо пустой ссылки | JD называет GitHub плюсом, но `modes/_profile.md` запрещает фабрикацию портфолио — честность важнее |
**Топ-5 изменений для LinkedIn/hh.ru:** синхронизировать заголовок с «Frontend/Fullstack-разработчик (JS, TypeScript)» вместо узкого «Vue.js Developer», добавить Node.js/Express в ключевые навыки на первый план, указать проекты с MongoDB/Express явно, отметить B1 английский, убрать акцент на Flutter/mobile (нерелевантно для этой роли).
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | React vs Vue — перенос компонентного мышления | Быстрое освоение Flutter/BLoC с нуля | Нужно было закрыть mobile-направление без готового специалиста | Пройти курс, освоить новый фреймворк, довести до продакшена | Два приложения адаптированы под iOS, отправлены в App Store | Доказанная способность быстро войти в новый стек | Заложила бы больше времени на review в App Store заранее |
| 2 | Node.js / backend-интеграция | Хакатон-проект «Книга рецептов» (Express, Node.js, MongoDB) | Нужно было построить полнофункциональное веб-приложение за ограниченное время хакатона | Реализовала backend на Express/MongoDB + Vue 3/Ionic frontend | Рабочий прототип с личным кабинетом и подсчётом калорий | Первый самостоятельный fullstack-опыт вне основной работы | В следующий раз заложила бы больше времени на тестирование API перед деплоем |
| 3 | Тестирование, качество кода | Внедрение Vitest unit-тестов для Vue-компонентов | Не было систематического покрытия тестами компонентов ЕКОМ | Внедрила Vitest + Storybook в пайплайн разработки | Компоненты покрыты позитивными и негативными сценариями | Тестирование стало частью процесса, а не разовой задачей | Стоило внедрить тесты с самого начала проекта, а не по ходу разработки |
| 4 | Межкомандное взаимодействие (enterprise-контекст) | Разработка RBAC-модели совместно с бэкенд-командой | Нужно было разграничить доступ между несколькими отделами | Спроектировала модель, объяснила и согласовала с бэкендом | Модель внедрена, отделы видят только релевантные данные | Образование по ИБ дало нестандартный для frontend взгляд | Задокументировала бы модель формально с самого начала |
| 5 | CI/CD, стабильность релизов | Внедрение Feature Branching в GitLab | Нестабильные релизы, зависшие фичи, отсутствие версионирования | Внедрила Git Flow, обучила коллегу с 11-летним стажем | Команда перешла на стабильные еженедельные релизы | Процессное улучшение, а не только код | Раньше внедрила бы автоматизированные пайплайны, а не только процесс ветвления |
| 6 | Масштаб и реальные ограничения enterprise-системы | Список заказов с фильтрацией по 9 параметрам для ~1200 аптек | Логисты и поддержка не могли отслеживать проблемные заказы в 1С | Спроектировала интерфейс с множественной фильтрацией | Инструмент используют 4 отдела ежедневно | Опыт работы с реальным масштабом (не toy-проект) | Добавила бы аналитику использования фильтров с самого начала для приоритизации |
**Рекомендуемый кейс на интервью:** хакатон-проект (Express/Node/MongoDB + Vue/Ionic) — единственный fullstack-кейс с реальным backend, наиболее прямое попадание в «backend и frontend технологии» JD, дополненный RBAC-историей для демонстрации enterprise-мышления.
**Вопросы-ловушки:**
- *«У вас нет опыта React — почему претендуете на эту роль?»* → Ответ: перенос компонентного/реактивного мышления с Vue, пример быстрого освоения Flutter с нуля как доказательство скорости адаптации, готовность к тестовому заданию на React.
- *«Расскажите про ваш опыт с Node.js на бэкенде»* → Явно назвать хакатон и учебный проект ТулГУ, не преувеличивая уровень («ознакомительный», но реальный практический опыт есть).
## G) Легитимность вакансии
**Свежесть:** дата публикации не показана в извлечённом JD — нейтральный сигнал.
**Качество описания:** высокое — конкретный стек (React, Node.js, TypeScript, собственная компонентная библиотека), конкретный продукт (Kaspersky Endpoint Security), реалистичный список требований с чётким разделением «обязательно»/«плюсом», подробные и правдоподобные бенефиты (спортзалы и сауна в офисе, свой ресторан — специфично для конкретного офиса, не шаблонно). Низкий процент «воды».
**CAPTCHA на странице вакансии** — не является сигналом нелегитимности; это стандартная антибот-защита на собственном портале careers.kaspersky.ru (Kaspersky — компания по кибербезопасности, ожидаемо усиленная защита от скрапинга). Не повлияло на извлечение содержимого.
**Компания:** Kaspersky — крупная, всемирно известная компания по кибербезопасности; риск фиктивной вакансии минимален. Отдельный WebSearch по хайринг-сигналам не потребовался — бюджет распределён на п. D (рыночные данные по компенсации), так как в тексте JD нет тревожных сигналов.
**Apply control:** активна кнопка «Откликнуться на вакансию» + встроенная форма.
**Итог:** **Высокая уверенность.**
---
## Извлечённые ключевые слова
JavaScript, React, Node.js, TypeScript, ES6+, enterprise-решения, компонентная библиотека, веб-интерфейс, межкомандное взаимодействие, CI/CD, оптимизация кода, тестирование, git, webpack, vite, css-modules, styled components, unit-тесты, Jasmine, Jest, функциональное программирование, английский язык
---
## Cover Letter Draft
> Draft generated at evaluation time. Complete via `/career-ops cover kaspersky-kes` to fill in angles, confirm research, and generate the PDF.
> Gaps flagged below — address them during the cover flow.
---
**Opening** *(placeholder — refine with your "why this role" angle)*
Заинтересовала возможность работать над новым поколением флагманского продукта Kaspersky Endpoint Security — особенно сочетание frontend- и backend-задач в комплексном веб-интерфейсе.
**Profile introduction**
Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia) и практическим опытом Node.js/Express (хакатон, учебный проект). С ноября 2024 года разработала с нуля фронтенд внутренней enterprise-системы для сети из ~1200 аптек, включая проектирование модели авторизации (RBAC).
**Key achievements** *(selected from cv.md — exact wording preserved)*
- **Спроектировала ролевую модель авторизации (RBAC)** с разграничением между отделами, опираясь на профильное ИБ-образование.
- **Внедрила Vitest (unit-тесты Vue-компонентов)** и Storybook в процесс разработки.
- Реализовала fullstack-прототип на хакатоне: **Vue 3, Ionic Capacitor, Express, Node.js, MongoDB**.
- **Внедрила Feature Branching в Git (GitLab)**, обучила коллегу с 11-летним стажем — переход на стабильные еженедельные релизы.
**Problems I will solve** *(placeholder — requires company research + your input)*
> To be completed: какие задачи развития компонентной библиотеки или интеграции backend/frontend актуальны для команды KES и как вы бы их решали?
**Closing**
Буду рада обсудить детали в удобное для вас время.
---
**Gaps flagged:**
- **React vs Vue:** нет коммерческого опыта React — смягчается переносимыми компонентными концепциями и историей быстрого освоения новых фреймворков.
- **Глубина Node.js:** уровень в CV обозначен как «ознакомительный» — компенсируется конкретными проектными примерами (хакатон, ТулГУ).
- **GitHub-портфолио:** JD называет плюсом, у кандидата не заполнено — не фабриковать, оставить как честный пробел.
- **Английский:** B1 — соответствует формулировке JD («для чтения документации»), не для устного общения — уточнить формат использования английского в команде.
**JD keywords to mirror** *(extracted for ATS + human read)*
React, Node.js, TypeScript, enterprise, компонентная библиотека, CI/CD, unit-тесты, оптимизация кода, межкомандное взаимодействие, git
---
*Run `/career-ops cover kaspersky-kes` to complete angles, confirm company research, and generate the PDF.*
+85
View File
@@ -0,0 +1,85 @@
# Оценка: ООО "КСК Электронные компоненты" — Разработчик Flutter (Dart)
**Дата:** 2026-07-07
**Архетип:** Mobile Developer (Flutter) — secondary fit
**Балл:** 1.0/5
**URL:** https://trudvsem.ru/vacancy/card/1166952054609/5edb8498-6e36-11f1-a0ef-714ad8f097f6
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Mobile Developer (Flutter) |
| Domain | Enterprise (микросервисная архитектура, электронные компоненты) |
| Function | Build |
| Seniority | Middle (заявлено "от 3 лет опыта") |
| Формат работы | Офис ("Тип рабочего места: Обычное") — **удалёнка не упоминается** |
| Размер команды | Не указан |
| Оформление | Не указано явно (гос. портал, обычно ТК РФ) |
| Локация | г. Санкт-Петербург, Петроградская наб., 34 |
| Зарплата | 120 000 ₽/мес (не указано gross/net) |
**TL;DR:** Офисная позиция Flutter-разработчика в Санкт-Петербурге без упоминания удалёнки — не проходит по вашей жёсткой location-политике (офис только в Туле, переезд/командировки исключены).
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Уверенные знания Flutter | ✅ Flutter, BLoC, Clean Architecture, Service Locator — «Здесь Аптека», «Здесь Сотрудник/Чат» |
| Микросервисная архитектура (новые модули) | ⚠️ Не встречается в CV напрямую — опыт с фронтендом, не с микросервисным бэкендом |
| Код-ревью | ✅ Внедрила Feature Branching, обучала коллегу |
| Server Driven UI | ❌ Не упоминается в CV — пробел |
| CI/CD | ⚠️ "Рабочий опыт" заявлен в скиллах, но без конкретного проекта в CV |
| Linux | ⚠️ Пользовательский уровень заявлен, глубины не показано |
| Высшее техническое образование | ✅ ТулГУ, специалист по защите информации |
**Пробелы:**
1. Server Driven UI — hard requirement судя по формулировке ("опыт и знание работы с..."). Смежного опыта в CV нет.
2. Микросервисная архитектура — nice-to-have для frontend-роли, скорее контекст бэкенда, с которым интегрируется Flutter-клиент.
3. Стратегия закрытия: если бы локация подходила, стоило бы прямо спросить на созвоне про глубину Server Driven UI-требования — часто это формальность в вакансии, а не хард-фильтр на первом этапе.
## C) Уровень и стратегия
**Не применимо содержательно — роль заблокирована location-политикой (см. ниже).** Заявленный уровень (3+ года) выше фактического опыта кандидата (~1.5 года коммерческого Flutter/Vue), что стало бы дополнительным риском даже без локационного блокера.
## D) Компенсация и спрос
120 000 ₽/мес — не указано gross/net; на гос.портале обычно указывают **gross**. net ≈ 120 000 × 0.87 ≈ **104 400 ₽/мес на руки** — на нижней границе целевого диапазона кандидата (100 000–120 000+ ₽/мес на руки), но это не имеет значения при офисной локации в СПб без удалёнки.
## E) План персонализации
Пропущено — балл ниже порога PDF/персонализации (< 3.0).
## F) План собеседований
Пропущено — не рекомендуется к отклику.
---
## Vibe команды
Судя по формулировкам JD, недостаточно данных: нет упоминаний автономии команды, менторства, гибкости или роста — текст ограничен списком обязанностей и требований в стандартном формате гос.портала. Стоит уточнять на собеседовании, если локация всё же станет обсуждаемой.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Обновлено 22.06.2026 (созд. в тот же день), просмотров 11, откликов 1 | Positive |
| Верификация | "Данные вакансии проверены работодателем" | Positive |
| Контакты | Указано контактное лицо (Стукало С.В.), телефон и email | Positive |
| Качество описания | Конкретные обязанности и технологии (Flutter, Dart, Server Driven UI, CI/CD), не шаблонный boilerplate | Positive |
| Внутренние противоречия | Нет | Neutral |
**Context Notes:** Государственный портал "Работа России" — верификация работодателем и наличие прямых контактов снижают риск фиктивной вакансии.
---
## Рекомендация
**Не рекомендуется откликаться.** Жёсткий блокер — офис в Санкт-Петербурге без упоминания удалённой работы, при вашей политике "переезд и командировки не рассматриваю". Балл 1.0/5 отражает именно это ограничение, а не качество вакансии самой по себе — по контенту и легитимности вакансия выглядит вполне реальной.
+158
View File
@@ -0,0 +1,158 @@
# Оценка: АО "ЦФТ" — Frontend-разработчик Vue
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — primary archetype
**Балл:** 2.1/5
**URL:** https://trudvsem.ru/vacancy/card/1025403199689/1b49c818-2f2d-11f1-8701-7ffab189dfea
**Legitimacy:** Proceed with Caution
**PDF:** не сгенерирован (балл < 3.0, порог для авто-PDF)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend Developer (Vue.js) — primary |
| Domain | Frontend / fintech (внутренние и клиентские веб-продукты) |
| Function | Build |
| Seniority (заявлено на других площадках ЦФТ для этой роли) | Middle, 3-6 лет опыта |
| Формат работы | **Не указан явно в вакансии на trudvsem.ru.** WebFetch вернул в основном навигационную обвязку портала (SPA-рендеринг), без salary/description/contact в самой карточке. По косвенным данным о найме ЦФТ на других площадках — типичная практика 5/2, удалённо/гибрид — но это НЕ подтверждено для конкретно этой вакансии |
| Размер команды | Не указано в извлечённом тексте; по внешним данным — подразделение Web Technologies ведёт 50+ веб-проектов (ЦФТ, Золотая Корона, ФСГ, РНКО, Карт Стандарт, Faktura) |
| Оформление | Не указано в извлечённом тексте |
| Локация | Новосибирская область (подтверждено и на trudvsem, и в scan-history.tsv) |
| TL;DR | Frontend Vue-вакансия в крупном новосибирском fintech-холдинге (ЦФТ) с сильным техническим совпадением по стеку, но с нерешённым конфликтом по требуемому стажу (3-6 лет по внешним данным vs ~1.7 года у кандидата) и неподтверждённым удалённым форматом. |
**Ограничение данных:** WebFetch по URL trudvsem.ru вернул почти исключительно элементы навигации портала "Работа России" — ни зарплата, ни полное описание, ни контакты не были доступны напрямую. Detали ниже восстановлены через WebSearch по внешним источникам (team.cft.ru, job.cft.ru, hh.ru), которые описывают похожую/ту же линейку вакансий ЦФТ Frontend Vue в Новосибирске, но НЕ являются 1:1 подтверждением текста именно этой карточки. Это существенно снижает уверенность в деталях ниже.
**Vibe команды** (качественный сигнал, не входит в числовую оценку): Судя по формулировкам из внешних описаний похожих вакансий ЦФТ (не текста самой карточки) — упоминаются код-ревью и поддержка "специалистов подразделения" при развитии навыков, что можно трактовать как признак менторской культуры. Прямых упоминаний автономии/участия в архитектурных решениях или гибкого графика в тексте самой вакансии нет. Недостаточно данных из JD этой конкретной карточки, чтобы делать уверенный вывод — стоит уточнить на собеседовании.
---
## B) Совпадение с CV
| Требование JD (реконструировано из внешних источников) | Совпадение с cv.md |
|---|---|
| Vue 3 (или Vue 2 с пониманием отличий) | Прямое совпадение: «Здесь ЕКОМ» — фронтенд с нуля на Vue 3, Composition API (см. cv.md, раздел «Здесь ЕКОМ») |
| TypeScript | Прямое совпадение: «Здесь ЕКОМ» — стек включает TypeScript |
| JavaScript, HTML5/CSS3 | Прямое совпадение (раздел «Навыки») |
| Pinia / state management | Прямое совпадение: Pinia указана в стеке ЕКОМ |
| Код-ревью, рефакторинг legacy-кода | Частичное совпадение: РМК — legacy-проект, ~6 месяцев, багфиксы включая сложный кейс с замыканием реактивной переменной |
| REST API / WebSocket | Прямое совпадение: WebSocket (WSS) на ЕКОМ и РМК |
| **Стаж 3-6 лет** (типичное требование для Middle на похожих вакансиях ЦФТ) | **Пробел.** У кандидата ~1 год 8 месяцев коммерческого опыта (с ноября 2024) |
| Работа в команде из нескольких разработчиков, командные процессы | Частичное совпадение: внедрение Feature Branching, обучение коллеги системе версионирования, участие в спринт-планировании |
### Пробелы
1. **Стаж (3-6 лет vs ~1.7 года)** — это hard blocker для формального ATS-фильтра в крупной компании уровня ЦФТ, но не обязательно blocker по факту компетенций.
- Может ли кандидат продемонстрировать смежный/эквивалентный опыт? Да — за 1.7 года кандидат единолично довела greenfield-продукт (ЕКОМ) от нуля до продакшена, спроектировала RBAC, параллельно вела ещё 2 проекта (РМК, «Здесь Аптека»). Это компенсирует калиброванный стаж «широтой» ответственности, но НЕ заменяет годы формально.
- Портфолио-проект, закрывающий пробел? Нет отдельного демо (portfolio_url пуст в profile.yml) — не выдумывать, не добавлять.
- Конкретный план: в сопроводительном/самопрезентации явно называть масштаб ответственности («вела 3 продукта параллельно, включая greenfield-разработку с нуля») вместо количества лет; готовиться к прямому вопросу рекрутера «у вас же меньше 3 лет» с честным ответом + переносом фокуса на объём поставленного функционала.
2. **Формат работы (удалённо/гибрид/офис) не подтверждён для этой вакансии** — hard blocker по локационной политике, если это окажется офис в Новосибирске без удалёнки (см. Block C).
- Стратегия закрытия: до отклика — уточнить формат работы у рекрутера ЦФТ напрямую (LinkedIn/HR-контакт), не подавать заявку вслепую.
---
## C) Уровень и стратегия
**Уровень в JD (по внешним данным о похожих вакансиях ЦФТ):** Middle, заявленный порог 3-6 лет.
**Естественный уровень кандидата для архетипа Frontend (Vue.js):** Junior→Middle (переходный) — сильный технический стек на уровне Middle (Vue 3 + Composition API + TS + Pinia в продакшене, RBAC-дизайн), но стаж соответствует раннему уровню.
**План «продать senior без обмана»:**
- Вести с масштабом: «спроектировала и реализовала с нуля фронтенд системы управления заказами для сети из ~1200 аптек» — это не typical junior-задача.
- RBAC-дизайн как дифференциатор: подчеркнуть, что кандидат самостоятельно объясняла бэкенд-команде модель разграничения прав — редкая для её грейда инициатива.
- Не заявлять стаж, которого нет — говорить «неполные 2 года коммерческого опыта, но веду 3 параллельных продукта» прямо, это честнее и работает в её пользу за счёт контраста.
**План «если понизят уровень» (вероятный сценарий здесь):**
- Принять понижение до Junior+/Middle- **только** если компенсация соответствует нижней границе таргета кандидата (100 000 ₽/мес на руки — см. profile.yml), а не ниже.
- Просить пересмотр грейда/оклада через 6 месяцев с чёткими критериями (например: закрытие межпродуктовых задач без сопровождения сеньора).
- **Важно:** если позиция окажется офисной в Новосибирске без удалёнки — это конфликтует с жёсткой политикой кандидата «переезд и командировки не рассматриваю» (modes/_profile.md, Location Policy). В этом случае вопрос уровня становится вторичным — переговоры не имеют смысла до прояснения формата работы.
---
## D) Компенсация и спрос
**Зарплата в самой вакансии:** не указана — ни в извлечённом тексте trudvsem, ни в доступных фрагментах внешних источников для этой конкретной карточки.
**Рыночные данные (WebSearch, RU market, июль 2026):**
| Источник | Данные |
|---|---|
| Общие отраслевые обзоры (2026) | Frontend middle-разработчик в РФ: ~177 000 ₽/мес (по совокупным данным HH.ru) |
| Региональный срез (Новосибирск/Екатеринбург/Казань) | 160 000–180 000 ₽/мес для middle, если компания не платит по московским ставкам |
| Vue.js vs другие стеки | Vue-разработчики в среднем получают на 8-12% меньше, чем React-разработчики того же грейда |
| Репутация компании (dreamjob.ru, отзывы сотрудников) | Есть сигналы, что зарплата в ЦФТ **ниже рыночной** по отзывам части сотрудников — не подтверждено количественно, качественный сигнал из отзывов |
| Условия (по общим описаниям вакансий ЦФТ, не этой конкретной) | График 5/2, официальное трудоустройство "в белую" с первого дня, соцпакет: ДМС, партнёрские скидки, корпоративный транспорт |
**Оценка (gross/net):** Не указано в JD, поэтому невозможно применить формулу `net ≈ gross × 0.87`. Рекомендация: уточнять у рекрутера ЦФТ явно — «gross или на руки?» — до обсуждения таргета.
**Вывод:** При отсутствии заявленной вилки и с учётом качественных сигналов о зарплате ниже рынка, а также реальном стажевом пробеле кандидата (что обычно означает предложение по нижней границе вилки, а не по верхней), реалистичный диапазон предложения — скорее всего **ниже** таргета кандидата (100 000–120 000+ ₽/мес на руки). Это не гарантировано, но риск существенный.
---
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary (PDF) | Общий акцент на Vue3 + Flutter dual-track | Для ЭТОЙ вакансии — убрать/сократить Flutter, вести исключительно с Vue 3 + TS + Pinia + масштабом ЕКОМ | Роль чисто Frontend Vue, Flutter — шум для этого ATS-фильтра |
| 2 | Опыт — заголовок роли | «Frontend/Flutter-разработчик» | Показать «Frontend-разработчик (Vue 3)» как ведущую роль в резюме под эту вакансию | Соответствие точному заголовку роли повышает keyword-match |
| 3 | Проектные буллеты | RBAC упомянут как один из пунктов | Вынести RBAC-дизайн в первую строку под ЕКОМ — это единственный по-настоящему дифференцирующий пункт против типичного Middle-кандидата с 3+ годами | Компенсирует пробел по стажу через уникальность экспертизы |
| 4 | Ключевые слова | TS, Vue 3, Pinia уже есть | Добавить явно «Composition API», «code review», «рефакторинг legacy» если применимо честно (РМК — legacy-фикс замыкания) | ATS-совпадение по типичным для ЦФТ формулировкам |
| 5 | LinkedIn/hh.ru заголовок | Не указано в profile.yml (LinkedIn пуст) | При отклике через hh.ru — заголовок «Frontend-разработчик Vue 3 / TypeScript» | Максимизирует релевантность в поиске рекрутера |
---
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Vue 3 / Composition API в продакшене | RBAC-модель в ЕКОМ | Бэкенд не имел готовой модели прав доступа, отделы (логистика/заказы) видели чужие данные | Спроектировать и объяснить ролевую модель авторизации | Использовала ИБ-образование, спроектировала роли/группы/права, презентовала бэкенд-команде | Внедрено разграничение по отделам | Поняла, что нестандартный бэкграунд (ИБ) — реальное конкурентное преимущество, а не просто "интересный факт" в резюме |
| 2 | Legacy-рефакторинг / код-ревью | Баг с замыканием в РМК | Клавиатура переставала работать после серии действий | Найти причину в глобальном классе биндинга клавиш | Диагностировала: реактивная переменная передавалась в глобальный класс, старые версии не очищались | Баг исправлен, задокументирован паттерн | Осознала важность жизненного цикла реактивных переменных вне компонентной области Vue |
| 3 | Работа с командой / rollout процессов | Feature Branching в GitLab | Хаотичные releases, "зависшие" фичи | Внедрить Git Flow и обучить команду | Обучила коллегу с 11-летним стажем, ввела процесс | Команда перешла на стабильные еженедельные релизы | Мягкие навыки (обучение старшего коллеги) не менее значимы, чем код |
| 4 | UI/UX-инициатива без дизайнера | Редизайн кнопки «Избранное» и блока информации о заказе | Не было дизайнера, UI была неудобной | Взять на себя проектирование интерфейса | Самостоятельно спроектировала и внедрила изменения | Улучшенная эргономика интерфейса | Готовность закрывать пробел роли (дизайн) — сигнал проактивности |
| 5 | Работа с WebSocket/real-time | Внедрение WSS-оповещений в РМК | Не было видимости, сколько аптек онлайн | Внедрить real-time оповещения | Реализовала WebSocket-канал с отметкой прочтения | Видимость статуса ~1200 аптек в реальном времени | Реальная система масштаба, close к enterprise-требованиям ЦФТ |
| 6 | Диагностика продакшн-багов | «Избранное» не открывалось | Жалобы пользователей на баг | Найти причину без готового отчёта от QA | Диагностировала: все товары грузились одним запросом | Реализовала постраничную загрузку, жалобы прекратились | Проактивный дебаг до эскалации — ценно для команды с 50+ проектами |
**Рекомендуемый кейс для презентации:** «Здесь ЕКОМ» — greenfield-продукт с нуля, потому что это единственный проект кандидата, сравнимый по масштабу ответственности с типичными Middle-задачами в ЦФТ.
**Вопросы-ловушки:**
- «У вас же меньше 3 лет опыта, почему претендуете на Middle?» → честно: «неполные 2 года, но за это время вела 3 параллельных продукта, один — с нуля, включая архитектурное решение (RBAC), которое обычно не доверяют разработчику с таким стажем».
- «Готовы к переезду/командировкам в Новосибирск?» → прямо, без смягчения: «Нет, переезд и командировки не рассматриваю. Открыта к удалённому или гибридному формату при дневном графике» (по modes/_profile.md — не смягчать до "гибко").
- «Почему уходите от мобильной разработки к чистому frontend?» → «Не ухожу — веду оба трека параллельно в текущей компании; для этой роли я лучше подхожу именно по Vue 3/TS стеку, а Flutter-опыт остаётся дополнительным активом».
---
## G) Проверка легитимности вакансии (Posting Legitimacy)
**Assessment: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Не определена — `check-liveness.mjs` вернул статус `uncertain` («content present but no visible apply control found»), дата публикации не видна в извлечённом тексте | Neutral/Concerning |
| Качество описания (карточка trudvsem) | Само описание практически не извлекается (SPA-рендеринг, WebFetch вернул навигационную обвязку) — невозможно оценить качество текста ИМЕННО этой карточки | Concerning (по причине недоступности данных, не по содержанию) |
| Качество описания (внешние зеркала той же роли/команды) | На team.cft.ru/job.cft.ru/hh.ru встречаются структурированные описания похожих Frontend Vue ролей ЦФТ с конкретным контекстом команды (50+ веб-проектов, конкретные бренды-клиенты) | Positive |
| Company Hiring Signals | ЦФТ — крупный, давно существующий fintech-холдинг (владеет системой "Золотая Корона"); WebSearch не выявил свежих новостей о сокращениях или заморозке найма в 2026 | Positive/Neutral |
| Reposting Detection | По `data/scan-history.tsv` — это первое появление данной вакансии/URL в истории сканирования (единственная запись, добавлена сегодня) | Neutral (нет данных о повторных размещениях) |
| Role Market Context | Frontend Vue-роль в крупной fintech-компании с десятками веб-продуктов — типичная, регулярно заполняемая позиция (4-8 недель обычно) | Neutral/Positive |
**Context Notes:** Компания ведёт активный набор на похожие Frontend Vue позиции сразу на нескольких площадках (hh.ru, team.cft.ru, job.cft.ru) — это скорее говорит о continuous/pipeline-найме в растущем веб-подразделении, чем о разовой вакансии-призраке. Основная неопределённость — техническая (SPA не отдаёт контент WebFetch), а не поведенческая.
---
## Извлечённые ключевые слова
Vue 3, Vue.js, Frontend, TypeScript, Composition API, Pinia, JavaScript, CSS, HTML5, code review, рефакторинг, WebSocket, REST API, Новосибирск, ЦФТ, Центр Финансовых Технологий, Золотая Корона, Web Technologies, middle-разработчик, git, командная работа, ДМС, официальное трудоустройство
---
## Итоговая рекомендация
**Балл 2.1/5 — существенно ниже порога 4.0/5 (AGENTS.md, Ethical Use).** Настоятельно рекомендуется **не откликаться** на эту вакансию в текущем виде, по совокупности причин:
1. Стажевый пробел (3-6 лет заявлено на схожих ролях ЦФТ vs ~1.7 года у кандидата) — реальный риск отсева на этапе ATS/скрининга.
2. Формат работы не подтверждён — если окажется офис в Новосибирске без удалёнки, это прямой конфликт с жёсткой политикой кандидата (нет переезда/командировок), что обнулило бы оценку до 1.0.
3. Зарплата не раскрыта, а качественные сигналы указывают на возможную оплату ниже рынка и ниже таргета кандидата.
4. Данные о самой вакансии крайне ограничены (SPA-портал, WebFetch не смог извлечь описание) — высокая неопределённость всей оценки.
**Если кандидат всё же хочет двигаться дальше:** сначала письменно уточнить у ЦФТ (до отклика) формат работы (удалённо/гибрид/офис) и вилку зарплаты — это два блокирующих неизвестных, которые могут изменить оценку в любую сторону.
@@ -0,0 +1,71 @@
# Оценка: Яндекс — Fullstack-разработчик в команду frontend-инфраструктуры
**Дата:** 2026-07-07
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent fit, но фактически ближе к Platform/DevOps-tooling
**Балл:** 1.0/5
**URL:** https://yandex.ru/jobs/vacancies/fullstackrazrabotchik-v-komandu-frontendinfrastrukturi-46894
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Fullstack (Vue+Node) — adjacent, но по факту Platform Engineering / Developer Tooling |
| Domain | Внутренняя frontend-инфраструктура (CI/CD кодогенерация, CLI, шаблоны сервисов) |
| Function | Build (инструменты для разработчиков, не пользовательские фичи) |
| Seniority | От 3 лет |
| Формат работы | Екатеринбург/Москва, **Гибридный или Офис** — удалёнка нигде не упомянута |
| Размер команды | Не указан |
| Оформление | Не указано |
| TL;DR | Platform/DevOps-инструменты для фронтенд-команд (CLI, кодогенерация CI/CD, Docker/nginx) — не UI-разработка, и без удалёнки |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| JavaScript/TypeScript + Node.js уверенно | ⚠️ TS/JS — да (Vue-стек); Node.js — только ознакомительный уровень (хакатон, курсовой проект) |
| Устройство frontend-сервисов: сборка, SSR/SPA, статика | ⚠️ Частично — Vite/сборка есть, SSR не встречается в CV |
| CI/CD настройка/внедрение | ⚠️ "Рабочий опыт" заявлен, но не как настройка пайплайнов с нуля |
| Docker, bash, nginx | ❌ Docker в разделе "быстро осваиваю" (не освоено), bash/nginx не упоминаются |
| Разработка CLI-инструментов, кодогенераторов | ❌ Нет опыта в CV |
| Observability (логи, метрики, алерты) | ❌ Не встречается |
**Пробелы:** Это роль про построение внутренних dev-tools (аналог платформенной инженерии), а не про фронтенд-фичи для конечных пользователей — профиль кандидата (UI-разработка на Vue, Flutter-приложения) не пересекается с ключевыми требованиями (CLI, кодогенерация, Docker/nginx, observability). Даже без location-блокера это был бы существенный стретч, а не adjacent fit.
## C) Уровень и стратегия
Не применимо содержательно — роль заблокирована location-политикой: Екатеринбург/Москва, гибрид/офис, без удалёнки. При вашей политике "переезд и командировки не рассматриваю" это hard stop независимо от технического совпадения.
## D) Компенсация и спрос
Зарплата не указана в вакансии. Яндекс как работодатель обычно конкурентен по рынку для этого уровня, но при заблокированной локации сравнение не имеет практического смысла.
## E) План персонализации / F) План собеседований
Пропущено — балл ниже порога (< 3.0), роль не рекомендуется.
---
## Vibe команды
Судя по формулировкам JD, вайб выглядит содержательным: явно описана автономия ("не просто выполняем заранее сформулированные задачи... сами находим проблемы в процессах, предлагаем решения"), участие в roadmap и приоритизации, фокус на developer experience как на продукте. Признаков бюрократии не видно. Но это не компенсирует location- и skill-блокеры.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Описание | Детальное, конкретные технологии и задачи, не шаблонное | Positive |
| Компания | Яндекс — крупный, регулярно нанимающий работодатель | Positive |
| Внутренние противоречия | Нет | Neutral |
| Дата/свежесть | Не показана на странице | Neutral |
---
## Рекомендация
**Не рекомендуется откликаться.** Двойной блокер: (1) локация Екатеринбург/Москва, гибрид/офис без удалёнки — не проходит по вашей location-политике; (2) по содержанию это роль platform/dev-tooling engineer (CLI, кодогенерация CI/CD, Docker/nginx, observability), а не frontend/Vue-разработка — существенно отличается от вашего профиля даже вне зависимости от локации.
+68
View File
@@ -0,0 +1,68 @@
# Оценка: Яндекс — Разработчик фронтенда в команду Яндекс Кит
**Дата:** 2026-07-07
**Архетип:** Frontend Developer — но стек React, не Vue.js (adjacent, не primary)
**Балл:** 1.0/5
**URL:** https://yandex.ru/jobs/vacancies/razrabotchik-frontenda-v-komandu-yandeks-kit-39111
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer, но на **React**, не Vue.js |
| Domain | E-commerce платформа (Яндекс KIT — независимый ecom) |
| Function | Build (динамические UI, производительность, автотесты) |
| Seniority | От 3 лет |
| Формат работы | Санкт-Петербург/Москва, **Гибридный или Офис** — удалёнка не упомянута |
| TL;DR | Frontend-роль на новой e-commerce платформе, но требует React (не Vue) и офис/гибрид в СПб или Москве без удалёнки |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Разработка на React | ❌ В CV — Vue 3 (Composition API), React не упоминается вообще |
| Webpack/системы сборки | ⚠️ Vite есть в CV, Webpack — нет |
| TypeScript | ✅ Активно используется (Vue 3 + TS в проекте ЕКОМ) |
| Node.js (серверная логика) | ⚠️ Ознакомительный уровень, без серьёзного production-опыта |
| RESTful API | ✅ Есть опыт (REST API в скиллах) |
| Паттерны проектирования | ⚠️ Общего характера, не детализировано в CV под конкретные паттерны |
**Пробелы:** Ключевое требование — React, а весь коммерческий фронтенд-опыт кандидата на Vue 3. Это не "тот же React, но другой синтаксис" с точки зрения собеседования — большинство JS/React-специфичных вопросов (хуки, реконсиляция, экосистема) потребуют отдельной подготовки или явного риска на собеседовании.
## C) Уровень и стратегия
Не применимо содержательно — двойной блокер: локация (СПб/Москва, гибрид/офис без удалёнки) и стек (React вместо Vue).
## D) Компенсация и спрос
Зарплата не указана. Не имеет практического значения при заблокированной локации.
## E) План персонализации / F) План собеседований
Пропущено — балл ниже порога (< 3.0).
---
## Vibe команды
Судя по формулировкам JD, команда выглядит продуктово-ориентированной ("разрабатывать сложную платформу с нуля, влиять на архитектуру") — упоминается интерес к R&D-задачам и техническая свобода ("воплощать технически грамотные решения, а не просто писать код или вёрстать"). Признаков менторства или гибкости графика в тексте нет — недостаточно данных, стоило бы уточнить на собеседовании, если бы локация подходила.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Описание | Конкретное, с технологиями и контекстом продукта | Positive |
| Компания | Яндекс — крупный, активно нанимающий работодатель | Positive |
| Внутренние противоречия | Нет | Neutral |
---
## Рекомендация
**Не рекомендуется откликаться.** Локация (СПб/Москва, гибрид/офис, без удалёнки) не проходит по вашей политике "переезд и командировки не рассматриваю". Дополнительно — стек React, а не Vue.js, что делает совпадение с CV существенно слабее даже без учёта локации.
@@ -0,0 +1,67 @@
# Оценка: Яндекс — Мобильный разработчик (Android/iOS) Payment SDK в Финтех
**Дата:** 2026-07-07
**Архетип:** Mobile Developer — но нативный Kotlin/Swift, не Flutter
**Балл:** 1.0/5
**URL:** https://yandex.ru/jobs/vacancies/mobilniy-razrabotchik-androidios-payment-sdk-v-finteh-45622
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Mobile — нативная разработка (Kotlin/Android или Swift/iOS), НЕ Flutter |
| Domain | Fintech (платёжный SDK, встроен в десятки приложений экосистемы Яндекса) |
| Function | Build (платёжная инфраструктура, zero bug policy) |
| Seniority | От 3 лет коммерческой публикации мобильных приложений |
| Формат работы | Санкт-Петербург/Москва, Гибридный — удалёнка не упомянута |
| TL;DR | Нативная (Kotlin/Swift) платёжная SDK-разработка — не пересекается со стеком кандидата (Flutter/Dart) |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Kotlin (Android) или Swift (iOS) — "отлично владеете" | ❌ В CV — Dart/Flutter, нативные Kotlin/Swift не упоминаются |
| Многомодульные приложения | ⚠️ Опыт с модульностью не описан в терминах нативной архитектуры |
| MVVM/UDF, Coroutines+Flow / Swift Concurrency | ❌ Архитектурный опыт кандидата — Clean Architecture + BLoC (Flutter-специфично), не переносится напрямую |
| Многопоточное программирование | ⚠️ Не детализировано в CV |
| Публикация приложений >3 лет | ⚠️ Есть опыт сборки/публикации iOS-билдов (портирование Android→iOS через Flutter), но не нативная разработка 3+ года |
**Пробелы:** Это позиция нативной мобильной разработки высокого уровня ответственности (платежи, zero bug policy) на Kotlin/Swift — Flutter-опыт кандидата не считается прямым эквивалентом для большинства технических интервью на нативный стек.
## C) Уровень и стратегия
Не применимо содержательно — блокер по локации (СПб/Москва, гибрид, без удалёнки) и по стеку (нативная разработка вместо Flutter).
## D) Компенсация и спрос
Зарплата не указана. Fintech-направление Яндекса обычно платит выше рынка, но не имеет значения при заблокированной локации и стеке.
## E) План персонализации / F) План собеседований
Пропущено — балл ниже порога (< 3.0).
---
## Vibe команды
Судя по формулировкам JD, вайб выглядит сильным: явно описан рост "не застрянете в UI-слое", возможность погрузиться в бэкенд на Go, "поддерживаем горизонтальные переходы и помогаем расти там, где вам интересно" — это прямое упоминание менторства/роста. Также описана культура ответственности за качество (zero bug policy) без признаков избыточной бюрократии в тексте.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Описание | Очень детальное: конкретный стек, архитектура, бизнес-контекст (500M транзакций/год) | Positive |
| Компания | Яндекс, финтех-направление | Positive |
| Внутренние противоречия | Нет | Neutral |
---
## Рекомендация
**Не рекомендуется откликаться.** Локация (СПб/Москва, гибрид без удалёнки) не проходит по вашей политике. Дополнительно — это нативная Kotlin/Swift разработка, а не Flutter, с высоким порогом входа (платёжная система, zero bug policy) — существенный стретч даже вне зависимости от локации.
@@ -0,0 +1,63 @@
# Оценка: Яндекс — Стажёр в команду разработки AI-инфраструктуры фронтенда Яндекс 360
**Дата:** 2026-07-07
**Архетип:** Frontend/Platform tooling (AI-инфраструктура) — стажировка, стек React
**Балл:** 1.0/5
**URL:** https://yandex.ru/jobs/vacancies/stazhyor-v-komandu-razrabotki-aiinfrastrukturi-frontenda-yandeks-360-43541
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend/AI-tooling infrastructure (MCP-сервера, генерация документации для AI-ассистентов) |
| Seniority | Стажёр, "можно без опыта" |
| Формат работы | Москва, **Офис** — без гибрида и удалёнки |
| Стек | React, TypeScript, Module Federation, webpack, Node.js |
| TL;DR | Стажировка в Москве только в офисе, стек React + AI-tooling — не Vue и не про UI-фичи |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Хорошее знание TypeScript | ✅ Есть, активно используется |
| Опыт работы с AI-код-ассистентами (Cursor, Claude Code) | ⚠️ Не описано явно в CV, хотя вероятно использовались в работе |
| React / Module Federation / webpack | ❌ Стек Vue, не React |
**Пробелы:** Роль про построение AI-tooling инфраструктуры (MCP-серверы, генерация документации) на React — не пересекается с профилем frontend/Vue-разработчика, ориентированного на продуктовые UI-фичи.
## C) Уровень и стратегия
Не применимо содержательно — блокер по локации (Москва, только офис) и по уровню (стажировка ниже фактического опыта кандидата — 1.5+ года коммерческой разработки).
## D) Компенсация и спрос
Зарплата стажёра не указана; для стажировки не имеет значения при заблокированной локации.
## E) План персонализации / F) План собеседований
Пропущено — балл ниже порога (< 3.0), плюс уровень "стажёр" не соответствует опыту кандидата.
---
## Vibe команды
Судя по формулировкам JD, вайб выглядит современным и продуктовым — команда явно рефлексирует над своими процессами (внутренний опрос "90% фронтенд-разработчиков используют AI-ассистентов"), обозначена конкретная миссия по улучшению DX через AI-инфраструктуру. Признаков бюрократии не видно, но данных о менторстве/гибкости недостаточно — можно уточнить на собеседовании.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Описание | Очень конкретное: названы внутренние системы (Orbita, ПДОК, FF Duffman), реальные метрики (90% используют AI-ассистентов) | Positive |
| Компания | Яндекс, крупное активно нанимающее подразделение | Positive |
---
## Рекомендация
**Не рекомендуется откликаться.** Формат работы — только офис в Москве, без гибрида/удалёнки, что не проходит по вашей location-политике. Кроме того, это стажёрская позиция на стеке React с фокусом на AI-tooling инфраструктуру — понижение уровня и смещение от Vue/продуктового UI-фокуса кандидата.
@@ -0,0 +1,59 @@
# Оценка: Яндекс — Фронтенд-разработчик в еком-сценарии Поиска
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (продуктовый UI, дизайн-система)
**Балл:** 1.0/5
**URL:** https://yandex.ru/jobs/vacancies/frontendrazrabotchik-v-ekomstsenarii-poiska-43880
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer — продуктовые UI-сценарии (карточки товаров, дизайн-система, генеративные ответы) |
| Domain | E-commerce внутри Поиска (еком-сценарии) |
| Seniority | От 3 лет |
| Формат работы | Санкт-Петербург/Москва, **Гибридный или Офис** — удалёнка не упомянута |
| TL;DR | Продуктовая frontend-роль с близким к профилю фокусом (UI, дизайн-система), но без удалёнки и в другом городе |
## B) Совпадение с CV
По содержанию задач (развитие пользовательских интерфейсов, дизайн-система, унификация компонентов) — это ближе всего к профилю кандидата из всех рассмотренных вакансий Яндекса: есть прямой опыт построения UI с нуля (ЕКОМ) и самостоятельного дизайна компонентов (кнопка "Избранное", компоновка блоков). Стек в тексте страницы не детализирован (React/Vue не указан явно в извлечённом фрагменте) — стоило бы уточнить при отклике.
**Пробел:** формат работы полностью блокирует рассмотрение независимо от технического фита.
## C) Уровень и стратегия
Не применимо содержательно — жёсткий блокер по локации (СПб/Москва, гибрид/офис, без удалёнки).
## D) Компенсация и спрос
Зарплата не указана. Не имеет значения при заблокированной локации.
## E) План персонализации / F) План собеседований
Пропущено — балл ниже порога (< 3.0).
---
## Vibe команды
Судя по формулировкам JD, вайб выглядит одним из самых тёплых в этой пачке: пост написан от первого лица руководителем группы (Руслан Муфтиев), явный акцент на "реальном влиянии" работы, росте "в сильной продуктовой команде". Признаков менторства явно нет, но личное обращение и конкретика по продукту — хороший знак вовлечённости команды.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Описание | Именное обращение от руководителя, конкретный бизнес-контекст | Positive |
| Компания | Яндекс | Positive |
---
## Рекомендация
**Не рекомендуется откликаться, несмотря на хороший содержательный фит.** Формат работы — гибрид/офис в СПб или Москве, без удалёнки — прямо противоречит вашей политике "переезд и командировки не рассматриваю". Если политика когда-нибудь смягчится для гибридных ролей в этих городах, эта вакансия стоит повторного рассмотрения — по контенту и вайбу она выделяется на фоне остальных.
@@ -0,0 +1,67 @@
# Оценка: Яндекс — Разработчик фронтенда в Яндекс 360
**Дата:** 2026-07-07
**Архетип:** Frontend Developer — стек React/Redux, не Vue
**Балл:** 1.0/5
**URL:** https://yandex.ru/jobs/vacancies/razrabotchik-frontenda-v-yandeks-360-9245
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (Диск, Почта, Документы, Календарь, Телемост) |
| Seniority | От 3 лет |
| Формат работы | Санкт-Петербург/Москва, **Гибридный или Офис** — удалёнка не упомянута |
| Стек | TypeScript/ES6, Node.js, React, Redux, webpack |
| TL;DR | Frontend-роль на React/Redux в сервисах Яндекс 360 — без удалёнки и не на Vue |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| TypeScript/JavaScript | ✅ Уверенно |
| HTML/CSS | ✅ Есть |
| Git/SVN | ✅ Git, GitLab, Feature Branching |
| HTTP/HTTPS принципы | ⚠️ Не детализировано в CV |
| Командная строка *nix | ⚠️ Linux — пользовательский уровень |
| React и Node.js (плюс) | ❌ Vue-стек, не React; Node.js — ознакомительный |
| Классические алгоритмы и структуры данных | ⚠️ Не отражено в CV |
**Пробел:** Требования довольно базовые (TS/HTML/CSS/Git) и в целом выполнимы, но плюсом идёт именно React — ещё один Vue→React разрыв, как и в двух других вакансиях Яндекса выше.
## C) Уровень и стратегия
Не применимо содержательно — блокер по локации (СПб/Москва, гибрид/офис, без удалёнки).
## D) Компенсация и спрос
Не указана конкретная цифра, но текст явно заявляет "зарплату на уровне рынка и выше" + премии каждые полгода. Не имеет значения при заблокированной локации.
## E) План персонализации / F) План собеседований
Пропущено — балл ниже порога (< 3.0).
---
## Vibe команды
Судя по формулировкам JD, в тексте прямо упомянут "гибкий график работы" и премии "для всех, кто успешно прошёл ревью" (сигнал регулярного performance review). Явных признаков менторства или автономии команды не описано — базовый корпоративный бенефит-лист, не специфичный для команды.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Описание | Конкретный стек и задачи, реалистичные требования | Positive |
| Компания | Яндекс | Positive |
---
## Рекомендация
**Не рекомендуется откликаться.** Формат работы (гибрид/офис в СПб или Москве, без удалёнки) не проходит по вашей location-политике. Стек — React/Redux, а не Vue, что дополнительно снижает фит.
+146
View File
@@ -0,0 +1,146 @@
# Оценка: ООО «Бизнес Технологии» — Senior/Tech Lead frontend-разработчик
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — primary archetype (роль допускает React/Vue/Angular; ниже — существенный разрыв по уровню)
**Балл:** 1.5/5
**URL:** https://hh.ru/vacancy/127181421
**Legitimacy:** Proceed with Caution
**PDF:** не сгенерирован (балл < 3.0, порог для авто-PDF)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend Developer — но заявленный уровень Senior/Tech Lead, а не Middle (primary архетип кандидата) |
| Domain | Frontend / enterprise (промышленный сервер приложений «Global», переход с GWT на TypeScript/React) |
| Function | Build + Architecture (проектирование архитектуры, организация процессов разработки) |
| Seniority | **Senior/Tech Lead, минимум 10 лет опыта фронтенд/фулстек-разработки** |
| Формат работы | Офис / гибрид / удалённо — все варианты доступны |
| Размер команды | Не указано явно; упоминается многолетняя платформа с несколькими офисами (СПб, Пермь, Нижний Новгород, Волгоград, план — Казань) |
| Оформление | Официальное трудоустройство по ТК РФ (упомянуто ДМС после 3 месяцев — типичный признак ТК) |
| Локация | Санкт-Петербург (при этом удалённый формат доступен — конфликта с политикой кандидата «Тула, без переезда» нет) |
| TL;DR | Крупная и зрелая enterprise-платформа (Global-FrameWork) с отличной компенсацией (300–350 тыс. ₽/мес на руки) и гибким форматом, но требование — минимум 10 лет опыта на позицию Senior/Tech Lead, при этом у кандидата ~1 год 8 месяцев коммерческого опыта. Это не «продать сеньорность», а разрыв на порядок. |
**Vibe команды** (качественный сигнал, не входит в числовую оценку): Судя по формулировкам JD — гибкое начало дня, корпоративные мероприятия, «пицца-дни» по пятницам — упоминаются неформальные элементы культуры. Прямых упоминаний автономии/участия в архитектурных RFC нет, хотя роль подразумевает влияние на архитектуру по своей природе (Tech Lead). Однако внешние отзывы о работодателе (см. Блок G) содержат серьёзные негативные сигналы о менеджменте — это создаёт противоречие между обещанной культурой в JD и внешними отзывами, которое нельзя разрешить только по тексту вакансии.
---
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| HTML, CSS, JavaScript | Прямое совпадение (раздел «Навыки») |
| React/Vue/Angular | Частичное: Vue 3 — прямое совпадение (ЕКОМ, РМК); React/Angular — не указаны в cv.md, не выдумывать |
| TypeScript | Прямое совпадение: ЕКОМ, TS в продакшене |
| Понимание архитектуры ПО | Частичное: спроектировала RBAC-модель авторизации в ЕКОМ — реальный архитектурный вклад, но на уровне одного модуля, а не всей платформы |
| Современные AI-инструменты | Не подтверждено в cv.md — нет прямого упоминания использования AI-инструментов в разработке; не добавлять без основания |
| Java-технологии (Jetty) — плюс | Пробел — нет упоминания в cv.md |
| **Минимум 10 лет опыта фронтенд/фулстек** | **Критический пробел.** У кандидата ~1 год 8 месяцев коммерческого опыта (с ноября 2024) |
| Организация процессов разработки, повышение качества продукта | Частичное совпадение: внедрила Feature Branching в GitLab, обучила коллегу системе версионирования, внедрила Playwright E2E, инициировала версионирование сборок |
| Написание модульных и визуальных тестов | Совпадение: Vitest (unit), Storybook, Playwright E2E (РМК) |
### Пробелы
1. **Стаж (10 лет vs ~1.7 года)** — это hard blocker, а не пробел, который можно закрыть формулировкой.
- Может ли кандидат продемонстрировать смежный опыт? Частично — ведение 3 продуктов параллельно и greenfield-разработка ЕКОМ с нуля демонстрируют зрелость выше формального стажа, но разрыв в 8+ лет невозможно компенсировать нарративом.
- Портфолио-проект, закрывающий пробел? Нет.
- Конкретный план: **не позиционировать себя как Tech Lead-кандидата на эту роль.** Если откликаться — только с прямым письмом рекрутеру: «понимаю, что заявленный порог — 10 лет, у меня 1.7 года, но есть релевантный технологический стек (Vue 3, TS) и готовность обсудить более младшую открытую позицию в этой же компании (см. ниже — у них также открыта Middle-вакансия, см. Блок G)».
2. **Java/Jetty** — nice-to-have, не блокер. Не хардкодить отсутствие — просто не заявлять.
3. **AI-инструменты в разработке** — нет данных в cv.md; при отклике не выдумывать конкретные инструменты, можно честно сказать «активно интересуюсь, готова показать на собеседовании».
---
## C) Уровень и стратегия
**Уровень в JD:** Senior/Tech Lead, формальный порог — 10 лет опыта.
**Естественный уровень кандидата для архетипа Frontend (Vue.js):** Junior→Middle (переходный).
**План «продать senior без обмана»:** Не применимо в данном случае — разрыв (10 лет заявлено vs 1.7 года факта) на порядок больше, чем типичный кейс «занизили/завысили грейд». Продавать кандидата как соответствующего этому уровню было бы нечестно и бесполезно — это не пройдёт даже первичный ATS/рекрутерский скрининг.
**План «если понизят уровень»:** Единственный реалистичный сценарий — не эта вакансия, а другая открытая позиция у того же работодателя. По `data/scan-history.tsv` у ООО «Бизнес Технологии» **в этот же день (2026-07-07) была замечена ещё одна вакансия** — «Middle frontend-разработчик» (`hh.ru/vacancy/134837105`, отдельный URL, вне мандата этого отчёта). Рекомендация кандидату: если компания интересна по компенсации/стеку, стоит рассмотреть именно ту Middle-вакансию, а не эту.
**Важно:** Комментарий не заменяет отдельную оценку той вакансии — здесь только фиксируется факт для навигации кандидата.
---
## D) Компенсация и спрос
**Зарплата в вакансии:** 300 000–350 000 ₽/мес, **на руки (net)**, выплата дважды в месяц.
**Рыночные данные (WebSearch, RU market, июль 2026):**
| Источник | Данные |
|---|---|
| Общие обзоры Senior Frontend (Москва, 2026) | Медиана Senior Frontend в Москве — 287 500 ₽/мес (hh.ru, данные на февраль 2026) |
| Senior Vue Developer (Москва) | 480 000–650 000 ₽/мес диапазон для сильных Vue-специалистов (другой источник, более широкий рынок) |
| Региональный контекст (СПб обычно немного ниже Москвы для той же роли) | Предложение 300–350 тыс. ₽ на руки — выше медианы даже для Москвы, тем более для СПб |
**Оценка (gross/net):** Уже указано как «на руки» — не требует пересчёта. Это верхний квартиль рынка для Senior Frontend в РФ.
**Вывод:** Компенсация объективно отличная — единственный по-настоящему сильный сигнал в этой вакансии. Но она предлагается за уровень (10 лет, архитектурная ответственность на масштабе целой платформы), которого у кандидата нет. Высокая компенсация не компенсирует критический разрыв по требуемому опыту — наоборот, обычно означает, что порог скрининга будет жёстким.
---
## E) План персонализации
Персонализация CV/резюме под ЭТУ конкретную вакансию **не рекомендуется** — при разрыве в 8+ лет опыта переработка резюме не изменит исход скрининга, а формулировки, пытающиеся визуально «дотянуть» кандидата до Tech Lead уровня, были бы недобросовестными. Если кандидат всё же хочет попробовать (например, ради нетворкинга с компанией), единственная честная тактика:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Cопроводительное письмо | Обычно адресуется под заявленную роль | Прямо написать: «Вижу, что порог для этой роли — 10 лет, у меня 1.7 года, но стек (Vue 3, TS, архитектурный вклад в виде RBAC) может быть релевантен для младшей открытой позиции у вас же» | Честность повышает шанс, что рекрутер перенаправит на подходящую по уровню роль, вместо автоотказа |
| 2 | Summary (PDF) | Общий акцент на Vue3 + Flutter dual-track | Убрать Flutter полностью, вести только Vue 3 + TS + архитектурный вклад (RBAC) | Роль про enterprise frontend-архитектуру, Flutter — шум |
---
## F) План собеседований
Учитывая крайне низкую вероятность прохождения скрининга на ЭТУ конкретную позицию, полный банк STAR+R историй не строится избыточно — ниже 3 наиболее релевантные для случая, если разговор всё же случится (например, по редиректу на Middle-позицию той же компании):
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Архитектурный вклад / понимание архитектуры ПО | RBAC-модель в ЕКОМ | Не было модели разграничения прав между отделами | Спроектировать и объяснить бэкенду ролевую модель | Использовала ИБ-образование, спроектировала роли/группы/права | Внедрено разграничение по отделам | Разрыв между «архитектурный вклад на уровне модуля» и «архитектура целой платформы с 10-летней историей» — честно объяснять масштаб, не преувеличивать |
| 2 | Организация процессов разработки | Feature Branching + обучение коллеги | Хаотичные релизы, зависшие фичи | Внедрить Git Flow, обучить команду | Обучила коллегу с 11-летним стажем, ввела процесс | Стабильные еженедельные релизы | Процессные изменения масштабируются лучше, чем кажется на первый взгляд для «младшего» разработчика |
| 3 | Тестирование (модульные и визуальные тесты) | Vitest + Storybook на ЕКОМ, Playwright на РМК | Не было систематического тестового покрытия | Внедрить unit- и e2e-тесты | Настроила Vitest для компонентов, Storybook для визуальной документации, Playwright для e2e | Повышенная стабильность релизов | Тестовая культура — то немногое, что реально сопоставимо с ожиданиями Senior-роли |
**Рекомендуемый кейс:** RBAC-модель в ЕКОМ — единственный проект с архитектурным весом, уместный в разговоре о Tech Lead-компетенциях, даже с оговоркой о масштабе.
**Вопросы-ловушки:**
- «У вас 1.7 года опыта, а мы ищем 10 лет — почему откликнулись?» → честно: «Понимаю разрыв, увидела вакансию и вашу же Middle-позицию — интересна компания и стек, готова обсудить формат, который реально соответствует моему уровню».
- «Готовы к переезду в СПб?» → «Нет, переезд и командировки не рассматриваю. Готова обсуждать удалённый или гибридный формат» (вакансия это позволяет — конфликта нет).
---
## G) Проверка легитимности вакансии (Posting Legitimacy)
**Assessment: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Опубликована 2026-07-07 (сегодня), `check-liveness.mjs` вернул `uncertain` (контент присутствует, но явная кнопка отклика не распознана автоматически) | Neutral |
| Качество описания | JD содержит конкретный технологический контекст (переход GWT→TypeScript/React, стек Gradle/GitLab CI/CD/Jest/Docker/PostgreSQL), конкретные обязанности и бенефиты — не шаблонный текст | Positive |
| Внутренние противоречия | Требование 10 лет опыта для роли, которая одновременно описывается довольно операционно (написание тестов, улучшение внутренней среды разработки) — не редкость для Tech Lead, но заявленный порог стажа необычно высок даже для этого уровня | Neutral |
| Company Hiring Signals | WebSearch нашёл смешанные отзывы о работодателе (antijob.net, pravda-sotrudnikov.ru) — упоминания сверхурочной работы, зарплаты ниже среднего для стажёров, конфликтов с руководством. **Важная оговорка:** часть найденных отзывов относится к разным юрлицам/городам с похожим названием «Бизнес Технологии» (Иркутск, Москва, СПб) — нет 100% уверенности, что все отзывы относятся именно к этому юрлицу-работодателю (Global-FrameWork, СПб). Позитивные отзывы (сильная техническая команда, лояльность к начинающим) также присутствуют | Concerning/Mixed |
| Reposting Detection | По `data/scan-history.tsv` — эта конкретная Senior/Tech Lead вакансия появилась впервые сегодня; но у того же работодателя в тот же день зафиксирована ОТДЕЛЬНАЯ вакансия «Middle frontend-разработчик» (другой URL) — признак активного параллельного найма на разные уровни, не признак повторного размещения одной и той же роли | Neutral/Positive |
| Role Market Context | Enterprise-платформа с историей (Global-FrameWork в реестре российского ПО) — устоявшийся продукт, роль Tech Lead для такой платформы объективно требует высокого стажа; требование не выглядит искусственным | Positive |
**Context Notes:** Компания реальна и давно на рынке (продукт в реестре российского ПО, несколько офисов). Основной риск — не «вакансия-призрак», а несоответствие уровня кандидата требуемому. Отзывы о работодателе неоднозначны и не полностью верифицируемы для конкретно этого юрлица/города — не делать окончательных выводов о токсичности культуры без дополнительного уточнения на собеседовании.
---
## Извлечённые ключевые слова
Frontend, Senior, Tech Lead, HTML, CSS, JavaScript, TypeScript, React, Vue, Angular, Global-FrameWork, GWT, архитектура ПО, Gradle, GitLab CI/CD, Jest, Docker, PostgreSQL, модульные тесты, визуальные тесты, code review, ДМС, Санкт-Петербург, гибкий график
---
## Итоговая рекомендация
**Балл 1.5/5 — существенно ниже порога 4.0/5 (AGENTS.md, Ethical Use).** Настоятельно рекомендуется **не откликаться** на эту конкретную позицию:
1. Разрыв по стажу (10 лет заявлено vs ~1.7 года у кандидата) — это не пробел, который закрывается формулировкой или проектом, а структурный несоответствие уровня.
2. Компенсация отличная (300–350 тыс. ₽ на руки, выше медианы рынка), но она платится именно за 10-летний опыт и архитектурную ответственность масштаба платформы — переоценивать шансы не стоит.
3. Более разумный шаг — если компания интересна, рассмотреть параллельно открытую у неё же Middle-вакансию (`hh.ru/vacancy/134837105`, вне мандата данного отчёта).
**Если кандидат всё же хочет двигаться дальше:** только через прямое честное письмо рекрутеру с указанием реального стажа и просьбой рассмотреть для соответствующей по уровню открытой позиции — не пытаться представить себя как Tech Lead-кандидата.
+136
View File
@@ -0,0 +1,136 @@
# Оценка: ИП Каржева Маргарита Кирилловна — Frontend-разработчик
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — primary archetype (не подтверждено стеком из-за ограничения данных, см. ниже)
**Балл:** 2.6/5
**URL:** https://hh.ru/vacancy/134929876
**Legitimacy:** Proceed with Caution
**PDF:** не сгенерирован (балл < 3.0, порог для авто-PDF)
---
## Ограничение данных (читать перед остальными блоками)
**WebFetch дважды подряд не смог извлечь содержимое вакансии** — оба раза страница hh.ru вернула только ошибку рендеринга («Произошла ошибка. Попробуйте перезагрузить страницу») без текста JD, зарплатной вилки, требований или описания. `check-liveness.mjs` вернул статус `uncertain` («content present but no visible apply control found»), то есть страница технически существует и отдаёт какой-то контент, но не тот, что нужен для извлечения. Playwright недоступен для этого воркера (shared-ресурс между параллельными агентами, согласно AGENTS.md).
Ниже используются **только** предварительно верифицированные факты (переданы оператором пайплайна как результат более раннего авторизованного поиска на hh.ru): компания, роль, город, формат и зарплата. Требования к стеку, стажу, обязанностям и бенефитам **не подтверждены текстом самой вакансии** и не реконструируются из внешних источников (WebSearch по имени ИП не дал релевантных результатов — только тёзки с похожим ФИО в других сферах деятельности). Все оценки ниже помечены как основанные на ограниченных данных.
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend Developer — предполагается по заголовку роли, стек НЕ подтверждён |
| Domain | Не определено — нет описания сферы деятельности ИП |
| Function | Build (предположительно, по заголовку роли) |
| Seniority | Не указано в доступных данных; заголовок без указания уровня (не Junior/Middle/Senior explicitly) |
| Формат работы | Удалённо (подтверждено) |
| Размер команды | Не указано — работодатель ИП (индивидуальный предприниматель), что обычно означает очень маленькую команду или единоличный найм под конкретный проект |
| Оформление | Не указано в доступных данных. Найм от ИП (не ООО) обычно означает договор ГПХ или самозанятость, а не оформление по ТК РФ — **не подтверждено, требует уточнения** |
| Локация | Москва (для полностью удалённой роли локация работодателя не создаёт конфликта с политикой кандидата) |
| TL;DR | Frontend-вакансия от ИП с зарплатой в целевом диапазоне кандидата, но содержание JD технически не извлекается — оценка построена почти полностью на непроверенных или неполных данных. |
**Vibe команды:** Недостаточно данных из JD для какого-либо качественного вывода — текст вакансии недоступен. Не выдумывать позитивный или негативный вайб.
---
## B) Совпадение с CV
**Из-за отсутствия текста JD таблица совпадений не может быть построена по требованиям вакансии.** Ниже — только общее позиционирование кандидата, применимое к любой роли уровня «Frontend-разработчик» без уточнённой сеньорности:
| Общий профиль роли (по заголовку) | Соответствие cv.md |
|---|---|
| Frontend-разработчик (без уточнения стека) | Кандидат — Vue 3 (Composition API, TypeScript, Pinia) в продакшене на «Здесь ЕКОМ», ~1 год; также РМК (Vue 3, WebSocket) ~6 месяцев |
| Уровень (не указан) | Общий коммерческий стаж ~1 год 8 месяцев — соответствует скорее Junior→Middle позиции без явного грейда |
### Пробелы
1. **Полное отсутствие текста JD** — hard blocker для качественной оценки. Стратегия закрытия: не строить резюме/сопроводительное под конкретные ключевые слова этой вакансии (нет источника), использовать общий Vue 3 + TS профиль кандидата и запросить у рекрутера полный текст вакансии до подготовки отклика.
2. **Оформление (ТК РФ vs ГПХ/самозанятость) не подтверждено** — рекомендация: уточнить явно до отклика, поскольку ГПХ/самозанятость даёт меньше защиты (см. `modes/ru/_shared.md`, раздел «Оформление трудовых отношений»).
---
## C) Уровень и стратегия
**Уровень в JD:** не указан явно (общий заголовок «Frontend-разработчик» без грейда).
**Естественный уровень кандидата:** Junior→Middle (переходный) для архетипа Frontend (Vue.js).
Без указания грейда в заголовке нет смысла строить план «продать сеньорность» — риск здесь другой: не переоценка уровня, а неопределённость всей вакансии. Рекомендация: при первом контакте с рекрутером задать прямой вопрос об уровне, стеке и оформлении, прежде чем инвестировать время в подготовку тайлорированного резюме.
---
## D) Компенсация и спрос
**Зарплата в вакансии (по верифицированным данным):** 130 000–150 000 ₽/мес, **до вычета налогов (gross)**.
**Пересчёт в net:** `net ≈ gross × 0.87` → примерно **113 100–130 500 ₽/мес на руки** (стандартная ставка НДФЛ 13%, реальная ставка может отличаться).
**Сравнение с таргетом кандидата:** Таргет — 100 000–120 000+ ₽/мес на руки (`config/profile.yml`). Расчётный net-диапазон (≈113–130 тыс. ₽) **попадает в целевой диапазон или немного превышает его** — компенсация адекватна цели кандидата, при условии, что расчёт НДФЛ верен и нет скрытых вычетов (ИП-наниматели иногда используют схемы с самозанятостью/ГПХ, где эффективная налоговая нагрузка иная — см. пробел выше).
**Рыночные данные (WebSearch, RU market, июль 2026):** Для Middle Frontend (Vue.js) в Москве рыночная медиана — примерно 180 000–240 000 ₽/мес (с учётом отставания Vue от React на 8-12%). Значение 130–150 тыс. ₽ gross **ниже этой медианы**, что соответствует скорее Junior/раннему Middle уровню, а не полноценному Middle — в целом реалистично для стажа кандидата.
**Вывод:** Компенсация в целом соответствует уровню кандидата и её целевому диапазону, но абсолютное значение ниже рыночной медианы для полноценного Middle — типично для входного/раннего уровня, что логично согласуется с фактическим стажем кандидата.
---
## E) План персонализации
Из-за отсутствия JD полноценный план персонализации построить нельзя. Рекомендуемый общий подход, если кандидат решит откликнуться:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary (PDF) | Общий акцент на Vue3 + Flutter dual-track | Использовать базовую версию с акцентом на Vue 3 + TS + Pinia (без тайлоринга под неизвестный JD) | Нет ключевых слов JD для точной подгонки — тайлоринг без данных рискует быть контрпродуктивным |
| 2 | Сопроводительное письмо | — | Прямо запросить у работодателя полный текст вакансии/уточнение по стеку, уровню и оформлению до детального отклика | Снижает риск потратить время на нерелевантную заявку |
---
## F) План собеседований
Банк историй STAR+R для этой вакансии не строится специально из-за отсутствия конкретных требований JD — при реальном контакте с рекрутером использовать общий банк историй кандидата (см. `interview-prep/story-bank.md`), в первую очередь:
| # | Общая тема (без привязки к конкретному требованию JD) | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Vue 3 в продакшене / greenfield-разработка | «Здесь ЕКОМ» с нуля | Не было внутренней системы управления заказами/логистикой | Разработать фронтенд с нуля | Спроектировала архитектуру на Vue 3, Composition API, Pinia | Система используется логистикой, техподдержкой, клиентским отделом | Способность единолично довести greenfield-продукт до продакшена — сильный сигнал для любой Frontend-роли независимо от деталей JD |
| 2 | Диагностика продакшн-багов | Баг «Избранное» в «Здесь Аптека» | Жалобы пользователей на не открывающийся раздел | Найти причину без готового отчёта QA | Диагностировала: товары грузились одним запросом, реализовала постраничную загрузку | Жалобы прекратились | Проактивная диагностика — универсальный сигнал сеньорности вне зависимости от стека роли |
**Рекомендуемый кейс:** «Здесь ЕКОМ» — по умолчанию сильнейший проект для любой Frontend-вакансии без специфических требований.
**Вопросы-ловушки:**
- «Расскажите про оформление и стек этой роли» → у кандидата тот же вопрос к рекрутеру — предложить уточнить взаимно в начале разговора.
- «Готовы к переезду?» → «Нет, переезд и командировки не рассматриваю; вакансия удалённая, так что это не должно быть проблемой».
---
## G) Проверка легитимности вакансии (Posting Legitimacy)
**Assessment: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Не определена — WebFetch дважды вернул страницу ошибки без даты, `check-liveness.mjs` вернул `uncertain` | Neutral/Concerning (из-за недоступности данных, не по содержанию) |
| Качество описания | Недоступно — текст JD не извлекается ни одним из доступных инструментов этого воркера | Concerning (по причине недоступности данных) |
| Тип работодателя | Найм оформлен от физического лица (ИП), а не юрлица (ООО/АО) — это не редкость на hh.ru (частые случаи: небольшой бизнес, подрядчик-посредник, личный проект), но снижает уверенность в масштабе и стабильности работодателя по сравнению с корпоративным нанимателем | Neutral/Concerning |
| Company Hiring Signals | WebSearch по ФИО ИП не дал релевантных результатов — ни отзывов, ни истории найма, ни признаков связанного бизнеса. Найдены только тёзки (другие лица с похожим ФИО) без отношения к этой вакансии | Neutral (отсутствие данных, не негативный сигнал сам по себе) |
| Reposting Detection | По `data/scan-history.tsv` — первое появление этого URL/роли в истории сканирования | Neutral |
| Role Market Context | Обычная, часто встречающаяся роль (Frontend-разработчик, удалённо) — не вызывает подозрений по типу роли | Neutral/Positive |
**Context Notes:** Основная неопределённость здесь техническая (страница не рендерится через WebFetch), а не поведенческая — нет явных признаков фиктивной вакансии, но и подтвердить легитимность нечем. Перед откликом настоятельно рекомендуется вручную открыть вакансию в браузере (у кандидата), чтобы прочитать полный текст и подтвердить актуальность, прежде чем инвестировать время в подготовку резюме.
---
## Извлечённые ключевые слова
Frontend-разработчик, удалённо, Москва (ограниченный набор — JD недоступен для полноценного извлечения keywords)
---
## Итоговая рекомендация
**Балл 2.6/5 — ниже порога 4.0/5 (AGENTS.md, Ethical Use).** Рекомендуется **не откликаться в текущем виде** — не столько из-за плохого содержания вакансии (оно неизвестно), сколько из-за критического недостатка данных для принятия обоснованного решения:
1. Текст вакансии дважды не извлёкся через WebFetch — неизвестны реальные требования к стеку, стажу и обязанностям.
2. Компенсация (расчётный net ≈113–130 тыс. ₽) соответствует таргету кандидата — это единственный надёжно подтверждённый позитивный сигнал.
3. Найм от ИП, а не от компании — не блокер сам по себе, но требует дополнительной проверки оформления (ТК РФ/ГПХ/самозанятость) перед откликом.
**Рекомендация кандидату:** вручную открыть вакансию в браузере, прочитать полный текст, и только после этого принимать решение об отклике — либо запросить у пайплайна повторную проверку через Playwright в отдельной непараллельной сессии.
+152
View File
@@ -0,0 +1,152 @@
# Оценка: Dev Company 23 — Frontend разработчик Senior
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — primary archetype (сильное техническое совпадение, разрыв по заявленному стажу)
**Балл:** 2.4/5
**URL:** https://hh.ru/vacancy/134920082
**Legitimacy:** Proceed with Caution
**PDF:** не сгенерирован (балл < 3.0, порог для авто-PDF)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend Developer (Vue.js) — primary; стек — точное попадание в архетип кандидата |
| Domain | Frontend (SPA-приложения на Vue 3, бизнес-логика на TypeScript) |
| Function | Build + частично Mentor (код-ревью, менторство junior-разработчиков) |
| Seniority | **Senior**: заявлено 4+ года опыта с Vue.js и 6+ лет общего фронтенд-опыта |
| Формат работы | Полностью удалённо, из любой точки; график 5/2, 8-часовой рабочий день |
| Размер команды | Не указано явно |
| Оформление | Трудовой договор ИЛИ договор ГПХ (кандидату предлагается выбор — обычно означает вариативность в зависимости от статуса кандидата: самозанятый/ИП/физлицо) |
| Локация | Москва (юридически), но роль полностью удалённая — конфликта с политикой кандидата «Тула, без переезда» нет |
| TL;DR | Технически один из самых точных Vue 3/TS/Pinia матчей среди всех рассмотренных вакансий, с отличной компенсацией (от 270 тыс. ₽/мес до вычета налогов) и полностью удалённым форматом — но заявленный стаж (4-6 лет) более чем вдвое превышает фактический опыт кандидата (~1.7 года), что создаёт реальный риск отсева на этапе скрининга. |
**Vibe команды** (качественный сигнал, не входит в числовую оценку): Судя по формулировке JD — «команда, которая ценит экспертизу, инициативу и желание делать крутые продукты» — явный акцент на инициативе и экспертизе, что можно трактовать как сигнал ценности автономии разработчиков. Роль явно предполагает участие в архитектурных решениях («участие в принятии архитектурных решений фронтенда») — прямое упоминание права голоса в тексте. Упоминание code review и менторства junior-разработчиков — сигнал в пользу культуры код-ревью. Прямых упоминаний гибкого графика сверх «5/2, 8 часов» нет, хотя формат полностью удалённый «из любой точки» сам по себе высокая степень гибкости.
---
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| Vue 3 (Composition API) | Прямое совпадение: «Здесь ЕКОМ» — фронтенд с нуля на Vue 3, Composition API |
| TypeScript, сложная бизнес-логика | Прямое совпадение: ЕКОМ — TS в продакшене, сложная логика фильтрации заказов по 9 параметрам |
| Pinia (state management) | Прямое совпадение: Pinia указана в стеке ЕКОМ |
| Оптимизация производительности | Частичное совпадение: постраничная загрузка в «Избранное» («Здесь Аптека») как пример оптимизации, но не на уровне SPA-архитектуры целиком |
| Участие в архитектурных решениях фронтенда | Совпадение: спроектировала RBAC-модель авторизации в ЕКОМ, самостоятельно, с презентацией бэкенд-команде |
| Код-ревью, менторство junior | Частичное совпадение: обучила коллегу с 11-летним стажем работе с Git/Feature Branching — менторский опыт есть, но не формализованное код-ревью на постоянной основе |
| JavaScript, HTML5, UX/HTML | Прямое совпадение (раздел «Навыки») |
| Nuxt | **Пробел** — Nuxt указан в cv.md только в разделе «Быстро осваиваю», нет продакшн-опыта |
| **4+ года опыта с Vue.js, 6+ лет общий фронтенд-опыт** | **Существенный пробел.** У кандидата ~1 год работы с Vue 3 (ЕКОМ) + ~6 месяцев (РМК) = менее 1.7 лет коммерческого опыта в целом, из них с Vue — даже меньше формально заявленного порога |
### Пробелы
1. **Стаж (4-6 лет vs ~1.7 года)** — hard blocker для формального ATS/HR-фильтра, хотя не невозможный для прохождения при сильном техническом собеседовании.
- Может ли кандидат продемонстрировать смежный опыт? Да — greenfield-разработка ЕКОМ с нуля, самостоятельное архитектурное решение (RBAC), одновременное ведение 3 продуктов — это глубина ответственности, которая частично компенсирует нехватку календарного стажа.
- Портфолио-проект, закрывающий пробел? Нет отдельного демо.
- Конкретный план: в сопроводительном письме явно предложить проверку через тестовое задание/техническое интервью вместо формального отсева по годам — «не соответствую по формальному стажу, но стек и глубина ответственности за ЕКОМ (greenfield с нуля) могут быть интересны для технической оценки».
2. **Nuxt** — nice-to-have (упомянут в списке требуемых навыков, но не выделен как обязательный). Стратегия: честно отметить «есть Nuxt в списке инструментов для быстрого освоения, готова закрыть за короткий срок при необходимости» — не заявлять продакшн-опыт, которого нет.
---
## C) Уровень и стратегия
**Уровень в JD:** Senior, формальный порог 4-6 лет опыта.
**Естественный уровень кандидата для архетипа Frontend (Vue.js):** Junior→Middle (переходный).
**План «продать senior без обмана»:**
- Вести с масштабом ответственности, а не с годами: «спроектировала и реализовала с нуля фронтенд системы управления заказами и логистикой для сети ~1200 аптек, включая архитектурное решение по авторизации (RBAC)».
- RBAC как дифференциатор — редкая для грейда/стажа инициатива, прямое попадание в требование «участие в архитектурных решениях».
- Честно обозначить фактический стаж (~1.7 года) без попытки скрыть или размыть цифру — контраст между малым стажем и объёмом ответственности работает в пользу кандидата только при честной подаче.
**План «если понизят уровень»:**
- Принять понижение до Middle **только** при сохранении компенсации в диапазоне ≥ таргета кандидата (100 000+ ₽/мес на руки) — учитывая, что даже нижняя граница этой вакансии (270 тыс. ₽ до вычета ≈ 235 тыс. ₽ на руки после НДФЛ) существенно выше таргета, есть большой запас для переговоров даже при понижении грейда.
- Договориться о пересмотре через 6 месяцев с конкретными критериями (закрытие архитектурных задач без сопровождения сеньора, полноценное код-ревью на постоянной основе).
---
## D) Компенсация и спрос
**Зарплата в вакансии:** от 270 000 ₽/мес, **до вычета налогов (gross)**, верхняя граница не указана.
**Пересчёт в net:** `net ≈ gross × 0.87` → от **≈234 900 ₽/мес на руки** (нижняя граница; верхняя неизвестна).
**Рыночные данные (WebSearch, RU market, июль 2026):**
| Источник | Данные |
|---|---|
| Senior Frontend, Москва (медиана, hh.ru, февраль 2026) | 287 500 ₽/мес |
| Senior Vue Developer (широкий диапазон) | 480 000–650 000 ₽/мес для сильных специалистов |
| Vue vs React | Vue-разработчики в среднем получают на 8-12% меньше React-специалистов того же грейда |
**Оценка:** Нижняя граница вилки (270 тыс. gross ≈ 235 тыс. net) заметно **выше** таргета кандидата (100 000–120 000+ ₽/мес на руки) и близка к рыночной медиане для формального Senior. Даже если реальный оффер окажется на нижней границе вилки из-за несоответствия по годам стажа, компенсация всё равно останется существенно выше целевого диапазона кандидата.
**Вывод:** Компенсация одна из сильнейших сторон этой вакансии — единственный вопрос в том, пройдёт ли кандидат формальный отсев по годам стажа до того, как компания увидит реальную глубину опыта.
---
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary (PDF) | Общий акцент на Vue3 + Flutter dual-track | Для ЭТОЙ вакансии — вести исключительно с Vue 3 + Composition API + TS + Pinia, убрать Flutter | Роль чисто Frontend Vue Senior, Flutter не релевантен и отвлекает от сильного технического совпадения |
| 2 | Опыт — заголовок роли | «Frontend/Flutter-разработчик» | Показать как «Frontend-разработчик (Vue 3 / TypeScript)» | Прямое совпадение с точным заголовком роли повышает ATS keyword-match |
| 3 | Проектные буллеты | RBAC упомянут как один из пунктов | Вынести архитектурное решение (RBAC) на первую строку под ЕКОМ — прямое попадание в требование «участие в архитектурных решениях» | Компенсирует формальный пробел по стажу через демонстрацию реальной архитектурной ответственности |
| 4 | Ключевые слова | Vue 3, TS, Pinia уже есть | Явно добавить «Composition API», «код-ревью», «менторство» (обучение коллеги с 11-летним стажем — честный пример менторства) | Прямое совпадение с формулировками JD («код-ревью и менторство junior») |
| 5 | Сопроводительное письмо | — | Явно и честно указать разрыв по годам стажа и предложить решение через техническое собеседование/тестовое задание | Честность повышает доверие рекрутера при формальном несоответствии критериям |
---
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Участие в архитектурных решениях фронтенда | RBAC-модель в ЕКОМ | Не было модели разграничения прав между отделами (логистика/заказы) | Спроектировать и объяснить бэкенду ролевую модель авторизации | Использовала ИБ-образование, спроектировала роли/группы/права, презентовала бэкенд-команде | Внедрено разграничение по отделам, объяснено и принято командой | Архитектурная ответственность не всегда пропорциональна годам стажа — важно уметь показать это прямо, не извиняясь за малый стаж |
| 2 | Сложная бизнес-логика на TypeScript | Список заказов с фильтрацией по 9 параметрам | Неудобные таблицы 1С не позволяли эффективно отслеживать проблемные заказы | Спроектировать и реализовать интерфейс с множественной фильтрацией на TS | Реализовала фильтрацию по 9 параметрам, заменив legacy-инструмент | Используется логистикой, клиентским отделом, техподдержкой и разработчиками | Сложность бизнес-логики измеряется не только объёмом кода, но и числом заинтересованных отделов, которые полагаются на результат |
| 3 | Код-ревью / менторство junior | Обучение коллеги системе версионирования | Коллега с 11-летним стажем не работал с Feature Branching, хаотичные релизы | Обучить и внедрить процесс версионирования | Обучила коллегу, внедрила Git Flow в GitLab | Команда перешла на стабильные еженедельные релизы | Менторство «наоборот» (обучение более опытного коллеги новому инструменту) — сильный сигнал уверенности в экспертизе, несмотря на меньший общий стаж |
| 4 | Оптимизация производительности | Диагностика и фикс бага «Избранное» | Раздел не открывался — все товары грузились одним запросом | Найти причину и реализовать постраничную загрузку | Диагностировала проблему самостоятельно, реализовала pagination | Жалобы пользователей прекратились | Оптимизация производительности начинается с точной диагностики, а не только с готовых паттернов |
| 5 | Работа с state management (Pinia) | График курьеров на базе vue-cal | Расписание вносилось вручную SQL-запросами разработчиков по заявке логистики | Спроектировать интерфейс drag-and-drop с использованием Pinia для состояния | Реализовала календарь на vue-cal с управлением состоянием через Pinia | Логистика полностью самостоятельно управляет графиком без участия разработчиков | Grand-scale автономизация процесса — показатель того, что решение снимает нагрузку с целой команды, а не только с одного пользователя |
**Рекомендуемый кейс:** «Здесь ЕКОМ» целиком — greenfield-продукт, максимально близкий по масштабу и характеру задач (Vue 3 SPA, сложная бизнес-логика, архитектурные решения) к описанной в JD роли.
**Вопросы-ловушки:**
- «Мы ищем 4-6 лет опыта, у вас меньше 2 — почему претендуете на Senior?» → честно: «Формально меньше — 1.7 года, но за это время самостоятельно довела greenfield-продукт до продакшена, включая архитектурное решение (RBAC), которое обычно не доверяют разработчику с таким стажем. Готова подтвердить это на техническом собеседовании».
- «Есть опыт с Nuxt?» → честно: «Продакшн-опыта нет, но Nuxt в списке инструментов, которые быстро осваиваю; Vue 3 + Composition API — основной стек последний год».
- «Почему готовы работать по ГПХ, если это возможно?» → уточнить у рекрутера условия и разницу в защите (ГПХ vs трудовой договор) до согласия, не соглашаться вслепую.
---
## G) Проверка легитимности вакансии (Posting Legitimacy)
**Assessment: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Опубликована 2026-07-07 (сегодня), кнопка отклика активна («Apply button active» по данным WebFetch) | Positive |
| Качество описания | Конкретный стек (Vue 3 Composition API, TypeScript, Pinia, Nuxt), конкретные обязанности (архитектурные решения, код-ревью, менторство), явно описан формат работы и график — не шаблонный/размытый текст | Positive |
| Внутренние противоречия | Требование 4+ года Vue.js специфично — Vue 3 с Composition API как мейнстрим-стек существует не так давно (Vue 3 стабильный релиз — 2020), поэтому формальные «4+ года именно с Vue» физически предполагают опыт ещё с Vue 2/переходного периода — не противоречие, но стоит уточнить, что именно засчитывается | Neutral |
| Company Hiring Signals | Название «Dev Company 23» — WebSearch дал только частичное совпадение с другой компанией («Компания 23 программиста», Бердск/Новосибирск) — **связь не подтверждена**, это может быть просто похожее название без отношения к текущей вакансии. Прямых новостей о сокращениях/заморозке найма не найдено | Neutral (недостаточно данных для уверенного вывода) |
| Reposting Detection | По `data/scan-history.tsv` — первое появление этой вакансии/URL в истории сканирования | Neutral |
| Role Market Context | Полностью удалённая Senior Frontend Vue-роль с конкурентной компенсацией — распространённый и обычно заполняемый тип вакансии (4-8 недель), не вызывает подозрений | Neutral/Positive |
**Context Notes:** Общее впечатление о вакансии положительное с точки зрения качества текста и активности отклика — риск здесь не в «вакансии-призраке», а в формальном несоответствии заявленному стажу. Название компании не удалось однозначно идентифицировать во внешних источниках (возможно, малоизвестная или недавно зарегистрированная компания) — рекомендуется уточнить юридическое название работодателя до отклика.
---
## Извлечённые ключевые слова
Vue 3, Composition API, TypeScript, Pinia, Nuxt, JavaScript, HTML5, UX/HTML, SPA, архитектурные решения фронтенда, код-ревью, менторство, оптимизация производительности, удалённая работа, ГПХ, трудовой договор, Senior Frontend
---
## Итоговая рекомендация
**Балл 2.4/5 — ниже порога 4.0/5 (AGENTS.md, Ethical Use).** Рекомендуется **не откликаться в текущем виде без явного уточнения условий отбора**, по совокупности причин:
1. Разрыв по стажу (4-6 лет заявлено vs ~1.7 года у кандидата) — реальный риск отсева на этапе ATS/HR-скрининга, несмотря на очень сильное техническое совпадение стека (Vue 3 + Composition API + TS + Pinia — почти идеальный матч).
2. Компенсация отличная (от 270 тыс. ₽ до вычета, ≈235 тыс. ₽+ на руки) — существенно выше таргета кандидата, что делает вакансию привлекательной, если разрыв по стажу удастся преодолеть на этапе собеседования.
3. Компания не идентифицирована однозначно во внешних источниках — рекомендуется уточнить юридическое название и репутацию до вложения времени в подготовку.
**Если кандидат всё же хочет откликнуться:** делать это с максимально честной и прямой подачей разрыва по стажу, предлагая техническое собеседование или тестовое задание как способ компенсировать формальное несоответствие критериям — при полностью удалённом формате риск для кандидата минимален (нет конфликта с локационной политикой).
+138
View File
@@ -0,0 +1,138 @@
# Оценка: Sakura Games — Fullstack Developer (Node.js/TypeScript и React/Next.js)
**Дата:** 2026-07-07
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent fit (стек роли — React/Next.js, а не Vue; более низкое совпадение архетипа)
**Балл:** 1.9/5
**URL:** https://hh.ru/vacancy/134915047
**Legitimacy:** Proceed with Caution
**PDF:** не сгенерирован (балл < 3.0, порог для авто-PDF)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Fullstack Developer (Vue + Node.js) — ближайший архетип кандидата, но требуемый стек — **React/Next.js**, не Vue; это существенно снижает fit по сравнению с типичным adjacent-случаем |
| Domain | Fullstack — интерактивное веб-приложение (скоринг, прогресс-трекинг, лидерборды, аналитика) для игровой/edutainment компании |
| Function | Build (полный цикл: frontend + лёгкий backend + деплой) |
| Seniority | 6+ лет опыта заявлено |
| Формат работы | Полностью удалённо, гибкий график без учёта рабочего времени |
| Размер команды | «Небольшие, дружелюбные scrum-команды» |
| Оформление | Проектная/контрактная работа — 3-6 месяцев с возможным продлением (не постоянная позиция) |
| Локация | Кипр (юридический адрес компании); роль удалённая — прямого конфликта с политикой кандидата «Тула, без переезда» нет, но остаётся открытым вопрос оформления для сотрудника из РФ (валюта, налоговый резидент, банковские ограничения — не указано в JD) |
| TL;DR | Проектная fullstack-роль с интересным продуктом (edutainment/игровой сервис) и удобным графиком, но требуемый стек — React/Next.js, а не Vue, что означает отсутствие прямого технического совпадения; заявленный стаж (6+ лет) намного превышает фактический (~1.7 года); зарплата не раскрыта; формат — временный контракт, а не постоянная позиция. |
**Vibe команды** (качественный сигнал, не входит в числовую оценку): JD явно упоминает «no bureaucracy or micromanagement» и «flexible scheduling without time tracking» — сильные сигналы автономии и минимума бюрократии. «Small, friendly scrum teams» указывает на плоскую структуру. Явных упоминаний менторства, код-ревью или грейдовой сетки роста нет — рекомендуется уточнить на собеседовании, так как это проектная, а не долгосрочная позиция, где карьерный рост может быть менее релевантен.
---
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| React, Next.js | **Пробел.** У кандидата нет React/Next.js в cv.md — весь production frontend-опыт на Vue 3 |
| TypeScript | Прямое совпадение: TypeScript в продакшене (ЕКОМ) |
| HTML/CSS | Прямое совпадение (раздел «Навыки») |
| Node.js (backend) | Частичное совпадение: Node.js/Express/MongoDB — уровень «ознакомительный» (см. cv.md, раздел «Навыки») + учебный проект ТулГУ (серверная часть на Node.js) + хакатон (Express, Node.js, MongoDB) — не production-уровень |
| PostgreSQL | **Пробел** — не упомянуто в cv.md |
| Figma | **Пробел** — не упомянуто напрямую, но кандидат самостоятельно занимается UI/UX-редизайном без выделенного дизайнера (косвенно смежный навык, не то же самое, что владение Figma) |
| Аналитика/интеграция аналитических платформ | **Пробел** — не упомянуто в cv.md |
| 6+ лет опыта | **Существенный пробел.** ~1.7 года коммерческого опыта у кандидата |
| Scrum-команда | Частичное совпадение: участие в спринт-планировании, работа с бэклогом (ЕКОМ) |
### Пробелы
1. **React/Next.js вместо Vue** — это hard blocker в буквальном смысле: у кандидата нет ни одного производственного или учебного проекта на React в cv.md. Не выдумывать переносимый опыт как эквивалент — фреймворки различаются достаточно, чтобы формально не засчитываться как «тот же стек».
- Смежный опыт? Частично — глубокое владение Vue 3 Composition API и понимание компонентной архитектуры/реактивности переносимо на уровне концепций (component-based thinking, state management, реактивность), но не на уровне синтаксиса/экосистемы React.
- План закрытия: честно заявить об отсутствии React-опыта, но подчеркнуть перенос концепций (Vue Composition API → React Hooks — концептуально близкие модели), и указать готовность к быстрому онбордингу при наличии времени на изучение (нет обещания мгновенной продуктивности).
2. **Node.js backend на уровне production** — пробел от «ознакомительного» до «production-ready» fullstack. Стратегия: явно указать реальный уровень (учебный проект + хакатон), не завышать до продакшн-опыта.
3. **6+ лет опыта** — как и в других вакансиях этого пакета, hard blocker для формального скрининга.
4. **PostgreSQL, аналитические платформы** — nice-to-have пробелы, не блокеры сами по себе, но накапливаются вместе с остальными пробелами.
---
## C) Уровень и стратегия
**Уровень в JD:** формально не назван грейд, но заявлено 6+ лет опыта — что соответствует Senior уровню по факту.
**Естественный уровень кандидата для архетипа Fullstack (Vue + Node):** adjacent/stretch — у кандидата нет полноценного fullstack-опыта на production-уровне, только Vue-фронтенд + ознакомительный backend.
**План «продать senior без обмана»:** Не рекомендуется пытаться продать кандидата как соответствующего этой роли на уровне «сеньор fullstack с React». Разрыв здесь двойной — и по стажу (6 лет vs 1.7), и по стеку (React/Next.js vs Vue). Единственная честная позиция — представить кандидата как «сильного Vue-фронтендера с ознакомительным Node-backend опытом, готового к обучению React при наличии времени на онбординг» — но это, по сути, не соответствует запросу проектной роли, где онбординг-время обычно ограничено (3-6 месяцев контракт).
**План «если понизят уровень»:** Учитывая проектный (не постоянный) формат контракта и двойной разрыв (стек + стаж), реалистичного сценария «понижения грейда» здесь скорее нет — это вопрос принципиального технического несоответствия, а не переговоров об уровне.
---
## D) Компенсация и спрос
**Зарплата в вакансии:** не указана. JD упоминает «stable USD-denominated salary» (стабильная зарплата в долларах США), но конкретных цифр нет.
**Рыночные данные (WebSearch, RU market и общий контекст, июль 2026):** Прямых данных по зарплатам для проектных fullstack-ролей (React/Next + Node) в игровой/edutainment индустрии с оплатой в USD и релокацией найма из Кипра для специалистов из РФ не найдено. Общий рыночный ориентир для fullstack (Node + React) в РФ — сопоставим или чуть выше чистого frontend (Middle: ~180 000–250 000 ₽ gross; для международных проектных контрактов в USD диапазон может существенно отличаться в любую сторону).
**Оценка (gross/net):** Невозможно применить формулу `net ≈ gross × 0.87` — нет базовой цифры. Также неясно, будет ли зарплата облагаться российским НДФЛ при контракте с кипрским работодателем, или потребует иного налогового режима (самозанятость, ИП, зарубежный контракт физлица) — это открытый вопрос с юридическими последствиями, который нужно прояснить до отклика.
**Вывод:** Отсутствие конкретной цифры — существенный пробел в данных для оценки. Компания использует WebSearch-неверифицируемое международное позиционирование («USD-denominated»), что типично для игровых студий, нанимающих специалистов из разных стран, но не позволяет сравнить предложение с таргетом кандидата (100 000–120 000+ ₽/мес на руки) без уточнения.
---
## E) План персонализации
Учитывая фундаментальное несоответствие стека (React/Next.js vs Vue-специализация кандидата) и проектный формат, глубокая персонализация CV под эту конкретную вакансию **не рекомендуется** — риск не оправдан относительно затраченного времени. Если кандидат всё же хочет откликнуться:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary (PDF) | Общий акцент на Vue3 + Flutter dual-track | Акцент на переносимых fullstack-концепциях (компонентная архитектура, TypeScript, REST/WebSocket, Node.js/Express/MongoDB опыт) без преувеличения уровня | Честная подача снижает риск разочарования на техническом интервью |
| 2 | Сопроводительное письмо | — | Прямо обозначить отсутствие React-опыта и предложить объяснить, как концепции Vue Composition API переносятся на компонентное мышление в целом | Прозрачность — единственный этичный путь при таком уровне несоответствия |
---
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Fullstack-опыт (frontend + backend) | Хакатон TulaHack.Digital — «Книга рецептов» | Нужно было за ограниченное время сделать полноценное приложение с фильтрацией и личным кабинетом | Реализовать frontend (Vue 3, Ionic Capacitor) и backend (Express, Node.js, MongoDB) в сжатые сроки | Построила fullstack-приложение с нуля в команде на хакатоне | Работающий прототип с фильтрацией по ингредиентам и подсчётом калорий | Понимает базовый fullstack-цикл, но осознаёт разницу между хакатон-прототипом и production-fullstack-системой с реальной нагрузкой |
| 2 | Node.js/backend (учебный опыт) | Проект НИЦ «БиоХимТех» при ТулГУ | Нужен был программно-вычислительный комплекс с фронтендом и серверной частью | Реализовать фронтенд на Vue.js и часть серверной логики на Node.js | Проработала оба слоя приложения в течение 10 месяцев заказной разработки | Сдан рабочий комплекс контроля концентрации загрязняющих веществ | Ранний опыт показал интерес к полному циклу разработки, который затем сфокусировался на frontend в коммерческой работе |
| 3 | Компонентное мышление / архитектура (перенос на React, если потребуется) | RBAC-модель в ЕКОМ (Vue 3) | Не было модели разграничения прав между отделами | Спроектировать ролевую модель авторизации | Использовала ИБ-образование, спроектировала роли/группы/права | Внедрено разграничение по отделам | Архитектурное мышление (разделение ответственности, модели данных) переносимо между фреймворками — это стоит явно проговорить на интервью, если спросят про React |
| 4 | Автономная работа без микроменеджмента | Feature Branching + процессные инициативы | Хаотичные релизы, забытые приоритеты бэклога | Внедрить процесс и поднять вопрос о приоритизации перед руководством | Внедрила Git Flow, addressed backlog gaps proactively | Команда вернулась к целеполаганию на полгода/год, кандидат включена в спринт-планирование | Проактивность и самостоятельность в условиях слабой процессной структуры — прямое попадание в культуру «no micromanagement» |
**Рекомендуемый кейс:** Хакатон «Книга рецептов» — единственный проект кандидата, где фронтенд и бэкенд разрабатывались одновременно в сжатые сроки, ближе всего по духу к формату небольшой проектной fullstack-команды.
**Вопросы-ловушки:**
- «У вас нет React в резюме — как будете работать с Next.js?» → честно: «Действительно, весь production-опыт на Vue 3; концептуально компонентная модель и Composition API близки к React Hooks, но потребуется время на онбординг в конкретно эту экосистему — открыта обсудить, насколько это совместимо с проектными сроками».
- «Готовы к контракту 3-6 месяцев без гарантии продления?» — честный для себя вопрос кандидату перед откликом, не работодателю: стоит ли инвестировать время в неполное техническое совпадение ради временного контракта.
- «Зарплата в USD — есть ли вопросы по валюте/оформлению?» → уточнить у рекрутера механизм выплат и налоговые последствия для резидента РФ до обсуждения деталей роли.
---
## G) Проверка легитимности вакансии (Posting Legitimacy)
**Assessment: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | Опубликована 2026-07-07 (сегодня), кнопка отклика активна («Откликнуться» доступна) | Positive |
| Качество описания | Конкретные технические детали (React, Next.js, TypeScript, Node.js, PostgreSQL, Figma, аналитика), конкретное описание продукта (скоринг, прогресс-трекинг, лидерборды) — не шаблонный текст | Positive |
| Company Hiring Signals | WebSearch нашёл LinkedIn-профиль компании «Sakura Games» (edutainment-игры, 352 подписчика) — небольшая, но существующая компания. Более крупная «Sakura Game» (игровой паблишер) — судя по описанию, другая, не связанная компания; не путать. Никаких признаков сокращений или проблем с наймом не найдено, но и подробной информации о компании крайне мало | Neutral (малая компания, слабый онлайн-след — не редкость для нишевых edutainment-студий) |
| Reposting Detection | По `data/scan-history.tsv` — первое появление этой вакансии/URL в истории сканирования | Neutral |
| Role Market Context | Проектный/контрактный формат (3-6 месяцев с возможным продлением) — типичен для игровых студий, работающих над отдельными продуктами/фичами; не обязательно признак несерьёзности найма, но объективно более рискованный формат занятости, чем постоянная позиция | Neutral |
**Context Notes:** Компания выглядит небольшой и нишевой (edutainment-игры), с ограниченным онлайн-следом, что типично для малых стартапов такого профиля, а не обязательно признак фиктивности. Проектный формат контракта — это осознанный выбор бизнес-модели компании (вероятно, работа под конкретные игровые продукты/клиентов), а не red flag сам по себе, но кандидату стоит учитывать при сравнении с постоянными позициями.
---
## Извлечённые ключевые слова
Fullstack, Node.js, TypeScript, React, Next.js, PostgreSQL, Figma, аналитика, скоринг, лидерборды, прогресс-трекинг, scrum, удалённая работа, USD, гибкий график, edutainment, проектный контракт
---
## Итоговая рекомендация
**Балл 1.9/5 — существенно ниже порога 4.0/5 (AGENTS.md, Ethical Use).** Настоятельно рекомендуется **не откликаться** на эту вакансию:
1. Требуемый стек — React/Next.js, а не Vue — у кандидата нет ни одного проекта на React в cv.md; это не типичный «adjacent fit» fullstack-разрыв, а прямое несоответствие основного фреймворка.
2. Заявленный стаж (6+ лет) намного превышает фактический опыт кандидата (~1.7 года).
3. Зарплата не раскрыта — невозможно сравнить с таргетом кандидата.
4. Формат — временный проектный контракт (3-6 месяцев), а не постоянная позиция — дополнительный фактор риска при и без того слабом техническом совпадении.
**Если кандидат всё же хочет попробовать:** только с полностью честной подачей отсутствия React-опыта и явным вопросом о реалистичности онбординга в сжатые сроки проектного контракта.
+134
View File
@@ -0,0 +1,134 @@
# Оценка: Selecty — Senior Frontend Developer (Vue.js/Nuxt.js)
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — primary archetype, но заявленный уровень Senior
**Балл:** 2.0/5
**URL:** https://hh.ru/vacancy/134186766
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (Vue.js) |
| Domain | IT-аутстаффинг/подбор персонала — Selecty размещает специалистов на клиентских проектах (не собственный продукт) |
| Function | Build (конкретный клиентский проект не назван в JD) |
| Seniority | Senior, явно заявлено "5 лет опыта Frontend-разработки" |
| Формат работы | Полностью удалённо |
| Размер команды | Не указан |
| Оформление | Не указано явно в JD |
| Зарплата | Не указана |
| TL;DR | Полностью удалённая Senior-роль на Vue/Nuxt через аутстаффинг-агентство — стек совпадает почти идеально, но два заявленных требования (5 лет опыта и английский B2+) — жёсткие несовпадения с текущим профилем кандидата. |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| 5 лет опыта Frontend-разработки | ❌ **Пробел.** У кандидата ~1 год 8 месяцев непрерывного коммерческого опыта (с ноября 2024, «Здравсервис») + 10 месяцев заказной разработки в 2022 (ТулГУ) — итого не более ~2.5 лет суммарно, и точно не 5 лет в описанном формате |
| Vue 2/3 и Nuxt 2/3 коммерческий опыт | ⚠️ Vue 3 — прямое, сильное совпадение («Здесь ЕКОМ», «РМК»). **Nuxt — не в коммерческом стеке**; в CV указано только как «быстро осваиваю: Nuxt» (самозаявленная способность к обучению, не опыт) |
| JavaScript (ES6+) и TypeScript | ✅ Прямое совпадение — стек ЕКОМ включает TypeScript |
| Pinia state management | ✅ Прямое совпадение — Pinia в стеке ЕКОМ |
| REST API интеграция | ✅ Прямое совпадение (раздел «Сеть») |
| Unit- и E2E-тесты | ✅ Vitest (unit), Storybook, Playwright (E2E на РМК) |
| HTML/CSS, responsive, accessibility | ⚠️ Частичное — HTML5/CSS3 есть, но accessibility explicitly не упоминается в CV |
| **Английский B2+ (обязательно)** | ❌ **Пробел.** В CV указан уровень B1 |
**Пробелы:**
1. **Стаж (5 лет vs ~2.5 года суммарно, ~1.7 непрерывного)** — это hard blocker, явно сформулированный как численное требование в заголовке JD, а не косвенное ожидание.
- Может ли кандидат продемонстрировать смежный опыт? Частично — ведёт 3 продукта параллельно (ЕКОМ с нуля, РМК legacy, «Здесь Аптека»), это компенсирует "широтой", но не заменяет заявленные годы формально.
- План закрытия: явно называть масштаб ответственности вместо стажа, но не переименовывать себя в "Senior" в откликах — это создаёт риск отказа на скрининге ATS/рекрутера ещё до интервью.
2. **Английский B2+ (обязательно)** — hard blocker. У кандидата B1. Это стоит в JD как категоричное "mandatory" требование, не nice-to-have.
- Стратегия закрытия: нет быстрого решения за счёт CV — либо кандидат подтягивает английский до отклика (не быстрый путь), либо не подаётся на эту конкретную роль.
3. **Nuxt в коммерческом проекте** — nice-to-have судя по формулировке ("Vue 2/3 **и** Nuxt 2/3"), но указано наравне с Vue, что говорит о реальной важности для клиентского проекта. Смежный опыт есть (Vite, Vue Router, SSR-подобные паттерны в CV не описаны явно) — риск средний, не критичный сам по себе.
## C) Уровень и стратегия
**Уровень в JD:** Senior, 5 лет опыта (жёстко заявлено).
**Естественный уровень кандидата для архетипа Frontend (Vue.js):** Junior→Middle (переходный) по стажу, но с продакшн-масштабом задач выше типичного для этого стажа (greenfield-продукт с нуля, RBAC-дизайн).
**План "продать senior без обмана":** Вести с масштабом ответственности («спроектировала с нуля фронтенд системы для сети ~1200 аптек, включая архитектурное решение по RBAC») — но **не рекомендуется в принципе продавать эту роль как достижимую** при двух явных hard-блокерах (стаж + английский обязательный). Честная позиция: заявленные требования не соответствуют профилю, и попытка "продать" опыт при явном mandatory-требовании по английскому создаёт риск потери времени кандидата и рекрутера.
**План "если понизят уровень":** Маловероятен здесь — это не типичная вакансия с гибким грейдом, а конкретное численное требование от аутстаффинг-агентства под клиентский заказ (клиент диктует требования к специалисту). Понижение грейда для агентства менее вероятно, чем для продуктовой компании.
## D) Компенсация и спрос
Зарплата не раскрыта в JD. Рыночные данные (WebSearch, RU, июль 2026):
| Источник | Данные |
|---|---|
| Общие обзоры Senior Vue-разработчиков (Москва/СПб, 2026) | 480 000–650 000 ₽/мес — верхний диапазон для полностью удалённых Senior-ролей может быть ниже, если это аутстаффинг-ставка |
| Полностью удалённые Senior-роли | Обычно оплачиваются по рынку "домашнего" региона компании, а не региона кандидата — в пользу кандидата из Тулы |
| Специфика аутстаффинга (Selecty) | Ставка зависит от конкретного клиентского проекта — по отзывам сотрудников, компенсация формально трудоустроена (ТК РФ), ДМС со стоматологией, но реальный доход "зависит от клиента и проекта" |
**Оценка:** Даже если гипотетическая вилка окладов привлекательна для Senior-роли, вопрос не в деньгах, а в том, что кандидат, вероятнее всего, не пройдёт скрининг по двум явным численным требованиям (стаж + английский) до обсуждения зарплаты.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Общий акцент на Vue3 + Flutter dual-track | Если всё же решено откликаться — вести исключительно с Vue 3 + TS + Pinia, без Flutter | Роль чисто Frontend Vue/Nuxt, Flutter — шум |
| 2 | Nuxt | Не упомянут как коммерческий опыт | Явно указать "Vite, Vue Router — быстро осваиваю Nuxt" честно, не выдавать за коммерческий опыт | Не фабриковать опыт, которого нет |
| 3 | Английский | B1 в CV | Не скрывать и не завышать — указать B1 прямо, при необходимости предложить пройти техническое интервью на английском для демонстрации реального уровня | Скрытое несоответствие "mandatory"-требованию хуже честного B1 |
| 4 | Масштаб задач | RBAC упомянут как один из пунктов | Вынести RBAC-дизайн и параллельное ведение 3 продуктов как компенсацию за стаж | Единственный реальный аргумент против формального пробела по годам |
| 5 | hh.ru отклик | — | Сопроводительное письмо явно объясняет несоответствие по стажу/английскому и почему кандидат всё же интересен | Прозрачность снижает риск немедленного отказа на скрининге |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Vue 3 в продакшене, архитектурные решения | RBAC-модель в «Здесь ЕКОМ» | Бэкенд не имел готовой модели прав доступа между отделами | Спроектировать и объяснить ролевую модель авторизации | Использовала ИБ-образование, спроектировала роли/группы/права, презентовала бэкенд-команде | Внедрено разграничение по отделам (логистика/заказы) | Нестандартный бэкграунд (ИБ) — реальное конкурентное преимущество, не просто "интересный факт" |
| 2 | Тестирование (unit/E2E) | Внедрение Playwright E2E на РМК | Legacy-проект без автотестов, регрессии находили вручную | Внедрить E2E-покрытие на критичных сценариях | Настроила Playwright, начала покрытие позитивных/негативных сценариев | Процесс тестирования на этапе внедрения, снижение ручной регрессии | Внедрение тестов в legacy — сложнее, чем в greenfield, требует приоритизации рисковых зон |
| 3 | Код-ревью, best practices | Feature Branching + обучение коллеги | Хаотичные релизы, "зависшие" фичи | Внедрить Git Flow и обучить команду | Обучила коллегу с 11-летним стажем, ввела процесс версионирования | Команда перешла на стабильные еженедельные релизы | Мягкие навыки (обучение старшего коллеги) не менее значимы, чем код |
| 4 | Диагностика продакшн-багов | Баг «Избранное» не открывалось | Жалобы пользователей, товары грузились одним запросом | Найти причину без готового отчёта от QA | Диагностировала проблему, реализовала постраничную загрузку | Жалобы прекратились | Проактивный дебаг до эскалации — ценно для распределённой команды |
| 5 | REST API / real-time интеграция | WebSocket-оповещения в РМК | Не было видимости, сколько аптек онлайн в реальном времени | Внедрить real-time канал оповещений | Реализовала WebSocket (WSS) с отметкой прочтения | Видимость статуса ~1200 аптек в реальном времени | Реальная система масштаба, close к enterprise-требованиям |
| 6 | Cross-team collaboration (с дизайнерами/бэкендом) | Редизайн кнопки «Избранное» и блока информации о заказе | Не было дизайнера, UI была неудобной | Взять на себя UI-проектирование и согласовать с командой | Самостоятельно спроектировала и внедрила изменения | Улучшенная эргономика интерфейса | Готовность закрывать пробел роли (дизайн) — сигнал проактивности |
**Рекомендуемый кейс:** «Здесь ЕКОМ» (RBAC + масштаб greenfield-продукта) — единственный проект, реально компенсирующий пробел по стажу для Senior-планки.
**Вопросы-ловушки:**
- «У вас 5 лет опыта, как заявлено в резюме?» → Не заявлять 5 лет. Честно: «около 2 лет коммерческого опыта, но веду 3 параллельных продукта, один — с нуля, включая архитектурное решение уровня выше типичного для этого стажа».
- «Какой у вас уровень английского?» → «B1, работаю над улучшением. Готова пройти техническое интервью на английском, чтобы показать реальный уровень понимания технической документации».
- «Есть ли коммерческий опыт с Nuxt?» → «Нет прямого коммерческого опыта, но уверенно работаю с Vite/Vue Router и быстро осваиваю новые фреймворки в экосистеме Vue — готова показать это на тестовом задании».
---
## Vibe команды
Судя по формулировкам JD, упоминаются код-ревью, cross-team collaboration с дизайнерами и бэкенд-разработчиками, а также "коммуникация рисков по срокам" — это скорее сигнал зрелого инженерного процесса, чем описание конкретной командной культуры. Прямых упоминаний автономии, менторства или гибкого графика нет. Стоит учитывать, что Selecty — аутстаффинг-агентство: реальная "вайб" команды будет зависеть от конкретного клиентского проекта, а не от самой компании-агентства — это стоит уточнять на собеседовании отдельно.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Опубликовано 6 июля 2026 (день перед оценкой) | Positive |
| Apply-кнопка | Активна, отклик доступен | Positive |
| Качество описания | Конкретный стек (Vue/Nuxt/TS/Pinia), чёткие требования, обязательный английский явно выделен | Positive |
| Компания | Selecty — аккредитованная IT-компания, номинант HR-Brand Award, рейтинг 4.7-4.69/5 на профильных площадках отзывов (Habr Career, Job True) | Positive |
| Бизнес-модель | Аутстаффинг — реальный проект/команда не названы в JD, что типично для этой модели найма, а не признак фиктивности | Neutral (контекстное объяснение, не red flag) |
| Reposting | По `data/scan-history.tsv` — первое появление этого URL в истории сканирования | Neutral |
**Context Notes:** Аутстаффинг-модель означает, что конкретный клиентский проект раскрывается только на этапе интервью — это нормальная практика для агентства, не признак ghost job.
---
## Извлечённые ключевые слова
Vue.js, Vue 3, Vue 2, Nuxt.js, Nuxt 2, Nuxt 3, Senior Frontend Developer, JavaScript ES6+, TypeScript, Pinia, REST API, unit-тесты, E2E-тесты, HTML5, CSS3, responsive design, accessibility, английский B2+, code review, cross-team collaboration, Core Web Vitals, Docker, удалённая работа, аутстаффинг
---
## Рекомендация
**Балл 2.0/5 — значительно ниже порога 4.0/5 (AGENTS.md, Ethical Use). Настоятельно рекомендуется не откликаться** в текущем виде:
1. Заявленный стаж (5 лет) — жёсткое числовое требование, кандидат не соответствует (~1.7-2.5 года).
2. Английский B2+ явно обозначен как **обязательный** — у кандидата B1, это второй независимый hard-блокер.
3. Nuxt указан как коммерческое требование наравне с Vue, у кандидата нет коммерческого опыта с ним.
4. Удалённый формат работы и стек Vue/TS/Pinia — единственные сильные плюсы, но они не перевешивают два независимых hard-блокера.
Если кандидат всё же хочет попробовать — рекомендуется отдельно поднять английский до подачи, а не подавать заявку в расчёте на "прокатит".
+137
View File
@@ -0,0 +1,137 @@
# Оценка: Bnovo — Senior Frontend разработчик
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — primary archetype, заявленный уровень Senior
**Балл:** 2.5/5
**URL:** https://hh.ru/vacancy/134897754
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (Vue.js) |
| Domain | SaaS-платформа для автоматизации гостиничного бизнеса (hospitality management) |
| Function | Build + частично Lead (менторство джунов/миддлов, потенциальный tech lead трек) |
| Seniority | Senior, заявлено "4+ года опыта Frontend-разработки" |
| Формат работы | Санкт-Петербург, офис с возможностью удалённого формата ("удалённо" указано как доступный вариант) |
| Размер команды | Не указан явно |
| Оформление | Трудовой договор (ТК РФ) |
| Зарплата | Не указана |
| TL;DR | Senior-роль в устойчивой SaaS-компании с хорошей репутацией и подтверждённым удалённым форматом — сильное совпадение по стеку (Vue2→3 миграция, TS, WebSocket), но заявленный стаж (4+ года) и ответственность тимлид-трека выше текущего уровня кандидата. |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| 4+ года опыта Frontend-разработки | ❌ **Пробел.** ~1 год 8 месяцев непрерывного коммерческого опыта (с ноября 2024) + 10 месяцев заказной разработки в 2022 |
| Vue.js 2 и 3, миграция legacy → Vue 3/TS | ⚠️ Частичное — прямого опыта миграции Vue 2→3 в CV нет, но есть работа с legacy-кодом на Vue 3 (РМК, ~6 месяцев, включая сложный баг с замыканием реактивной переменной) |
| JavaScript ES6+, TypeScript | ✅ Прямое совпадение (стек ЕКОМ) |
| Vuex/Pinia | ⚠️ Pinia — прямое совпадение; Vuex явно не встречается в CV, но это смежный, изучаемый инструмент того же экосистемного слоя |
| HTML5/CSS3/SCSS | ⚠️ HTML5/CSS3 — прямое совпадение; SCSS явно не указан (Tailwind CSS используется вместо) |
| REST, WebSocket | ✅ Прямое совпадение — WebSocket (WSS) внедрён на ЕКОМ и РМК |
| Архитектура компонентов по SOLID | ⚠️ Не описано явно в CV, но Feature Branching и структурированный подход к ЕКОМ (стек с Pinia/Vue Router/shadcn) косвенно говорит о структурированной архитектуре |
| Код-ревью, тестирование (Vitest/Jest/Playwright) | ✅ Прямое совпадение — Vitest, Storybook, Playwright (E2E на РМК) |
| Менторство junior/middle, потенциальный tech lead | ✅ Частичное совпадение — обучила коллегу с 11-летним стажем работе с Git/Feature Branching; не формальное менторство, но реальный опыт передачи знаний |
| AI-инструменты (Copilot, Cursor) | ⚠️ Не упомянуто явно в CV — не фабриковать, честно отметить как пробел |
**Пробелы:**
1. **Стаж (4+ года vs ~1.7-2.5 года)** — hard blocker, явно заявлен в требованиях. Компенсация "широтой" (3 параллельных продукта, greenfield с нуля) частично закрывает этот разрыв по факту компетенций, но не по формальному стажу, который ATS/рекрутер, вероятно, отфильтрует на скрининге.
2. **Опыт миграции Vue 2→3** — явно указан как желательный бонус в JD ("Vue 2→3 migration experience" в списке Bonuses), у кандидата нет прямого опыта миграции (только работа с уже существующим legacy Vue 3). План закрытия: честно указать опыт работы с legacy Vue 3 кодом (баг с замыканием) как смежный, не эквивалентный.
3. **Тимлид-трек/менторство на постоянной основе** — JD явно упоминает "potential tech lead role" — это ответственность выше текущего уровня кандидата. План закрытия: не претендовать на тимлид-аспект роли, фокусироваться исключительно на техническом фите, если решено откликаться.
## C) Уровень и стратегия
**Уровень в JD:** Senior, 4+ года, с элементами тимлид-трека (менторство, архитектурные решения).
**Естественный уровень кандидата для архетипа Frontend (Vue.js):** Junior→Middle (переходный) — сильный технический стек, но не тимлид-масштаб ответственности.
**План "продать senior без обмана":**
- Акцент на реальном масштабе: greenfield-продукт ЕКОМ с нуля, RBAC-дизайн, параллельное ведение legacy-проекта (РМК) — это ближе к Middle+/Senior-lite по объёму ответственности, но не по годам.
- Честно обозначить разрыв в стаже (4+ года заявлено vs ~2 года) — учитывая, что требование явно численное, не пытаться завуалировать.
**План "если понизят уровень":**
- Учитывая структуру роли (тимлид-трек, менторство), понижение до Middle с явным исключением менторских обязанностей — реалистичный сценарий, если компания заинтересуется техническим стеком кандидата, но не готова доверить Senior-ответственность.
- Принять понижение **только** при компенсации на уровне таргета кандидата (100 000–120 000+ ₽/мес на руки) — учитывая, что рыночная вилка для Senior Vue в СПб выше (см. Блок D), понижение грейда не должно означать понижение ниже таргета.
- Договориться о пересмотре через 6 месяцев с чёткими критериями (например, самостоятельное закрытие миграционных задач Vue 2→3 без сопровождения).
## D) Компенсация и спрос
Зарплата не указана в JD. Рыночные данные (WebSearch, RU, июль 2026):
| Источник | Данные |
|---|---|
| Senior Vue-разработчики, Москва/СПб (2026) | Медиана: Москва — 550 000 ₽/мес, СПб — 480 000 ₽/мес; специализированная вилка Senior Vue: 480 000–650 000 ₽/мес |
| Репутация компании (Habr Career, dreamjob, elsolo) | Рейтинг 4.78/5 на Habr Career (96% рекомендаций), 4.7/5 на elsolo (42 отзыва) — стабильно позитивные отзывы о своевременности зарплаты и адекватном менеджменте |
| Негативные сигналы из отзывов | Часть отзывов упоминает "низкую зарплату относительно нагрузки" и отсутствие ДМС в первый год — качественный сигнал, не количественно подтверждённый |
| Оформление | Трудовой договор (ТК РФ) — максимальная защита, +0.3 к стабильности по правилам РФ-специфики |
**Оценка (gross/net):** Не указано в JD, невозможно применить формулу `net ≈ gross × 0.87`. Заявленная рыночная вилка Senior Vue в СПб (480 000+ ₽/мес) значительно выше таргета кандидата, но это не гарантированное предложение — компания может предложить нижнюю границу вилки при пробеле по стажу, а часть отзывов сотрудников указывает на возможную зарплату "ниже ожиданий при высокой нагрузке".
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Общий акцент на Vue3 + Flutter dual-track | Вести исключительно с Vue 3 + TS + WebSocket + опытом работы с legacy-кодом | Роль явно про миграцию legacy → Vue3/TS, это точка входа |
| 2 | Legacy-опыт | РМК упомянут как один из проектов | Вынести РМК (legacy Vue 3, баг с замыканием) на первое место как прямое совпадение с "migrate legacy code" | Единственный прямой аналог требования по миграции/поддержке legacy |
| 3 | Менторство | Обучение коллеги Git/Feature Branching упомянуто вскользь | Явно сформулировать как "опыт передачи технических знаний коллеге с большим стажем" | Частично закрывает требование "mentor junior/middle developers" |
| 4 | AI-инструменты | Не упомянуты в CV | Не добавлять — честно уточнить на собеседовании реальный опыт использования Copilot/Cursor, если есть, до подачи | Не фабриковать отсутствующий опыт |
| 5 | Стаж | Не скрывать | Явно указывать ~2 года суммарно с акцентом на масштаб задач, а не годы | Численный пробел не исчезнет от формулировок — честность снижает риск отказа "на обмане" позже в процессе |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Работа с legacy-кодом, рефакторинг | Баг с замыканием в РМК (legacy Vue 3) | Клавиатура переставала работать после серии действий | Найти причину в глобальном классе биндинга клавиш | Диагностировала: реактивная переменная передавалась в глобальный класс без очистки | Баг исправлен, задокументирован паттерн | Поняла важность жизненного цикла реактивных переменных вне компонентной области Vue |
| 2 | WebSocket, real-time функциональность | WSS-оповещения в РМК | Не было видимости, сколько аптек онлайн в реальном времени | Внедрить real-time канал оповещений с отметкой прочтения | Реализовала WebSocket-канал, отслеживание прочтения по ~1200 аптекам | Видимость статуса в реальном времени, почти без задержки | Реальная enterprise-масштаба система, релевантна для SaaS-продукта Bnovo |
| 3 | Менторство/передача знаний | Обучение коллеги с 11-летним стажем Git Flow | Хаотичные релизы, отсутствие версионирования | Внедрить Feature Branching и обучить команду | Обучила коллегу, ввела процесс, команда перешла на еженедельные релизы | Стабильный процесс релизов, меньше "зависших" фич | Обучение более опытного коллеги — редкий, но ценный сигнал для tech-lead трека |
| 4 | Тестирование (Vitest/Jest/Playwright) | Внедрение Playwright E2E на РМК | Legacy-проект без автотестов | Внедрить E2E-покрытие критичных сценариев | Настроила Playwright, начала покрытие позитивных/негативных сценариев | Процесс тестирования на этапе внедрения | Приоритизация тестового покрытия в legacy требует больше суждения, чем в greenfield |
| 5 | Архитектурные решения, RBAC/доступ | RBAC-модель в «Здесь ЕКОМ» | Бэкенд не имел готовой модели прав доступа между отделами | Спроектировать и объяснить ролевую модель авторизации | Использовала ИБ-образование, спроектировала роли/группы/права | Внедрено разграничение по отделам | ИБ-бэкграунд — конкурентное преимущество в архитектурных решениях |
| 6 | Производительность/оптимизация (тяжёлые таблицы, Web Vitals) | Список заказов с 9 фильтрами в ЕКОМ (TanStack Table) | Неудобные таблицы 1С не справлялись с объёмом и фильтрацией заказов | Спроектировать производительный интерфейс с множественной фильтрацией | Реализовала на TanStack Table с 9 параметрами фильтрации | Используется логистикой, клиентским отделом, техподдержкой и разработчиками | Опыт с тяжёлыми таблицами данных релевантен для "heavy tables" оптимизации в Bnovo |
**Рекомендуемый кейс:** РМК (legacy Vue 3 + WebSocket) — наиболее прямое совпадение с ключевым требованием JD "migrate legacy code... to Vue 3/TypeScript".
**Вопросы-ловушки:**
- «У вас заявлено 4+ года, но по резюме меньше — как так?» → Честно: «около 2 лет коммерческого опыта, но за это время вела 3 параллельных продукта, включая greenfield с нуля и работу с legacy-кодом — по объёму задач это ближе к более опытному уровню, чем формальный стаж».
- «Готовы менторить junior/middle разработчиков?» → «Есть опыт передачи знаний — обучила коллегу с 11-летним стажем работе с Git Flow. Формального менторского опыта пока меньше, готова расти в этом направлении, но не позиционирую себя как готового тимлида».
- «Какой у вас опыт с AI-инструментами (Copilot/Cursor)?» → Отвечать честно по факту использования на момент интервью — не заявлять то, чего нет в CV.
---
## Vibe команды
Судя по формулировкам JD, упоминаются код-ревью, менторство джунов/миддлов, потенциальный tech lead трек и внедрение AI-инструментов в разработку — это сигналы зрелой инженерной культуры с фокусом на рост и современный тулинг. Внешние отзывы сотрудников (Habr Career 4.78/5, elsolo 4.7/5) подтверждают позитивную атмосферу, своевременную зарплату и адекватный менеджмент, хотя часть отзывов отмечает высокую нагрузку. Бенефиты явно указывают на заботу о балансе (ДМС с психологической поддержкой, day off на день рождения, книжный клуб) — качественный сигнал гибкости и человекоцентричной культуры, хотя явных упоминаний автономии/участия в RFC в самом тексте JD нет.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Опубликовано 6 июля 2026 | Positive |
| Apply-кнопка | Активна, отклик доступен | Positive |
| Качество описания | Детальный технический стек, конкретные обязанности (миграция, тестирование, менторство), реалистичные требования для Senior | Positive |
| Компания | Bnovo — аккредитованная IT-компания, SaaS-лидер в hospitality management, >200 сотрудников, >16 000 клиентов, устойчивая репутация (Habr Career 4.78/5) | Positive |
| Company Hiring Signals | WebSearch не выявил новостей о сокращениях или заморозке найма Bnovo в 2026 | Positive/Neutral |
| Reposting | По `data/scan-history.tsv` — первое появление этого URL в истории сканирования | Neutral |
**Context Notes:** Устойчивая, прибыльная SaaS-компания с давней историей и позитивной репутацией — сильные позитивные сигналы легитимности и стабильности.
---
## Извлечённые ключевые слова
Vue.js, Vue 2, Vue 3, TypeScript, JavaScript ES6+, Vuex, Pinia, SOLID, миграция legacy, jQuery, HTML5, CSS3, SCSS, REST, WebSocket, Core Web Vitals, Event Loop, код-ревью, тестирование, Vitest, Jest, Playwright, менторство, tech lead, микрофронтенды, FSD, CI/CD, дизайн-система, SQL, LLM, ДМС, Санкт-Петербург, hospitality SaaS
---
## Рекомендация
**Балл 2.5/5 — ниже порога 4.0/5 (AGENTS.md, Ethical Use). Настоятельно рекомендуется не откликаться** в текущем виде, при этом это наиболее "близкая" из трёх оценённых сегодня вакансий по совокупности сигналов:
1. Стажевый пробел (4+ года заявлено vs ~1.7-2.5 года у кандидата) остаётся hard-блокером для формального скрининга.
2. Роль включает элементы тимлид-трека (менторство, потенциальный tech lead) — ответственность выше текущего уровня.
3. Сильные плюсы: подтверждённый удалённый формат (проходит location-политику), отличная репутация компании, реальное совпадение по WebSocket/legacy-работе/RBAC.
4. Если кандидат готова рискнуть с честной позицией по стажу — это не безнадёжная попытка (в отличие от Selecty, где два независимых mandatory-блокера), но объективно балл ниже порога для рекомендации к отклику.
@@ -0,0 +1,169 @@
# Оценка: ООО "Бизнес Технологии" — Middle frontend-разработчик
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — primary archetype
**Балл:** 4.2/5
**URL:** https://hh.ru/vacancy/134837105
**PDF:** output/cv-romanova-valeriya-biznes-tehnologii-middle-2026-07-07.pdf
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (Vue.js) |
| Domain | Не указан явно (внутренний технологический стек с упоминаниями Scala/Java на бэкенде — вероятно enterprise/финтех-подобный продукт) |
| Function | Build |
| Seniority | Middle (заявлено "3-6 лет опыта") |
| Формат работы | Гибкий выбор: офис / гибрид / удалённо — на усмотрение кандидата |
| Размер команды | Не указан точно, но описана "опытная команда миддлов+ и синьоров, поддерживающая, распределённая" |
| Оформление | Трудовой договор (ТК РФ) |
| Локация | Санкт-Петербург, Пионерская, Коломяжский пр-т 33к2 (актуально только при выборе офис/гибрид) |
| Зарплата | 150 000–200 000 ₽/мес **на руки**, выплата дважды в месяц |
| TL;DR | Middle frontend-роль с гибким выбором формата работы (в т.ч. полностью удалённо), зарплатой значительно выше таргета кандидата и стеком, который прямо совпадает с профилем — сильнейший кандидат на отклик среди трёх оценённых сегодня вакансий. |
**Важно (cross-reference):** Тот же работодатель (ООО "Бизнес Технологии") размещает ещё одну вакансию — Senior/Tech Lead frontend-разработчик (см. `reports/024-*.md`, обрабатывается параллельно другим агентом). Эта Middle-роль — явно более подходящий по уровню вариант для текущего профиля кандидата; не рекомендуется откликаться на обе позиции одновременно у одного работодателя без предварительного согласования с рекрутером, на какую роль претендовать.
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Профессиональный опыт с React, Vue или Angular | ✅ Прямое совпадение — Vue 3, Composition API, продакшн-опыт («Здесь ЕКОМ», «РМК») |
| HTML, CSS, JavaScript экспертиза | ✅ Прямое совпадение |
| TypeScript | ✅ Прямое совпадение (стек ЕКОМ) |
| Понимание принципов SPA и работы с внешними API | ✅ Прямое совпадение — REST API, WebSocket/WSS |
| Опыт фронтенд-тестирования | ✅ Прямое совпадение — Vitest (unit), Storybook, Playwright (E2E) |
| Разработка переиспользуемых UI-компонентов, исправление дефектов | ✅ Прямое совпадение — более 20 багов исправлено в «Здесь Аптека», ~20 в РМК; компонентная разработка на shadcn/Tailwind |
| Участие в архитектуре и проектировании решений | ✅ Прямое совпадение — RBAC-дизайн, архитектура ЕКОМ с нуля |
| Помощь в организации процессов разработки | ✅ Прямое совпадение — Feature Branching, версионирование сборок, участие в спринт-планировании |
| Современные AI-инструменты в разработке | ⚠️ Не упомянуто явно в CV — честно отметить как область для уточнения, не фабриковать |
| Высшее образование (Computer Science или смежное) | ✅ ТулГУ, специалист по защите информации (смежная техническая специальность) |
| Java и серверные технологии (Jetty) — желательно | ❌ Пробел — нет опыта с Java/Scala/Jetty; в CV указан только ознакомительный Node.js/Express/MongoDB |
**Пробелы:**
1. **AI-инструменты в ежедневной разработке** — nice-to-have судя по формулировке ("proficiency in modern AI tools"), не hard-требование. Стратегия закрытия: честно уточнить на собеседовании реальный опыт использования (Copilot/Cursor/etc.), не заявлять неподтверждённое.
2. **Java/Scala/Jetty** — явно maркировано как "desirable", не обязательное. У кандидата есть ознакомительный Node.js/Express — смежный, но не эквивалентный backend-опыт. Не критично для frontend-роли, но стоит обозначить готовность изучать при необходимости.
3. **Стаж (3-6 лет заявлено vs ~1.7-2.5 года у кандидата)** — единственный потенциальный формальный риск на этапе ATS-скрининга, но по объёму реальной ответственности (greenfield-продукт с нуля, RBAC, параллельное ведение 3 продуктов) кандидат существенно перекрывает типичные Middle-задачи для этого диапазона стажа.
## C) Уровень и стратегия
**Уровень в JD:** Middle, 3-6 лет — это первый оценённый сегодня диапазон, реально близкий к профилю кандидата (в отличие от Senior-требований у Selecty и Bnovo).
**Естественный уровень кандидата для архетипа Frontend (Vue.js):** Middle (по объёму и сложности решённых задач), Junior-Middle переходный по формальному стажу.
**План "продать senior без обмана" (здесь — скорее "продать полноценный Middle"):**
- Вести с конкретными метриками масштаба: greenfield-продукт ЕКОМ с нуля, RBAC-архитектура, список заказов с 9 фильтрами (заменил таблицы 1С, используется 4 отделами), график курьеров (drag-and-drop, заменил ручной SQL-ввод).
- Честно обозначить стаж (~2 года) — при разрыве в 1-4 года от нижней границы диапазона (3-6 лет) это не критичный разрыв, особенно с учётом объёма выполненных задач.
**План "если понизят уровень":**
- Маловероятный сценарий здесь — роль и так Middle, наиболее вероятный исход — предложение по нижней границе вилки (150 000 ₽/мес) при недостающем формальном стаже, а не понижение до Junior.
- Принять нижнюю границу вилки (150 000 ₽/мес на руки) — это уже выше таргета кандидата (100 000–120 000+ ₽/мес), поэтому даже консервативный исход выгоден.
- Договориться о пересмотре оклада через 6 месяцев с чёткими критериями роста (например, самостоятельное владение frontend-частью нового модуля).
## D) Компенсация и спрос
**Зарплата в вакансии:** 150 000–200 000 ₽/мес **на руки** (net, явно указано), выплата дважды в месяц.
Рыночные данные (WebSearch, RU, июль 2026):
| Источник | Данные |
|---|---|
| Middle Frontend-разработчик, Россия (общий обзор) | Медиана ~177 000 ₽/мес; диапазон 140 000–250 000 ₽/мес |
| Москва (для сравнения) | 180 000–200 000 ₽/мес стартовый диапазон Middle, свыше 300 000 для опытных Middle |
| СПб/регионы | Обычно на 15-30% ниже московских ставок |
**Оценка:** Указанная вилка (150 000–200 000 ₽/мес на руки) уже **выше** общероссийской медианы для Middle (177 000 ₽/мес была бы примерно серединой этого диапазона) и **значительно выше** таргета кандидата (100 000–120 000+ ₽/мес на руки). Поскольку зарплата указана явно как "на руки" (net), формула `net ≈ gross × 0.87` не требуется — это прямое, невырожденное сравнение с таргетом. Даже нижняя граница вилки (150 000 ₽/мес) превышает верхнюю границу таргета кандидата на ~25-30 000 ₽/мес.
**Оформление:** Трудовой договор (ТК РФ) — максимальная защита, +0.3 к стабильности по РФ-специфике. ДМС после 3 месяцев испытательного срока.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Общий акцент на Vue3 + Flutter dual-track | Вести с Vue 3 + TS + компонентная архитектура + тестирование, Flutter — как дополнительный трек, не основной | Роль явно про фронтенд-компоненты и тестирование, не про мобильную разработку |
| 2 | Опыт — заголовок роли | «Frontend/Flutter-разработчик» | Показать «Frontend-разработчик (Vue 3)» как ведущую роль под эту вакансию | Точное совпадение с заголовком роли повышает keyword-match |
| 3 | Архитектура/процессы | RBAC и Feature Branching упомянуты раздельно | Объединить в единый нарратив "участие в архитектурных решениях и организации процессов разработки" — прямая цитата из требований JD | Прямое совпадение с требованием "help organize development processes" |
| 4 | Тестирование | Vitest/Playwright указаны в скиллах | Вынести конкретные примеры (unit-тесты компонентов, E2E-сценарии позитивные/негативные) в проектные буллеты | Прямое совпадение с "write unit and visual tests" |
| 5 | Ключевые слова | TS, Vue 3 уже есть | Добавить явно "переиспользуемые компоненты", "исправление дефектов", "SPA" | ATS-совпадение по формулировкам вакансии |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Архитектура и проектирование решений | RBAC-модель в «Здесь ЕКОМ» | Бэкенд не имел готовой модели прав доступа между отделами | Спроектировать и объяснить ролевую модель авторизации | Использовала ИБ-образование, спроектировала роли/группы/права, презентовала бэкенд-команде | Внедрено разграничение по отделам | ИБ-бэкграунд — конкурентное преимущество в архитектурных решениях для frontend-роли |
| 2 | Переиспользуемые UI-компоненты | График курьеров на vue-cal (drag-and-drop) | Расписание вносили вручную SQL-запросами по заявке логистики | Спроектировать компонент интерактивного календаря | Реализовала drag-and-drop интерфейс на базе vue-cal | Отдел логистики полностью самостоятельно управляет графиком | Компонентный подход снял ручную зависимость от разработчиков |
| 3 | Работа с внешними API / SPA | Список заказов с 9 фильтрами (ЕКОМ, TanStack Table) | Неудобные таблицы 1С не справлялись с фильтрацией и объёмом заказов | Спроектировать производительный SPA-интерфейс с множественной фильтрацией | Реализовала на TanStack Table, интеграция с REST API | Используется логистикой, клиентским отделом, техподдержкой, разработчиками | Опыт с производительными data-heavy интерфейсами напрямую релевантен |
| 4 | Исправление дефектов | Диагностика бага «Избранное» | Жалобы пользователей на не открывающийся раздел | Найти причину без готового отчёта от QA | Диагностировала: товары грузились одним запросом, реализовала постраничную загрузку | Жалобы прекратились | Проактивный дебаг до эскалации |
| 5 | Организация процессов разработки | Feature Branching + обучение коллеги | Хаотичные релизы, "зависшие" фичи, отсутствие версионирования | Внедрить Git Flow, обучить команду, внедрить версионирование сборок | Обучила коллегу с 11-летним стажем, ввела процесс | Команда перешла на стабильные еженедельные релизы | Организационный вклад не менее значим, чем код, для роли, где явно просят помощь с процессами |
| 6 | Тестирование (unit/visual) | Внедрение Playwright E2E на РМК + Vitest на ЕКОМ | Legacy-проект без автотестов, greenfield-проект с нуля | Внедрить unit- и E2E-покрытие | Vitest для компонентов ЕКОМ, Playwright для критичных сценариев РМК | Снижение ручной регрессии, повышение уверенности при рефакторинге | Тестовая культура применялась последовательно в обоих типах проектов (новый и legacy) |
| 7 | Проактивность/UI без дизайнера | Редизайн кнопки «Избранное» и блока информации о заказе | Не было дизайнера, UI была неудобной | Взять на себя UI-проектирование | Самостоятельно спроектировала и внедрила изменения | Улучшенная эргономика интерфейса | Готовность закрывать пробелы за пределами формальной роли — ценно для команды из "миддлов+ и синьоров" |
**Рекомендуемый кейс:** «Здесь ЕКОМ» целиком (RBAC + график курьеров + список заказов) — наиболее полное совпадение с формулировками JD "reusable UI components", "architecture and solution design", "development process organization".
**Вопросы-ловушки:**
- «У вас заявлено 3-6 лет, а по резюме меньше — как так?» → «около 2 лет коммерческого опыта, но за это время самостоятельно довела greenfield-продукт до продакшена и спроектировала архитектурное решение (RBAC), которое обычно не доверяют разработчику с таким стажем — готова показать это подробно на техническом интервью».
- «Готовы работать в офисе в СПб?» → «Предпочитаю удалённый или гибридный формат при дневном графике. Переезд и командировки не рассматриваю — но раз в вакансии явно указан гибкий выбор формата, удалённая работа из Тулы меня устраивает».
- «Есть ли опыт с Java/Scala на бэкенде?» → «Нет прямого опыта — работала с Node.js/Express/MongoDB на уровне ознакомления (хакатон, учебный проект). Специализируюсь на frontend, готова разбираться в бэкенд-контексте по мере необходимости для интеграций».
---
## Vibe команды
Судя по формулировкам JD, команда описана как "опытные миддлы+ и синьоры, поддерживающая и распределённая" — прямое упоминание распределённого формата и поддерживающей атмосферы. Гибкий выбор графика начала дня и гибкий формат работы (офис/гибрид/удалённо на усмотрение кандидата) — сильный, явный сигнал гибкости, а не просто слово "удалённо" без конкретики. Corporate/спортивные мероприятия и "pizza day" раз в месяц — стандартный, но приятный бенефит. Явных упоминаний участия в RFC/архитектурных обсуждениях на уровне команды нет, но формулировка "участвовать в архитектуре и проектировании решений" в обязанностях — хороший сигнал вовлечённости, а не чисто исполнительской роли.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Опубликовано 6 июля 2026 | Positive |
| Apply-кнопка | Активна и функциональна | Positive |
| Качество описания | Конкретный стек, реалистичные требования для Middle, явное разделение "требуется" vs "желательно" | Positive |
| Зарплата | Указана явно (150 000–200 000 ₽/мес на руки) — редкий и позитивный сигнал прозрачности для российского рынка | Positive |
| Аккредитация | Указано как аккредитованная российская IT-компания | Positive |
| Reposting | По `data/scan-history.tsv` — эта Middle-вакансия (134837105) — первое появление под этим URL; у того же работодателя есть отдельная Senior/Tech Lead вакансия (127181421, обрабатывается в отчёте #024) — это две разные, параллельно открытые роли, а не дубликат одной позиции | Neutral |
| Role Market Context | Middle Frontend — типично закрываемая роль (4-8 недель), явная и реалистичная вилка | Positive |
**Context Notes:** Явное указание зарплаты "на руки" и чёткое разделение обязательных/желательных требований — сильные позитивные сигналы серьёзного, хорошо проработанного найма, а не формального постинга.
---
## Извлечённые ключевые слова
Frontend, Vue.js, React, Angular, TypeScript, HTML, CSS, JavaScript, SPA, REST API, unit-тесты, visual-тесты, Jest, Puppeteer, переиспользуемые компоненты, исправление дефектов, архитектура решений, организация процессов разработки, AI-инструменты, Scala, Java, Gradle, Git, GitLab, Docker, Middle-разработчик, ДМС, гибкий график, Санкт-Петербург, удалённая работа, гибрид
---
## Cover Letter Draft
**Тема:** Отклик на позицию Middle frontend-разработчик — Романова Валерия
Здравствуйте!
Меня заинтересовала позиция Middle frontend-разработчика в вашей компании — гибкий формат работы и стек на основе современных SPA-подходов хорошо совпадают с моим опытом.
За последние ~2 года я с нуля разработала фронтенд внутренней системы управления заказами и логистикой («Здесь ЕКОМ») на Vue 3, Composition API и TypeScript — включая интерфейс с 9-параметровой фильтрацией заказов, заменивший неудобные таблицы 1С, и интерактивный график курьеров на базе drag-and-drop календаря, который избавил отдел логистики от ручного ввода расписания разработчиками. Отдельно спроектировала и объяснила бэкенд-команде ролевую модель авторизации (RBAC) — здесь пригодилось профильное образование в информационной безопасности, нестандартное для frontend-разработчика.
Также веду legacy-проект (РМК) на Vue 3 — там внедрила WebSocket-оповещения в реальном времени и Playwright E2E-тесты, параллельно обучив коллегу с 11-летним стажем работе с Git Flow.
Буду рада обсудить, как мой опыт может быть полезен вашей команде.
С уважением,
Романова Валерия
+7 (950) 906-61-62 / vbleroy@yandex.ru / @vbleroy
*(Черновик для дальнейшей доработки — см. `/career-ops cover biznes-tehnologii-middle`)*
---
## Рекомендация
**Балл 4.2/5 — выше порога 4.0/5 (AGENTS.md, Ethical Use). Рекомендуется откликнуться.**
1. Уровень роли (Middle, 3-6 лет) — впервые за три оценённые сегодня вакансии реально близок к профилю кандидата, а не Senior-планка не по стажу.
2. Зарплата явно указана и значительно выше таргета кандидата (150 000–200 000 ₽/мес на руки vs таргет 100 000–120 000+).
3. Формат работы гибкий — удалённо/гибрид/офис на выбор кандидата, полностью проходит по location-политике.
4. Стек совпадает почти полностью (Vue, TS, тестирование, компонентная архитектура, организация процессов).
5. **Действие перед откликом:** уточнить у рекрутера, что кандидат рассматривает именно Middle-позицию (134837105), а не Senior/Tech Lead-вакансию (127181421) того же работодателя — избегать одновременной подачи на обе роли.
+101
View File
@@ -0,0 +1,101 @@
# Оценка: ИП Шевченко Максим Юрьевич — Flutter-разработчик
**Дата:** 2026-07-07
**Архетип:** Mobile Developer (Flutter) — secondary fit, проектный контракт
**Балл:** 2.7/5
**URL:** https://hh.ru/vacancy/134905441
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence (с оговорками, см. Block G)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Mobile Developer (Flutter) — одноразовый проектный контракт |
| Domain | mobile (driver/logistics app) |
| Function | build (MVP, один разработчик) |
| Seniority | 3-6 лет (заявлено в JD) |
| Формат работы | Полностью удалённо, "по договорённости и другие варианты" |
| Размер команды | Не указан — по всей видимости, прямое взаимодействие с ИП-заказчиком, без команды разработки |
| Оформление | ГПХ / самозанятость / ИП (проектный договор, не трудовой) |
| TL;DR | Проектный Flutter-контракт для MVP приложения водителя с жёстким дедлайном (1 сентября 2026) при готовности проекта ~10% на 6 июля 2026 — заявленный стаж (3-6 лет) существенно выше фактического опыта кандидата |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Опыт 3-6 лет во Flutter | ❌ ~1.5-2 года общего коммерческого опыта (не 3-6 лет специально во Flutter) |
| Dart, Flutter framework | ✅ Flutter, Dart — «Здесь Аптека», «Здесь Сотрудник», «Здесь Чат» |
| Stateless/Stateful widgets | ✅ Базовое владение подтверждено практикой (баги, редизайн) |
| State Management | ⚠️ BLoC указан в CV, но Bloc/Riverpod/Get/GetIt в JD — не всё подтверждено конкретными кейсами |
| Навигация между экранами, передача параметров | ✅ Flutter Router — есть в CV |
| REST API и JSON клиент-сервер | ✅ REST API — сквозной опыт (ЕКОМ, РМК, Flutter-приложения) |
| Git | ✅ Git, GitLab, Feature Branching |
| Самостоятельное решение проблем | ✅ Многократно подтверждено (диагностика бага «Избранное», порт Android→iOS) |
| RFID/GPS/камера, офлайн-синхронизация, интеграция с Яндекс.Навигатором | ❌ Не отражено в CV — специфичные для логистических/курьерских приложений модули не встречались |
**Пробелы:**
1. **Заявленный стаж 3-6 лет — это hard blocker по формальному критерию,** но для проектного контракта с ИП (а не корпоративного найма) фактическая проверка стажа обычно менее строгая, чем формулировка в объявлении — решает демонстрация конкретных кейсов, а не количество лет.
2. Смежный опыт: у кандидата есть опыт логистического функционала (график курьеров с drag-and-drop в ЕКОМ) — прямая аналогия с "рабочим пространством водителя", хотя и на Vue, не Flutter.
3. Портфолио-проект, закрывающий пробел: «Здесь ЕКОМ» — курьерская логистика как close analogue домена.
4. **План закрытия:** в сопроводительном явно назвать курьерский/логистический опыт из ЕКОМ как прямую доменную аналогию, честно указать реальный стаж (не выдавать 1.5-2 года за 3-6), и предложить тестовое задание/пробный этап для снятия риска у заказчика.
5. **RFID/GPS/офлайн-синхронизация** — hard gap, отсутствует у кандидата; нужно прямо спросить в переписке, насколько критичны эти модули для первого этапа, или это можно взять на себя постепенно.
## C) Уровень и стратегия
**Уровень в JD (3-6 лет) vs естественный уровень кандидата (Middle, ~1.5-2 года):** существенный разрыв. Роль сформулирована как "требует 3-6 лет", то есть выше естественного уровня кандидата минимум в полтора-два раза.
**План "продать senior без обмана":** Здесь скорее нет смысла пытаться "продать senior" — разрыв слишком велик для формального требования компании с более строгим наймом. Для проектного заказчика (ИП) реалистичнее честно обозначить фактический стаж и компенсировать это конкретными пруф-поинтами (диагностика сложных багов, самостоятельное проектирование фич, порт Android→iOS).
**План "если понизят уровень" / альтернативный подход:** Учитывая формат ГПХ/проектного контракта, а не штатной позиции, разумнее рассматривать это как обсуждение condициональной части объёма работ (например, взять фронтенд/UI-часть приложения водителя, оставив RFID/GPS-интеграции более опытному разработчику или самому заказчику), а не как классический "underlevel" сценарий.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| JD | 100 000–150 000 ₽/мес на руки, ежемесячная оплата |
| Целевой диапазон кандидата | 100 000–120 000+ ₽/мес на руки |
| Flutter-разработчик РФ (рыночный ориентир, 2026) | Junior 90-130 тыс., средняя ~190 тыс. (диапазон 140-240 тыс.), для опытных доступны вилки от 200 тыс. ([geeklink.io](https://geeklink.io/salary-stat/flutter-razrabotchik/), [enigmai.ru](https://enigmai.ru/salary/mobile-development/mobile-salary-2026/)) |
Вилка (100-150к) — **на уровне нижней-средней части рынка** для заявленного в JD уровня (3-6 лет), но полностью в целевом диапазоне кандидата для её фактического уровня опыта. Верхняя граница (150к) была бы хорошим результатом для кандидата, если удастся закрыть сделку несмотря на формальный разрыв по стажу.
**Оформление:** ГПХ/самозанятость/ИП — минимальная защита по ТК РФ (нет больничного, отпуска, гарантий при завершении контракта). Проектный характер (дедлайн 1 сентября) означает, что контракт может закончиться вместе с проектом — не долгосрочная позиция.
## E) План персонализации
Сокращено — балл ниже порога 4.0 (Ethical Use), полная детализация нецелесообразна. Ключевая рекомендация при отклике: явно указать реальный стаж (не завышать), выделить курьерскую/логистическую доменную аналогию (ЕКОМ) и предложить обсудить объём задач с учётом отсутствующих модулей (RFID/GPS/офлайн-синхронизация).
## F) План собеседований
Сокращено по той же причине. Один ключевой кейс для этой роли: **график курьеров на vue-cal (ЕКОМ)** — как прямая доменная аналогия "рабочего пространства водителя" (курьерская логистика, drag-and-drop планирование, ранее решался вручную SQL-запросами).
**Вопрос-ловушка:** *"У вас нет 3-6 лет опыта во Flutter, как вы это компенсируете?"* — Ответ: честно назвать фактический стаж, но привести конкретику: диагностировала и исправила root-cause сложных прод-багов, спроектировала и запустила два iOS-порта с нуля, самостоятельно решает архитектурные задачи без надзора — то есть глубина, а не длительность опыта.
---
## Vibe команды
Судя по формулировкам JD, упомянуты "гибкое время начала работы", "своевременные выплаты" и "минимум бюрократии, доступное руководство" — позитивные сигналы по критерию гибкости и минимума бюрократии. Но это заказчик-ИП без команды разработки, поэтому пункты про менторство, code review culture и участие в архитектурных RFC неприменимы — работа предполагается в изоляции, один на один с заказчиком, без техлида/тимлида для роста.
## G) Posting Legitimacy
**Assessment:** High Confidence (с оговоркой по срокам проекта)
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Опубликовано 6 июля 2026 (1 день назад) | Positive |
| Качество описания | Очень конкретное: точный % готовности проекта (~10%), конкретный дедлайн (1 сентября 2026), конкретные фичи (RFID/GPS/камера, офлайн-синхронизация, Яндекс.Навигатор) | Positive |
| Реалистичность сроков | ⚠️ Заявленный объём (рабочее пространство водителя, офлайн + синхронизация, RFID/GPS/камера, интеграция с навигатором) за ~8 недель при готовности 10% — агрессивный дедлайн, риск скоуп-крипа или переработок | Concerning |
| Работодатель | Индивидуальный предприниматель (не юрлицо) — типично для небольших проектных контрактов, не признак мошенничества само по себе | Neutral |
| Увольнения/заморозка найма | Не применимо (нет компании/данных) | Neutral |
| Повторные публикации | Данных в scan-history.tsv нет | Neutral |
**Context Notes:** Объявление выглядит как реальный, активно ведущийся проект (конкретные цифры готовности и дедлайна редко фабрикуются в фейковых вакансиях) — легитимность самой позиции высокая. Основной риск не в подлинности вакансии, а в реалистичности сроков и объёма для одного разработчика при разработке "с нуля" за 2 месяца.
---
## Рекомендация
**Не рекомендуется откликаться при текущей формулировке** (балл 2.7/5, ниже порога 4.0). Основные причины: (1) заявленный стаж 3-6 лет существенно превышает фактический опыт кандидата ~1.5-2 года, (2) агрессивный дедлайн проекта (10% готовности → сдача за ~8 недель) создаёт риск переработок и нереалистичных ожиданий, (3) формат ГПХ/самозанятость даёт минимальную защищённость и не гарантирует продолжение сотрудничества после дедлайна. Вилка зарплаты и полностью удалённый формат — единственные сильные стороны. Если кандидат всё же заинтересована (например, ради портфолио в логистическом домене), стоит явно обсудить реальный объём задач и не занижать/не завышать стаж в переписке.
+123
View File
@@ -0,0 +1,123 @@
# Оценка: ООО МЕДИА ПОТОК — Fullstack-разработчик мобильных приложений
**Дата:** 2026-07-07
**Архетип:** Fullstack Developer (Mobile + Node backend) — гибрид Mobile Developer (Flutter, secondary) / Fullstack Vue+Node (adjacent)
**Балл:** 4.1/5
**URL:** https://hh.ru/vacancy/134067445
**PDF:** output/cv-romanova-valeriya-media-potok.pdf
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Fullstack-разработчик мобильных приложений (React Native/Flutter + Node.js backend) |
| Domain | mobile + light backend |
| Function | build |
| Seniority | 1-3 года |
| Формат работы | Санкт-Петербург — офис, удалённо или гибрид (на выбор) |
| Размер команды | Не указан |
| Оформление | ТК РФ или ГПХ (по договорённости) |
| TL;DR | Fullstack-роль на мобильных приложениях (Flutter/RN + Node.js backend), полностью гибкий формат работы, требуемый стаж 1-3 года — точное попадание в фактический опыт кандидата |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Опыт 1-3 года | ✅ ~1.5-2 года коммерческого опыта (Здравсервис, ноябрь 2024 — настоящее время) |
| React Native/Flutter/аналог | ✅ Flutter — «Здесь Аптека» (баги, редизайн), «Здесь Сотрудник»/«Здесь Чат» (порт Android→iOS) |
| JavaScript/TypeScript или Dart | ✅ TypeScript (Vue 3 проекты ЕКОМ/РМК), Dart (Flutter) |
| Node.js или backend-язык | ⚠️ Node.js/Express/MongoDB — ознакомительный уровень (хакатон TulaHack.Digital + проект ТулГУ для НИЦ «БиоХимТех») |
| REST API | ✅ REST API — ЕКОМ, РМК |
| Базы данных | ⚠️ MongoDB на хакатоне — не production-масштаб |
| Cloud-сервисы | ⚠️ Не отражено в CV |
| Git | ✅ Git, GitLab, Feature Branching (внедрила и обучила коллегу) |
| Проектирование архитектуры новых фич | ✅ RBAC-модель авторизации (ЕКОМ), drag-and-drop календарь курьеров — самостоятельное проектирование |
| Тестирование, дебаг, релиз обновлений | ✅ Vitest, Playwright E2E, релиз iOS-сборок в App Store |
**Пробелы:**
1. **Node.js backend на production-уровне** — nice-to-have, не hard blocker: JD формулирует это как "Node.js или backend-язык", а не как строгое требование продакшн-масштаба.
2. Есть ли смежный опыт? Да — хакатон (Express + MongoDB) и университетский проект (Node.js на сервере) плюс постоянная работа с WebSocket/REST на стороне бэкенд-интеграции в ЕКОМ и РМК — то есть кандидат регулярно работает на границе front/back, даже если сама не пишет backend-код каждый день.
3. Портфолио-проект, закрывающий пробел: хакатон «Книга рецептов» (Express/Node.js/MongoDB) — единственный завершённый проект с реальным backend-кодом, стоит явно упомянуть в сопроводительном.
4. **План закрытия:** в сопроводительном письме и на собеседовании подчеркнуть постоянную работу на стыке frontend/backend (RBAC-дизайн требовал понимания серверной логики; WebSocket-интеграция шла в связке с бэкенд-разработчиком) — предложить готовность быстро прокачать production Node.js в первые недели.
5. **Cloud-сервисы** — не hard blocker для роли 1-3 года, но стоит явно спросить на интервью про масштаб облачной инфраструктуры.
## C) Уровень и стратегия
**Уровень в JD:** 1-3 года — совпадает с фактическим уровнем кандидата практически один в один. Не нужно "продавать senior" — наоборот, стоит избегать занижения, честно показывая реальный масштаб: самостоятельная разработка фронтенда с нуля (ЕКОМ), а не просто участие в готовой кодовой базе.
**План "продать уровень без обмана":** Акцент на то, что кандидат уже вела 3 продукта параллельно (Vue-веб, legacy Vue-проект, Flutter-мобильное приложение) — это редкий разброс ответственности для специалиста с таким стажем, и напрямую релевантно fullstack-формату роли (мобильное + backend-соприкосновение).
**План "если предложат нижнюю вилку":** Диапазон 100 000–200 000 ₽ на руки полностью покрывает и превышает целевой диапазон кандидата (100 000–120 000+). Даже нижняя граница вилки приемлема — договориться о пересмотре через 6 месяцев по мере роста Node.js-компетенций.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| JD | 100 000–200 000 ₽/мес на руки, выплата дважды в месяц |
| Целевой диапазон кандидата | 100 000–120 000+ ₽/мес на руки |
| Fullstack, Санкт-Петербург (рыночный ориентир) | ~170-173 тыс. ₽/мес в среднем; Junior 90-130 тыс.; Middle+ ~340 тыс. ([dreamjob.ru](https://dreamjob.ru/salary/fullstack-razrabotchik/city-sankt-peterburg), [enigmai.ru](https://enigmai.ru/salary/fullstack/fullstack-salary-2026/)) |
| Flutter-разработчик РФ (для сравнения по мобильной части) | Junior 90-130 тыс., средняя ~190 тыс. (диапазон 140-240 тыс.) ([geeklink.io](https://geeklink.io/salary-stat/flutter-razrabotchik/)) |
Вилка JD (100-200к на руки) **полностью в рынке** и на верхней границе перекрывает Middle-диапазон для СПб. Учитывая, что JD ищет 1-3 года опыта, нижняя-средняя часть вилки (120-150к) реалистична для старта, с ростом к 150-180к при подтверждении Node.js-компетенций.
**Оформление:** ТК РФ или ГПХ на выбор — по возможности стоит настаивать на ТК РФ ради больничного/отпуска/защиты при увольнении.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Акцент на Vue 3 + Flutter dual-track | Добавить явную фразу про постоянную работу на стыке frontend/backend (WebSocket, REST) | JD ищет именно fullstack, не чистый frontend |
| 2 | Ключевые компетенции | RBAC на первом месте | Добавить тег "Node.js / Express / REST API" рядом с Flutter | Прямое совпадение с ключевым требованием JD |
| 3 | Опыт работы (ЕКОМ) | Буллеты про drag-and-drop и RBAC | Добавить буллет про WebSocket-интеграцию как пример работы на границе front/back | Показывает backend-осознанность без выдумывания опыта |
| 4 | Проекты | Хакатон в конце списка проектов | Поднять хакатон «Книга рецептов» (Express/Node.js/MongoDB) выше — единственный реальный backend-проект | Прямое закрытие требования Node.js |
| 5 | Skills | Node.js помечен "ознакомительный уровень" | Оставить честную маркировку, но переформулировать как "REST API интеграция с Node.js/Express (учебный + хакатон проекты)" | Конкретика вместо расплывчатого "ознакомительно" |
| 6 (hh.ru) | Отклик/сопроводительное | — | Явно указать готовность к ТК РФ и предпочтение удалённого/гибридного формата | Экономит цикл уточнений с рекрутером |
| 7 (hh.ru) | Резюме на hh.ru | Заголовок "Frontend-разработчик" | Для этого отклика — заголовок "Fullstack-разработчик (Flutter + Node.js)" | Прямое совпадение с заголовком вакансии для ATS/поиска рекрутера |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Проектирование архитектуры новых фич | RBAC-модель авторизации в ЕКОМ | Логистика и другие отделы видели чужие заказы — риск утечки данных между отделами | Спроектировать ролевую модель доступа с нуля | Самостоятельно продумала модель ролей/групп/прав, опираясь на профильное ИБ-образование, и объяснила бэкенд-команде принцип работы | Разграничение внедрено, отделы видят только свои заказы | Поняла, что объяснение архитектурного решения нетехническим языком бэкенд-команде так же важно, как сам дизайн |
| 2 | Работа с REST API и внешними сервисами | WebSocket-оповещения в реальном времени на РМК | Не было видимости, сколько аптек онлайн | Дать кассирам и менеджменту real-time статус сети | Внедрила WebSocket (WSS) в связке с бэкенд-разработчиком для двусторонней связи | Впервые видно, сколько из ~1200 аптек онлайн и кто/когда прочитал оповещение | В следующий раз заложила бы метрику задержки доставки сообщений с самого начала, а не добавляла бы её постфактум |
| 3 | Работа с backend/базами данных (nice-to-have) | Хакатон TulaHack.Digital — «Книга рецептов» | Нужно было показать полный цикл продукта за ограниченное хакатон-время | Собрать fullstack-прототип: Vue 3 + Express + MongoDB | Реализовала фронтенд на Vue3/Ionic и backend-часть на Express с MongoDB для хранения рецептов и калорий пользователя | Рабочий прототип с личным кабинетом за время хакатона | Осознала разницу между "продакшн-качеством" и "хакатон-скоростью" — для реальной роли нужно подтянуть production-паттерны Node.js |
| 4 | Тестирование, дебаг и релиз обновлений | Порт «Здесь Сотрудник»/«Здесь Чат» Android → iOS | Оба приложения существовали только под Android | Собрать и опубликовать iOS-версии | Перепривязала Firebase push-токены под iOS, собрала билды, спроектировала app-иконки, отправила на ревью в App Store | Оба приложения успешно вышли на iOS | В следующий раз заранее проверила бы Firebase-конфигурацию на обеих платформах параллельно, а не последовательно |
| 5 | Дебаг сложных прод-багов | Диагностика бага «Избранное» в «Здесь Аптека» | Пользователи жаловались, что раздел не открывается | Найти первопричину и устранить | Выяснила, что все товары грузились одним запросом; договорилась с бэкенд-разработчиком о постраничной загрузке и реализовала её на фронтенде | Жалобы полностью прекратились | Стоило сразу спросить у бэкенда про пагинацию при подключении эндпоинта, а не постфактум по жалобам |
| 6 | Чистый код / процессы разработки | Внедрение Feature Branching в GitLab | Команда работала без единой ветки-стратегии, фичи "зависали" | Внедрить процесс версионирования и обучить команду | Настроила Feature Branching, обучила коллегу с 11-летним стажем работе с системой версионирования | Команда перешла на стабильные еженедельные релизы | Поняла, что внедрение процесса важно сопровождать индивидуальным обучением, а не только документацией |
| 7 | Полный цикл разработки фичи (frontend + backend-контекст) | График курьеров на vue-cal с drag-and-drop | Расписание вносили разработчики вручную SQL-запросами по заявке логистики | Дать логистике самостоятельный инструмент управления графиком | Реализовала drag-and-drop календарь на vue-cal с полной интеграцией с backend API заказов | Логистика полностью самостоятельно управляет графиком, разработчики больше не тратят время на ручной ввод | В следующий раз заложила бы batch-редактирование сразу, так как логистика позже отдельно запросила такую фичу |
**Рекомендуемый кейс:** «Здесь ЕКОМ» целиком — единственный проект, где кандидат вела архитектуру от фронтенда до границы с backend (RBAC, WebSocket, REST), максимально близко к формату fullstack-роли.
**Вопросы-ловушки:**
- *"Почему решили сменить формат с чистого frontend на fullstack?"* — Ответ: не смена, а расширение — уже сейчас регулярно взаимодействует с backend-логикой (RBAC, WebSocket), fullstack — логичное развитие, а не смена курса.
- *"У вас нет продакшн-опыта Node.js — как быстро адаптируетесь?"* — Ответ: назвать конкретный опыт (хакатон Express/MongoDB, университетский backend-проект) и предложить конкретный план изучения в первые недели (например, начать с некритичных эндпоинтов).
---
## Vibe команды
Судя по формулировкам JD, упомянуты "гибкие условия работы" (график 4/3, время начала по договорённости) и "командная работа" — это позитивный сигнал по критерию гибкости. Явных упоминаний участия в архитектурных решениях/RFC, менторства или code review culture в тексте нет — судя по формулировкам JD, недостаточно данных, чтобы утверждать это как факт; стоит уточнить на собеседовании структуру ревью и участие джуниоров в архитектурных решениях.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Опубликовано 7 июля 2026 (сегодня/вчера) | Positive |
| Качество описания | Конкретный стек, конкретные обязанности, названы конкретные станции метро/адреса офиса, указана вилка зарплаты | Positive |
| Компания | ООО (юрлицо), не физлицо/ИП | Positive |
| Реалистичность требований | 1-3 года опыта — реалистичный порог для перечисленного стека | Positive |
| Увольнения/заморозка найма | Сигналов не найдено (небольшая непубличная компания, новостей нет) | Neutral |
| Повторные публикации | Данных в scan-history.tsv по этой компании нет | Neutral |
**Context Notes:** Небольшая компания без публичной репутационной истории — часть "Listed Technologies" в объявлении на hh.ru выглядит как автоматическое облако смежных ключевых слов площадки (PostgreSQL, Docker, Java, PHP, Figma и т.д.), а не буквальный список требований; при оценке ориентировались на разделы "Обязанности"/"Требования", а не на этот тег-облако.
---
## Рекомендация
**Рекомендуется откликнуться.** Балл 4.1/5 — требуемый стаж (1-3 года) практически идеально совпадает с фактическим опытом кандидата, стек (Flutter + Node.js) прямо перекрывается с CV, формат работы полностью гибкий (удалённо доступно), вилка (100-200к на руки) покрывает и превышает целевой диапазон. Основной пробел — production-уровень Node.js, но это nice-to-have, а не блокер, и закрывается конкретным планом в сопроводительном письме.
+96
View File
@@ -0,0 +1,96 @@
# Оценка: Playneta — Senior Flutter Developer
**Дата:** 2026-07-07
**Архетип:** Mobile Developer (Flutter) — сильный разрыв по seniority и специализации
**Балл:** 1.8/5
**URL:** https://hh.ru/vacancy/134762928
**PDF:** не создан (балл < 3.0)
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Mobile Developer (Flutter), специализация на графике/анимации в мобильных играх |
| Domain | game development (casual/social mobile games) |
| Function | build (сложные анимации, рендеринг) |
| Seniority | Senior — 5+ лет опыта продуктовой разработки, 3+ года конкретно во Flutter |
| Формат работы | Полностью удалённо, из любого города/страны, график 5/2 с гибким началом (9:00-12:00 МСК), core hours 12:00-18:00 МСК |
| Размер команды | Не указан явно |
| Оформление | Не указано в JD |
| TL;DR | Senior Flutter-роль в геймдев-студии с фокусом на кастомную анимацию и рендеринг 60/120 fps — требует 5+ лет опыта и специализированную графическую экспертизу, которых у кандидата (~1.5-2 года, без игрового/анимационного бэкграунда) нет |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| 5+ лет опыта продуктовой разработки | ❌ ~1.5-2 года коммерческого опыта |
| 3+ года конкретно во Flutter | ❌ Flutter — часть опыта с ноября 2024 (меньше года непрерывно, наряду с Vue-проектами) |
| Глубокое понимание рендеринга Flutter | ❌ Не отражено в CV — нет опыта с custom painters, shader-ами, render-level оптимизацией |
| Кастомные анимации, графика 60/120 fps | ❌ Не отражено в CV |
| Опыт mobile B2C приложений от архитектуры до продакшна | ⚠️ Частично — «Здесь Аптека» B2C-приложение, но в команде из 4 человек, не единолично от архитектуры |
| Настройка iOS/Android сборок | ✅ Порт Android→iOS для «Здесь Сотрудник»/«Здесь Чат», сборка и отправка в App Store |
| LLM/AI как часть рабочего процесса | ⚠️ Не задокументировано в CV как часть рабочего процесса |
| Опыт геймдева (plus) | ❌ Нет игрового опыта |
| Flutter Web (plus) | ❌ Не отражено в CV |
**Пробелы:**
1. **Seniority (5+ лет, 3+ года Flutter) — hard blocker.** Это не вопрос формулировок или переупаковки резюме: роль явно требует уровень, которого кандидат физически не может продемонстрировать за счёт CV-редактирования.
2. **Графика/анимация/рендеринг на низком уровне (60/120 fps)** — специализированная экспертиза, которой нет ни намёка в CV; это не "смежный опыт", а отдельная техническая дисциплина (custom rendering, shader-подобная работа), которую нельзя закрыть переформулировкой существующих буллетов.
3. Портфолио-проект, закрывающий пробел: отсутствует — ни один проект кандидата не затрагивает анимацию/графику на этом уровне.
4. **План закрытия:** реалистичного плана для отклика на эту конкретную вакансию нет — разрыв слишком велик, чтобы закрыть его фразой в сопроводительном письме. Единственный честный путь — не откликаться сейчас, при желании двигаться в сторону геймдева/graphics рассмотреть junior/middle роли в этом домене как отдельную карьерную ветку.
5. **Оформление трудовых отношений** не указано в JD — стоит уточнить отдельно, если рассматривать компанию в будущем на подходящем уровне.
## C) Уровень и стратегия
**Уровень в JD (Senior, 5+ лет) vs естественный уровень кандидата (Middle, ~1.5-2 года):** разрыв кратный (в 2.5-3 раза по годам опыта), усугублённый требованием узкоспециализированной графической экспертизы, которой у кандидата вовсе нет. Это принципиально отличается от случаев "недобора по формальным годам при сильных пруф-поинтах" — здесь не хватает и стажа, и самой предметной области.
**План "продать senior без обмана":** Не применимо честно — попытка представить кандидата как Senior для роли такого профиля означала бы либо преувеличение стажа, либо неявное приписывание графической экспертизы, которой нет. Согласно правилам системы ("никогда не выдумывать опыт"), это не может быть сделано добросовестно.
**План "если понизят уровень":** У компании нет очевидного junior/middle аналога этой вакансии в JD. Если Playneta открывает более базовые Flutter-позиции (например, без требования специализации на рендеринге), к ним можно вернуться отдельно — но эта конкретная вакансия не подходит ни при каком уровне позиционирования.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| JD | Зарплата не указана ("фиксированная конкурентная, обсуждается") |
| Целевой диапазон кандидата | 100 000–120 000+ ₽/мес на руки |
| Senior Flutter-разработчик РФ (рыночный ориентир, 2026) | В крупных компаниях свыше 300 000 ₽/мес ([enigmai.ru](https://enigmai.ru/salary/mobile-development/mobile-salary-2026/)) — то есть даже если бы кандидат прошла отбор, реальный уровень оплаты Senior-роли рассчитан на кандидатов с совершенно другим профилем компенсации, что не меняет вывода по фиту |
Компенсация не является узким местом в этой оценке — она вторична при таком разрыве по seniority и специализации.
## E) План персонализации
Пропущено — балл существенно ниже порога 4.0 (Ethical Use). При таком разрыве по seniority и специализированной экспертизе (графика/рендеринг) детальный план персонализации CV/hh.ru не имеет практического смысла — переработка резюме не закрывает отсутствие 3+ лет специализированного опыта.
## F) План собеседований
Пропущено по той же причине — балл ниже порога, направление усилий на подготовку историй для роли, где базовый разрыв по уровню не позволяет пройти отбор, было бы неэффективным использованием времени кандидата.
---
## Vibe команды
Судя по формулировкам JD, упомянуты забота о сотрудниках (спорт, медицина, изучение языков, ежегодный travel-стипенд, "AI hackathons and charity marathons", оплачиваемые международные корпоративные мероприятия) — сильный позитивный сигнал по гибкости и заботе о команде. По независимым источникам (career.habr.com, jobowork.net) сотрудники оценивают оплату труда на 4.3/5, но руководство — на 3.6/5 и карьерный рост на 3.7/5 (57.1% рекомендуют компанию) — смешанные, но в целом положительные сигналы. Явных упоминаний ownership/автономии, участия в архитектурных RFC или code review culture в самом тексте JD нет.
## G) Posting Legitimacy
**Assessment:** Proceed with Caution
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Опубликовано 1 июля 2026 (6 дней назад) — в пределах нормы | Positive |
| Качество описания | Очень конкретное: точные технические требования (60/120 fps, custom animations), точный график (5/2, core hours), реалистичная детализация | Positive |
| Компания | Подтверждена как реальная геймдев-студия (Playneta Limited/Playneta.gg) с публичными отзывами на career.habr.com, Glassdoor, jobowork.net — не выглядит фиктивной | Positive |
| Повторные публикации | **Обнаружены 2 близких дубликата** (134762929, 134762930) — не оценивались отдельно по инструкции задания, но само наличие 2-3 параллельных публикаций одной роли — сигнал повышенного объёма найма или тестирования разных заголовков/каналов | Concerning |
| Увольнения/заморозка найма | Сигналов не найдено | Neutral |
**Context Notes:** Компания легитимна и имеет публичную репутационную историю (не признак ghost job) — но 2-3 почти идентичные публикации одной и той же роли снижают уверенность в том, что это единственная реальная открытая позиция, а не паттерн массового постинга для воронки кандидатов. Отдельно (не влияет на числовую оценку, но важно как контекст фита): Playneta — студия казуальных/социальных мобильных игр (например, "Kiss Kiss", MMORPG "Fog"), то есть игровая, не гемблинг/беттинг-платформа по имеющимся данным поиска — но это всё равно игровой домен, к которому у кандидата нет ни опыта, ни заявленного интереса в профиле; при рассмотрении подобных ролей в будущем стоит явно спросить у кандидата про её отношение к игровому домену как ценностный вопрос, отдельно от технического фита.
---
## Рекомендация
**Настоятельно не рекомендуется откликаться** (балл 1.8/5, значительно ниже порога 4.0). Разрыв по seniority (Senior/5+ лет vs фактические ~1.5-2 года) и по специализации (кастомная анимация/рендеринг 60/120fps в геймдеве vs отсутствие подобного опыта в CV) слишком велик, чтобы закрыть его переформулировкой резюме или сопроводительным письмом без фабрикации опыта. Также отмечены 2 близких дубликата этой публикации на hh.ru (134762929, 134762930) — стоит иметь в виду при возможном будущем рассмотрении других ролей от этого работодателя.
+30
View File
@@ -0,0 +1,30 @@
# Оценка: Noroots — Fullstack-разработчик
**Дата:** 2026-07-07
**Архетип:** Не определён (недоступно для оценки)
**Балл:** N/A — оценка невозможна
**URL:** https://hh.ru/vacancy/134895762
**PDF:** не создан
**Legitimacy:** Insufficient Data
---
## Причина: вакансия недоступна для просмотра
При попытке открыть вакансию (как в авторизованной сессии hh.ru, так и через `check-liveness.mjs`) страница возвращает:
> «Вам недоступна эта вакансия. Войдите как пользователь, у которого есть доступ на просмотр, либо как работодатель, создавший эту вакансию.»
`check-liveness.mjs` независимо получил HTTP 403 (доступ заблокирован) и на API, и при повторной попытке через браузер. Это не типичная блокировка антибота (остальные 10 вакансий hh.ru в этой партии открылись нормально с той же сессией) — похоже, что у конкретно этой вакансии ограничена видимость (например, показ только по персональной пригласительной ссылке или закрытый для публичного показа статус), либо она была снята и hh.ru показывает это сообщение вместо обычного "вакансия в архиве".
**Известные факты** (сохранены при первоначальном авторизованном поиске на hh.ru, до того как доступ пропал):
- Компания: Noroots
- Роль: Fullstack-разработчик
- Локация: Санкт-Петербург, формат "удалённо или гибрид"
- Зарплата: от 150 000 ₽/мес на руки
Полный текст вакансии, требования и описание задач получить не удалось — содержательная оценка (Блоки A-F) невозможна без выдумывания данных.
## Рекомендация
Не оцениваю содержательно, чтобы не фабриковать данные. Если вакансия для вас важна — попробуйте открыть её напрямую в браузере под своим аккаунтом hh.ru (возможно, она была прислана вам по персональной ссылке и всё ещё доступна оттуда), либо поищите повторный постинг той же роли под другим ID.
+112
View File
@@ -0,0 +1,112 @@
# Оценка: МТС — Senior Frontend developer [МТС Маркетолог]
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — primary archetype (роль на React, не Vue — см. пробелы)
**Балл:** 1.8/5
**URL:** https://job.mts.ru/vacancy/681034032435167618
**PDF:** не создан (балл ниже порога 3.0)
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (React) — родственный, но не тот же стек, что у кандидата (Vue) |
| Domain | МТС Маркетолог — self-service платформа для таргетированных маркетинговых кампаний и интернет-рекламы на базе BigData МТС |
| Function | Build |
| Seniority | **Senior, 6+ лет опыта** (явно указано в требованиях) |
| Формат работы | Удалённая работа, полный день |
| Размер команды | Не указан |
| Оформление | Не указано явно (вероятно ТК РФ, стандарт для МТС) |
| Зарплата | Не указана |
| TL;DR | Senior-роль на React с требованием 6+ лет опыта — формат работы (удалённо) полностью подходит, но и стек (React vs Vue кандидата), и уровень (Senior vs ~1.5-2 года у кандидата) — критические разрывы. |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| TypeScript | ✅ Прямое совпадение — стек ЕКОМ |
| React 17 | ❌ Пробел — у кандидата продакшн-опыт на Vue 3, React в CV не указан вообще (только "Vue 2 базово") |
| SCSS и CSS Modules | ⚠️ Частично — кандидат использует Tailwind CSS / shadcn-vue, не SCSS/CSS Modules напрямую |
| "Использование ИИ в разработке (Agentic coding)" | ❌ Не подтверждено в CV — честно не заявлять |
| Next.js, React Query/SWR/Apollo/RTK Query, Zustand (nice-to-have) | ❌ Нет опыта — весь стейт-менеджмент кандидата на Pinia (Vue-экосистема) |
| Angular (nice-to-have) | ❌ Нет опыта |
| Webpack/rspack/vite конфигурация | ⚠️ Частично — есть опыт с Vite (сборка Vue-проектов), но не подтверждена конфигурация webpack/rspack |
| Ревью кода, декомпозиция задач | ✅ Смежный опыт — участие в code review культуре, обучение коллеги Git Flow |
| 6+ лет коммерческого опыта | ❌ Жёсткий разрыв — у кандидата ~1.5-2 года коммерческого опыта |
**Пробелы:**
1. **React vs Vue (hard blocker для технического скрининга).** Весь продакшн-опыт кандидата — Vue 3/Composition API. React в CV не фигурирует. Стратегия закрытия: нет быстрого способа закрыть это честно — на собеседовании максимум можно предложить пройти техническое интервью с демонстрацией общих принципов компонентного/реактивного мышления, но это не заменяет 6 лет React-разработки, которые ожидает JD.
2. **Уровень (Senior 6+ лет vs ~1.5-2 года).** Это не "недобор стажа на 1-2 года", как в предыдущих Middle-вакансиях, а разрыв в 4-4.5 года. Не hard-blocker по location-политике, но фактический hard-blocker по формальному скринингу для Senior-позиции.
3. **"Agentic coding"** — нестандартное, специфичное требование; у кандидата нет подтверждённого опыта с AI-инструментами разработки в CV. Не фабриковать.
## C) Уровень и стратегия
**Уровень в JD:** Senior, 6+ лет — самый высокий уровень требований среди всех оценённых сегодня МТС-вакансий.
**Естественный уровень кандидата для архетипа Frontend (Vue.js):** Middle (по объёму задач), но не переносится на Senior React-роль — стек не совпадает.
**Рекомендация: не откликаться.** Ни план "продать senior без обмана", ни план "если понизят уровень" здесь неприменимы содержательно — компания ищет Senior React-разработчика, а не Middle Vue-разработчика на понижение. Понижение уровня даже не решает базовую проблему несовпадения стека.
Если кандидат всё же хочет откликнуться (например, ради нетворкинга с МТС как работодателем), стоит честно обозначить это рекрутеру на первом же контакте, чтобы не тратить время обеих сторон на несовпадающий по стеку и уровню процесс.
## D) Компенсация и спрос
Зарплата в вакансии не указана.
Рыночные данные (WebSearch, RU, июль 2026):
| Источник | Данные |
|---|---|
| Senior Frontend Developer, Москва (медиана, hh.ru, февраль 2026) | ~287 500 ₽/мес |
| Диапазон Senior Frontend (React), Москва | 270 000 – 410 000 ₽/мес, по отдельным вакансиям до 300 000 – 400 000 ₽/мес |
| Пример вакансии (React, Next.js), Москва | от 275 000 ₽/мес |
**Оценка:** Если бы кандидат реально закрывала эту роль, компенсация была бы значительно выше таргета (100 000–120 000+ ₽/мес на руки). Но это гипотетическое сравнение — фактический разрыв в стеке и стаже делает вероятность прохождения технического скрининга крайне низкой, поэтому высокая компенсация не компенсирует остальные red flags.
## E) План персонализации
Не рекомендуется адаптировать CV под эту вакансию — стек (React) прямо противоречит основному профилю кандидата (Vue), и любая попытка "притянуть" совпадение (например, подавать общие знания JS/TS как эквивалент React-экспертизы) была бы формой фабрикации, запрещённой правилами системы.
## F) План собеседований
Пропущено — при разрыве такого масштаба (стек + 4+ года стажа) содержательная подготовка историй STAR+R не имеет смысла: интервью с высокой вероятностью не пройдёт технический скрининг на уровне резюме/HR-звонка.
---
## Vibe команды
Судя по формулировкам JD (участие в декомпозиции и оценке задач, код-ревью коллег, "поддержка развития команды"), команда описана как вовлечённая в совместное принятие решений — но конкретики уровня RFC/архитектурных обсуждений нет. ДМС со стоматологией с первого дня, внутренняя платформа TechTalks для обмена знаниями, участие во внешних конференциях — сигналы инвестиций в развитие сотрудников. Недостаточно данных в JD для более точной оценки бюрократии/гибкости — стоит уточнить на собеседовании, если кандидат решит всё же откликнуться.
## G) Posting Legitimacy
**Assessment:** Proceed with Caution
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть / Apply-кнопка | `check-liveness.mjs` вернул "uncertain — content present but no visible apply control found"; WebFetch-извлечение отдельно пометило вакансию как "Note: Vacancy is archived" | Concerning |
| Качество описания | Конкретный стек (React 17, TypeScript, SCSS/CSS Modules), реалистичное разделение must-have/nice-to-have, названа конкретная платформа (МТС Маркетолог) | Positive |
| Зарплата | Не указана | Neutral |
| Company Hiring Signals | WebSearch не нашёл специфичных данных о сокращениях в МТС Веб Сервисы за 2026; общий контекст МТС — сокращение ~2% штата в конце 2024 (не относится напрямую к этой команде) | Neutral |
| Reposting | Не проверялось по `scan-history.tsv` (URL получен напрямую из pipeline.md, не через сканер) | Neutral |
| Role Market Context | Senior frontend-роли в крупных компаниях могут оставаться открытыми дольше среднего из-за узкого пула кандидатов | Neutral (контекст, смягчающий "archived") |
**Context Notes:** Ни API, ни браузерная проверка `check-liveness.mjs` не дали окончательного вердикта "expired" — оба вернули "uncertain" без видимого элемента отклика. Отдельно AI-экстракция контента страницы через WebFetch пометила вакансию как архивную. Это не окончательный сигнал закрытия (архивный статус на корпоративном ATS МТС может означать как "закрыта", так и "показывается вместе с похожими архивными вакансиями" — сама структура страницы job.mts.ru нестандартна для парсера). Рекомендуется кандидату вручную открыть ссылку в браузере и убедиться, есть ли активная кнопка отклика, прежде чем инвестировать время — особенно учитывая, что содержательная оценка (стек + уровень) и так не рекомендует отклик.
---
## Извлечённые ключевые слова
TypeScript, React 17, SCSS, CSS Modules, Next.js, React Query, SWR, Apollo, RTK Query, Zustand, Angular, webpack, rspack, vite, YUP, Senior Frontend Developer, code review, декомпозиция задач, agentic coding, BigData, таргетированная реклама, удалённая работа, МТС Маркетолог
---
## Рекомендация
**Балл 1.8/5 — значительно ниже порога 4.0/5 (AGENTS.md, Ethical Use). Настоятельно рекомендуется не откликаться.**
1. Стек не совпадает: вакансия на React, у кандидата продакшн-опыт исключительно на Vue 3 — это не "пробел, который можно закрыть фразой в сопроводительном", а фундаментальное расхождение технологий.
2. Уровень Senior (6+ лет) при фактических ~1.5-2 годах коммерческого опыта у кандидата — разрыв, который не решается позиционированием.
3. Формат работы (удалённо) — единственный полностью проходящий критерий, но сам по себе не перевешивает два предыдущих пункта.
4. Признаки архивации вакансии в двух независимых источниках (check-liveness "uncertain" + WebFetch "archived") — дополнительный аргумент не приоритизировать эту вакансию.
+142
View File
@@ -0,0 +1,142 @@
# Оценка: МТС — Middle Flutter Developer [GOODOK]
**Дата:** 2026-07-07
**Архетип:** Mobile Developer (Flutter) — secondary archetype
**Балл:** 3.6/5
**URL:** https://job.mts.ru/vacancy/678924882003626027
**PDF:** output/cv-romanova-valeriya-mts-goodok-2026-07-07.pdf
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Mobile Developer (Flutter) |
| Domain | МТС GOOD'OK — сервис замены стандартных гудков на мелодии/шутки/музыкальные каналы при входящем звонке |
| Function | Build |
| Seniority | Middle, 3-6 лет опыта |
| Формат работы | Гибрид или удалённо, Москва, гибкое начало дня (8:00-10:00), 8-часовой рабочий день |
| Размер команды | Не указан |
| Оформление | Не указано явно |
| Зарплата | Не указана |
| TL;DR | Middle Flutter-роль с прямым совпадением по ключевым технологиям (BLoC, Clean Architecture, кросс-платформенная разработка), явным remote-опционом — из пяти оценённых сегодня МТС-вакансий единственная с реалистичным шансом на отклик, но не без разрывов (уровень, тестирование Flutter, локальные БД). |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Глубокое знание Dart (async, Future, Stream, async/await) | ⚠️ Правдоподобно (коммерческий Flutter-опыт с ноября 2024), но конкретные async-паттерны не детализированы в CV — не заявлять глубину явно, честно обозначить как область для технического интервью |
| Жизненный цикл виджетов (Stateless/Stateful, initState, dispose) | ⚠️ Аналогично — общий Flutter-опыт есть, детали не в CV |
| CustomPainter, анимации (AnimationController, Tween) | ❌ Не упомянуто в CV — пробел |
| BLoC/Cubit или Riverpod | ✅ Прямое совпадение — "Flutter, BLoC, Service Locator (DI), чистая архитектура" |
| Dio/http с interceptors | ⚠️ Не упомянуто явно в CV (только "REST API" в сети) — вероятный смежный опыт, не подтверждённый явно |
| Локальные БД (Hive, Isar, SQLite) | ❌ Не упомянуто в CV — пробел |
| Unit/widget-тестирование (mocktail/mockito) | ❌ В CV указано тестирование только для Vue-стека (Vitest, Playwright) — для Flutter тестирование не подтверждено |
| Git | ✅ Прямое совпадение — Git, GitLab, Feature Branching |
| Портирование Android → iOS, релиз в App Store | ✅ Сильное прямое совпадение — "Здесь Сотрудник" и "Здесь Чат": адаптация билдов под iOS, перепривязка Firebase push-токенов, сборка и отправка на проверку в App Store |
| Разработка новой функциональности, багфиксы, рефакторинг | ✅ Прямое совпадение — 20+ багов исправлено в «Здесь Аптека», редизайн кнопки «Избранное», диагностика и фикс бага постраничной загрузки |
**Пробелы:**
1. **CustomPainter/анимации** — не hard blocker для большинства Flutter-задач, но explicit требование в JD. Стратегия: честно уточнить на собеседовании реальную глубину, не заявлять неподтверждённое.
2. **Локальные БД (Hive/Isar/SQLite)** — вероятно nice-to-have в контексте приложения-звонилки (кэш настроек), но явно перечислено в must-have. Стратегия закрытия: указать готовность быстро освоить (кандидат отмечает в CV "быстро осваиваю... любые UI-киты"), плюс общий опыт с БД через MongoDB (хакатон).
3. **Flutter-специфичное тестирование (mocktail/mockito)** — в CV подтверждено только тестирование Vue-стека. Смежный опыт (Playwright E2E, Vitest) показывает тестовую культуру в целом, но не конкретные Flutter-инструменты. Честно обозначить как область роста.
4. **Уровень (Middle 3-6 лет)** — у кандидата ~8 месяцев именно Flutter-опыта (с ноября 2024), хотя общий коммерческий стаж ~1.5-2 года через параллельную работу над тремя продуктами. Формальный разрыв заметен именно для чисто Flutter-специализации.
## C) Уровень и стратегия
**Уровень в JD:** Middle, 3-6 лет.
**Естественный уровень кандидата для архетипа Mobile (Flutter):** Junior-Middle переходный — сильный кросс-платформенный опыт (единственный кандидат в отделе, кто довёл 2 приложения от Android-only до iOS-релиза), но формальный стаж именно во Flutter короче, чем в Vue.
**План "продать senior без обмана" (здесь — "продать полноценный Middle"):**
- Вести с уникальным differentiator: самостоятельное портирование двух приложений с Android на iOS "с нуля" (перепривязка Firebase push, сборка, прохождение App Store review) — это операционная зрелость, которую редко доверяют кандидату с коротким стажем.
- Явно называть BLoC/Cubit, Service Locator (DI), Clean Architecture — прямое совпадение с JD-терминологией.
- Честно обозначить: глубокая экспертиза в анимациях/CustomPainter и Flutter-специфичном тестировании — области роста, не сильная сторона на сегодня.
**План "если понизят уровень":**
- Учитывая явный технологический разрыв в тестировании/анимациях, вероятный исход — предложение по нижней границе Middle-вилки или встречное предложение Junior+.
- Принять при условии компенсации выше таргета (100 000–120 000+ ₽/мес на руки) — рыночные данные показывают, что даже нижняя граница Middle Flutter в Москве (152 800–176 000 ₽/мес) с запасом покрывает таргет.
- Договориться о пересмотре через 6 месяцев с чёткими критериями (например, самостоятельное владение анимационным слоем интерфейса).
## D) Компенсация и спрос
Зарплата в вакансии не указана.
Рыночные данные (WebSearch, RU, июль 2026):
| Источник | Данные |
|---|---|
| Middle Flutter Developer (общий обзор, медиана) | ~260 000 ₽/мес |
| Middle-грейд (детализация по грейдам) | 152 800 – 176 000 ₽/мес |
| Москва (опытные Flutter-специалисты) | ~120 000 – 150 000 ₽/мес на входе, до 300 000+ ₽/мес для более опытных Middle |
| Контекст рынка | Flutter к 2026 году утратил репутацию "технологии для прототипов" — крупные банковские и госприложения написаны на Flutter, зарплаты выравниваются с нативной разработкой |
**Оценка:** Даже нижняя граница диапазона Middle Flutter в Москве (152 800 ₽/мес) превышает верхнюю границу таргета кандидата (120 000 ₽/мес на руки) при условии, что цифра близка к net. Оформление и точная gross/net-структура не указаны в JD — уточнить у рекрутера при отклике.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Общий акцент на dual-track Vue3 + Flutter | Вести с мобильной разработкой (Flutter, BLoC, кросс-платформенный релиз) как основным треком под эту вакансию, Vue — как дополнительный | Роль полностью про Flutter/мобильную разработку |
| 2 | Опыт — заголовок роли | «Frontend/Flutter-разработчик» | Показать «Flutter-разработчик» как ведущую роль под эту вакансию | Точное совпадение заголовка повышает keyword-match |
| 3 | Портирование iOS | Указано в проектах "Здесь Сотрудник"/"Здесь Чат" | Вынести в топ буллетов, явно называя Firebase push-токены, App Store review | Прямое совпадение с "интеграция backend-сервисов", "рефакторинг и устранение уязвимостей" |
| 4 | BLoC/Clean Architecture | Указано в скиллах | Добавить конкретный проектный контекст (какие модули на BLoC) в буллеты «Здесь Аптека» | Прямое совпадение с "BLoC/Cubit паттерны" |
| 5 | Ключевые слова | Flutter, BLoC уже есть | Добавить явно "Dart", "async/await", "widget lifecycle" в Skills-секцию (только там, где честно применимо) | ATS-совпадение по формулировкам вакансии |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Портирование, интеграция backend-сервисов | Портирование «Здесь Сотрудник» и «Здесь Чат» с Android на iOS | Оба приложения изначально только под Android | Адаптировать билды под iOS, обеспечить работу push-уведомлений на обеих платформах | Перепривязала Firebase-токены, собрала iOS-билды, спроектировала app-иконки, отправила на проверку в App Store | Оба приложения успешно прошли ревью и вышли в App Store | Кросс-платформенный релиз требует не только кода, но и понимания процесса ревью — операционная зрелость сверх формального стажа |
| 2 | Разработка и адаптация UI-элементов | Редизайн кнопки «Избранное» («Здесь Аптека») | Кнопка была маленькой и неудобной для нажатия | Улучшить эргономику без выделенного дизайнера в команде | Самостоятельно спроектировала и внедрила увеличенную кнопку | Улучшенная эргономика интерфейса | Готовность закрывать дизайнерский пробел — ценно для команды без штатного UI/UX |
| 3 | Рефакторинг и устранение уязвимостей/багов | Диагностика бага «Избранное» (пагинация) | Жалобы пользователей на не открывающийся раздел | Найти причину без готового отчёта QA | Диагностировала: все товары грузились одним запросом; реализовала постраничную загрузку | Жалобы прекратились | Проактивная диагностика продакшн-проблем до эскалации |
| 4 | Работа с состоянием (BLoC/Cubit) | Общая архитектура «Здесь Аптека» на Flutter/BLoC | Приложение росло, требовалась предсказуемая архитектура состояния | Применить BLoC/Service Locator для разделения бизнес-логики и UI | Использует BLoC/Cubit и Service Locator (DI) в рамках Clean Architecture | Поддерживаемая, тестируемая архитектура для растущего приложения | Понимание Clean Architecture как принципа, а не просто набора библиотек |
| 5 | Багфиксинг в проде | 20+ багов, включая проблемы с фильтрами поиска и адаптивностью | Многочисленные UI-баги, часть — не дошедшие до жалоб пользователей | Найти и исправить проактивно | Самостоятельно нашла и исправила более 20 багов | Снижение числа пользовательских жалоб | Проактивный QA-инстинкт — находит баги до эскалации, а не только реагирует на тикеты |
| 6 | Git | Feature Branching + обучение коллеги (РМК) | Хаотичные релизы, "зависшие" фичи | Внедрить Git Flow, обучить команду | Обучила коллегу с 11-летним стажем, внедрила процесс | Команда перешла на стабильные еженедельные релизы | Организационный вклад значим не меньше кода |
**Рекомендуемый кейс:** Портирование «Здесь Сотрудник»/«Здесь Чат» Android → iOS целиком — самое прямое совпадение с "разработка кросс-платформенных приложений", "интеграция backend-сервисов" и демонстрирует операционную зрелость (полный цикл до App Store review).
**Вопросы-ловушки:**
- «У нас требуется опыт с CustomPainter и сложными анимациями — есть?» → «Прямого опыта с CustomPainter пока нет — работала в основном с готовыми виджетами и стандартными анимациями. Готова углубиться, но честно предупреждаю на входе, чтобы не терять время обеих сторон».
- «Как тестируете Flutter-код?» → «На Flutter-проектах пока не внедряла unit/widget-тесты с mocktail/mockito — тестовая культура у меня развита на Vue-стеке (Vitest, Playwright E2E), готова перенести этот опыт на Flutter».
- «У вас 3-6 лет требуется, а Flutter в резюме — с ноября 2024» → «Именно Flutter — около 8 месяцев, но за счёт параллельного ведения 3 продуктов (2 Flutter-приложения + web) общий коммерческий опыт больше, и уже есть полный цикл кросс-платформенного релиза (Android → iOS → App Store)».
---
## Vibe команды
Судя по формулировкам JD, явно указан гибкий график начала рабочего дня (8:00-10:00) — конкретный, а не декларативный сигнал гибкости. Отдельно упомянут корпоративный психолог и массаж — нетипичный для российского рынка сигнал заботы о благополучии сотрудников, стоит отметить как позитив. Прямых упоминаний участия в архитектурных решениях/RFC или менторства нет — недостаточно данных в JD, стоит уточнить на собеседовании, а не выдумывать позитивный вайб. Формат "гибрид или удалённо" без уточнения конкретной политики (сколько дней в офисе при гибриде) — частично конкретно, стоит уточнить у рекрутера при отклике.
## G) Posting Legitimacy
**Assessment:** Proceed with Caution
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть / Apply-кнопка | `check-liveness.mjs` вернул "uncertain — content present but no visible apply control found"; WebFetch-извлечение отдельно отметило: "Vacancy is archived; similar positions available" | Concerning |
| Качество описания | Конкретный технический стек (Dart async, BLoC/Cubit, Dio, Hive/Isar/SQLite, mocktail/mockito), реалистичные для Middle-уровня требования, конкретный продукт (GOOD'OK) | Positive |
| Зарплата | Не указана | Neutral |
| Company Hiring Signals | Общих сигналов о сокращениях в этой конкретной команде/продукте не найдено; общий контекст МТС — точечное сокращение штата в конце 2024, не относящееся напрямую к текущей вакансии | Neutral |
| Reposting | Не проверялось по `scan-history.tsv` (URL получен напрямую из pipeline.md) | Neutral |
| Role Market Context | Middle Flutter — типично закрываемая роль (4-8 недель); продукт GOOD'OK — зрелый, давно существующий сервис МТС, не стартап с неопределённым скоупом | Positive |
**Context Notes:** Формулировка WebFetch "vacancy is archived; similar positions available" в сочетании с "uncertain" от `check-liveness.mjs` — заметный, но не окончательный сигнал. Job.mts.ru — нестандартный для парсеров корпоративный ATS, и оба независимых сигнала могли не распознать активный элемент отклика на JS-отрисованной странице, а не факт закрытия вакансии. Рекомендуется кандидату при отклике сначала открыть ссылку вручную в браузере и убедиться в наличии активной формы отклика.
---
## Извлечённые ключевые слова
Flutter, Dart, BLoC, Cubit, Riverpod, Service Locator, Dependency Injection, Clean Architecture, CustomPainter, AnimationController, Tween, Dio, http, interceptors, Hive, Isar, SQLite, mocktail, mockito, widget lifecycle, StatelessWidget, StatefulWidget, RenderObject, Git, кросс-платформенная разработка, iOS, Android, Firebase, App Store, GOOD'OK, гибридный формат, удалённая работа
---
## Рекомендация
**Балл 3.6/5 — ниже канонического порога 4.0/5 (AGENTS.md, Ethical Use), в диапазоне 3.5-3.9 ("нормально, но не идеально").** Согласно правилу, отклик допустим только при наличии конкретной причины и требует явного решения кандидата — не рекомендуется как приоритетный отклик, но и не входит в категорию "настоятельно не рекомендуется".
1. Сильнейшее совпадение среди всех пяти оценённых сегодня вакансий: прямое совпадение по BLoC/Clean Architecture и уникальный differentiator (единственный кандидат с завершённым циклом портирования Android → iOS → App Store review).
2. Формат работы (гибрид/удалённо) проходит по location-политике без ограничений.
3. Компенсация по рынку (даже нижняя граница Middle Flutter в Москве) с запасом покрывает таргет кандидата.
4. Разрывы: Flutter-специфичное тестирование, анимации/CustomPainter, локальные БД — не hard blockers, но потребуют честного разговора на техническом интервью.
5. Признаки возможной архивации вакансии (см. Block G) — рекомендуется проверить актуальность вручную перед вложением времени в отклик.
+113
View File
@@ -0,0 +1,113 @@
# Оценка: МТС (МТС Веб Сервисы) — Fullstack developer React/Node.JS [MWS Tables]
**Дата:** 2026-07-07
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent fit (роль на React, не Vue — см. пробелы)
**Балл:** 1.9/5
**URL:** https://job.mts.ru/vacancy/673059942004951088
**PDF:** не создан (балл ниже порога 3.0)
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Fullstack Developer (React/Node.js) — родственный, но не тот же стек, что adjacent-архетип кандидата (Vue + Node.js) |
| Domain | MWS Tables — no-code инструмент для совместной работы с таблицами, гибкая организация данных для кросс-функциональных команд |
| Function | Build |
| Seniority | 3-6 лет опыта, минимум 4 года fullstack-разработки |
| Формат работы | Гибрид с гибкими удалёнными опциями по РФ |
| Размер команды | Не указан |
| Оформление | Не указано явно |
| Зарплата | Не указана |
| TL;DR | Fullstack-роль на React/Node.js с тяжёлым DevOps-компонентом (Docker/K8s/Helm, highload REST API, collaboration-библиотеки типа ShareDB/Yjs) — формат работы приемлем (remote-опция явно указана), но требуемый уровень и глубина backend/DevOps намного превышают "ознакомительный" backend-опыт кандидата. |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Минимум 4 года fullstack-опыта | ❌ Пробел — у кандидата ~1.5-2 года коммерческого опыта |
| React, Node.js, TypeScript | ⚠️ Частично — TypeScript ✅ прямое совпадение; Node.js — только "ознакомительный уровень" (Express/MongoDB, хакатон + учебный проект); React — ❌ нет, весь продакшн-опыт на Vue 3 |
| Jest, NestJS Testing Module, Testcontainers, RTA | ❌ Пробел — у кандидата Vitest (Vue) и Playwright (E2E), не NestJS-стек |
| ShareDB, Yjs, Zero One, Electric (collaboration-библиотеки) | ❌ Пробел — не упомянуто в CV, узкоспециализированная область |
| Highload REST API | ❌ Пробел — WebSocket/WSS есть (RMK-проект, ~1200 аптек), но highload-специфика (нагрузочное тестирование, масштабирование) не подтверждена |
| UI-компонентные библиотеки | ✅ Смежное совпадение — shadcn/Tailwind, компонентная разработка на Vue |
| БД и брокеры сообщений | ⚠️ Частично — MongoDB упомянут (хакатон, ознакомительный уровень), брокеры сообщений (Kafka/RabbitMQ) не упомянуты |
| Docker, Kubernetes (K8S), Helm | ❌ Пробел — не упомянуто в CV (DevOps-раздел ограничен Git/GitLab/CI/CD рабочим опытом, Linux — пользовательский уровень) |
| Grafana-дашборды | ❌ Пробел — не упомянуто |
| Git, GitLab | ✅ Прямое совпадение |
**Пробелы:**
1. **React vs Vue** — как и в 036, это не "пробел, закрываемый фразой", а стек, отсутствующий в продакшн-опыте кандидата.
2. **Backend/DevOps глубина (NestJS, Docker/K8s/Helm, highload API, message brokers)** — hard blocker. У кандидата backend-опыт явно маркирован в CV как "ознакомительный уровень" — использовать его как основание для fullstack-роли с K8s/Helm было бы фабрикацией.
3. **Collaboration-библиотеки (ShareDB/Yjs)** — узкоспециализированная область без какого-либо пересечения с опытом кандидата.
4. **4+ года опыта** — формальный разрыв почти в 2-2.5 раза от фактического стажа кандидата.
## C) Уровень и стратегия
**Уровень в JD:** Middle-Senior fullstack (4+ года, но с требованиями, характерными скорее для крепкого Middle-Senior fullstack-инженера с DevOps-экспертизой).
**Естественный уровень кандидата для архетипа Fullstack (Vue + Node.js):** Adjacent fit — у кандидата есть frontend-driven fullstack-опыт (хакатон, учебный проект НИЦ БиоХимТех), но не backend-driven опыт, который требует эта роль.
**Рекомендация: не откликаться.** Ни "продать senior без обмана", ни "понижение уровня" здесь не решают проблему — разрыв в первую очередь качественный (отсутствие DevOps/backend-глубины), а не количественный (стаж). Понижение до Middle не убирает требование Docker/K8s/Helm и collaboration-библиотек.
## D) Компенсация и спрос
Зарплата в вакансии не указана.
Рыночные данные (WebSearch, RU, июль 2026):
| Источник | Данные |
|---|---|
| Fullstack (React+Node/TS), Middle, общий рынок | 170 000 – 190 000 ₽/мес |
| Fullstack Middle, Москва | 250 000 – 280 000 ₽/мес (по другим оценкам от 180-200 тыс. стартовый диапазон) |
| Fullstack Senior | 500 000 – 750 000 ₽/мес |
| Средняя зарплата fullstack, Москва (по отзывам сотрудников) | ~195 000 ₽/мес |
**Оценка:** Гипотетически компенсация значительно выше таргета кандидата (100 000–120 000+ ₽/мес на руки). Но, как и в случае с 036, это не компенсирует фундаментальный разрыв в требуемых компетенциях (DevOps/backend-глубина), из-за которого вероятность прохождения технического скрининга крайне низкая.
## E) План персонализации
Не рекомендуется. Как и в 036, любая попытка представить "ознакомительный уровень" Node.js/Express/MongoDB кандидата как соответствие требованиям highload REST API + Docker/K8s/Helm + collaboration-библиотек была бы прямой фабрикацией опыта, запрещённой правилами системы (`AGENTS.md`, Source-of-Truth Boundary).
## F) План собеседований
Пропущено — при разрыве такого масштаба (backend/DevOps-глубина + узкоспециализированные collaboration-библиотеки + 2.5x разрыв в стаже) содержательная подготовка историй STAR+R не имеет практического смысла.
---
## Vibe команды
JD упоминает "MTS Ocean" — внутреннюю платформу для IT-ресурсов, деплоя и мониторинга, что указывает на развитую внутреннюю инфраструктуру и DevOps-культуру. Явно упомянуты код-ревью и оценка задач в процессе разработки — сигнал вовлечённости в командные решения. Недостаточно данных в JD о конкретной степени автономии или бюрократии процессов — стоит уточнить на собеседовании, если кандидат решит откликнуться.
## G) Posting Legitimacy
**Assessment:** Proceed with Caution
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть / Apply-кнопка | `check-liveness.mjs` вернул "uncertain — content present but no visible apply control found"; WebFetch-извлечение не пометило вакансию как архивную явно (в отличие от 036/037/039/040), но и не подтвердило активный статус | Neutral/Concerning (смешанный сигнал) |
| Качество описания | Очень конкретный и специфичный технический стек (ShareDB/Yjs/Zero One/Electric, Testcontainers, RTA, Module Federation) — маловероятно, что это generic-шаблон, скорее реальные требования конкретной команды | Positive |
| Зарплата | Не указана | Neutral |
| Company Hiring Signals | Специфичных сигналов о сокращениях в MWS Tables не найдено; MWS (МТС Веб Сервисы) в целом показал рост выручки на 9.6% в 2025 году и продолжает публично анонсировать новые R&D-направления (Physical AI, март 2026) — позитивный сигнал стабильности компании в целом | Positive |
| Reposting | Не проверялось по `scan-history.tsv` | Neutral |
| Role Market Context | Fullstack-роль с узкоспециализированными требованиями (collaboration-библиотеки) может легитимно оставаться открытой дольше среднего из-за узкого пула подходящих кандидатов | Neutral |
**Context Notes:** В отличие от 036/037/039/040, WebFetch-извлечение контента для этой вакансии не содержало явного маркера "archived" — сигнал менее выражен, чем у остальных четырёх постов из этой партии, хотя `check-liveness.mjs` всё равно вернул "uncertain". Специфичность технических требований (конкретные библиотеки, а не общие формулировки) — положительный сигнал легитимности независимо от статуса Apply-кнопки.
---
## Извлечённые ключевые слова
React, Node.js, TypeScript, Jest, NestJS, Testcontainers, ShareDB, Yjs, Module Federation, Rich Text Editor, Prosemirror, Quill, Lexical, highload, REST API, Docker, Kubernetes, Helm, CI/CD, Grafana, Git, GitLab, MWS Tables, no-code, гибридный формат, удалённые опции
---
## Рекомендация
**Балл 1.9/5 — значительно ниже порога 4.0/5 (AGENTS.md, Ethical Use). Настоятельно рекомендуется не откликаться.**
1. Стек не совпадает (React vs Vue), как и в 036.
2. Требуемая DevOps/backend-глубина (Docker, K8s, Helm, highload API, collaboration-библиотеки) кардинально превышает "ознакомительный уровень" backend-опыта кандидата — заявлять соответствие означало бы фабрикацию, запрещённую правилами системы.
3. Формальный разрыв в стаже (4+ года требуется vs ~1.5-2 года у кандидата).
4. Формат работы (гибрид с remote-опциями) — единственный полностью проходящий критерий, недостаточен для перевешивания остальных разрывов.
+105
View File
@@ -0,0 +1,105 @@
# Оценка: МТС (МТС Веб Сервисы) — Стажер Fullstack QA [MWS Octapi]
**Дата:** 2026-07-07
**Архетип:** Не соответствует ни одному целевому архетипу кандидата (QA, не Frontend/Mobile/Fullstack-разработка)
**Балл:** 1.0/5 — hard location blocker + архетипное и уровневое несоответствие
**URL:** https://job.mts.ru/vacancy/678176257115949101
**PDF:** не создан (балл ниже порога 3.0)
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | QA/Тестирование (стажёрская позиция) — не входит в целевые архетипы кандидата (Frontend Vue.js / Mobile Flutter / Fullstack Vue+Node) |
| Domain | MWS Octapi — интеграционная платформа, объединяющая различные способы взаимодействия систем в экосистеме компании |
| Function | QA / Test |
| Seniority | Стажировка / Entry-level — "опыт не требуется", требование: студент 3-6 курса бакалавриата/специалитета/магистратуры |
| Формат работы | **Гибрид, Москва, 40 часов/неделю — remote-опция не упомянута** |
| Размер команды | Не указан |
| Оформление | Не указано явно |
| Зарплата | Не указана |
| TL;DR | Стажёрская QA-позиция в Москве без указанной remote-опции — жёсткий блокер по локационной политике кандидата независимо от содержательной оценки; дополнительно роль не совпадает ни по функции (QA vs разработка), ни по уровню (для действующих студентов, кандидат уже выпустилась в 2024 с ~1.5-2 годами коммерческого опыта). |
## B) Совпадение с CV
**Оценка содержательного совпадения проведена для полноты картины, но не влияет на итоговый балл** — локационный блокер применяется как жёсткое правило независимо от технического фита (`modes/_profile.md`, Location Policy).
| Требование JD | Совпадение в CV |
|---|---|
| Студент 3-6 курса (действующее обучение) | ❌ Не подходит по формальному критерию — кандидат выпустилась из ТулГУ в 2024 году, уже имеет ~1.5-2 года коммерческого опыта |
| Browser DevTools, API/Postman | ⚠️ Смежно — общий опыт с REST API/WebSocket есть, но не позиционируется как QA-специализация |
| Python/Java для автоматизации тестирования | ❌ Не упомянуто в CV |
| Playwright E2E | ✅ Прямое совпадение — внедрила Playwright E2E-тесты на проекте РМК |
| Jira, тест-менеджмент | ⚠️ Не упомянуто явно, но есть опыт работы с трекерами задач в рамках спринт-планирования |
**Пробелы:**
1. **Формальная эквивалентность "студент" vs "выпускник с опытом"** — критическое несоответствие: программа явно ориентирована на действующих студентов, а не на специалистов с коммерческим опытом. Отклик кандидата, скорее всего, будет отклонён на этапе скрининга как overqualified/несоответствующий формату программы.
2. **Функциональное несоответствие** — кандидат целенаправленно развивается как frontend/mobile-разработчик, а не QA-инженер; стажировка увела бы карьерную траекторию в сторону от North Star архетипов.
## C) Уровень и стратегия
**Уровень в JD:** Стажировка для действующих студентов.
**Естественный уровень кандидата:** Middle-переходный fullstack/frontend/mobile разработчик с ~1.5-2 годами коммерческого опыта — явно overqualified и не по профилю функции.
**Рекомендация: не откликаться.** Ни стратегия "продать senior", ни "принять понижение уровня" не применимы — это не вопрос позиционирования, а фундаментальное несоответствие (i) формату программы (для студентов, не выпускников с опытом), (ii) функции (QA, не разработка) и (iii) локационной политике кандидата (Москва-гибрид без remote-опции).
## D) Компенсация и спрос
Зарплата в вакансии не указана.
Рыночные данные (WebSearch, RU, июль 2026):
| Источник | Данные |
|---|---|
| Стажёр-аналитик, Россия (2025) | ~44 000 ₽/мес; Москва — ~55 000 ₽/мес |
| Junior Fullstack-разработчик, Россия | 121 900 – 152 500 ₽/мес |
**Оценка:** Стажёрские позиции в РФ типично оплачиваются значительно ниже таргета кандидата (100 000–120 000+ ₽/мес на руки) — даже без учёта локационного блокера, компенсация с высокой вероятностью не покрывала бы минимальную планку кандидата.
## E) План персонализации
Не применимо — при локационном hard blocker и функциональном/уровневом несоответствии персонализация CV не имеет практического смысла.
## F) План собеседований
Пропущено по тем же причинам, что в 036 и 038 — содержательная подготовка не оправдана при комбинации hard blocker (локация) + функциональное несоответствие (QA vs разработка) + уровневое несоответствие (программа для студентов).
---
## Vibe команды
JD описывает MWS Octapi как интеграционную платформу с прикладной задачей объединения способов взаимодействия систем — конкретики о команде, менторстве или культуре code review нет. Упомянуты корпоративное обучение и доступ к онлайн-библиотеке — стандартный, но не отличительный сигнал. Недостаточно данных в JD для содержательной оценки вайба — не первоочередной критерий с учётом hard blocker по локации.
## G) Posting Legitimacy
**Assessment:** Proceed with Caution
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть / Apply-кнопка | `check-liveness.mjs` вернул "uncertain — content present but no visible apply control found"; WebFetch-извлечение явно пометило: "Status: Position archived (not currently accepting applications)" | Concerning |
| Качество описания | Конкретные, реалистичные для стажёрской программы требования (Postman, DevTools, Python/Java, Jira) — не generic-шаблон | Positive |
| Зарплата | Не указана | Neutral |
| Company Hiring Signals | Специфичных сигналов о сокращениях в MWS Octapi не найдено | Neutral |
| Role Market Context | Стажёрские программы часто "evergreen" (набор идёт волнами, а не под конкретную одну вакансию) — архивный статус может отражать окончание текущей волны набора, а не закрытие программы вообще | Neutral (контекст, смягчающий "archived") |
**Context Notes:** Наиболее явный сигнал архивации среди пяти оценённых сегодня вакансий ("not currently accepting applications" — прямая формулировка, а не общая пометка). В сочетании с локационным hard blocker и функциональным несоответствием, дополнительная проверка актуальности не имеет практического смысла для этого кандидата — рекомендация не откликаться устойчива независимо от статуса вакансии.
---
## Извлечённые ключевые слова
QA, тестирование, автоматизация тестирования, Postman, Jira, Python, Java, SDLC, STLC, стажировка, MWS Octapi, интеграционная платформа, гибрид, Москва
---
## Рекомендация
**Балл 1.0/5 — намного ниже порога 4.0/5 (AGENTS.md, Ethical Use). Настоятельно рекомендуется не откликаться.**
1. **Hard location blocker:** формат работы — гибрид в Москве без указанной remote-опции. Per `modes/_profile.md` (Location Policy): "Hybrid/office roles requiring relocation outside Тула... score 1.0 — this is a hard constraint, not a soft preference", независимо от технического фита.
2. **Функциональное несоответствие:** роль — QA-инженер, не входит ни в один из целевых архетипов кандидата (Frontend Vue.js / Mobile Flutter / Fullstack Vue+Node).
3. **Уровневое несоответствие:** программа предназначена для действующих студентов 3-6 курса; кандидат уже выпустилась в 2024 году с ~1.5-2 годами коммерческого опыта — явный overqualification/несоответствие формату.
4. Сильный сигнал возможной архивации вакансии ("not currently accepting applications") — дополнительный, хотя и не решающий, аргумент против инвестирования времени.
+109
View File
@@ -0,0 +1,109 @@
# Оценка: МТС (МТС Веб Сервисы) — Junior Fullstack-аналитик [CICADA8]
**Дата:** 2026-07-07
**Архетип:** Не соответствует ни одному целевому архетипу кандидата (системный/бизнес-аналитик, не разработчик)
**Балл:** 1.0/5 — hard location blocker + архетипное несоответствие
**URL:** https://job.mts.ru/vacancy/678556034456881207
**PDF:** не создан (балл ниже порога 3.0)
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Системный/бизнес-аналитик — не входит в целевые архетипы кандидата (Frontend Vue.js / Mobile Flutter / Fullstack Vue+Node) |
| Domain | CICADA8 — продукты для обнаружения и управления уязвимостями в кибербезопасности |
| Function | Analyze/Consult, не Build |
| Seniority | Junior, 1-3 года опыта |
| Формат работы | **Офис, Москва, полный день — remote-опция не упомянута** |
| Размер команды | Не указан |
| Оформление | Не указано явно |
| Зарплата | Не указана |
| TL;DR | Junior-позиция аналитика в офисе Москвы без remote-опции — жёсткий локационный блокер независимо от содержательной оценки; дополнительно роль функционально не совпадает с профилем кандидата (аналитик, не frontend/mobile-разработчик), хотя домен (кибербезопасность) резонирует с профильным ИБ-образованием кандидата. |
## B) Совпадение с CV
**Оценка содержательного совпадения проведена для полноты картины, но не влияет на итоговый балл** — локационный блокер применяется как жёсткое правило независимо от технического фита (`modes/_profile.md`, Location Policy).
| Требование JD | Совпадение в CV |
|---|---|
| Понимание SDLC | ✅ Смежное совпадение — полный цикл разработки продуктов от нуля (ЕКОМ) |
| Написание технических спецификаций, user stories | ⚠️ Частично — опыт с документированием сервисных workflow в рамках разработки, но не в роли выделенного аналитика |
| Декомпозиция задач | ✅ Прямое совпадение — участие в планировании спринтов, декомпозиции бэклога |
| Базовый SQL (WHERE, JOIN) | ⚠️ Не подтверждено явно в CV — вероятный смежный опыт через MongoDB/backend-ознакомление, не заявлено явно |
| REST API на концептуальном уровне | ✅ Прямое совпадение |
| Чтение и интерпретация JSON | ✅ Прямое совпадение (работа с REST API/WebSocket) |
| Базовый Figma | ⚠️ Частично — кандидат самостоятельно проектирует UI (редизайн кнопок, app-иконки), но инструмент (Figma конкретно) не подтверждён в CV |
| Jira/YouTrack/Trello | ⚠️ Не упомянуто явно, но есть опыт участия в спринт-планировании с трекером задач |
| **Домен: кибербезопасность** | ✅ Сильное резонирующее совпадение — профильное образование "Информационная безопасность автоматизированных систем", проектирование RBAC-модели в продакшене |
**Пробелы:**
1. **Функция роли — аналитик, не разработчик.** Несмотря на приятное совпадение домена (ИБ-образование резонирует с CICADA8 как продуктом кибербезопасности), сама функция роли (сбор требований, интервью пользователей, документация) уводит карьерную траекторию от North Star архетипов кандидата (Frontend/Mobile/Fullstack разработка).
2. **Инструментарий аналитика (SQL, Figma специфично, Jira/YouTrack)** — частично смежный, но не подтверждённый явно опыт; заявлять экспертизу без явного подтверждения в CV было бы преувеличением.
## C) Уровень и стратегия
**Уровень в JD:** Junior, 1-3 года — формально близко к фактическому стажу кандидата (~1.5-2 года).
**Естественный уровень кандидата:** Middle-переходный для архетипов Frontend/Mobile/Fullstack-разработки, но кандидат не позиционирует себя и не имеет прямого опыта как аналитик.
**Рекомендация: не откликаться**, несмотря на формально подходящий уровень стажа. Домен (кибербезопасность) — единственный по-настоящему сильный резонирующий сигнал, но сама функция роли (аналитик) не совпадает ни с одним целевым архетипом, а локационный формат (офис Москва, без remote) — жёсткий блокер.
## D) Компенсация и спрос
Зарплата в вакансии не указана.
Рыночные данные (WebSearch, RU, июль 2026):
| Источник | Данные |
|---|---|
| Junior-аналитик, Москва | 78 000 – 80 000 ₽/мес; более широкий диапазон — 94 000 – 149 000 ₽/мес |
| Общий тренд рынка | Классические junior-позиции всё чаще замещаются стажёрскими программами с упором на AI-инструменты |
**Оценка:** Диапазон Junior-аналитика в Москве (78 000–149 000 ₽/мес) в лучшем случае частично пересекается с нижней границей таргета кандидата (100 000–120 000+ ₽/мес на руки), но с высокой вероятностью окажется ниже. Локационный блокер делает этот вопрос второстепенным.
## E) План персонализации
Не применимо — при hard location blocker персонализация CV не имеет практического смысла, независимо от резонирующего домена.
## F) План собеседований
Пропущено по тем же причинам, что в 039 — hard blocker по локации делает содержательную подготовку STAR+R историй нецелесообразной.
---
## Vibe команды
JD явно упоминает "открытую, дружелюбную корпоративную культуру с неформальным общением на "ты"" и совместную работу с бэкенд/фронтенд/UI-UX/QA-командами на всех этапах разработки — прямые, конкретные формулировки о неформальной атмосфере, а не общие слова. Упомянуто участие в спринт-планировании и оценке усилий — сигнал вовлечённости в командные решения. Явных упоминаний менторства или гибкого графика нет — недостаточно данных для более полной оценки.
## G) Posting Legitimacy
**Assessment:** Proceed with Caution
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть / Apply-кнопка | `check-liveness.mjs` вернул "uncertain — content present but no visible apply control found"; WebFetch-извлечение явно пометило: "Status: Position archived" | Concerning |
| Качество описания | Конкретный продукт (CICADA8, кибербезопасность/управление уязвимостями), реалистичные для Junior-аналитика требования, явное описание корпоративной культуры | Positive |
| Зарплата | Не указана | Neutral |
| Company Hiring Signals | Специфичных сигналов о сокращениях в CICADA8/MWS не найдено | Neutral |
| Role Market Context | Junior-аналитик — типично закрываемая роль (4-6 недель) в растущем продуктовом направлении (кибербезопасность — активно растущий сегмент рынка) | Positive |
**Context Notes:** Как и в 039, явный маркер "archived" от WebFetch в сочетании с "uncertain" от `check-liveness.mjs` — заметный сигнал. Учитывая hard blocker по локации, дополнительная проверка актуальности не критична для итоговой рекомендации данному кандидату, но стоит зафиксировать для общей картины легитимности партии вакансий job.mts.ru, оцененных сегодня.
---
## Извлечённые ключевые слова
Бизнес-анализ, системный анализ, SDLC, технические спецификации, user stories, декомпозиция задач, SQL, JOIN, REST API, JSON, Figma, Jira, YouTrack, Trello, CICADA8, кибербезопасность, управление уязвимостями, спринт-планирование, офис, Москва
---
## Рекомендация
**Балл 1.0/5 — намного ниже порога 4.0/5 (AGENTS.md, Ethical Use). Настоятельно рекомендуется не откликаться.**
1. **Hard location blocker:** формат работы — офис в Москве, полный день, remote-опция не упомянута. Per `modes/_profile.md` (Location Policy): "On-site-only roles outside Тула with no remote option: score 1.0" — жёсткое правило независимо от остального фита.
2. **Функциональное несоответствие:** роль — системный/бизнес-аналитик, не входит ни в один из целевых архетипов кандидата (Frontend/Mobile/Fullstack-разработка), несмотря на формально подходящий уровень стажа (Junior, 1-3 года).
3. **Единственный позитивный сигнал** — резонанс домена (кибербезопасность) с профильным ИБ-образованием кандидата и RBAC-опытом — недостаточен, чтобы перевесить блокер локации и функциональное несоответствие.
4. Признак возможной архивации вакансии — дополнительный, не решающий аргумент.
@@ -0,0 +1,98 @@
# Оценка: Positive Technologies — Fullstack QA Engineer (RA VPN)
**Дата:** 2026-07-07
**Архетип:** QA-инженер / SDET — существенный разрыв по домену (сетевая/VPN QA, не frontend)
**Балл:** 1.7/5
**URL:** https://ptsecurity.com/ru-ru/about/vacancy/qa-engineer--vpn/
**PDF:** не создан (балл < 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | QA-инженер / SDET, специализация на сетевом/VPN-тестировании (группа разработки VPN-агента в составе NGFW) |
| Domain | network security / VPN (Cisco AnyConnect, OpenVPN, WireGuard, IPSec) |
| Function | build (тестовая документация, ручное кросс-платформенное тестирование, автоматизация рутинных задач, внутренние утилиты) |
| Seniority | Не указан явно в JD; по объёму требований — Middle+ |
| Формат работы | Удалённая работа (явно указано "Удаленная работа") |
| Размер команды | Не указан |
| Оформление | Не указано в JD |
| TL;DR | QA-роль в команде VPN-агента Positive Technologies с упором на глубокое знание сетевых протоколов (TCP/IP, IPSec), Windows/Linux администрирование и скриптинг (Python/Bash) — домен и техстек почти не пересекаются с фронтенд/мобильным профилем кандидата |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Глубокое понимание методологий тестирования, жизненного цикла ПО | ⚠️ Частично — Vitest (unit-тесты Vue-компонентов), Playwright E2E на РМК, покрытие позитивными и негативными сценариями, но без формального QA-бэкграунда |
| Знание стека протоколов TCP/IP | ❌ Не отражено в CV — сетевой опыт ограничен REST API и WebSocket/WSS на прикладном уровне, не протокольная диагностика |
| Git | ✅ Git, GitLab, Feature Branching — прямое совпадение |
| Windows-администрирование, PowerShell | ❌ Не отражено в CV — только "Linux (пользовательский уровень)" |
| Запись/фильтрация/анализ сетевого трафика | ❌ Не отражено в CV |
| Опыт работы и настройки сетей | ❌ Не отражено в CV |
| Python или Bash для скриптинга/автоматизации | ❌ Не отражено в CV — навыки автоматизации ограничены Vitest/Playwright в контексте frontend-тестирования, не отдельными скриптами |
| Ручное кросс-платформенное тестирование Windows/Linux | ❌ Не отражено в CV как отдельная компетенция |
| VPN-решения (Cisco AnyConnect, OpenVPN, WireGuard) — plus | ❌ Нет |
| Криптография, IPSec — plus | ❌ Нет; профильное ИБ-образование касалось моделей авторизации/RBAC, не сетевой криптографии |
**Пробелы:**
1. **Сетевой стек протоколов (TCP/IP, IPSec, диагностика трафика) — hard blocker.** Это профильная дисциплина сетевой инженерии, которую нельзя закрыть переформулировкой существующего frontend/mobile опыта.
2. **Windows-администрирование и PowerShell — hard blocker.** В CV нет ни одного упоминания администрирования Windows; весь опыт — пользовательский Linux и frontend-тулинг.
3. **Python/Bash скриптинг для тестовой автоматизации** — нет прямого опыта; Vitest/Playwright — близкий, но не тот же навык (frontend component/E2E тестирование, а не сетевые утилиты).
4. Портфолио-проект, закрывающий пробел: отсутствует.
5. **План закрытия:** реалистичного плана нет для этой конкретной роли. Единственная честная точка соприкосновения — профильное образование по информационной безопасности (проектирование моделей доступа) и общая методология тестирования (Vitest/Playwright), но этого недостаточно, чтобы закрыть отсутствие сетевой экспертизы. Кандидату не стоит откликаться без предварительного значимого набора сетевых/QA-навыков.
## C) Уровень и стратегия
**Уровень в JD vs естественный уровень кандидата:** JD не указывает формальный грейд, но объём требований (глубокая сетевая диагностика, администрирование двух ОС, скриптинг) соответствует специализированному QA-инженеру с профильным опытом — принципиально другая карьерная линия, чем frontend/mobile-разработка, которую ведёт кандидат.
**План "продать senior без обмана":** Неприменимо — попытка позиционировать кандидата как сетевого QA-инженера означала бы фабрикацию несуществующего опыта (TCP/IP диагностика, Windows-администрирование), что запрещено.
**План "если понизят уровень":** Понижение уровня не решает проблему — разрыв не в стаже, а в самом домене (сетевая безопасность vs frontend). Нет более базовой версии этой роли, которая устранила бы это несоответствие.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| JD | Зарплата не указана |
| Целевой диапазон кандидата | 100 000–120 000+ ₽/мес на руки |
| Рынок QA (общий ориентир, РФ, 2026) | Средняя зарплата тестировщика в РФ ~128 000 ₽/мес, диапазон 95 000–160 000 ₽; automation QA — 50 000–250 000 ₽/мес в зависимости от опыта ([career.hh.ru](https://career.hh.ru/article/skolko-zarabatyvayut-testirovshiki-schitaem-zarplaty-qa-inzhenerov)) |
| Positive Technologies — репутация по компенсации | Смешанные отзывы: часть сотрудников отмечает зарплату ниже рынка ([levels.fyi](https://www.levels.fyi/ru-ru/companies/positive-technologies/salaries), [jobtrue.ru](https://jobtrue.ru/company/positive-technologies-2/) — рейтинг компании 2.1/5) |
Компенсация вторична при таком разрыве по домену — даже при рыночной оплате технический фит не позволяет пройти отбор.
## E) План персонализации
Пропущено — балл существенно ниже порога 4.0 (Ethical Use). Разрыв по домену (сетевая QA/VPN vs frontend/mobile) не закрывается косметической переработкой резюме.
## F) План собеседований
Пропущено по той же причине.
---
## Vibe команды
Судя по формулировкам JD ("тесное взаимодействие с командой разработки", участие в разработке внутренних тестовых утилит), команда описывается как включённая в продуктовый цикл, а не изолированная QA-функция — позитивный сигнал автономии. По независимым отзывам (jobtrue.ru, rating 2.1/5; career.habr.com) сотрудники отмечают гибкий график и удалённую работу, дружелюбное сообщество разработчиков как плюсы, но также указывают на переработки, штрафы и текучку руководства как минусы — смешанный сигнал, стоит уточнять на собеседовании, если кандидат когда-либо будет рассматривать роли в этом домене.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть / состояние страницы | Активная кнопка "Откликнуться" и форма отклика на официальном сайте компании (ptsecurity.com), без баннеров архивации | Positive |
| Качество описания | Конкретный технический стек (TCP/IP, Cisco, Python, конкретная команда — "группа разработки VPN-агента в составе NGFW"), реалистичные требования, чёткий список обязанностей | Positive |
| Компания | Крупная публичная российская ИБ-компания (Positive Technologies), не выглядит фиктивной, есть публичные отзывы сотрудников на нескольких площадках | Positive |
| Увольнения/заморозка найма | Не найдено сигналов в ходе поиска по компенсации | Neutral |
| Повторные публикации | Не проверялось отдельно (нет данных в scan-history.tsv по этой конкретной роли) | Neutral |
**Context Notes:** Специализированная ИБ/сетевая QA-роль в крупной, легитимной компании — все сигналы указывают на реальную открытую позицию. Единственная причина низкого балла — доменное несоответствие профилю кандидата, а не сомнения в легитимности вакансии.
---
## Рекомендация
**Настоятельно не рекомендуется откликаться** (балл 1.7/5, значительно ниже порога 4.0). Вакансия легитимна и хорошо описана, но требует профильной сетевой/ИБ-QA экспертизы (TCP/IP, Windows-администрирование, PowerShell, Python/Bash-скриптинг, VPN-протоколы), которой нет ни намёка в текущем CV кандидата — это отдельная инженерная дисциплина, а не смежная с frontend/mobile разработкой область. Единственная точка пересечения (профильное ИБ-образование) касается моделей авторизации, а не сетевой диагностики, и недостаточна для честной заявки на эту роль.
+144
View File
@@ -0,0 +1,144 @@
# Оценка: Air Production (ЭИР Продакшн) — Frontend-разработчик (Vue.js)
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — основной целевой архетип
**Балл:** 4.0/5
**URL:** https://air.agency/career/frontend-razrabotchik-vue-js
**PDF:** ✅ сгенерирован
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (Vue.js) |
| Domain | digital-агентство полного цикла (клиентская веб-разработка) |
| Function | build (frontend клиентских проектов) |
| Seniority | 1-3 года опыта — совпадает с фактическим стажем кандидата (~1.5-2 года) |
| Формат работы | Полностью удалённо, full-time, график 5/2 10:00-19:00 (по желанию — плавающий) |
| Размер команды | Не указан |
| Оформление | "Официальное трудоустройство с первого дня" (упомянуто в JD) |
| TL;DR | Frontend Vue.js роль в устоявшемся digital-агентстве (8 лет на рынке, серебро RUWARD AWARD 2023) с клиентскими проектами, удалённо, зарплата 90 000–130 000 ₽ на руки — совпадает по seniority и основному стеку, но тулинг в JD (Vuex/Webpack/Gulp/Sass/BEM) старше, чем актуальный стек кандидата (Pinia/Vite/Tailwind/Composition API) |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Vue.js | ✅ Vue 3, Composition API — прямое и более актуальное совпадение (фронтенд ЕКОМ разработан с нуля на Vue 3) |
| HTML5, CSS3, Flexbox, ES6+ | ✅ Указано в разделе "Языки программирования" и подтверждено проектной работой |
| Nuxt.js | ⚠️ Нет прямого опыта; указано как "быстро осваиваю" в CV |
| Vue-router | ✅ Vue Router — прямое совпадение |
| Vuex | ⚠️ Кандидат использует Pinia (современная замена Vuex, тот же паттерн state management) — переносимый навык, не отсутствующий |
| Webpack | ⚠️ Кандидат использует Vite; концептуально близкий инструмент сборки, но не тот же |
| Sass/Less (препроцессоры) | ⚠️ Не отражено в CV — используется Tailwind CSS (другая парадигма); в CV указано "любые CSS-подходы — быстро осваиваю" |
| Gulp/Grunt | ❌ Не отражено в CV |
| Git | ✅ Git, GitLab, Feature Branching — прямое совпадение, включая внедрение процесса в команде |
| БЭМ/OOCSS | ⚠️ Не отражено явно в CV; работа с Tailwind подразумевает другой подход к организации стилей |
| Взаимодействие с менеджерами на клиентских проектах | ✅ Кросс-командное взаимодействие (логистика, бэкенд, техподдержка, отдел работы с клиентами) — прямой перенос навыка коммуникации на клиентский контекст |
**Пробелы:**
1. **Устаревший тулинг в JD (Vuex/Webpack/Gulp/Sass/BEM) vs актуальный стек кандидата (Pinia/Vite/Tailwind/Composition API) — nice-to-have, не hard blocker.** Это переносимые навыки: кто освоил Pinia, быстро разберётся в Vuex; кто настраивал Vite, разберётся в Webpack-конфигах. Указано в CV как "быстро осваиваю: любые CSS-подходы".
2. Может ли кандидат продемонстрировать смежный опыт? Да — Vue 3 продакшн-опыт "с нуля" (ЕКОМ) демонстрирует более глубокое владение экосистемой Vue, чем требуется JD, просто на более новой версии тулинга.
3. Портфолио-проект, закрывающий пробел: нет отдельного Webpack/Gulp/Sass проекта, но не требуется — это конфигурационные навыки, а не архитектурные.
4. **Конкретный план закрытия:** В сопроводительном письме и на собеседовании явно обозначить: "Мой стек — Vue 3/Pinia/Vite, but уверенно ориентируюсь в экосистеме Vue в целом и готова быстро адаптироваться к вашему текущему тулингу (Vuex/Webpack)". Не скрывать разницу версий, а фреймировать как способность работать с любым поколением инструментов Vue.
5. Формат работы (агентство, клиентские проекты вместо одного продукта) — не блокер, но стоит уточнить на собеседовании нагрузку по количеству параллельных проектов, чтобы оценить риск переключения контекста.
## C) Уровень и стратегия
**Уровень в JD (1-3 года) vs естественный уровень кандидата (~1.5-2 года, Middle-track):** Хорошее совпадение по формальным годам опыта. Технически кандидат работает с более современным и требовательным стеком (Vue 3 Composition API + TS + Pinia + Vitest/Storybook на продакшн-проекте с нуля), чем предполагает JD (частично Vue 2-эры тулинг) — это создаёт возможность позиционироваться чуть выше формального уровня JD.
**План "продать senior без обмана":** Акцент на то, что кандидат самостоятельно разработала фронтенд крупной внутренней системы (ЕКОМ) с нуля, включая архитектурные решения (RBAC, тестовое покрытие Vitest/Storybook) — это выходит за рамки типичной клиентской "верстка + интеграция" задачи агентства. Формулировка: "Веду фронтенд продукта с нуля, включая архитектуру доступа и тестовое покрытие — готова быстро включаться в разные клиентские стеки агентства".
**План "если понизят уровень":** Маловероятно при совпадении формальных лет опыта; если оффер придёт на нижнюю границу вилки (90 000 ₽), принять при интересном портфолио клиентов и договориться о пересмотре через 3-6 месяцев по факту адаптации к тулингу агентства.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| JD | 90 000–130 000 ₽/мес на руки (net), "обсуждается по итогам собеседования" |
| Целевой диапазон кандидата | 100 000–120 000+ ₽/мес на руки |
| Middle Vue.js разработчик, удалённо (рыночный ориентир, РФ, 2026) | Медиана по Vue.js ~195 000 ₽/мес; массовый Middle-сегмент 140 000–420 000 ₽ ([enigmai.ru](https://enigmai.ru/salary/frontend/frontend-salary-2026/), [career.habr.com](https://career.habr.com/salaries?qualification=Middle&spec_aliases%5B%5D=frontend)) |
**Вывод:** Вилка JD (90 000–130 000 ₽) частично перекрывает целевой диапазон кандидата снизу (100 000–120 000+), но заметно ниже медианного рыночного ориентира для Middle Vue.js-разработчиков (~195 000 ₽) даже с учётом широкого разброса по региону/формату агентства. Оформление "официальное с первого дня" — плюс к стабильности (ТК РФ). Стоит на собеседовании явно заявить нижнюю границу 100 000 ₽ и ориентироваться на верхнюю часть вилки (120-130 тыс.) с учётом продакшн-опыта архитектурных задач.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Общий акцент на Vue 3 + Flutter dual-track | Сузить акцент на Vue 3 production-опыт + готовность к разным клиентским стекам | JD — чисто frontend/агентство, Flutter нерелевантен |
| 2 | Core Competencies | Список из cv.md полностью | Приоритизировать: Vue 3, Composition API, TS, Vue Router, Pinia, Git/GitLab, тестирование (Vitest) | Совпадает максимально с явными требованиями JD |
| 3 | Опыт — ЕКОМ | Полный список буллетов | Первым буллетом — архитектурная работа "фронтенд с нуля", вторым — RBAC, третьим — тестовое покрытие | Показывает глубину, которая выше типичной агентской задачи |
| 4 | Skills — тулинг | "быстро осваиваю: Nuxt, ..." | Явно добавить фразу про готовность работать с Vuex/Webpack/Sass как "знакомые парадигмы через Pinia/Vite" | Закрывает единственный реальный пробел явной формулировкой, а не молчанием |
| 5 | Локация | Тула, готова к удалёнке | Явно подчеркнуть "полностью удалённо, без ограничений по локации" | JD формат — fully remote, важно снять вопрос заранее |
Топ 5 изменений в резюме: см. выше.
Топ 5 изменений в LinkedIn/hh.ru: синхронизировать headline с "Frontend-разработчик (Vue 3) — готова к клиентским проектам", добавить релевантные ключевые слова (Vuex, Webpack, Nuxt) в раздел навыков hh.ru даже если это "быстро осваиваю", указать зарплатные ожидания в профиле в диапазоне 100 000–120 000 ₽, добавить в описание проекта ЕКОМ формулировку "production frontend с нуля", убедиться, что формат работы в профиле указан как "удалённо".
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Vue.js production-опыт, архитектура | RBAC-модель авторизации (ЕКОМ) | Не было разграничения прав между отделами | Спроектировать и объяснить бэкенду ролевую модель | Использовала ИБ-образование, спроектировала роли/группы/права | Внедрено в продакшн | Нестандартный бэкграунд — реальное преимущество, не просто строчка в резюме |
| 2 | Клиентское взаимодействие / поддержка UX | UI/UX-инициатива без дизайнера (кнопка «Избранное») | Не было выделенного дизайнера, интерфейс был неудобным | Взять на себя проектирование | Самостоятельно спроектировала и внедрила редизайн | Улучшенная эргономика | Готовность закрывать пробел роли — полезно для агентства с разными клиентами и запросами |
| 3 | Диагностика проблем в проде (актуально для клиентских проектов) | Диагностика бага «Избранное» | Жалобы пользователей на не открывающийся раздел | Найти причину до эскалации | Диагностировала загрузку одним запросом, реализовала постраничную загрузку | Жалобы прекратились | Проактивная диагностика — ценный сигнал для агентства с несколькими параллельными клиентскими проектами |
| 4 | Git/командная работа | Feature Branching + обучение коллеги (РМК) | Хаотичные релизы, отсутствие версионирования | Внедрить Git Flow в GitLab | Обучила коллегу с 11-летним стажем | Стабильные еженедельные релизы | Мягкие навыки не менее значимы, чем код |
| 5 | Сложные UI-задачи (таблицы/фильтрация) | Список заказов с 9 фильтрами (ЕКОМ) | Неудобные таблицы 1С | Спроектировать и реализовать множественную фильтрацию | Реализовала фильтрацию по 9 параметрам | Используется 4 отделами | Сложность бизнес-логики измеряется числом отделов, которые полагаются на результат |
| 6 | Vue+Node fullstack-контекст (может встретиться в клиентских проектах) | Хакатон TulaHack.Digital | Нужно fullstack-приложение за ограниченное время | Реализовать frontend (Vue3) + backend (Express/MongoDB) | Построила приложение с нуля в команде | Работающий прототип | Понимает базовый fullstack-цикл, полезно при клиентских full-stack задачах агентства |
**Банк историй:** Все 6 историй уже присутствуют в `interview-prep/story-bank.md` — новых добавлений не требуется, будет обновлён список "Использовано в отчётах" для отчёта 044 (см. примечание ниже; при конфликте параллельной записи обновление пропускается, история зафиксирована здесь).
Рекомендуемый кейс: ЕКОМ (архитектура с нуля + RBAC) — лучше всего демонстрирует способность вести клиентский/продуктовый проект от начала до продакшна, что ключевая ценность для агентства.
Вопросы-ловушки:
- **"Почему решили сменить стек (Vuex/Webpack на Pinia/Vite)?"** → "Я не меняла стек намеренно — на текущем проекте выбирала актуальный тулинг с нуля; при этом уверенно ориентируюсь в предыдущем поколении инструментов Vue, так как паттерны (state management, module bundling) идентичны."
- **"Готовы ли к нескольким параллельным клиентским проектам?"** → Честно уточнить нагрузку на собеседовании, сославшись на опыт ведения 3 продуктов одновременно в Здравсервис (Flutter + 2 Vue-проекта).
Черновики ответов на форму пропущены — балл 4.0/5 ниже порога 4.5, установленного для автогенерации черновиков формы.
---
## Vibe команды
Судя по формулировкам JD, явных сигналов ownership/автономии, участия в RFC или code review culture не приведено — текст лаконичен ("разрабатывать frontend-проекты... взаимодействовать с менеджерами"), характерно для агентского формата с чёткой ролью в клиентских проектах. Гибкость присутствует: "5/2 10:00-19:00 (при желании плавающий график)" — позитивный сигнал. Упомянуто "официальное трудоустройство с первого дня" и "индивидуальный план развития после испытательного срока" — сигнал заботы о росте сотрудника. По независимым источникам (tagline.ru, ruward.ru) — устоявшееся агентство с 8-летней историей и наградой RUWARD AWARD 2023 (серебро в категории "Agency of the Year"), что говорит о стабильности и профессиональной репутации на рынке.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть / состояние страницы | Активная кнопка отклика, страница отвечает нормально, ранее подтверждена как живая через WebSearch в этой же сессии | Positive |
| Качество описания | Конкретный стек, чёткая вилка зарплаты, конкретный график и условия испытательного срока | Positive |
| Компания | Подтверждена как реальное, устоявшееся digital-агентство (8 лет на рынке, награда RUWARD AWARD 2023, профиль на tagline.ru/ruward.ru) | Positive |
| Увольнения/заморозка найма | Сигналов не найдено | Neutral |
| Повторные публикации | Не проверялось отдельно (нет данных в scan-history.tsv для этой вакансии) | Neutral |
**Context Notes:** Легитимное, устоявшееся агентство с публичной репутационной историей и конкретной вилкой зарплаты — сильные позитивные сигналы. Вакансия выглядит как реальная открытая позиция, а не ghost job.
---
## Рекомендация
**Стоит откликнуться** (балл 4.0/5, выше порога 4.0). Хорошее совпадение по архитектуре Vue.js и seniority, зарплатная вилка частично перекрывает целевой диапазон (стоит на собеседовании ориентироваться на верхнюю границу 120-130 тыс. ₽), удалённый формат полностью соответствует локационной политике кандидата. Единственный заметный пробел — более старый тулинг агентства (Vuex/Webpack/Gulp/Sass/BEM) относительно актуального стека кандидата (Pinia/Vite/Tailwind) — но это переносимый навык, не hard blocker, и его стоит прямо проговорить на собеседовании, а не скрывать.
## Извлечённые ключевые слова
Vue.js, Nuxt.js, Vue-router, Vuex, Webpack, HTML5, CSS3, Flexbox, ES6+, Sass, Less, Gulp, Grunt, Git, БЭМ, OOCSS, frontend, клиентские проекты, удалённо, полный день, официальное трудоустройство, индивидуальный план развития, тестовое задание оплачивается, переработки компенсируются
## Cover Letter Draft
**Тема:** Отклик на вакансию Frontend-разработчик (Vue.js)
Здравствуйте!
Меня зовут Валерия Романова, я frontend-разработчик с продакшн-опытом на Vue 3 (Composition API, TypeScript, Pinia). С ноября 2024 года веду фронтенд внутренней системы управления заказами и логистикой («Здесь ЕКОМ») в аптечной сети «Здравсервис» — разработала его с нуля, включая проектирование ролевой модели авторизации (RBAC) на стыке с профильным ИБ-образованием.
Мой текущий стек (Pinia, Vite, Tailwind) чуть новее, чем указанный в вакансии (Vuex, Webpack, Sass) — но паттерны идентичны, и я быстро адаптируюсь к любому поколению тулинга Vue. Отдельно закрывала задачи, которые обычно выходят за рамки frontend-роли: самостоятельно проектировала UI-редизайны в команде без выделенного дизайнера.
Готова работать полностью удалённо, full-time. Буду рада обсудить детали на собеседовании.
С уважением,
Валерия Романова
vbleroy@yandex.ru / @vbleroy
+121
View File
@@ -0,0 +1,121 @@
# Оценка: АЛИДИ, Группа компаний — Flutter Developer (Android/iOS/Web)
**Дата:** 2026-07-07
**Архетип:** Mobile Developer (Flutter) — второстепенный целевой архетип
**Балл:** 3.4/5
**URL:** https://t.me/s/runello_rus_mobileappdevelopment/3185
**PDF:** ✅ сгенерирован (балл 3.4/5 >= порога 3.0)
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Mobile Developer (Flutter), с расширением на Flutter Web |
| Domain | дистрибуция/логистика (АЛИДИ — дистрибьютор Procter & Gamble, Nestle, Wrigley и др., 61 регион РФ/Беларуси/Казахстана, ~9000 сотрудников) |
| Function | build (новые продукты на Flutter + поддержка единой кодовой базы Android/iOS/Web) |
| Seniority | 2+ года коммерческой разработки, включая Flutter Web |
| Формат работы | "Удалённо или гибрид"; офис в пос. Ждановский, Нижний Новгород — гибрид требует присутствия в НН, но удалённый вариант заявлен явно как альтернатива |
| Размер команды | Не указан |
| Оформление | "Официальное трудоустройство" (упомянуто в источнике вакансии) |
| TL;DR | Flutter-роль в крупном стабильном дистрибьюторе (не IT-продуктовая компания) с явно заявленным удалённым форматом — хорошее совпадение по core-стеку Flutter/Dart, но JD требует опыт именно Flutter Web, которого нет в CV, и общий стаж 2+ года specifically во Flutter, тогда как у кандидата Flutter — один из трёх параллельных треков, а не основной непрерывный фокус |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Уверенное знание Flutter и Dart | ✅ Flutter, Dart — прямое совпадение, продакшн-опыт на «Здесь Аптека» (Android/iOS) |
| Опыт коммерческой разработки от 2 лет | ⚠️ С ноября 2024 (около 20 месяцев к моменту оценки) — близко к порогу, но это общий срок работы в компании на трёх продуктах одновременно (Flutter + 2 Vue-проекта), не 2 непрерывных года исключительно во Flutter |
| Опыт разработки Flutter Web | ❌ Не отражено в CV — весь Flutter-опыт кандидата это Android/iOS (порты, баг-фиксы, редизайн), без Flutter Web |
| Понимание lifecycle, Widget/Element/Render Trees, rebuild-механизм | ⚠️ Не задокументировано явно в CV на уровне терминологии, но практическая работа с багами (замыкание реактивной переменной, диагностика «Избранное») демонстрирует глубокое понимание жизненного цикла на уровне приложения |
| StatefulWidget/StatelessWidget | ✅ Подразумевается опытом Flutter-разработки, хотя не названо явно в CV построчно |
| Адаптивный UI | ✅ Редизайн кнопки «Избранное», компоновка блока информации о заказе — прямое подтверждение UI/UX-работы |
| Git, CI/CD | ✅ Git, GitLab, Feature Branching, CI/CD (рабочий опыт) — прямое совпадение |
| Jira/таск-трекер | ⚠️ Не указано явно в CV, но участие в спринт-планировании подразумевает работу с таск-трекером |
| Unit/widget/integration тестирование | ⚠️ Есть тестирование (Vitest, Playwright), но контекст — Vue-проекты, не Flutter-тестирование напрямую |
| Firebase | ✅ Firebase Cloud Messaging (push-уведомления) — прямое совпадение, включая перепривязку токенов между Android/iOS |
| Портирование Android → iOS / архитектура приложения | ✅ Прямое совпадение — портировала «Здесь Сотрудник» и «Здесь Чат» с Android на iOS, спроектировала app-иконки, отправила сборки в App Store |
**Пробелы:**
1. **Flutter Web — nice-to-have с уклоном в hard, но не абсолютный блокер.** У кандидата нет ни одного Flutter Web проекта в CV. Если это жёсткое требование (единая кодовая база под три платформы одновременно), стоит уточнить на собеседовании реальный вес Web-части в задачах роли.
2. **2+ года именно во Flutter** — формально близко (20 месяцев с ноября 2024), но фактически кандидат вела 3 продукта параллельно (Flutter + 2 Vue), поэтому "чистого" фокуса на Flutter меньше 2 лет. Может быть смежным опытом, если компания оценивает по общему стажу разработки, а не по узкому "только Flutter" счётчику.
3. Портфолио-проект, закрывающий Flutter Web пробел: отсутствует.
4. **Конкретный план закрытия:** В сопроводительном письме прямо обозначить реальный опыт — портирование между Android/iOS, работа с Firebase, редизайн UI — и честно уточнить на собеседовании объём Flutter Web в задачах, не заявляя несуществующий опыт.
5. Формат гибрид/офис — Нижний Новгород, кандидат в Туле; поскольку JD явно предлагает "удалённо" как альтернативу гибриду, это не создаёт hard-блокер по локационной политике, но стоит подтвердить в переписке, что удалённый формат реально доступен для кандидатов вне НН (а не только "гибрид для местных, удалёнка как исключение").
## C) Уровень и стратегия
**Уровень в JD (2+ года, включая Flutter Web) vs естественный уровень кандидата (~1.7 года общего опыта, из них Flutter — один из трёх параллельных треков, без Web):** Умеренный разрыв, не катастрофический — базовый Flutter-стек (widget tree, state management через BLoC, Firebase, портирование платформ) закрыт хорошо, но специфика "единая кодовая база для трёх платформ" требует Flutter Web опыта, которого нет.
**План "продать senior без обмана":** Не претендовать на Flutter Web опыт напрямую. Позиционировать как "уверенный Flutter-разработчик с мультиплатформенным опытом (Android/iOS, включая портирование между ними), готова расширяться на Web-таргет" — честная формулировка готовности к росту, а не утверждение существующей экспертизы.
**План "если понизят уровень":** Если компания предложит более junior/входную позицию из-за отсутствия Flutter Web — принять при справедливой компенсации, договориться о переходе на полноценную роль через 3-6 месяцев по факту освоения Web-таргета (это техническая, а не архитектурная разница, осваивается быстро при наличии сильной базы в Flutter).
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| JD | Зарплата не указана ("уровень дохода не указан") |
| Целевой диапазон кандидата | 100 000–120 000+ ₽/мес на руки |
| Middle Flutter-разработчик, удалённо (рыночный ориентир, РФ, 2026) | Медиана Middle Flutter ~260 000 ₽/мес; общий диапазон по рынку широко варьируется (40 000–400 000 ₽) в зависимости от опыта и региона ([enigmai.ru](https://enigmai.ru/salary/mobile-development/mobile-salary-2026/), [career.hh.ru](https://career.hh.ru/profession/52)) |
| АЛИДИ — общая репутация как работодателя | Смешанные отзывы: полностью белая зарплата, стабильные выплаты, 44 дня отпуска (плюс к стабильности), но также жалобы на нагрузку и текучесть в отдельных подразделениях (складские позиции) — данные в основном не про IT-отдел ([tipworker.com](https://tipworker.com/otzyvy-sotrudnikov/alidi), [pravda-sotrudnikov.ru](https://pravda-sotrudnikov.ru/company/alidi-2)) |
**Вывод:** Отсутствие указанной зарплаты — риск-фактор для приоритизации усилий; стоит уточнить вилку на первом контакте до глубокой подготовки к собеседованию. Рыночная медиана Middle Flutter (260 000 ₽) значительно выше целевого диапазона кандидата — если компания платит по рынку, это апсайд; если по нижней границе (не редкость для непрофильной IT-компании вроде дистрибьютора), стоит ориентироваться на целевой диапазон 100 000–120 000 ₽. Крупная стабильная компания (не стартап) — плюс к стабильности оформления (ТК РФ).
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Общий акцент на Vue 3 + Flutter dual-track | Сместить акцент на Flutter/мобильную разработку, упомянуть Vue как второй трек, не основной | JD — чисто Flutter-роль |
| 2 | Core Competencies | Смешанный список Vue+Flutter | Приоритизировать Flutter, Dart, BLoC, Clean Architecture, Firebase, портирование платформ | Прямое совпадение с ключевыми требованиями |
| 3 | Опыт — «Здесь Аптека» | Полный список буллетов | Первым — портирование Android→iOS (демонстрирует мультиплатформенность), вторым — диагностика «Избранное», третьим — редизайн UI | Показывает именно те компетенции, которые ищет JD |
| 4 | Flutter Web | Отсутствует в CV | Явно не выдумывать — если есть хоть какой-то опыт с web-таргетом Flutter (даже экспериментальный), добавить; если нет — не упоминать | Правило "никогда не выдумывать опыт" |
| 5 | Локация | Тула, готова к удалёнке | Явно подчеркнуть "полностью удалённо" при отклике, не полагаться на умолчание про гибрид в НН | Снимает риск недопонимания по формату работы |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Портирование платформ / архитектура приложения | Портирование «Здесь Сотрудник»/«Здесь Чат» Android→iOS | Оба приложения были только под Android | Адаптировать билды под iOS, включая push-уведомления | Перепривязала токены Firebase на обеих платформах, собрала и отправила сборки в App Store | Оба приложения одобрены и опубликованы | Мультиплатформенная разработка — не абстрактное знание, а пройденный полный цикл release-процесса |
| 2 | Firebase / push-уведомления | Firebase Cloud Messaging на «Здесь Сотрудник»/«Здесь Чат» | Нужны были push-уведомления на новой платформе (iOS) | Перепривязать токены для обеих ОС | Настроила Firebase для Android и iOS | Уведомления работают на обеих платформах | Понимание платформенных различий в infra-слое, не только в UI |
| 3 | Диагностика и понимание жизненного цикла состояния (rebuild/reactive) | Диагностика бага «Избранное» | Раздел не открывался, жалобы пользователей | Найти причину без готового отчёта QA | Диагностировала: все товары одним запросом; реализовала постраничную загрузку | Жалобы прекратились | Понимание, как состояние и загрузка данных влияют на rebuild UI — переносимый принцип между Vue reactivity и Flutter state management |
| 4 | Adaptive/адаптивный UI | Редизайн кнопки «Избранное» и блока информации о заказе | Неудобный интерфейс, нет дизайнера в компании | Спроектировать редизайн самостоятельно | Сделала кнопку крупнее, компоновку компактнее | Улучшенная эргономика | Готовность закрывать пробел роли — полезно в компании без отдельного мобильного дизайнера |
| 5 | Git/CI/CD, командная работа | Feature Branching + обучение коллеги (РМК) | Хаотичные релизы, нет версионирования | Внедрить Git Flow, обучить команду | Обучила коллегу с 11-летним стажем, внедрила процесс | Стабильные еженедельные релизы | Способность вносить процессные изменения, не только код |
| 6 | Замыкание реактивной переменной (близко к rebuild-механизму Flutter) | Баг с клавиатурой (РМК) | Клавиатура переставала работать после серии действий | Найти причину в глобальном классе биндинга | Диагностировала проблему очистки старых реактивных ссылок | Баг исправлен, задокументирован паттерн | Глубина понимания реактивности и жизненного цикла переменных — прямой концептуальный мостик к вопросам про Flutter rebuild-механизм |
**Банк историй:** Все истории уже присутствуют в `interview-prep/story-bank.md` — новых добавлений не требуется. При конфликте параллельной записи со стороны других воркеров обновление списка "Использовано в отчётах" пропускается; данные зафиксированы здесь.
Рекомендуемый кейс: портирование «Здесь Сотрудник»/«Здесь Чат» Android→iOS — лучше всего демонстрирует именно ту компетенцию, которую явно требует JD ("поддержка единой кодовой базы для Android, iOS и Web").
Вопросы-ловушки:
- **"Есть ли у вас опыт Flutter Web?"** → Честно: "Прямого продакшн-опыта с Flutter Web нет — весь мой Flutter-опыт на Android/iOS, включая портирование между ними. Готова разобраться с Web-таргетом, если это будет частью роли — концептуально это тот же Flutter-стек."
- **"Почему при 20 месяцах в компании вы вели три продукта одновременно, а не сфокусировались на одном?"** → "Это было решение компании из-за небольшой frontend-команды (4 человека) — я взяла на себя ЕКОМ с нуля, продолжая поддерживать Flutter-приложения. Это дало более широкий опыт мультиплатформенной разработки, но да, непрерывного фокуса именно на Flutter меньше двух лет."
---
## Vibe команды
Судя по формулировкам JD (сжатый, формальный текст без упоминания code review culture, менторства или участия в архитектурных решениях), сигналов "живой команды" в самом тексте немного — типично для крупной непрофильной IT-компании (дистрибьютор, а не продуктовый IT-стартап). Позитивный сигнал — явное указание графика (5 дней, 8 часов) и стабильности (официальное трудоустройство, оплачиваемые отпуска и больничные). По независимым отзывам сотрудников АЛИДИ в целом (не специфично IT-отдел) — сильно противоречивая картина: часть отзывов хвалит стабильность и белую зарплату, часть жалуется на нагрузку и текучесть, но большинство критических отзывов относится к складским/логистическим позициям, не к IT. Недостаточно данных в JD, чтобы делать выводы конкретно про IT/mobile-команду — стоит уточнить на собеседовании про code review, менторство и степень автономии в архитектурных решениях.
## G) Posting Legitimacy
**Assessment:** Proceed with Caution
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Опубликовано 3 июля 2026 (4 дня назад на момент оценки) — свежая публикация | Positive |
| Источник | Найдена и через Telegram-канал (t.me/s/runello_rus_mobileappdevelopment), и напрямую на hh.ru (134831996) под тем же описанием роли — совпадение по двум независимым каналам повышает доверие к реальности вакансии | Positive |
| Качество описания | Конкретные технические требования (Widget/Element/Render Trees, rebuild-механизм, CI/CD инструменты по именам), реалистичный объём для заявленного уровня | Positive |
| Зарплата не указана | "Уровень дохода не указан" — нейтральный, но чуть менее прозрачный сигнал, характерный для непрофильных IT-компаний | Neutral |
| Компания | АЛИДИ — крупный, давно существующий дистрибьютор (9000+ сотрудников, 61 регион), не выглядит фиктивной; но найдены смешанные отзывы о процессах в компании в целом | Neutral/Concerning |
| Reposting | Вакансия распространяется через Telegram-репост канала — сам по себе не признак ghost job (агрегаторские каналы репостят реальные вакансии), но снижает уверенность в эксклюзивности контакта | Neutral |
**Context Notes:** Компания легитимна и стабильна, но не является профильной IT-компанией — обычный паттерн для непрофильных компаний с внутренним IT-отделом: набор идёт медленнее, публичной репутации именно IT-культуры меньше данных. Отсутствие указанной зарплаты — стоит уточнить в первую очередь до глубокой подготовки.
---
## Рекомендация
**Можно рассмотреть с оговорками** (балл 3.4/5 — ниже порога 4.0, применяется правило Ethical Use: настоятельно не рекомендуется откликаться без конкретной причины). Технический стек и мультиплатформенный Flutter-опыт кандидата (портирование Android→iOS, Firebase, редизайн UI) хорошо совпадают с ролью, формат работы (удалённо как альтернатива гибриду) соответствует локационной политике. Однако отсутствие Flutter Web опыта, неполные 2 года непрерывного фокуса именно на Flutter (из-за параллельной работы на 3 продуктах) и неуказанная зарплата — три фактора, которые тянут балл ниже порога уверенной рекомендации. Если кандидат хочет расширяться в сторону мультиплатформенного Flutter (включая Web) и ценит стабильность крупной непрофильной компании — стоит уточнить зарплатную вилку и реальный вес Flutter Web в задачах до подготовки полноценного отклика.
+112
View File
@@ -0,0 +1,112 @@
# Оценка: X5 Tech — Senior Frontend Developer
**Дата:** 2026-07-07
**Архетип:** Frontend-разработчик (React/Redux) — смежный с целевым архетипом (Vue.js), не совпадает по стеку
**Балл:** 1.0/5
**URL:** https://rabota.x5.ru/vacancies/210ab754-166e-4775-a48f-bfba9d75c2c3
**PDF:** не создан (балл < 3.0)
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (React/Redux) — смежный, не Vue |
| Domain | Frontend / retail-tech (e-commerce/внутренние системы X5) |
| Function | Build |
| Seniority | Senior, 3+ года коммерческого опыта |
| Формат работы | Офис, Москва (ул. Коровий Вал, 5, стр. 1). Удалёнка не упомянута |
| Размер команды | Не указан |
| Оформление | Не указано в JD |
| TL;DR | Senior React/Redux-позиция в X5 Tech в офисе в Москве без упоминания удалёнки — жёсткий блокер по локации (кандидат в Туле, без переезда) и полное расхождение стека (React вместо Vue) делают роль неподходящей несмотря на сильный бренд компании. |
**Vibe команды:** судя по формулировкам JD ("участие в оценке и декомпозиции задач", "обоснование выбора технологий", "участие в проектировании архитектуры") — команда даёт разработчикам голос в технических решениях, что похоже на сигнал автономии/ownership. Явных упоминаний менторства, code review культуры или гибкого графика в тексте нет — недостаточно данных, стоит уточнять на собеседовании.
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| JavaScript/TypeScript | Прямое совпадение — «Языки программирования: JavaScript, TypeScript» |
| 3+ года SPA на React | **Нет совпадения.** cv.md не содержит коммерческого опыта с React — только Vue 3 (ЕКОМ, РМК) и Flutter |
| Redux/MobX | **Нет совпадения.** В CV — Pinia (Vue-экосистема), концептуально похожий state management, но не тот же инструмент |
| Поддержка читаемости кода | Частичное совпадение — Feature Branching в GitLab, обучение коллеги версионированию, переход команды на стабильные релизы |
| Обоснование выбора технологий | Частичное совпадение — самостоятельно спроектировала и объяснила бэкенд-команде модель RBAC, приводя обоснование выбора подхода |
| Figma | Частичное совпадение — самостоятельный редизайн UI (кнопка «Избранное», компоновка заказа), отрисовка app-иконок, но без явного упоминания Figma в CV |
| Bonus: дизайн-системы (Ant Design) | Смежное — опыт с shadcn/shadcn-vue, но не Ant Design |
| Bonus: backend/инфраструктура | Частичное совпадение — Node.js/Express/MongoDB (хакатон, проект ТулГУ), WebSocket |
**Пробелы:**
1. **React/Redux — hard blocker.** Это ядро стека роли (SPA на React 3+ года). У кандидата нет коммерческого React-опыта. Смежные концепции (компонентная архитектура, реактивность, state management через Pinia) переносимы, но честно представить это как «опыт с React» нельзя — это будет фабрикацией. План закрытия: в сопроводительном письме можно упомянуть перенос архитектурных паттернов Vue → React как способность быстро адаптироваться, но это не закрывает требование 3+ лет.
2. **Локация — HARD BLOCKER.** Офис в Москве без упоминания удалённого формата. По политике `_profile.md`: офис/гибрид вне Тулы без опции удалёнки = балл 1.0 независимо от технического совпадения. Это определяющий фактор оценки.
3. **Seniority gap.** JD требует Senior (3+ года), естественный уровень кандидата — Middle (~1.5-2 года коммерческого опыта).
## C) Уровень и стратегия
**Уровень в JD:** Senior (3+ года SPA на React). **Естественный уровень кандидата:** Middle, причём в другом стеке (Vue, не React).
Из-за жёсткого блокера по локации (офис в Москве, кандидат в Туле без возможности переезда) и одновременного расхождения по стеку и по уровню, стратегия «продать senior без обмана» здесь неприменима — комбинация факторов делает роль нерелевантной вне зависимости от позиционирования.
**Рекомендация: явно не откликаться.** Балл 1.0/5 — ниже порога 4.0, установленного `AGENTS.md` (Ethical Use). Причина — не единичный пробел, а жёсткий локационный блокер поверх расхождения по стеку. Единственный сценарий, где стоит рассмотреть эту роль — если появится подтверждённая удалённая опция и кандидат готова инвестировать время в изучение React с нуля; ни то, ни другое не подтверждено JD.
## D) Компенсация и спрос
Зарплата в вакансии не указана («условия обсуждаются индивидуально»).
| Источник | Данные |
|---|---|
| hh.ru (февраль 2026, по WebSearch) | Медиана Senior Frontend в Москве — ≈287 500 ₽/мес |
| Яндекс.Практикум / Mail.ru (по WebSearch) | Senior frontend: 270 000–410 000 ₽/мес, у Mail.ru — ≈329 000 ₽/мес |
| Отзывы сотрудников X5 Tech (Хабр Карьера / Dream Job, по WebSearch) | Отмечают белую зарплату, годовую/квартальную премию, ДМС и обучение; но регулярные жалобы на отсутствие прозрачных критериев роста зарплаты и на нерегулярную индексацию |
**Gross vs Net:** JD не уточняет, но рыночные данные выше — как правило gross. Ориентировочно net ≈ gross × 0.87.
Целевой диапазон кандидата — 100 000–120 000+ ₽/мес на руки, что существенно ниже рыночной Senior-вилки (287k+ gross) — с точки зрения голой цифры комп выглядел бы привлекательно, если бы не офисный формат в другом городе, который делает вопрос компенсации нерелевантным.
## E) План персонализации
Не применимо в полном объёме — при жёстком локационном блокере инвестировать время в тонкую персонализацию CV/LinkedIn под эту конкретную роль нецелесообразно. Если кандидат всё же решит откликнуться (например, ради нетворкинга или пробы себя в React), из общих рекомендаций:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Акцент на Vue 3 + Flutter | Добавить фразу про перенос архитектурных паттернов между фреймворками | Показать адаптивность при явном отсутствии React |
| 2 | Skills | Pinia указана как основной state management | Добавить формулировку «Component-based SPA architecture (Vue 3), transferable state management patterns» | Снизить риск автоматического отсева по ключевому слову Redux |
## F) План собеседований
Учитывая рекомендацию не откликаться, привожу сокращённый набор историй (не полные 6-10) — на случай, если кандидат решит зайти на собеседование ради опыта или нетворкинга:
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Обоснование выбора технологий | Проектирование RBAC в ЕКОМ | В команде без опыта проектирования моделей доступа нужно было внедрить разграничение прав между отделами | Спроектировать и защитить модель авторизации перед бэкенд-командой | Использовала профильное ИБ-образование, спроектировала ролевую модель, объяснила её принцип и отличие от смежных подходов | Модель принята и внедрена, отделы (логистика/заказы) корректно разграничены | Поняла, что даже без формального тимлид-опыта можно вести техническое решение, если аргументация выстроена системно |
| 2 | Участие в декомпозиции и оценке задач | Планирование спринтов в Здравсервис | Приоритеты команды регулярно терялись/забывались | Вернуть фокус на цели, которые теряются в потоке задач | Неоднократно поднимала вопрос на планировании, инициировала возврат к постановке целей на полгода/год | Руководство вернулось к практике целеполагания, PO стал привлекать её к формулировке задач | Осознала ценность проактивной коммуникации о процессе, а не только о коде |
| 3 | Поддержка читаемости и стабильности кода | Внедрение Feature Branching и обучение коллеги | Команда работала без единой ветки-стратегии, релизы были нестабильны | Внедрить git flow и обучить команду | Внедрила Feature Branching, лично обучила коллегу с 11-летним стажем | Команда перешла на стабильные еженедельные релизы, снизилось число «зависших» фич | Убедилась, что процессные изменения требуют такого же терпения, как и технические |
**Рекомендуемый кейс:** ЕКОМ — RBAC + график курьеров (drag-and-drop) — лучше всего показывает системное мышление и самостоятельность, даже если стек (Vue vs React) не совпадает напрямую.
**Вопросы-ловушки:**
- «Почему у вас нет коммерческого опыта с React?» → честно: «Мой основной коммерческий стек — Vue 3, но архитектурные принципы (компоненты, реактивность, state management) переносятся; готова закрыть разрыв, если для вас важнее фундаментальное понимание SPA, чем конкретный фреймворк.»
- «Как вы отнесётесь к переезду/офису, если удалёнка не предусмотрена?» → честно, без смягчения: «Не рассматриваю переезд и командировки — это принципиальное ограничение.» (см. `_profile.md`)
## G) Посадочная легитимность (Posting Legitimacy)
**Assessment: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | `check-liveness.mjs` вернул статус "uncertain" (headed fallback): контент есть, но кнопка отклика не распознана автоматически — вероятно, из-за SPA-рендеринга формы, а не признак закрытой вакансии | Neutral |
| Качество описания | Конкретные технологии (React, Redux/MobX, Figma), точный адрес офиса, конкретные обязанности (планирование, архитектура, code review) — не шаблонный текст | Positive |
| Отсутствие даты публикации и зарплаты | Дата постинга не указана, зарплата — «обсуждается индивидуально» | Neutral/Concerning |
| Сигналы найма компании | По отзывам сотрудников (Хабр Карьера, Dream Job) — жалобы на непрозрачный пересмотр зарплаты, но явных сигналов massive layoffs/hiring freeze не найдено | Neutral |
| Повторные постинги | В `data/scan-history.tsv` эта вакансия встречается впервые (без повторов за 90 дней) | Neutral |
| Рыночный контекст роли | Senior frontend в крупном ритейл-техе — обычная позиция, закрывается в разумные сроки (4-8 недель) | Positive |
**Context Notes:** Отсутствие определяемой кнопки Apply в автоматической проверке типично для SPA-страниц с формой на JS — не считаю это признаком фиктивной вакансии, содержание страницы подробное и специфичное.
---
## Извлечённые ключевые слова
React, Redux, MobX, JavaScript, TypeScript, SPA, Figma, Ant Design, code review, архитектура приложений, оценка задач, декомпозиция, поддерживаемость кода, обоснование выбора технологий, backend, инфраструктура, X5 Tech, Москва, офис
+112
View File
@@ -0,0 +1,112 @@
# Оценка: Сбер — Senior Frontend Developer (ИТ блок «Строительство»)
**Дата:** 2026-07-07
**Архетип:** Frontend-разработчик (React/Redux + WebGL/Three.js) — смежный с целевым архетипом (Vue.js), не совпадает по стеку
**Балл:** 1.0/5
**URL:** https://rabota.sber.ru/search/senior-frontend-developer-it-blok-stroitel-stvo-4522356/
**PDF:** не создан (балл < 3.0)
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (React/Redux, Canvas API, WebGL/Three.js) — смежный, не Vue |
| Domain | Frontend / внутренние enterprise-системы управления строительными проектами |
| Function | Build |
| Seniority | Senior, от 3 лет опыта с React+Redux |
| Формат работы | Офис, Москва (Варшавское шоссе, 25, БЦ «Чайка»); в JD упомянута «потенциальная возможность гибрида в будущем» — то есть на текущий момент офис, не гибрид |
| Размер команды | Не указан |
| Оформление | Не указано в JD |
| TL;DR | Senior-позиция в ИТ-блоке «Строительство» Сбера с офисным форматом в Москве (гибрид только «потенциально в будущем») и стеком React+Redux+WebGL/Three.js/C# — жёсткий локационный блокер (кандидат в Туле, без переезда) поверх полного расхождения стека делают роль неподходящей. |
**Vibe команды:** судя по формулировкам JD («участие в проектировании архитектуры», «согласование требований», code review и рефакторинг как часть процесса) — команда предполагает вовлечённость разработчиков в архитектурные решения. Явных сигналов о менторстве, гибком графике или минимальной бюрократии в JD нет — для банка такого масштаба стоит уточнять на собеседовании, насколько быстрые циклы согласований на практике.
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| React + Redux, от 3 лет | **Нет совпадения.** CV содержит Vue 3, не React |
| JavaScript ES6, TypeScript | Прямое совпадение — «Языки программирования: JavaScript, TypeScript» |
| REST API | Прямое совпадение — «Сеть: REST API, WebSocket/WSS» |
| HTML5 + CSS3, кроссбраузерность | Прямое совпадение — «Языки программирования: HTML5/CSS3»; кросс-платформенный опыт (Android→iOS порты) косвенно демонстрирует внимание к совместимости |
| CSS-препроцессоры | Не указано явно в CV, но «быстро осваиваю: любые CSS-подходы» |
| Многоуровневое тестирование (unit, integration) | Частичное совпадение — Vitest (unit), Playwright (E2E), но не integration-тесты как таковые |
| Производительность | Частичное совпадение — оптимизация постраничной загрузки («Избранное»), но не в контексте WebGL/Canvas-рендеринга |
| WebGL, Three.js | **Нет совпадения.** Не упоминается в CV |
| Agile | Частичное совпадение — участие в планировании спринтов, работа с бэклогом |
| DevOps-конфигурация | Слабое совпадение — Git/GitLab, CI/CD «рабочий опыт», но не конфигурация инфраструктуры |
| C# | **Нет совпадения** |
**Пробелы:**
1. **Локация — HARD BLOCKER.** Офис в Москве; гибрид упомянут только как «потенциальная возможность в будущем», то есть на момент публикации это чисто офисная позиция без варианта удалёнки. По `_profile.md`: балл 1.0 независимо от технического совпадения.
2. **React/Redux + WebGL/Three.js + C# — hard blocker по стеку.** Это не Vue-экосистема кандидата, и WebGL/Canvas-рендеринг — совершенно новая для неё область (нет аналогичного опыта даже в смежной форме).
3. **Seniority gap.** JD требует Senior (от 3 лет с React+Redux), у кандидата — ~1.5-2 года в другом стеке.
## C) Уровень и стратегия
**Уровень в JD:** Senior. **Естественный уровень кандидата:** Middle, в другом технологическом стеке.
Как и в случае с X5 Tech, комбинация жёсткого локационного блокера и полного расхождения по стеку (включая специализированную область — WebGL/Canvas, которой у кандидата нет вообще) делает эту роль неподходящей вне зависимости от стратегии позиционирования.
**Рекомендация: явно не откликаться.** Балл 1.0/5, ниже порога 4.0 (`AGENTS.md`, Ethical Use). Дополнительная причина для осторожности — см. Блок G: срок подачи заявок в JD указан как 30 июня 2026, то есть уже истёк на момент оценки (07.07.2026).
## D) Компенсация и спрос
Зарплата в JD не указана.
| Источник | Данные |
|---|---|
| hh.ru (февраль 2026, по WebSearch) | Медиана Senior Frontend Москва — ≈287 500 ₽/мес |
| Отзывы о СберТех (Хабр Карьера, по WebSearch) | Средняя оценка 4.83 в 2026, 80% рекомендаций, высокие оценки по «адекватной зарплате» (5.00) |
| Отзывы о Сбер (основной банк, по WebSearch) | Смешанные оценки: сотрудники хвалят зарплату с учётом премии, Сберуниверситет, но общая атмосфера банка оценивается менее однородно, чем в СберТех |
| Бенефиты из JD | Современный офис, зоны отдыха, ежегодный пересмотр зарплаты и премии, корпоративный спортзал, 400+ программ Сберуниверситета, ДМС с семейным покрытием, корпоративная пенсионная программа, льготная ипотека, SberPrime+ |
**Gross vs Net:** не уточнено в JD, рыночные данные обычно gross; net ≈ gross × 0.87.
Бенефит-пакет выглядит одним из сильнейших в этой партии оценок (ДМС на семью, ипотечные льготы, обучение) — но эти плюсы не компенсируют жёсткий локационный блокер.
## E) План персонализации
Не применимо — при жёстком локационном блокере детальная персонализация нецелесообразна.
## F) План собеседований
Сокращённый набор — рекомендация не откликаться:
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Участие в проектировании архитектуры | Проектирование RBAC в ЕКОМ | Нужна была ролевая модель авторизации между отделами | Спроектировать и защитить архитектурное решение перед бэкенд-командой | Использовала ИБ-образование, разработала модель, объяснила принцип и отличие от аналогов | Модель принята и работает в проде | Убедилась, что архитектурные решения нужно уметь защищать перед нетехнической аудиторией тоже |
| 2 | Code review и рефакторинг | Внедрение Feature Branching | Нестабильные релизы из-за отсутствия git-стратегии | Внедрить процесс и обучить команду | Внедрила Feature Branching, обучила коллегу с 11-летним стажем | Стабильные еженедельные релизы | Процессные изменения требуют такого же системного подхода, как технические |
| 3 | Многоуровневое тестирование | Внедрение Playwright E2E на РМК | Отсутствие автоматизированного тестирования на legacy-проекте | Внедрить E2E-тесты | Настроила Playwright, начала покрывать сценарии позитивных/негативных кейсов | Тестирование на этапе внедрения, снижение риска регрессий | Поняла ценность постепенного внедрения тестов на legacy без остановки разработки |
**Рекомендуемый кейс:** ЕКОМ (RBAC + график курьеров) — демонстрирует системное архитектурное мышление, наиболее близкое к духу задач enterprise-блока.
**Вопросы-ловушки:**
- «Есть ли у вас опыт с WebGL/Three.js?» → честно: «Нет, но есть опыт быстрого освоения новых технологий (Flutter с нуля, портирование Android→iOS) и понимание производительности UI.»
- «Готовы ли вы к переезду в Москву или командировкам?» → честно, без смягчения: «Не рассматриваю переезд и командировки.»
## G) Посадочная легитимность (Posting Legitimacy)
**Assessment: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | `check-liveness.mjs` — "uncertain" (контент есть, кнопка отклика не распознана автоматически) | Neutral |
| **Срок подачи заявок истёк** | JD указывает дедлайн 30.06.2026 — на момент оценки (07.07.2026) прошло 7 дней после заявленного срока. Может означать устаревшее поле на странице (при этом вакансия фактически ещё активна) либо реально закрытый набор | **Concerning** |
| Качество описания | Конкретный стек (React, Redux, C#, WebGL, Three.js, Canvas API), точный адрес офиса, конкретные обязанности | Positive |
| Отсутствие зарплаты в JD | Зарплата не указана | Neutral |
| Сигналы найма компании | Позитивные отзывы о зарплате и условиях в СберТех, явных layoffs/hiring freeze не найдено | Neutral |
| Повторные постинги | Первое появление в `scan-history.tsv`, повторов не найдено | Neutral |
| Рыночный контекст роли | Senior frontend в крупном enterprise-блоке банка — обычная роль, но специализация (WebGL/Canvas) может удлинять срок закрытия | Neutral |
**Context Notes:** Истёкший дедлайн — самый заметный сигнал в этой оценке. Рекомендация пользователю: если рассматривать эту роль (что не рекомендуется по локации), стоит уточнить у рекрутера актуальность вакансии перед откликом.
---
## Извлечённые ключевые слова
React, Redux, JavaScript, TypeScript, ES6, REST API, HTML5, CSS3, WebGL, Three.js, Canvas API, C#, .NET Core, unit-тестирование, integration-тестирование, производительность, Agile, DevOps, архитектура, code review, рефакторинг, Сбер, СберТех, Москва, строительство, enterprise
+126
View File
@@ -0,0 +1,126 @@
# Оценка: СДЭК (CDEK.Shopping) — Senior Frontend разработчик (Nuxt3)
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — прямое совпадение по фреймворку, разрыв по seniority/специализации (Nuxt3/SSR)
**Балл:** 3.3/5
**URL:** https://rabota.cdek.ru/vacancies/item/8890
**PDF:** генерируется (балл 3.3 ≥ порога 3.0)
**Legitimacy:** Proceed with Caution
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (Vue.js) — прямое совпадение с North Star кандидата |
| Domain | E-commerce (CDEK.Shopping — шоппинг-сервис на базе логистической платформы СДЭК) |
| Function | Build (поддержка legacy Vue2/Nuxt2 + развитие нового Nuxt3-стека) |
| Seniority | Senior, от 5 лет опыта |
| Формат работы | Удалённо (remote available), полная занятость |
| Размер команды | Не указан явно; из описания следует смешанная команда — поддержка legacy (Vue2/Nuxt2) параллельно с новым стеком (Vue3/Nuxt3) |
| Оформление | Официальное трудоустройство с соцпакетом (оплачиваемый отпуск/больничный упомянуты явно) — похоже на ТК РФ, но точная формулировка ("официальное трудоустройство") не уточняет ТК РФ / ГПХ явно |
| TL;DR | Единственная роль в этой партии с прямым совпадением по фреймворку (Vue3/Nuxt3) и без локационного блокера (удалённо) — но требование 5+ лет и отсутствие у кандидата коммерческого Nuxt/SSR-опыта создают реальный разрыв по уровню, который сопроводительным письмом не закрыть полностью честно. |
## B) Совпадение с CV
| Требование JD | Совпадение в CV |
|---|---|
| Vue 3 (Composition API) | Прямое совпадение — «Здесь ЕКОМ»: Vue 3, Composition API, ~1 год, фронтенд с нуля |
| Nuxt 3 (и опыт с Nuxt 2) | **Нет прямого совпадения.** cv.md указывает Nuxt только в разделе «быстро осваиваю» — коммерческого опыта с SSR-фреймворком нет |
| HTML, CSS, Tailwind CSS, кроссбраузерная адаптивная верстка | Прямое совпадение — Tailwind CSS указан в стеке ЕКОМ, HTML5/CSS3 в языках |
| REST/JSON API интеграция | Прямое совпадение — «Сеть: REST API, WebSocket/WSS» |
| Архитектурные паттерны (Feature-Sliced Design предпочтительно) | Не упомянуто в CV — команда ЕКОМ использовала свой набор инструментов (shadcn, Pinia, TanStack Table), но не FSD явно |
| SSR, SEO, оптимизация производительности | **Нет совпадения.** Опыт кандидата — SPA (ЕКОМ, РМК), не SSR-приложения |
| Код-ревью и менторство команды | Частичное совпадение — обучила коллегу с 11-летним стажем git-версионированию, но не формальное код-ревью-менторство разработчиков |
| Плюсом: тестирование, CI/CD, миграция Vue2/Nuxt2→3, Docker, микросервисы | Частичное совпадение — Vitest, Playwright E2E, CI/CD «рабочий опыт»; Docker и микросервисы отсутствуют в CV |
| Поддержка legacy Vue2/Nuxt2 интерфейсов | Частичное совпадение — опыт работы с legacy-проектом (РМК, ~6 месяцев), но это Vue3, а не Vue2/Nuxt2 |
**Пробелы:**
1. **Nuxt3/SSR — центральный пробел роли.** Название роли прямо указывает Nuxt3, и SSR/SEO — явное требование. У кандидата нет коммерческого опыта именно с SSR-рендерингом. Это hard requirement, но не hard blocker в духе "невозможно закрыть" — Vue 3 Composition API переносится напрямую, Nuxt — надстройка над тем же реактивным ядром. Честный план закрытия: явно указать в сопроводительном письме, что Nuxt не входит в коммерческий опыт, но Vue3 Composition API — прямой и глубокий; предложить пройти техническое интервью с акцентом на архитектурное мышление, а не только checklist по Nuxt-специфике.
2. **Seniority gap (5+ лет vs ~1.5-2 года) — существенный, но не абсолютный разрыв** (в отличие от Playneta/X5/Сбер, здесь фреймворк совпадает, что частично компенсирует разрыв по годам за счёт качества пруф-поинтов).
3. **Менторство** — заявлено в JD explicitly ("код-ревью и менторство команды"), у кандидата нет формального опыта код-ревью в роли менторя, только неформальное обучение коллеги процессам.
4. **Feature-Sliced Design** — не упомянута в CV; можно быстро закрыть самостоятельным изучением до собеседования (это архитектурная методология, а не фреймворк — реалистично освоить базовые принципы за несколько дней).
## C) Уровень и стратегия
**Уровень в JD:** Senior, от 5 лет. **Естественный уровень кандидата:** Middle (~1.5-2 года), но с прямым совпадением по core-фреймворку (Vue 3 Composition API), что для этого конкретного домена — сильнее, чем в остальных 4 вакансиях этой партии.
**План "продать senior без обмана":** Нечестно и нереалистично полностью закрыть разрыв в 3+ раза по годам опыта. Единственный добросовестный путь — явно позиционироваться на Middle/Middle+ уровень с акцентом на глубину архитектурных решений (RBAC, курьерский график с нуля, WebSocket-инфраструктура), а не на формальный стаж. В сопроводительном письме и на скрининге стоит сразу обозначить: «Мой стаж короче заявленного диапазона, но я разработала фронтенд продукта с нуля, спроектировала архитектуру доступа и веду legacy-модернизацию — готова обсудить понижение до Middle/Middle+, если это откроет процесс».
**План "если понизят уровень":** Принять понижение при справедливой компенсации (см. Блок D — даже Middle-диапазон Vue-разработчика в Москве выше целевого минимума кандидата), договориться о пересмотре через 6 месяцев с чёткими критериями (например, самостоятельная миграция одного модуля Vue2/Nuxt2 → Nuxt3).
**Рекомендация:** Балл 3.3/5 — ниже канонического порога 4.0 (`AGENTS.md`, Ethical Use), поэтому формально **не рекомендуется откликаться без веской причины**. Однако это единственная роль в текущей партии, где нет жёсткого локационного блокера и есть прямое совпадение по core-фреймворку — если у кандидата есть конкретная причина (интерес к e-commerce-домену, готовность инвестировать время в подготовку к Nuxt-специфике), это самый оправданный кандидат на отклик среди пяти оценённых вакансий.
## D) Компенсация и спрос
Зарплата в JD не указана.
| Источник | Данные |
|---|---|
| WebSearch (рыночные данные 2026) | Middle Vue-разработчик Москва: 290 000–380 000 ₽/мес; Senior Vue-разработчик Москва: 480 000–650 000 ₽/мес |
| WebSearch (Nuxt-премия) | Специалисты с Nuxt.js оцениваются выше «чистых» Vue-разработчиков — разница около 40 000–60 000 ₽/мес на уровне Middle+ |
| Целевой диапазон кандидата | 100 000–120 000+ ₽/мес на руки |
| Отзывы о СДЭК IT-команде (Хабр Карьера/SuperJob, по WebSearch) | Смешанные: сильная техническая команда и неформальные рабочие отношения хвалятся; также есть жалобы на переработки, отсутствие выделенных аналитиков (разработчики сами делают аналитику), ограниченный карьерный рост вне лидерских позиций |
**Gross vs Net:** Не указано в JD; рыночные данные выше обычно gross. Ориентировочно net ≈ gross × 0.87 → даже нижняя Middle-вилка (290k gross ≈ 252k net) существенно выше целевого минимума кандидата (100k net). Это сильный аргумент в пользу роли **при условии**, что компания согласится рассматривать кандидата на Middle+ уровне, а не отсеет по формальному критерию 5+ лет ещё на скрининге резюме.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Акцент на Vue 3 + Flutter dual-track | Явно упомянуть Nuxt в контексте "быстро осваиваю" и подчеркнуть глубину Vue 3 Composition API | JD ищет именно Nuxt3, но у кандидата нет опыта — честная формулировка снижает риск отсева по ключевому слову, но не скрывает пробел |
| 2 | Опыт (ЕКОМ) | Общее описание фронтенда с нуля | Добавить формулировку "SPA-архитектура с нуля: Vue 3 + Composition API + Pinia + Vue Router" ближе к языку JD | Использовать точную терминологию JD (Composition API), которая уже есть в CV |
| 3 | Skills | Tailwind CSS указан в стеке ЕКОМ | Вынести Tailwind CSS в отдельный явный skill-тег, как в JD | Прямое ключевое слово JD для ATS/скрининга |
| 4 | Проекты | RBAC и график курьеров описаны как отдельные буллеты | Явно обозначить как «архитектурные решения» (architecture decisions), созвучно с "участие в проектировании архитектуры и согласовании требований" из JD | Показать, что кандидат уже принимала архитектурные решения, даже без формального Senior-титула |
| 5 | Сопроводительное письмо | — | Явно обозначить готовность обсуждать Middle/Middle+ уровень и подчеркнуть скорость освоения новых технологий (Flutter с нуля за короткий срок) | Снять напряжение вокруг разрыва по годам стажа заранее, а не дать рекрутеру интерпретировать его негативно |
**Top 5 изменений LinkedIn/hh.ru:** заголовок — "Vue.js / Nuxt.js Developer (изучаю)"; добавить Tailwind CSS и Composition API как отдельные skills; указать "готова к удалённой работе" явно в первой строке резюме; добавить формулировку про самостоятельное архитектурное проектирование (RBAC); указать релевантный домен (e-commerce/логистика — ЕКОМ управляет заказами и курьерами, что близко к e-commerce-домену CDEK.Shopping).
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Vue 3 Composition API, фронтенд с нуля | Разработка ЕКОМ с нуля | Компании нужна была внутренняя система управления заказами/логистикой, старой не было | Спроектировать и реализовать фронтенд-часть с нуля | Выбрала стек (Vue 3, Composition API, Pinia, TanStack Table), спроектировала архитектуру, реализовала ключевые модули | Система используется логистикой, клиентским отделом, техподдержкой и разработчиками | Поняла, как рано принятые архитектурные решения (стейт-менеджмент, структура компонентов) влияют на скорость разработки через год |
| 2 | Архитектурные решения / участие в проектировании | Проектирование RBAC | Нужна была ролевая модель авторизации между отделами (логистика/заказы) | Спроектировать модель прав и объяснить её бэкенд-команде | Использовала ИБ-образование, разработала модель ролей, защитила решение перед бэкенд-разработчиком | Модель внедрена, отделы корректно разграничены | Осознала ценность профильного образования как дифференциатора среди frontend-кандидатов |
| 3 | Поддержка legacy-интерфейсов наряду с новым стеком | Работа над РМК (legacy Vue 3-проект) параллельно с ЕКОМ | Нужно было одновременно вести новый продукт и поддерживать нестабильный legacy | Исправить критические баги и внедрить надёжность в legacy без остановки разработки нового продукта | Исправила ~20 багов, включая сложный кейс с замыканием в реактивной переменной; внедрила WebSocket-оповещения в реальном времени | Впервые видно, сколько из ~1200 аптек онлайн; уведомления доходят почти без задержки | Научилась переключаться между "фичевым" и "поддерживающим" режимом работы без потери качества в обоих |
| 4 | REST/JSON API интеграция с бэкендом | Постраничная загрузка «Избранное» | Раздел «Избранное» не открывался — все товары грузились одним запросом | Найти причину и исправить без ломки существующего API-контракта | Продиагностировала проблему, обсудила с бэкенд-разработчиком, реализовала постраничную загрузку | Жалобы пользователей прекратились | Поняла важность профилирования перед тем, как менять фронтенд-логику — проблема была в паттерне запроса, а не в UI |
| 5 | Код-ревью и менторство (частичное совпадение) | Обучение коллеги git-версионированию | Команда работала без единой git-стратегии, релизы были нестабильны | Внедрить Feature Branching и обучить команду, включая senior-коллегу с 11-летним стажем | Спроектировала процесс, лично провела обучение | Команда перешла на стабильные еженедельные релизы, сократилось число «зависших» фич | Осознала, что менторство не требует формального тайтла — важнее системный подход к передаче знаний |
| 6 | Оптимизация производительности (частичное совпадение, не SSR-специфика) | Диагностика бага с закрытием (memory/reactivity leak) на РМК | Клавиатура переставала работать из-за утечки в реактивной переменной, переданной в глобальный класс | Найти root cause без доступа к профилировщику специализированному для этого паттерна | Прошла по цепочке привязки данных, нашла источник утечки, переработала биндинг | Баг устранён, клавиатура стабильно работает | Поняла, как тонко реактивность Vue 3 может взаимодействовать с императивным (не-реактивным) кодом |
| 7 | Готовность работать в команде с разным уровнем формализации процессов | Внедрение версионирования сборок на РМК | Тестировщик не мог определить, в какой версии сборки был найден баг | Внедрить систему версионирования сборок | Спроектировала и внедряет схему версионирования (в процессе) | Ожидаемый результат — точная привязка багов к версии сборки | Признаёт, что решение ещё не завершено — показывает честность в самопрезентации незавершённой работы |
**Рекомендуемый кейс:** «Здесь ЕКОМ» целиком (RBAC + график курьеров + список заказов с 9 фильтрами) — максимально близко к домену e-commerce/логистики CDEK.Shopping и демонстрирует полный цикл: от архитектуры с нуля до эксплуатации несколькими отделами.
**Вопросы-ловушки:**
- «У вас нет опыта с Nuxt3, как вы предполагаете закрыть этот разрыв?» → честно: «Коммерческого опыта с SSR/Nuxt нет, но Composition API и реактивная модель Vue 3 — тот же фундамент; готова показать, как быстро осваиваю новый инструментарий, на примере Flutter, с которым начала работать с нуля».
- «Почему вы претендуете на Senior-роль с 1.5-2 годами опыта?» → честно: «Не претендую формально на Senior-грейд — открыта обсуждать Middle/Middle+ при справедливой компенсации; за этот срок вела 3 продукта одновременно и самостоятельно спроектировала архитектурные решения уровня, который обычно ожидают от более опытного разработчика».
- «Как вы относитесь к переработкам/сжатым срокам?» (учитывая отзывы о переработках в СДЭК) → честно: «Готова к периодам высокой нагрузки при чётких приоритетах, но системная переработка — не то, что ищу долгосрочно; уточню на собеседовании реальную практику в команде».
---
## Vibe команды
Судя по формулировкам JD ("код-ревью и менторство команды", "участие в проектировании архитектуры и согласовании технических требований") — команда предполагает вовлечённость в архитектурные решения и практику код-ревью, что похожий на позитивный сигнал по автономии/ownership. По независимым отзывам (Хабр Карьера, SuperJob — судя по данным WebSearch) IT-команда СДЭК описывается как дружная и технически сильная, с неформальными рабочими отношениями, но также отмечаются переработки, сжатые сроки и отсутствие выделенных аналитиков (разработчики закрывают аналитику сами) — недостаточно данных, чтобы понять, насколько это применимо именно к CDEK.Shopping (отдельному продукту/юрлицу) в отличие от логистического ядра СДЭК — стоит уточнить на собеседовании.
## G) Посадочная легитимность (Posting Legitimacy)
**Assessment: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть публикации | `check-liveness.mjs` — "uncertain" (контент присутствует, кнопка отклика не распознана автоматически); дата публикации на странице не извлечена | Neutral |
| Качество описания | Очень конкретное: точный стек (Vue3/Nuxt3/Nuxt2, Tailwind, FSD), явная задача (поддержка legacy + новый стек), указан HR-контакт (Арина Булатова, email) | Positive |
| Отсутствие зарплаты | Зарплата не указана в JD | Neutral |
| Сигналы найма компании | Отзывы о команде смешанные (переработки, отсутствие аналитиков), но явных увольнений/заморозки найма в CDEK.Shopping не найдено | Neutral |
| Повторные постинги | Первое появление в `data/scan-history.tsv`, повторов не найдено | Neutral |
| Рыночный контекст роли | Senior Nuxt3-разработчик — растущий спрос (премия за Nuxt на рынке, по WebSearch), закрывается в разумные сроки | Positive |
| Прямой HR-контакт указан | Наличие персонализированного контакта рекрутера (не общая форма) — само по себе позитивный сигнал активного найма | Positive |
**Context Notes:** Указание прямого HR-контакта и очень конкретное описание задач (миграция legacy, поддержка двух стеков одновременно) — сильные позитивные сигналы легитимности. Отсутствие видимой кнопки Apply в автоматизированной проверке, вероятно, связано с SPA-рендерингом страницы, а не с закрытой вакансией.
---
## Извлечённые ключевые слова
Vue 3, Composition API, Nuxt 3, Nuxt 2, Tailwind CSS, HTML, CSS, кроссбраузерная верстка, REST API, JSON, Feature-Sliced Design, SSR, SEO, оптимизация производительности, код-ревью, менторство, тестирование, CI/CD, миграция, Docker, микросервисы, legacy, CDEK.Shopping, СДЭК, удалённо, e-commerce
@@ -0,0 +1,133 @@
# Оценка: VK — Старший Frontend-разработчик (React, мессенджер-платформа)
**Дата:** 2026-07-07
**URL:** https://getmatch.ru/vacancies/34414-starshii-frontend-razrabotchik?s=offers
**Архетип:** Senior Frontend-разработчик (React) — вне архетипов кандидата (Frontend Vue.js / Mobile Flutter / Fullstack Vue+Node), серьёзный разрыв по стеку и уровню
**Балл:** 1.5/5
**Legitimacy:** Proceed with Caution (вакансия компании реальная, но конкретный листинг помечен как архивный/закрытый набор — см. Блок G)
**PDF:** не создан (балл < 3.0)
**Verification:** unconfirmed (batch mode, без Playwright) — однако сама страница getmatch.ru прямо содержит статус "archived / компания больше не набирает на эту позицию", это прямой сигнал закрытия, а не просто отсутствие проверки
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Senior Frontend-разработчик, React, разработка React-приложений внутри мессенджер-платформы (VK, Telegram, MAX) |
| Domain | Мессенджер / мини-приложения — SDK-интеграция, компонентные библиотеки, дизайн-системы |
| Function | Build + оптимизация производительности + интеграция SDK + кросс-командная работа |
| Seniority | **Senior**, явно указано "5+ лет" опыта |
| Формат работы | Удалённо (офис на Аэропорте указан как формальный адрес, по факту роль полностью дистанционная) |
| Размер команды | Не указан |
| Оформление | Не указано в JD |
| TL;DR | Тройной разрыв: (1) стек — роль целиком на React (hooks, context, жизненный цикл), у кандидата коммерческого React нет вовсе, весь архитектурный опыт на Vue 3; (2) уровень — явные "5+ лет", у кандидата ~1.5-2 года коммерческого опыта, естественный уровень Middle; (3) вакансия помечена как архивная / набор закрыт — отклик по этой ссылке технически невозможен или бессмысленен. |
**Локация — не блокер.** Роль полностью удалённая, соответствует политике кандидата (Тула, удалёнка предпочтительна, без переезда/командировок). Формальный адрес офиса (Аэропорт, Москва) не создаёт конфликта, поскольку JD явно описывает роль как remote-first.
**Vibe команды:** судя по формулировкам JD, упор на кросс-командное взаимодействие ("cross-team collaboration") и создание переиспользуемых компонентных библиотек, что может говорить о зрелых инженерных практиках. Явных упоминаний ownership/RFC-культуры, менторства или гибкого графика в тексте нет — недостаточно данных в JD, стоит уточнять на собеседовании (если бы оно было релевантно при текущем разрыве).
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| React (hooks, context, жизненный цикл), 5+ лет | **Отсутствует.** cv.md не упоминает React ни разу — весь фронтенд-опыт кандидата на Vue 3 (Composition API, Pinia, Vue Router) |
| "Непереносимость Vanilla JS" / глубокое ES6+ | Частично: JS/TS в cv.md присутствуют на общем уровне, но JD подразумевает React-специфичную экспертизу, а не общий JS |
| TypeScript | **Совпадение**: "JavaScript, TypeScript, HTML5/CSS3" в cv.md, использовался в проекте ЕКОМ (Vue 3 + TypeScript) |
| CSS-фреймворки, адаптация под дизайн-системы | **Частичное совпадение**: Tailwind CSS, shadcn/shadcn-vue — опыт с CSS-утилитами есть, но не с React-специфичными дизайн-системами |
| Vite | **Совпадение**: cv.md — "Vite" в разделе сборки и тулинга |
| Тестирование фронтенда | **Совпадение**: Vitest, Storybook, Playwright E2E (РМК) |
| Storybook (nice-to-have) | **Совпадение**: явно указан в cv.md |
| Разработка ботов/мини-приложений VK/Telegram/MAX | Отсутствует |
| Agentic-разработка (Claude Code, Codex) (nice-to-have) | Отсутствует в cv.md |
| Разработка JS SDK (nice-to-have) | Отсутствует |
| Принципы безопасности | **Косвенное совпадение**: профильное ИБ-образование, проектирование RBAC — но это авторизационная модель на уровне приложения, а не фронтенд-безопасность SPA/SDK в духе JD |
**Пробелы:**
1. **React как основной стек (hard blocker).** Роль на 100% про React-архитектуру внутри мессенджер-платформы. У кандидата нет ни одной строки коммерческого React в cv.md — весь опыт на Vue 3. Перенос концепций (компонентный подход, реактивность, state management) возможен, но JD прямо формулирует "непереносимость Vanilla JS", то есть ожидает глубокую, а не общую фронтенд-экспертизу именно в экосистеме React.
2. **Уровень — 5+ лет (hard blocker).** У кандидата ~1.5-2 года коммерческого опыта (Здравсервис с ноября 2024 + учебный проект ТулГУ 10 месяцев в 2022). Разрыв даже больше, чем в похожей вакансии VK (report 003, где требовалось "4+ года").
3. **Вакансия архивна (hard blocker для действия).** Страница getmatch.ru явно помечает позицию как закрытую для найма — отклик по этой ссылке не приведёт к результату независимо от степени соответствия.
4. **Nice-to-have навыки** (мини-приложения VK/Telegram/MAX, agentic-разработка, JS SDK) — отсутствуют, но это некритично при наличии более фундаментальных разрывов.
## C) Уровень и стратегия
1. **Уровень в JD** — явный Senior, 5+ лет опыта, самостоятельная архитектурная работа с React-компонентами и SDK. **Естественный уровень кандидата** — Middle, ~1.5-2 года опыта, вся архитектурная практика на Vue 3, а не React.
2. **План "продать senior без обмана" — неприменим.** Как и в похожей вакансии VK (report 003), попытка представить Vue-опыт как соответствие React Senior-роли была бы либо преувеличением (запрещено правилами `CLAUDE.md`/`AGENTS.md` — "keywords get reformulated, never fabricated"), либо гарантированным провалом на техническом интервью, где сразу проверят глубину React.
3. **План "если понизят уровень"** — неприменим: сама вакансия закрыта для набора, обсуждать понижение уровня офера нет смысла. Если кандидат заинтересована в будущем в подобных ролях у VK, реалистичный путь — сначала получить коммерческий React-опыт (например, через проект/смену стека внутри текущей компании), а не пытаться закрыть три разрыва (стек + уровень + доступность вакансии) одновременно.
## D) Компенсация и спрос
| Источник | Данные |
|---|---|
| Зарплата в JD | "от 300 000 ₽/мес на руки" (net, явно указано как "на руки") |
| VK — медиана по IT-специалистам (Хабр Карьера, 2026) | ~324 000 ₽/мес |
| Senior React-разработчик, рынок РФ, 2026 | 270 000 - 410 000 ₽/мес; медиана senior-разработчиков по рынку — около 550 000 ₽/мес по отдельным оценкам |
| Middle React-разработчик, 2026 | ~320 000 ₽/мес |
| React vs Vue (рыночная разница) | React в среднем на 8-12% выше Vue по зарплате — рынок объективно выше платит за React-экспертизу, что усиливает мотивацию для кандидата развивать этот стек в перспективе, но не меняет текущий разрыв |
Источники: [career.habr.com/salaries](https://career.habr.com/salaries?skills%5B%5D=react-js&spec_aliases%5B%5D=frontend), [skillbox.ru — зарплаты фронтенд-разработчиков 2026](https://skillbox.ru/media/code/zarplaty-i-skilly-frontendrazrabotchikov-raznykh-greydov-issledovanie-skillbox-media/), [enigmai.ru — Frontend-зарплата 2026 (React/Vue/Angular)](https://enigmai.ru/salary/frontend/frontend-salary-2026/)
Указанная зарплата (300 000+ ₽ на руки) значительно выше цели кандидата (100 000-120 000+ ₽ на руки) — почти в 2.5-3 раза. Комп объективно очень привлекателен, но это senior-diapазон рынка, соответствующий требуемому уровню, а не Middle-диапазону кандидата. Привлекательная цифра не отменяет разрыва по стеку и уровню, а сама вакансия недоступна для отклика (см. Блок G).
**Компания и рынок труда:** WebSearch по VK показал историю массовых увольнений осенью 2024 года (несколько сотен сотрудников, компания официально это отрицала, источники — The Bell, Forbes, Meduza). Данных о новых сокращениях или заморозке найма в 2026 году не найдено. Эта информация двухлетней давности, прямого сигнала о текущем состоянии найма не даёт, но добавляет фон неопределённости при оценке стабильности крупных подразделений VK.
**Оформление:** не указано в JD.
## E) План персонализации
**Рекомендация: не готовить персонализацию CV/PDF для этой вакансии.** При балле 1.5/5, тройном разрыве (стек + уровень + недоступность вакансии) точечная подгонка резюме не решает фундаментального несоответствия. Вместо плана персонализации — roadmap на будущее (аналогично report 003, но с добавлением явного отсутствия открытой вакансии):
| # | Что нужно закрыть | Как | Срок (ориентировочно) |
|---|---|---|---|
| 1 | Коммерческий React | Проектный опыт или переход в команду на React-стек — оценить реалистичность внутри Здравсервис или на новом месте | 6-12 месяцев практики |
| 2 | 5+ лет опыта | Продолжать накапливать опыт в текущей роли | 3-3.5 года |
| 3 | Мониторинг открытых вакансий VK | Следить за team.vk.company напрямую, а не за пересылками в Telegram-каналах, чтобы не тратить время на архивные листинги | Постоянно |
## F) План собеседований
*(Приведено для полноты формата — не рекомендуется использовать для реального отклика: вакансия недоступна для набора, разрыв по стеку и уровню критический.)*
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Компонентные библиотеки / переиспользуемость | ЕКОМ — интерфейс списка заказов с 9 фильтрами | Разрозненные неудобные таблицы 1С для разных отделов | Спроектировать единый переиспользуемый интерфейс | Построила фильтруемый интерфейс, используется логистикой, клиентским отделом, техподдержкой и разработчиками | Один компонент заменил несколько разрозненных инструментов | Компонентный подход переносим между Vue и React на уровне архитектурного мышления, но не на уровне синтаксиса — честно обозначать эту границу |
| 2 | Оптимизация производительности | «Здесь Аптека» — фикс бага «Избранное» через постраничную загрузку | Раздел не открывался, все товары грузились одним запросом | Диагностировать причину и предложить решение | Реализовала постраничную загрузку в связке с бэкендом | Жалобы пользователей прекратились | Поняла ценность профилирования запроса перед оптимизацией UI-слоя |
| 3 | Работа с SDK / real-time интеграции | РМК — внедрение WebSocket-оповещений | Не было realtime-видимости статуса ~1200 аптек | Внедрить WSS-канал для оповещений | Реализовала передачу и статус прочтения в реальном времени | Видимость статуса подключения появилась впервые в компании | WebSocket-опыт переносим на SDK-интеграции мессенджера, но не заменяет глубину React |
**Рекомендуемый кейс:** не применимо при текущем балле и статусе вакансии.
**Вопросы-ловушки (если кандидат всё же решит откликнуться на аналогичную открытую вакансию VK ради опыта):**
- *"Расскажите про архитектуру React-компонента с использованием hooks и context"* — честного ответа с реальным коммерческим опытом нет.
- *"Как вы оптимизировали производительность React-приложения внутри мессенджера?"* — вне текущего опыта кандидата (весь опыт — Vue/Flutter).
## G) Легитимность вакансии
**Оценка: Proceed with Caution.**
1. **Статус вакансии (ключевой сигнал):** страница getmatch.ru явно указывает, что позиция помечена как **archived** — компания больше не набирает по этой вакансии. Это прямое, а не косвенное свидетельство закрытия (получено через WebFetch с самой страницы, не через WebSearch-сниппет), поэтому классифицируется как надёжный сигнал, несмотря на отсутствие Playwright-проверки в batch-режиме.
2. **Качество описания:** хорошее — конкретные технологии (React, TypeScript, ES6+, Vite, RESTful API), конкретные задачи (SDK-интеграция мессенджера, компонентные библиотеки под дизайн-систему), явная зарплата "на руки". Не выглядит как шаблонный/спам-текст.
3. **Компания:** VK — крупная, реальная, публично известная компания. Дополнительных признаков фиктивности или мошенничества не найдено.
4. **Репост/повторный листинг:** проверка `data/scan-history.tsv` не показала повторных записей именно этого URL (`getmatch.ru/vacancies/34414...`) за предыдущие сканы — добавлена впервые 2026-07-07. Есть другие отдельные вакансии VK в истории (VK MAX, "Старший Frontend-разработчик сообщества", "VK Видео") — это разные позиции, не репост этой конкретной.
5. **Найм-сигналы:** WebSearch показал историю массовых увольнений в VK осенью 2024 года (официально отрицается компанией) — фон неопределённости, но устаревший (почти 2 года) и не специфичный для этой команды/продукта.
Итог: компания легитимна, описание качественное, но конкретный листинг закрыт для набора — источник (Telegram-канал с пересылкой вакансий) переслал неактуальную/архивную ссылку. Не классифицируется как "Suspicious" (нет признаков мошенничества), но и не "High Confidence", поскольку по факту откликнуться невозможно.
---
## Извлечённые ключевые слова
React, TypeScript, JavaScript ES6+, hooks, context, жизненный цикл компонентов, state management, RESTful API, Vite, CSS-фреймворки, дизайн-система, компонентная библиотека, оптимизация производительности, дебаггинг, кросс-командное взаимодействие, мессенджер, SDK-интеграция, тестирование фронтенда, безопасность фронтенда, Storybook, мини-приложения
---
## Cover Letter Draft
> Draft generated at evaluation time. **Внимание: балл 1.5/5 — тройной разрыв (React vs Vue, Senior/5+ лет vs фактический Middle/~1.5-2 года, и вакансия помечена как архивная/закрытая для набора). Настоятельно не рекомендуется откликаться на эту вакансию.** Раздел ниже приведён только для полноты формата отчёта.
**Gaps flagged:**
- **React (критично):** ядро роли — React-архитектура внутри мессенджер-платформы; у кандидата нет коммерческого React, весь опыт на Vue 3.
- **Уровень (критично):** JD требует 5+ лет и самостоятельную архитектурную ответственность; у кандидата ~1.5-2 года, уровень Middle.
- **Доступность вакансии (критично):** листинг помечен как archived — отклик по этой ссылке не приведёт к результату.
- **Локация:** не блокер — роль полностью удалённая, соответствует политике кандидата.
**JD keywords to mirror** *(для справки, не рекомендуется использовать активно при текущем разрыве)*
React, hooks, context, TypeScript, SDK-интеграция, оптимизация производительности, компонентная библиотека
+118
View File
@@ -0,0 +1,118 @@
# Оценка: Сбер — Frontend Developer
**Дата:** 2026-07-07
**Архетип:** Frontend-разработчик (React) — вторично: Fullstack (adjacent); стек НЕ совпадает с профильным архетипом кандидата (Vue 3)
**Балл:** 1.0/5
**Legitimacy:** Proceed with Caution
**URL:** https://hirehi.ru/development/frontend-razrabotchik-55966
**PDF:** not generated (балл ниже порога auto_pdf_score_threshold = 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Компания | Сбер (СберТех / розничный блок) |
| Роль | Frontend Developer |
| Архетип | Frontend-разработчик (React) — не совпадает с North Star кандидата (Vue.js) |
| Domain | Enterprise / retail-финтех |
| Function | Build |
| Seniority | Middle (JD требует 3+ года опыта frontend) |
| Формат работы | **Гибрид, Москва** |
| Размер команды | Не указано явно; команда развивает и поддерживает retail-решения (доступность, безопасность, удобство сервиса) |
| Оформление | Не указано в JD (у Сбера как правило ТК РФ) |
| TL;DR | Сбер ищет Middle Frontend на React/Redux/TS в Москве (гибрид) — стек не совпадает с профилем кандидата (Vue), требуется переезд из Тулы, и по данным hirehi.ru листинг уже архивирован. |
**Vibe команды (качественный сигнал, не влияет на балл):** Судя по формулировкам JD ("развитие технологического стека", "соответствие техническим стандартам", "развитие техно-сообщества"), команда встроена в крупную корпоративную структуру с вероятной формализованной процедурой согласований — типично для банка такого масштаба. Явных сигналов про менторство, парное программирование или гибкость графика в тексте нет. Недостаточно данных в JD для вывода про автономию/бюрократию — стоит уточнять на собеседовании, если бы вакансия была активна.
---
## B) Совпадение с CV
**Блокирующий фактор (см. Block C/Location Policy):** роль в Москве, гибридный формат — требует переезда из Тулы или регулярного присутствия в офисе в другом городе. Кандидат явно исключает переезд и командировки (`cv.md`: "Переезд: нет", "Командировки: нет"; `modes/_profile.md`: "Hybrid/office roles requiring relocation outside Тула... score 1.0 — hard constraint, not a soft preference"). Это делает роль неприменимой независимо от остального анализа ниже — раздел приведён для полноты картины.
| Требование JD | Совпадение с CV |
|---|---|
| TypeScript | ✅ Сильное совпадение — `cv.md`: "TypeScript" в языках программирования, активное использование в проекте ЕКОМ (Vue 3 + Composition API + TypeScript) |
| React, React-Redux (Redux Toolkit) | ❌ Отсутствует. В `cv.md` весь frontend-опыт — Vue 3 (Composition API, Pinia, Vue Router). React/Redux не упоминаются ни разу |
| CI/CD, webpack/vite, Git | ⚠️ Частично — Git/GitLab и CI/CD "рабочий опыт" есть в `cv.md`; Vite использовался (не webpack) |
| Jest, Cypress, integration testing | ⚠️ Частично — есть Vitest (unit) и Playwright (E2E на РМК), но не Jest/Cypress конкретно |
| Oracle / PostgreSQL (industrial DB) | ❌ Не упоминается — только MongoDB (ознакомительный уровень) |
| iOS-разработка на Swift | ❌ Отсутствует. Кандидат делает мобильную разработку на **Flutter/Dart**, не Swift — это разные технологии |
| AI/ML модели (GigaChat, Kandinsky) | ❌ Отсутствует в `cv.md` |
**Раздел пробелов:**
1. **React/Redux — hard blocker.** Весь коммерческий опыт кандидата — Vue 3. React — концептуально похожий, но синтаксически иной фреймворк; нельзя закрыть "смежным опытом" без реального проекта на React.
2. **Swift/iOS — hard blocker.** Кандидат портировала Flutter-приложения на iOS (через Flutter, не нативно), но нативный Swift не эквивалентен этому опыту.
3. **AI/ML (GigaChat/Kandinsky) — hard blocker.** Ноль пересечения с `cv.md`.
4. Даже если бы стек совпадал, **локация (Москва, гибрид) — hard blocker** по политике кандидата (никакого переезда/командировок).
Практический план закрытия — при текущем профиле кандидата ни один из этих пробелов не закрывается за разумное время; это сигнал, что роль вне North Star, а не задача для "упаковки" резюме.
---
## C) Уровень и стратегия
1. **Уровень в JD:** Middle (3+ года frontend). **Естественный уровень кандидата для архетипа Vue/Flutter:** Middle — совпадает по формальному уровню. Но архетип роли (React) не входит в целевые архетипы кандидата (`modes/_profile.md`: Frontend Vue.js / Mobile Flutter / Fullstack Vue+Node — React не входит).
2. **План "продать senior без обмана":** Неприменимо — блокирующий фактор не в уровне, а в стеке и локации.
3. **План "если понизят уровень":** Неприменимо по той же причине.
**Локационный hard blocker (решающий фактор балла):** Роль в Москве, гибридный формат. `modes/_profile.md` — "Hybrid/office roles requiring relocation outside Тула, or requiring business travel: score **1.0** — this is a hard constraint, not a soft preference." Кандидат явно не рассматривает переезд (`cv.md`, `config/profile.yml`: "Переезд: нет"). Это форсирует итоговый балл **1.0/5** независимо от остальных измерений.
---
## D) Компенсация и спрос
| Параметр | Значение | Источник |
|---|---|---|
| Зарплата (по hirehi.ru) | ≈ 218 541 ₽ (AI-оценка агрегатора, на 18.7% выше среднего по рынку ~184 142 ₽) | hirehi.ru (страница вакансии) |
| Gross/Net | Не указано явно в JD; вероятно gross (типично для корп. вакансий) → net ≈ 218 541 × 0.87 ≈ **190 000 ₽/мес** (ориентировочно) | Расчёт по стандартной формуле ru-модов |
| Грейдовая сетка Сбера 2026 | Грейды 12–13 = Middle, ориентировочно 180 000–250 000 ₽ | WebSearch (enigmai.ru, обзор зарплат Сбер 2026) |
| Бенефиты | ДМС с первого дня, льготная ипотека, корпоративный университет, корпоративная пенсионная программа, годовые премии + пересмотр раз в год | hirehi.ru (страница вакансии) |
| Спрос на роль | Сбер — крупнейший IT-работодатель РФ (50 000+ технических специалистов), стабильный спрос на frontend | WebSearch |
**Вывод по цифрам:** Номинальная компенсация (~190 000 ₽/мес net по оценке) заметно выше таргета кандидата (100 000–120 000+ ₽/мес net, `config/profile.yml`), но это ожидаемо для Москвы — стоимость жизни там существенно выше Тулы, и переезд/командировки candidate явно исключает. Само сравнение цифр нерелевантно, так как роль исключена по локационной политике.
---
## E) План персонализации
**Рекомендация: не адаптировать резюме под эту вакансию.** Балл 1.0/5 (well below the 4.0 threshold from Ethical Use в AGENTS.md) — при таком совпадении отклик не имеет смысла:
- Локация требует переезда — жёсткое ограничение кандидата.
- Стек (React/Redux, Swift, AI/ML-модели) не совпадает с профилем (Vue/Flutter).
- Листинг, по данным самого агрегатора hirehi.ru, уже архивирован — заявки, вероятно, не принимаются.
Если кандидат всё же захочет держать эту компанию на радаре — искать вакансии Сбера конкретно на **Vue-стеке** (в scan-history.tsv уже встречались другие Sber-позиции, включая одну на hh.ru, отфильтрованную как `skipped_onsite`) и **удалённые/тульские** позиции, а не эту.
---
## F) План собеседований
Учитывая балл 1.0/5 и рекомендацию не откликаться, разворачивать полноценный банк STAR+R под несовпадающий стек (React/Redux/Swift/AI-модели) нецелесообразно — истории кандидата (RBAC, курьерский график, WebSocket-оповещения, Избранное) уже задокументированы в `interview-prep/story-bank.md` для профильных (Vue/Flutter) ролей и не требуют повторной адаптации под React-контекст, которого у кандидата нет.
**Вопрос-ловушка, если бы собеседование всё же состоялось:** "Почему решили сменить стек с Vue на React?" — честный ответ: не меняла; кандидат специализируется на Vue 3 и Flutter, о чём стоит сказать прямо на этапе скрининга, чтобы не тратить время сторон.
**Рекомендуемое действие:** не откликаться на эту конкретную вакансию.
---
## G) Legitimacy — Достоверность вакансии
**Tier: Proceed with Caution**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Компания | Сбер — крупнейший IT-работодатель РФ, безусловно реальная компания | Высокий (позитивный) |
| Явный статус вакансии | Страница hirehi.ru прямо указывает: **"Archived (no longer accepting applications as of June 25, 2026)"** | Высокий (негативный) — прямое утверждение источника, не инференс |
| Качество описания | Детальное, специфичное описание стека, команды и обязанностей — не generic-текст | Средний (позитивный) |
| Repost-паттерн | В `data/scan-history.tsv` уже встречаются несколько отдельных Sber frontend-листингов за последние дни (`developers.sber.ru`, `rabota.sber.ru` ×2, `hh.ru`) — не тот же самый URL, но говорит о высокой текучести/объёме frontend-найма у Сбера в целом, типично для компании такого размера, не тревожный сигнал сам по себе | Средний (нейтральный) |
| Рыночный контекст роли | Средняя зарплата вакансии (~218 541 ₽ по оценке hirehi.ru) на уровне рынка для Middle Frontend в Москве, реалистична | Низкий (позитивный) |
**Вывод:** Компания абсолютно реальна и добросовестна (это не признак фейковой вакансии/скама) — сигнал снижения tier ниже "High Confidence" идёт исключительно от явного указания источника, что конкретный листинг уже закрыт для приёма заявок. Freshness иначе не проверялась через Playwright (вне бюджета этой задачи). Рекомендация: если кандидат заинтересован в Сбере, искать текущие открытые позиции напрямую на `rabota.sber.ru`, а не через этот архивный листинг.
---
## Извлечённые ключевые слова (ATS)
JavaScript, React, React-Redux, Redux Toolkit, TypeScript, Oracle, PostgreSQL, CI/CD, webpack, Vite, Git, Jest, Cypress, integration testing, Swift, iOS, AI/ML, GigaChat, Kandinsky, accessibility, security, retail-решения, Middle Frontend, Москва, гибрид
+88
View File
@@ -0,0 +1,88 @@
# Оценка: Студия Перцы — Frontend-разработчик
**Дата:** 2026-07-07
**Архетип:** Frontend-разработчик (Vue.js) — номинально по названию; фактически несовпадающий архетип (см. Блок A)
**Балл:** 1.0/5
**Legitimacy:** High Confidence
**URL:** https://hh.ru/vacancy/133613060?query=frontend&hhtmFrom=vacancy_search_list
**PDF:** not generated (балл ниже порога 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (по названию вакансии) | Frontend-разработчик |
| Архетип (по факту содержания) | Junior/Trainee Frontend (верстка, HTML/CSS/React) — учебная программа для студентов/выпускников |
| Domain | Web-студия / digital-продакшн (сайты, промо, игры, анимация) |
| Function | Build (верстка интерактивных проектов), обучение |
| Seniority | Trainee / без опыта (программа для студентов последних курсов и выпускников профильных специальностей) |
| Формат работы | **Офис, только очно** (г. Ярославль, ул. Лизы Чайкиной, 7). Удалёнка не рассматривается |
| Размер команды | Не указано |
| Оформление | Не указано в вакансии (оплачиваемая стажировка ~20 000 ₽ на этапе обучения, далее трудоустройство) |
| TL;DR | Оплачиваемая стажировка для начинающих верстальщиков в Ярославле, требует ежедневного присутствия в офисе — не совпадает ни по формату работы, ни по уровню, ни по стеку с профилем кандидата. |
**Vibe команды:** судя по формулировкам JD (акцент на обучении «с нуля», менторская программа для студентов, чёткий процесс «тест → стажировка → обучение → трудоустройство»), команда явно ориентирована на выращивание джуниоров и структурированное обучение — потенциально неплохой вайб для начинающего специалиста. Но это не релевантно кандидату: Валерия — middle-разработчик с коммерческим опытом, а не студентка/выпускница без опыта.
## B) Совпадение с CV
Совпадение минимальное и формальное — общее совпадение по ключевому слову "Frontend-разработчик" в названии, не по содержанию:
| Требование JD | Соответствие CV |
|---|---|
| HTML, CSS3, кроссбраузерная верстка | Есть базовые навыки (HTML5/CSS3 в cv.md), но кандидат работает на уровне Vue 3/Composition API, а не «чистой» верстки |
| React | Не указан в cv.md (стек кандидата — Vue 3, не React) |
| Figma | Есть опыт UI/UX-редизайна и проектирования интерфейсов (cv.md, «Дополнительное образование» / навыки UI/UX), но не через Figma напрямую в вакансии не указано, чем именно кандидат владеет из тулинга дизайна |
| Английский A1 | У кандидата B1 — избыточно перекрывает требование |
| Отсутствие опыта / обучение "с нуля" | **Прямое несоответствие**: у кандидата 1+ год коммерческого опыта на Vue 3 и Flutter в «Здравсервис», включая самостоятельную разработку продукта с нуля (ЕКОМ) и проектирование RBAC — это позиция для новичков без опыта, кандидат её кратно перерос |
**Пробелы и стратегия закрытия:**
1. Это hard blocker — офис в Ярославле без удалёнки — кандидат живёт в Туле и не переезжает (config/profile.yml, modes/_profile.md: location policy).
2. Смежный опыт есть (HTML/CSS, UI-редизайн), но это не закрывает главный блокер — формат работы.
3. Портфолио-проект не поможет: проблема не в навыках, а в локации/уровне.
4. Конкретный план: **не откликаться**. Даже если формат работы был бы удалённым, роль — стажёрская программа для новичков, что означает откат в уровне и зарплате ниже минимума кандидата.
## C) Уровень и стратегия
1. **Уровень в JD:** Trainee/Junior без опыта (учебная программа). **Естественный уровень кандидата:** Middle (1+ год коммерческого опыта на двух продуктах, самостоятельная разработка с нуля, менторство коллеги, участие в архитектурных решениях — RBAC, WebSocket).
2. **План "продать senior без обмана":** Не применимо — разрыв уровней в обратную сторону (кандидат сильно выше требуемого уровня), а не занижен.
3. **План "если понизят уровень":** Не применимо для данной оценки — рекомендация ниже (не откликаться) снимает вопрос о переговорах по уровню.
## D) Компенсация и спрос
| Показатель | Значение |
|---|---|
| Зарплата в JD | 40 000–50 000 ₽/мес (на руки, стажёрский этап — 20 000 ₽) |
| Цель кандидата (config/profile.yml) | 100 000–120 000+ ₽/мес на руки |
| Разрыв | Вакансия предлагает **~40-50% от минимума** цели кандидата |
| Источник | Данные взяты из JD (hh.ru), полноценный WebSearch по рыночным ставкам не требуется — разрыв очевиден и не подлежит пересмотру переговорами на этом уровне позиции |
Дополнительное рыночное сравнение не проводилось (бюджет WebSearch использован на проверку легитимности компании, Блок G) — оценка компенсации не зависит от точных рыночных цифр: даже верхняя граница джуниорских зарплат в регионах РФ не приближается к цели кандидата, а сама позиция структурно не подходит (стажировка для новичков).
## E) План персонализации
Персонализация CV/LinkedIn для этой вакансии **не рекомендуется** — оценка ниже порога отклика (см. AGENTS.md: канонический порог 4.0/5, ниже 3.5 — настоятельно не откликаться). План не составляется.
## F) План собеседований
Не составляется — при балле 1.0/5 подготовка к интервью не имеет смысла (см. Ethical Use в AGENTS.md/CLAUDE.md: заявки с низким совпадением не рекомендуются).
## G) Легитимность вакансии (Posting Legitimacy)
**Уровень: High Confidence**
| Сигнал | Оценка |
|---|---|
| Качество описания | Высокое — подробный текст с историей компании (с 2006 года), реальными клиентами (Kaspersky Lab, Yandex, Сбербанк упомянуты как клиенты студии), чётким процессом найма (тест → интервью/неделя стажировки → месяц обучения → трудоустройство) |
| Наличие компании (WebSearch) | Подтверждено: «Перцы-Студия», веб-студия в Ярославле, работает с 2006 года, есть профиль на Tagline.ru, отзывы на Yell.ru (рейтинг 4), Workspace.ru, реальный адрес и телефон |
| Повторный листинг (data/scan-history.tsv) | Не найден — единственная запись по этому ID, добавлена сегодня через Telegram-скан. Признаков повторного размещения нет |
| Рыночный контекст | Стажёрские программы у продакшн-студий в регионах РФ — обычная практика, зарплата и формат (только офис) соответствуют типичной стажировке, а не попытке замаскировать нерыночные условия |
Вывод: вакансия реальная и легитимная, компания существует давно и имеет положительную репутацию. Несоответствие кандидату — не признак мошенничества, а объективное отличие целевой аудитории вакансии (студенты/выпускники без опыта) от профиля кандидата (middle-разработчик с коммерческим опытом).
---
## Извлечённые ключевые слова
HTML, CSS3, Git, React, Sass, кроссбраузерная верстка, Figma, английский A1, верстка интерактивных проектов, промо-сайты, мобильные приложения, анимация интерактивных элементов, стажировка, оплачиваемое обучение, трудоустройство, тестовое задание, digital-продакшн, веб-студия, разработка сайтов, геймификация
+104
View File
@@ -0,0 +1,104 @@
# Оценка: Т-Банк (АО «Т-Банк», направление «Работа с клиентами») — Frontend Developer (React)
**Дата:** 2026-07-07
**Архетип:** Ближе всего к «Frontend Developer (Vue.js)» кандидата, но стек — React, не Vue; вторично пересекается с «Fullstack Developer (Vue + Node.js)» через внутренние Node.js-сервисы команды
**Балл:** 1.0/5 — hard location blocker
**URL:** https://hh.ru/vacancy/133056126?query=frontend&hhtmFrom=vacancy_search_list
**PDF:** не создан (балл ниже порога 3.0)
**Legitimacy:** High Confidence
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (React) — смежный с целевым архетипом кандидата «Frontend Developer (Vue.js)» по функции, но не по стеку (React vs Vue 3) |
| Domain | Enterprise/product frontend — клиентские интерфейсы для банкинга, путешествий, инвестиций, развлечений, образования + внутренние инструменты (админ-панели, page builder, Node.js-микросервисы, UI-библиотеки) |
| Function | Build |
| Seniority | 3-6 лет опыта (JD) |
| Формат работы | **Гибрид, офис в Казани (ул. Спартаковская, 6), график 5/2, 8 часов — remote-опция не упомянута** |
| Размер команды | Не указан |
| Оформление | Не указано явно (упомянута аккредитация ИТ-компании) |
| Зарплата | Не указана («Достойную зарплату — обсудим на собеседовании») |
| TL;DR | Гибридная frontend-роль на React в офисе Казани без remote-опции — жёсткий локационный блокер для кандидата из Тулы без переезда, независимо от содержательного фита по стеку и уровню. |
## B) Совпадение с CV
**Оценка содержательного совпадения проведена для полноты картины, но не влияет на итоговый балл** — локационный блокер применяется как жёсткое правило независимо от технического фита (`modes/_profile.md`, Location Policy).
| Требование JD | Совпадение в CV |
|---|---|
| Продвинутое знание JavaScript | ✅ Прямое совпадение — JavaScript, TypeScript в проде (ЕКОМ, РМК) |
| Опыт с React | ❌ Не подтверждено — весь коммерческий опыт кандидата на Vue 3 (Composition API, Pinia); React не упомянут в CV |
| Понимание современного веб-стека | ✅ Смежное совпадение — Vite, ESLint, Prettier, Vitest, Storybook на стороне Vue-экосистемы |
| Работа в распределённых командах | ✅ Прямое совпадение — кросс-командное взаимодействие (логистика, бэкенд, техподдержка, клиентский отдел) |
| CI/CD (GitLab) | ✅ Прямое совпадение — внедрила Feature Branching в GitLab, обучила коллегу |
| TypeScript | ✅ Прямое совпадение |
| Unit-тестирование | ✅ Прямое совпадение — Vitest (unit-тесты Vue-компонентов) |
| Опыт с Node.js | ⚠️ Частично — ознакомительный уровень (хакатон, проект ТулГУ), не продакшн |
**Пробелы:**
1. **Стек — React vs Vue 3.** Hard blocker для содержательного фита независимо от локации: весь коммерческий опыт кандидата на Vue 3, React в CV не заявлен. Переход возможен (общие концепции компонентного фреймворка, TypeScript, тестирование), но требует явного признания в сопроводительном письме — заявлять экспертизу в React было бы фабрикацией.
2. **Node.js на продакшн-уровне** — у кандидата только ознакомительный опыт (хакатон, учебный проект), команда JD использует Node.js-микросервисы как часть стека.
## C) Уровень и стратегия
**Уровень в JD:** 3-6 лет опыта — выше фактического стажа кандидата (~1.5-2 года, с ноября 2024).
**Естественный уровень кандидата:** Middle-переходный для Vue-архетипа; для React-стека — начальный уровень (transferable skills, не прямой опыт).
**Рекомендация: не откликаться**, независимо от возможной стратегии позиционирования — локационный формат (офис Казань, гибрид, без remote) делает содержательную стратегию неприменимой. Даже без блокера, разрыв по стеку (React vs Vue) и разрыв по требуемому опыту (3-6 лет vs ~1.5-2 года) создали бы дополнительные препятствия.
## D) Компенсация и спрос
Зарплата в вакансии не указана.
Рыночные данные (WebSearch, RU, июль 2026): точечный поиск не проводился — локационный блокер делает сравнение компенсации второстепенным для итоговой рекомендации. Из общих сигналов о компании (см. Блок G): Т-Банк отмечается сотрудниками как работодатель с сильным соцпакетом (ДМС со стоматологией, компенсация питания/такси/спорта, годовой бонус) и выстроенными процессами без избыточной бюрократии — качественный, но не денежный сигнал.
**Оценка:** Недостаточно данных для прямого сравнения с таргетом кандидата (100 000–120 000+ ₽/мес на руки). Локационный блокер делает этот вопрос второстепенным.
## E) План персонализации
Не применимо — при hard location blocker персонализация CV не имеет практического смысла, независимо от остального фита.
## F) План собеседований
Пропущено по тем же причинам — hard blocker по локации делает содержательную подготовку STAR+R историй нецелесообразной.
---
## Vibe команды
JD упоминает конкретно "развитие и повышение квалификации", "внедрение новых технологий и практик" — сигнал про рост, но в общих формулировках, не подкреплённых конкретикой (нет упоминаний код-ревью, парного программирования, менторов явно). Про автономию/ownership и бюрократию явных сигналов в тексте JD нет. Судя по формулировкам JD, недостаточно данных для оценки живости команды и минимизации бюрократии — стоит уточнить на собеседовании, если кандидат решит рассматривать аналогичные роли этой компании без локационного блокера.
## G) Posting Legitimacy
**Assessment:** High Confidence
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть | Опубликована 24.06.2026 (~2 недели до даты оценки), обнаружена через активный поиск hh.ru по запросу "frontend" — не архивная выдача | Positive |
| Качество описания | Конкретный, детализированный текст: продукты, зона ответственности, стек (React/Node.js/TS), формат работы, точный адрес офиса, стандартные для крупного банка бенефиты | Positive |
| Company Hiring Signals | Т-Банк — крупный, легитимный и активно нанимающий работодатель; в `data/scan-history.tsv` уже зафиксированы другие открытые frontend-вакансии Т-Банка (React, Angular, Москва) — паттерн параллельного найма на несколько ролей в разных городах, типичный для банка такого масштаба, а не признак фиктивной вакансии | Positive |
| Reposting check | Данная ссылка (vacancy/133056126) уникальна в `scan-history.tsv` — не повторный листинг одной и той же позиции | Neutral |
| Зарплата | Не указана — стандартная практика для крупных банков РФ, не red flag | Neutral |
| Role Market Context | Frontend/React — стабильно высокий спрос на рынке РФ в 2026; требование 3-6 лет опыта соответствует типичной Middle/Middle+ позиции | Positive |
**Context Notes:** Все сигналы согласованно позитивны — известный крупный работодатель, свежая публикация, детализированное описание, отсутствие признаков репоста или архивации.
---
## Извлечённые ключевые слова
React, JavaScript, TypeScript, Node.js, микросервисы, admin-панели, page builder, UI-библиотеки, CI/CD, GitLab, unit-тестирование, распределённые команды, клиентские интерфейсы, внутренние интерфейсы, банкинг, гибрид, Казань, 5/2, ДМС, компенсация питания, компенсация спорта, аккредитация ИТ-компании
---
## Рекомендация
**Балл 1.0/5 — намного ниже порога 4.0/5 (AGENTS.md, Ethical Use). Настоятельно рекомендуется не откликаться.**
1. **Hard location blocker:** формат работы — гибрид с офисом в Казани, полный рабочий день (5/2, 8 часов), remote-опция не упомянута. Кандидат живёт в Туле и не рассматривает переезд. Per `modes/_profile.md` (Location Policy): "Hybrid/office roles requiring relocation outside Тула... score 1.0" — жёсткое правило независимо от остального фита.
2. **Стек не совпадает:** роль на React, весь коммерческий опыт кандидата — на Vue 3; заявлять готовый React-опыт было бы фабрикацией.
3. **Уровень выше фактического стажа:** JD просит 3-6 лет опыта против ~1.5-2 лет у кандидата.
4. **Единственный позитивный сигнал** — легитимность и стабильность работодателя (Block G, High Confidence) и хороший соцпакет по отзывам сотрудников — недостаточны, чтобы перевесить локационный блокер.
+119
View File
@@ -0,0 +1,119 @@
# Оценка: Exness — Frontend Software Engineer (Bootcamp)
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — ближайший из профиля кандидата; фактический стек вакансии — React/TypeScript
**Балл:** 1.0/5
**Legitimacy:** High Confidence
**URL:** https://getmatch.ru/vacancies/35037-frontend-software-engineer-bootcamp?s=offers
**PDF:** not generated (балл ниже порога 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (профильный) | Frontend Developer (Vue.js) — ближайший к профилю кандидата, но стек не совпадает (JD — React, не Vue) |
| Domain | Fintech / trading broker (Exness) |
| Function | Build — доставка продуктовых фич |
| Seniority | Middle (де-факто требует 3+ года коммерческого опыта; "Bootcamp" — программа для миддлов, не джуниоров) |
| Формат работы | **Офис, Лимасол, Кипр.** В JD прямо указано требование "open to candidates currently living in Cyprus" — удалённого формата нет |
| Размер команды | Не указан |
| Оформление | Не ТК РФ — кипрский работодатель, релокация с визовой/юридической поддержкой |
| TL;DR | Офисная позиция в Лимасоле (Кипр) для React/TS-инженера с 3+ годами опыта в ротационной bootcamp-программе Exness — не подходит кандидату по локации (Тула, без переезда) и по стеку (React, не Vue) |
**Важное уточнение по названию:** "Bootcamp" в заголовке — это НЕ образовательный/оплачиваемый учебный курс, а внутреннее название мульти-ротационной инженерной программы Exness: участники работают в разных продуктовых командах, прежде чем получить постоянное назначение. Это полноценная штатная позиция с зарплатой от €4500/мес gross, а не стажировка или курс. Подтверждено текстом JD (описание "multi-rotational engineering program", формальные требования к опыту, зарплатная вилка, бенефиты уровня штатного сотрудника).
**Vibe команды:** Судя по формулировкам JD (ротация между продуктами и командами, upskilling через "unlimited learning opportunities", код-ревью как часть процесса, работа в паре с UX/UI-дизайнерами) — команда выглядит структурированной и инвестирующей в рост инженера, но недостаточно данных о степени автономии/бюрократии в самих продуктовых командах после ротации — стоит уточнять на собеседовании, если бы локация позволяла претендовать.
## B) Совпадение с CV
**Причина низкого балла — не в квалификации, а в жёстком ограничении по локации и формату работы (см. Блок C).** Ниже — совпадение по существу, для полноты картины.
| Требование JD | Совпадение с CV |
|---|---|
| 3+ года коммерческого опыта | ❌ Не закрыто. Опыт кандидата — с ноября 2024 (Здравсервис) + ~10 мес. заказной разработки в 2022 (ТулГУ). Итого меньше 2 лет коммерческого стажа |
| React (продвинутый) | ❌ Не закрыто. Кандидат работает на Vue 3 (Composition API, Pinia) — стек не совпадает. Переносимые концепции (компонентная архитектура, state management, реактивность) есть, но React как таковой в CV не упомянут |
| TypeScript | ✅ Закрыто: «Здесь ЕКОМ» — Vue 3, Composition API, **TypeScript**, Pinia |
| CSS + препроцессоры | ✅ Частично: Tailwind CSS, shadcn/shadcn-vue в опыте кандидата; классические препроцессоры (Sass/Less) не упомянуты |
| Тестирование: Jest, Vitest, Playwright | ✅ Хорошее совпадение: Vitest (unit-тесты Vue-компонентов), Playwright (E2E на РМК). Jest не упомянут, но Vitest — прямой аналог |
| Code review, документирование | ✅ Закрыто: внедрение Feature Branching, обучение коллеги, документирование процессов |
| Английский B2+ | ⚠️ Пробел: у кандидата B1 по CV — ниже требуемого уровня |
**Пробелы:**
1. **Локация/формат работы — hard blocker.** Офис в Лимасоле, требование уже проживать на Кипре. У кандидата в `_profile.md` прямо зафиксировано: переезд и командировки не рассматриваются. Это не закрывается никакой аргументацией.
2. **Стек (React vs Vue) — hard blocker для этой конкретной роли.** У кандидата нет коммерческого опыта на React в CV.
3. **Опыт (3+ года) — nice-to-have/soft blocker**, но вторичен на фоне пунктов 1-2.
4. **Английский (B2 vs B1)** — soft gap, не первоочередной при отсутствии двух блокеров выше.
## C) Уровень и стратегия
**Причина оценки 1.0/5 — правило локации из `modes/_profile.md` (Your Location Policy):**
> "On-site-only roles outside Тула with no remote option: score 1.0" — это жёсткое ограничение, не мягкое предпочтение.
Вакансия — офисная позиция в Лимасоле (Кипр), явно требующая, чтобы кандидат уже проживал на Кипре, без опции удалённой работы. Кандидат живёт в Туле, Россия, и в `config/profile.yml`/`cv.md` прямо указано: "Переезд: нет. Командировки: нет." Это автоматически даёт 1.0/5 независимо от качества компании, зарплаты или совпадения по стеку — правило кандидата является hard constraint, не подлежащим компенсации другими сильными сторонами позиции.
**План "продать senior без обмана":** Неприменимо — оценка блокируется на этапе локации, а не уровня.
**План "если понизят уровень":** Неприменимо по той же причине.
**Рекомендация:** Не откликаться. Даже если кандидат теоретически готова была бы к переезду (что прямо противоречит её заявленной политике), потребовался бы переход на React — сейчас у неё нет закрывающего этот пробел коммерческого опыта.
## D) Компенсация и спрос
| Параметр | Значение |
|---|---|
| Зарплата (JD) | От €4500/мес **gross**, финальная сумма зависит от налоговой специфики и грейда, определяемого на интервью |
| Net (оценка) | Ориентировочно; кипрская налоговая система отличается от РФ (НДФЛ 13% неприменим — другая юрисдикция); expat tax exemption до 50% упомянут в бенефитах |
| Валюта | EUR (не RUB) — далеко выше диапазона в `config/profile.yml` (100-120k+ ₽/мес на руки ≈ €1000-1200/мес по текущему курсу), но это не релевантно при hard-блокере по локации |
| Бенефиты | ДМС с покрытием семьи, неограниченное обучение, 21 день отпуска, служебный автомобиль (MINI Cooper), спортклубы, налоговые льготы для экспатов, поддержка натурализации |
| Оформление | Кипрский трудовой контракт (не ТК РФ) |
| Репутация компании | Exness — крупный форекс-брокер, рейтинг 4.6/5 на Glassdoor (179 отзывов), сертификат Great Place to Work® (Кипр, 2022-2023), признание Best Places to Work в 2024. Компания реальна, найм активен — по данным нескольких job-бордов (LinkedIn, jobsinforex.com, fintechcareers.com) публикует и другие Frontend Software Engineer позиции в Лимасоле, часть — с полной поддержкой релокации |
**Вывод:** Компенсация и бенефиты объективно сильные для рынка Кипра/EU, но полностью нерелевантны для кандидата — валюта, юрисдикция и офисный формат в другой стране делают сравнение с целевым диапазоном (RUB, Тула) бессмысленным.
## E) План персонализации
Неприменимо — при балле 1.0/5 персонализация CV/сопроводительного не рекомендуется. Приложение усилий на эту вакансию не окупится: hard-блокер по локации не устраняется правкой резюме.
## F) План собеседований
Неприменимо — согласно "Ethical Use" (AGENTS.md), при балле ниже 4.0/5 отклик не рекомендуется; при 1.0/5 подготовка к интервью не имеет смысла. Инвестировать время лучше в подходящие по локации/стеку вакансии (Vue-роли, удалённые или в Туле).
## G) Легитимность вакансии (Posting Legitimacy)
**Tier: High Confidence**
Сигналы:
- **Качество описания:** JD подробный, структурированный, с конкретными техническими требованиями, чёткой зарплатной вилкой и детальным списком бенефитов — типичный профиль крупного корпоративного работодателя, не фиктивная/скам-вакансия.
- **Наём компании подтверждён WebSearch:** Exness — известный форекс-брокер, множественные независимые публикации о найме Frontend Software Engineer в Лимасоле на разных площадках (LinkedIn, jobsinforex.com, fintechcareers.com), рейтинг Glassdoor 4.6/5, сертификация Great Place to Work.
- **Репост:** Проверка `data/scan-history.tsv` и `reports/` — совпадений по ID 35037 или компании Exness не найдено; это первая оценка данной вакансии в системе, признаков множественного репоста нет.
- **Рыночный контекст роли:** "Bootcamp"/ротационные инженерные программы у крупных финтех-компаний — стандартная практика (аналог graduate/rotational engineering programs), не является тревожным сигналом; подтверждено содержанием JD (описание ротации между продуктовыми командами).
- **Свежесть (freshness):** Не проверялась через Playwright (batch-режим); внешняя liveness-проверка отметила URL как "active" — согласуется с доступным и полным содержанием, полученным через WebFetch.
**Итог:** Вакансия выглядит подлинной и активной, компания легитимна. Единственная причина низкой оценки для кандидата — несовпадение по локации/формату работы и стеку, а не признаки мошенничества или фиктивного постинга.
---
## Извлечённые ключевые слова
1. Frontend Software Engineer
2. React
3. TypeScript
4. Flow
5. JavaScript (ES6+)
6. CSS preprocessors
7. Jest
8. Vitest
9. Playwright
10. Code review
11. UX/UI collaboration
12. Bootcamp / rotational program
13. Fintech
14. Trading platform
15. Limassol, Cyprus
16. Bachelor's/Master's degree Computer Science
17. English B2
18. Testing automation
19. Documentation
20. Clean code
+135
View File
@@ -0,0 +1,135 @@
# Оценка: РТК-ЦОД — Ведущий фронтенд-разработчик (React)
**Дата:** 2026-07-07
**Архетип:** Frontend-разработчик (React / Next.js / GraphQL) — НЕ входит в целевые архетипы кандидата. Ближайшие: Frontend Developer (Vue.js) [primary], Fullstack Developer (Vue + Node.js) [adjacent]
**Балл:** 1.8/5
**Legitimacy:** High Confidence
**URL:** https://career.habr.com/vacancies/1000167021
**PDF:** not generated (score below 3.0 gate)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (по _profile.md) | Не совпадает ни с одним целевым архетипом. Ближайшие: Frontend (Vue.js) — primary; Fullstack (Vue+Node) — adjacent. Реальный стек роли — другая экосистема (React) |
| Domain | Frontend, enterprise (личный кабинет + корпоративный сайт, headless CMS) |
| Function | Build (разработка) + частичный ownership архитектуры (SSR, UI Kit) |
| Seniority | Senior / Ведущий |
| Формат работы | Гибрид или удалённо (Москва) |
| Размер команды | Не указан явно в JD |
| Оформление | ТК РФ, официальное |
| TL;DR | Ведущая позиция на React/TypeScript/Next.js/GraphQL в личном кабинете и на корпоративном сайте дочерней структуры Ростелекома — стек и уровень не совпадают с профилем кандидата (Vue 3 / Middle) |
**Vibe команды** (качественный сигнал, не влияет на числовую оценку): судя по формулировкам JD, это крупная корпоративная структура (дочка ПАО «Ростелеком») с акцентом на стабильность, льготы и формализованный рост через «корпоративный университет». Прямых сигналов о живой автономной команде, культуре RFC/архитектурных обсуждений, парном программировании или гибком графике в тексте нет — упоминается только формат «гибрид или удалённо» без деталей политики. Недостаточно данных в JD, чтобы оценить темп принятия решений и уровень бюрократии — стоит уточнить на собеседовании, если решение подавать всё же принято.
---
## B) Совпадение с CV
Прочитан `cv.md`. Сопоставление требований JD с точными строками резюме:
| Требование JD | Совпадение в CV | Статус |
|---|---|---|
| JavaScript | «Языки программирования: JavaScript, TypeScript, HTML5/CSS3, Dart» | ✅ Прямое совпадение |
| TypeScript | «Vue 3, Composition API, TypeScript, Pinia» (ЕКОМ) | ✅ Прямое совпадение |
| React | — | ❌ Не упоминается ни в одном проекте |
| Next.js / SSR | Только «Быстро осваиваю: Nuxt» (не подтверждённый опыт, wishlist) | ❌ Нет коммерческого опыта SSR |
| GraphQL | «REST API, WebSocket/WSS» — есть API-интеграция, но не GraphQL | ❌ Нет опыта GraphQL |
| HTML/CSS, Tailwind, UI Kit | «Tailwind CSS, shadcn/shadcn-vue, TanStack Table» | ✅ Совпадение (другой UI-стек, но принцип компонентных систем общий) |
| Git | «Git, GitLab, CI/CD... Внедрила Feature Branching в Git (GitLab), обучила коллегу» | ✅ Прямое и сильное совпадение |
| Unit/component-тестирование | «Vitest (unit-тесты Vue-компонентов), Storybook, Playwright E2E» | ✅ Прямое совпадение (другой фреймворк, тот же навык) |
| Компоненты и hooks | Composition API (Vue) — концептуально близко к React hooks (composable reactive state), но не то же самое | ⚠️ Частичное/переносимое |
| Интеграция API, отладка (DevTools) | «Диагностировала причину... через постраничную загрузку», «сложный кейс с замыканием» (РМК) — реальный опыт диагностики багов | ✅ Совпадение по навыку отладки |
| Понимание frontend-архитектуры | «Frontend ЕКОМ разработан с нуля», проектирование RBAC | ✅ Совпадение (архитектурный опыт есть, но не в React-экосистеме) |
| Кросс-командная коммуникация | «Кросс-командное взаимодействие (логистика, бэкенд, техподдержка)» | ✅ Прямое совпадение |
### Пробелы
1. **React (hard blocker).** Ни один проект в CV не использует React. Это не nice-to-have — JD прямо требует «уверенное знание React» для Ведущей позиции. Смежный опыт (Vue 3 Composition API) даёт концептуальный мостик (реактивность, компонентная модель), но не заменяет продакшн-опыт с JSX, React hooks API, экосистемой (React Router, state-менеджеры типа Redux/Zustand).
2. **Next.js / SSR (hard blocker).** Нет коммерческого опыта серверного рендеринга. Nuxt в CV указан только как «быстро осваиваю» — это заявка на потенциал, не на готовый навык.
3. **GraphQL (hard blocker для Lead-уровня).** Опыт кандидата — REST + WebSocket. GraphQL — отдельная экосистема (schema, resolvers, Apollo/urql на клиенте), не покрывается REST-опытом.
4. **Стратегия закрытия:** Пробелы 1-3 — это не то, что закрывается фразой в сопроводительном или пет-проектом за неделю: JD хочет человека, который сразу ведёт архитектуру SSR-приложения и GraphQL-интеграции. Пет-проект на React/Next.js мог бы частично закрыть пробел для позиции Junior/Middle React, но не для «Ведущего» — там нужен подтверждённый продакшн-опыт.
---
## C) Уровень и стратегия
1. **Уровень в JD:** Ведущий (Senior/Lead) — роль подразумевает самостоятельное владение архитектурой в двух продуктовых зонах (личный кабинет + сайт), включение SSR-миграции и GraphQL-интеграции, участие в релизах.
**Естественный уровень кандидата:** Middle — по `config/profile.yml` архетип «Frontend Developer (Vue.js)» зафиксирован как Middle. Даже в своей сильнейшей экосистеме (Vue) кандидат не Senior/Lead: коммерческий опыт — с ноября 2024 (Здравсервис), около 8 месяцев на момент оценки, плюс более раннее университетское проектное участие (ТулГУ, не индустриальный опыт).
2. **План «продать senior без обмана»:** Реалистично — не сработает для этой роли. Сильные лидерские сигналы у кандидата реальны: она спроектировала фронтенд ЕКОМ с нуля, самостоятельно продумала и объяснила бэкенд-команде модель RBAC, продвинула Feature Branching и обучила коллегу с 11-летним стажем, добилась включения в стратегическое планирование спринтов. Это поведенческие маркеры уровня «выше Middle». Но они полностью в экосистеме Vue/Flutter — ни один из них не демонстрирует владение React/Next.js/GraphQL, которые JD требует «уверенно» с первого дня. Лидерский трек-рекорд не компенсирует отсутствие стека для Lead-позиции конкретно на React.
3. **План «если понизят уровень»:** Даже гипотетическое понижение до Middle/Junior React не решает основную проблему — кандидат тогда учил бы React/Next.js/GraphQL «в процессе», а JD прямо ищет уверенное знание этого стека уже сейчас, не потенциал к обучению. Понижение уровня не устраняет технологический разрыв, только временно снижает ожидания по объёму ответственности.
**Итог блока C:** Комбинация «неверный технологический стек» + «разрыв в 1-2 грейда» — оба блокера одновременно, ни один не закрывается стандартными приёмами (переформулировка резюме, сопроводительное письмо, короткий пет-проект).
---
## D) Компенсация и спрос
| Показатель | Значение | Источник |
|---|---|---|
| Зарплата в JD | Не указана напрямую; Хабр Карьера показывает «зарплата похожих специалистов»: 280 000–437 000 ₽ (по всей видимости gross) | [Вакансия](https://career.habr.com/vacancies/1000167021) |
| Net-эквивалент (× 0.87) | ≈ 243 600 – 380 190 ₽/мес на руки | Расчёт: gross × 0.87 (стандартный НДФЛ 13%; реальная ставка может отличаться) |
| Рыночный контекст, Senior frontend (2026) | Медиана Senior-разработчиков в РФ — около 550 000 ₽ (по некоторым источникам архитектор/principal 450-700 тыс.); типичный диапазон Senior — 270-410 тыс. ₽ | [Практикум/аналитика зарплат Frontend 2026](https://practicum.yandex.ru/blog/skolko-zarabatyvayut-frontend-razrabotchiki/) |
| Хабр Карьера, React frontend (все уровни) | ~258 500 ₽ (медиана по выборке, вероятно смешивает грейды, не только Senior) | [career.habr.com/salaries](https://career.habr.com/salaries?skills%5B%5D=react-js&spec_aliases%5B%5D=frontend) |
| Оформление | ТК РФ, официальное | JD (+0.3 к стабильности по правилам оценки РФ) |
| Бенефиты | ДМС, корпоративный университет, корпоративный спорт, корпоративная мобильная связь | JD |
**Вывод:** диапазон значительно выше целевого (100 000–120 000+ ₽ на руки) — комп был бы привлекателен, если бы кандидат закрывала требования. Но при текущем технологическом разрыве (React/Next.js/GraphQL с нулевым коммерческим опытом на роль уровня Lead) этот комп практически недостижим — компания нанимает на подтверждённую экспертизу, а не на потенциал.
---
## E) План персонализации
Учитывая балл ниже порога 3.0 (гейт PDF) и структурный (не косметический) разрыв в стеке и уровне, персонализация CV/LinkedIn под эту конкретную вакансию **не рекомендуется**. Если кандидат всё же решит откликнуться (например, ради интервью-практики или из любопытства к компании), минимальные точки опоры:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Ведёт с Vue 3 + Flutter | Подчеркнуть JS/TS фундамент и Composition API как переносимый навык на компонентные фреймворки | Единственный реальный мостик к React-стеку |
| 2 | Skills | Vue-специфичные библиотеки на первом месте | Поднять «быстро осваиваю: любые UI-киты/дизайн-системы» ближе к началу | Сигнал открытости к смене стека, честно (не выдаёт несуществующий React-опыт) |
| 3 | Cover letter | — | Явно признать отсутствие React/Next.js опыта, но аргументировать через скорость обучения (Flutter выучен «с нуля» за 8 месяцев до продакшна) | Честность + фактическое доказательство скорости онбординга в новый стек |
Топ-изменений для LinkedIn/hh.ru — не применимо; риск того, что рекрутер отклонит на этапе резюме из-за явного отсутствия React, слишком высок, чтобы оптимизация имела смысл здесь.
---
## F) План собеседований
Даже при низком балле — банк историй STAR+R на случай, если кандидат решит подавать (например, чтобы потренироваться объяснять смену стека):
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Понимание frontend-архитектуры | Разработка ЕКОМ с нуля | Внутренняя система логистики без фронтенда | Спроектировать SPA с нуля | Vue 3 + Composition API + Pinia, WebSocket-интеграция | Логисты сами управляют графиком без разработчиков | Поняла, как выбор архитектуры (Composition API вместо Options) влияет на масштабируемость команды из 4 человек |
| 2 | Компонентные системы / hooks-подобная логика | RBAC-модель в ЕКОМ | Разграничение доступа логистика/заказы | Спроектировать ролевую модель | Использовала ИБ-образование, объяснила модель бэкенд-команде | Бэкенд принял модель без переделок | В следующий раз документировала бы модель раньше, до начала обсуждения с бэкендом |
| 3 | Отладка / DevTools | Баг с замыканием на РМК | Клавиатура переставала работать | Найти причину утечки реактивной переменной | Отследила передачу переменной в глобальный класс биндинга клавиш | Баг исправлен, клавиатура стабильна | Это подчеркнуло риски глобального состояния — стала осторожнее с shared mutable state |
| 4 | Тестирование (unit/component) | Внедрение Vitest и Playwright | Отсутствие тестов на легаси РМК | Добавить покрытие | Vitest для компонентов, Playwright для E2E | Тесты внедряются поэтапно, часть уже покрыта | Осознала, что внедрение тестов на легаси требует поэтапного плана, а не «всё сразу» |
| 5 | API-интеграция | WebSocket-оповещения в реальном времени | Не было видимости, сколько аптек онлайн | Внедрить WSS-канал оповещений | Реализовала клиент WebSocket, статус прочтения | Впервые видно ~1200 аптек в реальном времени | Поняла важность fallback-логики при разрыве соединения — на будущее добавила бы reconnect-стратегию явно |
| 6 | Кросс-командная коммуникация | Продвижение Feature Branching | Хаотичные релизы, зависшие фичи | Внедрить git flow и обучить команду | Обучила коллегу с 11-летним стажем, внедрила процесс | Команда перешла на стабильные еженедельные релизы | Узнала, что техническое внедрение процесса требует не меньше коммуникационных усилий, чем самого кода |
**Рекомендуемый кейс для показа:** ЕКОМ (график курьеров + RBAC) — лучше всего показывает архитектурное мышление и самостоятельность, даже вне React-контекста.
**Вопросы-ловушки:**
- *«У вас нет опыта с React — почему откликнулись на Lead-позицию?»* → Честный ответ: признать разрыв, но подчеркнуть скорость обучения нового стека (пример — Flutter с нуля до продакшна за несколько месяцев) и переносимые архитектурные навыки (RBAC, компонентный дизайн). Не оправдываться, не преувеличивать переносимость Composition API → React hooks как «то же самое».
- *«Как вы относитесь к тому, что позиция для Senior/Lead, а вы Middle?»* → Не спорить с грейдом; предложить обсудить траекторию роста и честно обозначить, что закрытие технологического разрыва потребует времени.
---
## G) Легитимность вакансии
**Tier: High Confidence**
Сигналы:
- **Качество описания:** Структурированный, детальный текст (две продуктовые зоны, конкретный стек, конкретные обязанности) — не шаблонный/пустой листинг.
- **Компания:** РТК-ЦОД — управляющая компания центра компетенций ПАО «Ростелеком» по дата-центрам, облачным платформам и CDN. Подтверждено независимым поиском: есть страница компании на career.habr.com/companies/rt-dc, официальный сайт rt-dc.ru, активный профиль работодателя на hh.ru (31 открытая вакансия), отзывы сотрудников на нескольких независимых площадках (Dream Job, Indeed) — компания реальная и активно нанимающая, не фиктивная.
- **Репост-проверка:** По `data/scan-history.tsv` эта вакансия (URL `https://career.habr.com/vacancies/1000167021`) встречена впервые сегодня (2026-07-07), добавлена один раз. Есть отдельная более ранняя запись того же дня для той же компании РТК-ЦОД, но с другой ролью («Разработчик TypeScript», канал `runello_rus_typescript`) — не дубликат этой вакансии, скорее сигнал, что компания одновременно набирает несколько frontend/JS-позиций (положительный сигнал активного найма, не red flag репоста).
- **Рыночный контекст роли:** Диапазон комп (280-437 тыс. ₽ gross по данным Хабра) согласуется с независимыми оценками рынка Senior frontend в 2026 (270-410 тыс. ₽ базовый Senior-диапазон) — цифры не выглядят завышенными или подозрительно заниженными.
- **Свежесть:** Не проверена через Playwright (batch-режим, только WebFetch/WebSearch) — не может быть подтверждена как «точно активна на момент чтения этого отчёта», но нет и сигналов истечения (сама страница вернула полный, живой текст вакансии, а не заглушку/404).
---
## Извлечённые ключевые слова
JavaScript, TypeScript, React, Next.js, GraphQL, HTML5, CSS3, Git, unit-тестирование, компонентное тестирование, hooks, состояние компонентов (state management), интеграция API, DevTools, отладка (debugging), frontend-архитектура, server-side rendering (SSR), headless CMS, Strapi, UI Kit, личный кабинет, релизный процесс, коммуникация в команде
+120
View File
@@ -0,0 +1,120 @@
# Оценка: Т-Банк — Frontend-разработчик React (junior)
**Дата:** 2026-07-07
**Архетип:** Frontend-разработчик (React) — гибрид между основным архетипом кандидата «Frontend Developer (Vue.js)» и общим RU-архетипом «Frontend-разработчик» (React/Vue/Angular); стек JD (React) не совпадает с основным стеком кандидата (Vue 3)
**Балл:** 2.4/5
**Legitimacy:** High Confidence
**URL:** https://hh.ru/vacancy/119867578?query=frontend&hhtmFrom=vacancy_search_list
**PDF:** not generated (балл ниже порога 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend-разработчик (React) — не совпадает с основным стеком кандидата (Vue 3) |
| Domain | Frontend, enterprise/fintech (клиентские + внутренние интерфейсы крупного банка) |
| Function | Build |
| Seniority (JD) | Junior (от 1 года коммерческого опыта с JS) |
| Формат работы | На месте работодателя (Пермь, ул. Куйбышева, 95Б) или удалённо — гибкий формат, удалёнка явно разрешена |
| Размер команды | Не указан явно; в JD упомянуто «сообщество 350+ React-разработчиков» в компании — крупная организация |
| Оформление (ТК РФ/ГПХ/самозанятость) | Не указано в вакансии |
| TL;DR | Junior-позиция React-разработчика в Т-Банке (Пермь, гибрид/удалёнка) — стек не совпадает с основным (React vs Vue), уровень занижен относительно фактического опыта кандидата, зарплата не раскрыта. |
**Vibe команды (качественный сигнал, не влияет на балл):**
Судя по формулировкам JD, явных сигналов «живой команды» (ownership, автономия, RFC/архитектурные обсуждения) в тексте нет — язык скорее корпоративный ("внедрять новые технологии и практики", "непрерывно обучаться"). Гибкость по формату работы прописана конкретно (офис или удалёнка — не просто слово "удалённо"), это плюс. Про менторство есть косвенный сигнал (упоминание платформы развития и поддержки роста), но без конкретики про code review/парное программирование — недостаточно данных в JD, стоит уточнить на собеседовании.
## B) Совпадение с CV
| Требование JD | Строки из cv.md |
|---|---|
| Опыт коммерческой фронтенд-разработки с JS от 1 года | «Ноябрь 2024 — настоящее время» (Здравсервис) + «Март 2022 — Декабрь 2022» (ТулГУ/НИЦ «БиоХимТех») — суммарно ~2.5+ года коммерческого frontend-опыта, порог превышен многократно |
| Высшее образование по технической специальности | «Тульский государственный университет (ТулГУ)... Информационная безопасность автоматизированных систем... Выпуск: 2024» — соответствует |
| Разработка клиентских и внутренних интерфейсов | «Здесь ЕКОМ» — внутренняя система управления заказами с нуля (Vue 3); «Здесь Аптека» — клиентское мобильное приложение (Flutter) — прямое совпадение по типу задач, но на другом стеке |
| Внедрение новых технологий и практик | Внедрила WebSocket-оповещения в РМК, Feature Branching в Git/GitLab, Playwright E2E, версионирование сборок — сильное совпадение по духу требования |
| Непрерывное обучение | Прошла курс Flutter «на лету», «Разработчик мобильных и веб-приложений» (Цифровая кафедра ТулГУ, 2024) |
| React (подразумевается названием роли и командой) | **Отсутствует** — весь frontend-опыт кандидата на Vue 3 (Composition API, Pinia, Vue Router); в cv.md React не упоминается |
**Пробелы:**
1. **React-опыт.** Формально не hard-blocker по тексту требований (заявлен только общий JS-опыт 1+ год, не конкретно React), но фактически команда работает на React — на практике это будет ключевым фактором на техническом собеседовании.
- Смежный опыт есть: TypeScript, компонентный подход, работа с реактивным состоянием (Pinia ~ по духу Redux/Zustand/Context), REST/WebSocket — переносимо, но требует адаптации.
- Портфолио-проекта на React нет.
- План закрытия: короткий pet-проект на React перед собеседованием + в сопроводительном явно провести параллели Vue → React (Composition API ~ React Hooks, Pinia ~ Context/Redux), чтобы показать, что переключение между component-based фреймворками — не риск.
2. **Уровень (Junior JD vs Middle кандидата).** Не блокер, но стратегический риск занижения оффера под junior-грейд.
- План: явно обозначить реальный опыт (2.5+ года, самостоятельный дизайн RBAC, ведение 3 продуктов параллельно, менторство коллеги с 11-летним стажем) и попросить пересмотр грейда/оплаты по итогам испытательного срока.
3. **Зарплата не раскрыта в вакансии** — критично уточнить на первом контакте до вложения времени в подготовку.
## C) Уровень и стратегия
1. **Уровень в JD:** Junior (порог входа — от 1 года коммерческого опыта с JS). **Естественный уровень кандидата** для архетипа Frontend: Middle (2.5+ года коммерческого опыта, самостоятельный дизайн RBAC-модели, ведение фронтенда продукта с нуля, менторство).
2. **План «продать middle без обмана»:** В сопроводительном и на собеседовании подчеркнуть: (а) дизайн RBAC-модели — редкая для junior/middle зона ответственности; (б) самостоятельное ведение фронтенда «Здесь ЕКОМ» с нуля; (в) внедрение процессов (Feature Branching, версионирование, менторство коллеги). Прямо сказать: «Готова начать в этой роли, но по опыту соответствую скорее Middle — предлагаю пересмотреть грейд/оплату после испытательного срока (2-3 месяца)».
3. **План «если понизят уровень»:** Junior-грейд с junior-зарплатой (по рынку ориентировочно 62 000–112 000 ₽) вероятно окажется ниже минимума кандидата (100 000 ₽ на руки). Принять предложение только если: (а) зарплата ≥100 000 ₽ на руки подтверждена прямо до оффера, ИЛИ (б) есть чёткий задокументированный план пересмотра грейда через 3-6 месяцев. Иначе — отклонить.
## D) Компенсация и спрос
| Показатель | Данные | Источник |
|---|---|---|
| Зарплата в вакансии | Не указана — «Достойную зарплату — обсудим ее на собеседовании» | JD (hh.ru) |
| Junior frontend (РФ, 2026, широкий диапазон) | ~62 000–112 000 ₽/мес (стартовый диапазон) | Рыночные обзоры 2026 (WebSearch) |
| Junior frontend (агрегированные данные hh.ru) | ~79 500–105 000 ₽/мес | hh.ru (WebSearch) |
| Регион Пермь vs крупные региональные центры | Пермь как рынок обычно ниже, чем Казань/Екатеринбург/Новосибирск (там медиана ~150 тыс. ₽ для frontend) | WebSearch, обзор 2026 |
| Т-Банк — отзывы о зарплате | Смешанные: «зарплата полностью белая, выше рынка по региону», но «медленный рост на линейных позициях» | dreamjob.ru / career.habr.com (агрег., WebSearch) |
| Конкуренция на junior-позициях | Высокая — 22-28 резюме на вакансию | WebSearch, обзор 2026 |
**Gross/Net:** не применимо — зарплата в вакансии вообще не раскрыта, оценить невозможно.
**Вывод:** без подтверждённой цифры и с учётом типичного junior-диапазона (62–112 тыс. ₽), велика вероятность, что предложение окажется **ниже** минимума кандидата (100 000 ₽ на руки), даже с учётом того, что Т-Банк по отзывам платит выше среднего по региону.
**Бенефиты:** ДМС со стоматологией, платформа профессионального развития («Т-Банк Upgrade»), компенсация питания/проезда в офисные дни, +3 доп. дня отпуска, менторская поддержка — стандартный для крупного банка пакет, выше среднего для junior-позиции в регионе.
**Оформление:** не указано в JD — уточнить; для АО «Т-Банк» как крупной публичной компании ожидаемо ТК РФ.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Добавить фразу про быстрое переключение между component-based фреймворками (Vue → React), не переписывая факты | Показывает готовность к стеку JD без выдумывания React-опыта |
| 2 | Навыки | React не упомянут | Не добавлять React в раздел навыков (его там нет и это было бы фабрикацией) — вместо этого в разделе «Быстро осваиваю» уже упомянуты смежные технологии, можно явно добавить «React» туда | Честно отражает реальный уровень, не нарушает Source-of-Truth правило |
| 3 | Опыт (ЕКОМ) | Акцент на Vue-специфике (Pinia, Vue Router) | Переформулировать буллеты через архитектурные паттерны (управление состоянием, компонентная архитектура, REST/WebSocket) вместо Vue-специфичных терминов | Легче читается рекрутером, ищущим React-навыки на уровне паттернов |
| 4 | RBAC-проект | Упомянут как ключевой | Оставить и усилить — это единственный сильный дифференциатор против других junior-кандидатов | Прямое конкурентное преимущество независимо от фреймворка |
| 5 | Формат работы | «Переезд: нет» | Явно подтвердить готовность к удалёнке в сопроводительном (в JD она разрешена) | Убирает риск того, что рекрутер по умолчанию считает вакансию офисной (Пермь) |
| 6 (hh.ru) | Резюме на hh.ru | — | В заголовке резюме на hh.ru рядом с Vue указать «готова к React» | Увеличивает проходимость по ключевым словам ATS/поиска рекрутера |
| 7 (hh.ru) | Сопроводительное письмо в отклике | — | В 2-3 предложениях: параллели Vue→React + RBAC-кейс + прямой вопрос про диапазон зарплаты | Закрывает главный открытый риск (зарплата) на входе |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Коммерческий опыт с JS/фронтенд с нуля | Разработка фронтенда «Здесь ЕКОМ» с нуля | Компании нужна была внутренняя система управления заказами/логистикой, готового решения не было | Спроектировать и реализовать фронтенд с нуля | Выбрала стек (Vue 3, Composition API, TS, Pinia), реализовала график курьеров, список заказов, RBAC | Логисты полностью самостоятельно управляют графиком, заменили ручные SQL-правки разработчиков | Поняла, что при отсутствии готовой архитектуры важно сразу закладывать разграничение доступа — иначе пришлось бы переделывать |
| 2 | Внедрение новых технологий и практик | Внедрение WebSocket-оповещений в legacy РМК | Не было видимости, сколько аптек онлайн, оповещения были не в реальном времени | Внедрить real-time слой без остановки legacy-системы | Реализовала WebSocket (WSS), статусы прочтения оповещений | Впервые видно, сколько из ~1200 аптек онлайн; половина читает оповещения в первые минуты | Убедилась, что инкрементальное внедрение в legacy безопаснее полного переписывания |
| 3 | Разработка клиентских интерфейсов | Диагностика и фикс бага «Избранное» в «Здесь Аптека» | Пользователи жаловались, что раздел не открывается | Найти причину и починить без регресса | Выяснила, что все товары грузились одним запросом; реализовала постраничную загрузку | Жалобы прекратились | Поняла важность профилирования перед добавлением фич — баг был про производительность, не про логику |
| 4 | Работа в команде/coordination с backend | Проектирование RBAC-модели в ЕКОМ | Нужно было разграничить доступ между отделами (логистика/заказы) | Спроектировать модель ролей и объяснить бэкенду | Использовала профильное ИБ-образование, спроектировала и защитила модель перед backend-командой | Модель принята и реализована, разграничение работает | Ключевой урок: техническое объяснение сложной модели нетехническим/другим специалистам — отдельный навык |
| 5 | Готовность работать в команде и делиться знаниями | Обучение коллеги с 11-летним стажем Git/Feature Branching | Команда работала без версионирования, фичи «зависали» | Внедрить Feature Branching и обучить команду | Ввела процесс в GitLab, лично объяснила коллеге с большим стажем | Команда перешла на стабильные еженедельные релизы | Осознала, что внедрение процесса без обучения людей не работает — техническое решение вторично |
| 6 | Обучаемость / быстрое освоение нового стека | Переход в проект на Flutter без предварительного опыта | Нужен был Flutter-разработчик, готового человека в команде не было | Пройти профильный курс и включиться в разработку | Прошла курс, исправила 20+ багов, портировала 2 приложения Android→iOS | Оба приложения успешно вышли на iOS | Подтверждает, что быстро осваивает новый фреймворк «в бою» — прямой аргумент против опасений про React |
**Рекомендуемый кейс для демонстрации:** RBAC-модель в «Здесь ЕКОМ» — сильнее любого junior-кандидата по глубине ответственности, независимо от фреймворка.
**Вопросы-ловушки:**
- «У вас нет опыта с React, весь стек — Vue. Как быстро вы адаптируетесь?» → Провести параллели (Composition API ~ Hooks, Pinia ~ Context/Redux), сослаться на опыт быстрого освоения Flutter «в бою».
- «Не будет ли вам скучно/некомфортно на junior-позиции с вашим опытом?» → Честно: «Готова начать здесь, но по опыту ближе к Middle — предлагаю ориентироваться на пересмотр через испытательный срок».
- «Почему рассматриваете вакансию в Перми, живя в Туле?» → Явно уточнить, что формат «офис или удалённо» даёт возможность работать из Тулы удалённо; переезд не рассматривается.
## G) Легитимность вакансии
**Tier: High Confidence**
- **Качество описания:** Текст JD связный, стандартный корпоративный формат крупного банка, конкретные (хоть и общие) требования и обязанности, реалистичный список бенефитов — нет признаков шаблонного/сгенерированного мошеннического текста.
- **Сигналы найма компании:** АО «Т-Банк» — крупный публичный банк/финтех с масштабной ИТ-функцией; по данным WebSearch активно набирает frontend/backend/mobile специалистов, отзывы сотрудников (dreamjob.ru, career.habr.com) подтверждают реальность найма и выплат зарплаты.
- **Проверка на повтор (data/scan-history.tsv):** Точного совпадения по этому ID вакансии не найдено. В истории сканирования есть другие свежие вакансии Т-Банка (Frontend React и Senior Frontend Angular, обе — Москва, добавлены 2026-07-06) — согласуется с паттерном крупной компании, публикующей много параллельных frontend-вакансий в разных городах; не является признаком подозрительного повторного постинга одной и той же позиции.
- **Свежесть:** Вакансия опубликована 6 июля 2026 — за день до оценки; явных признаков архивации/закрытия не обнаружено ни через прямой запрос страницы, ни в тексте (API hh.ru вернул 403, использован fallback WebFetch на страницу вакансии — сработал).
- **Рыночный контекст роли:** Junior frontend/React-роли — стандартный, массовый сегмент рынка (высокая конкуренция, 22-28 резюме/вакансия) — ничего аномального.
**Примечание по верификации:** прямой запрос к `api.hh.ru/vacancies/119867578` вернул HTTP 403 (вероятно, антибот-защита); использован предусмотренный fallback — WebFetch на исходный URL вакансии, который успешно вернул полный текст, статус и метаданные.
---
## Извлечённые ключевые слова
React, JavaScript, TypeScript, Frontend-разработчик, Junior, Node.js, клиентские интерфейсы, внутренние интерфейсы, коммерческая разработка, высшее техническое образование, Т-Банк, банк, финтех, Пермь, удалённая работа, гибридный формат, ДМС, стоматология, обучение и развитие, компенсация питания, компенсация проезда, менторство, непрерывное обучение
@@ -0,0 +1,124 @@
# Оценка: Неизвестный работодатель (через Runello-бот) — Fullstack React Developer
**Дата:** 2026-07-07
**Архетип:** Fullstack Developer (Vue + Node.js) — ближайший из профиля кандидата (adjacent fit); фактический стек вакансии — React + Python/LLM, не совпадает
**Балл:** 1.0/5
**Legitimacy:** Suspicious
**URL:** https://t.me/s/runello_rus_javascript/1445
**PDF:** not generated (балл ниже порога 3.0)
---
## Machine Summary
```yaml
company: "Unknown (Runello aggregator bot)"
role: "Fullstack React Developer"
score: 1.0
legitimacy_tier: "Suspicious"
archetype: "Fullstack Developer (Vue + Node.js) - adjacent, poor fit"
final_decision: "Skip"
hard_stops:
- "Работодатель не назван ни в посте, ни в Runello-боте — невозможно проверить компанию"
- "Стек не совпадает: React (не Vue) + Python/LLM/LangChain/RAG/BM25/reranking — у кандидата нет опыта ни в одном из этих направлений"
- "Отклик возможен только через сторонний Runello-бот — нет прямого контакта с работодателем"
soft_gaps:
- "Зарплата, локация (кроме тега #remote #global), оформление и требования не раскрыты"
top_strengths: []
risk_level: "High"
confidence: "Low"
next_action: "Не откликаться; при интересе к похожим ролям искать прямые публикации с названием компании"
```
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (профильный) | Fullstack Developer (Vue + Node.js) — ближайший, но условный: JD требует React + Python/LLM-стек, у кандидата — Vue + лёгкий Node/Express |
| Domain | Неизвестен — компания не названа. Стек намекает на LLM/поисковые продукты (LangChain, RAG, BM25, reranking) |
| Function | Build (предположительно, судя по стеку) |
| Seniority | Middle / Middle+ (указано в теге поста) |
| Формат работы | Указаны только теги `#remote #global` — детали (страна, часовой пояс, требования к присутствию) не раскрыты |
| Размер команды | Не указан |
| Оформление | Не указано (ТК РФ / ГПХ / самозанятость — нет данных) |
| TL;DR | Пост в Telegram-агрегаторе Runello без названия компании, зарплаты и требований — только тег стека (React, Python, LLM, LangChain, RAG, BM25, reranking, PostgreSQL) и уровень Middle/Middle+; отклик только через встроенного бота |
**Важное уточнение по источнику:** Подсказка задачи ("JavaScript Job Offers — Telegram") — это название канала, не работодателя. После полного WebFetch поста (`t.me/s/runello_rus_javascript/1445`) реальное название компании **не найдено ни в тексте поста, ни через WebSearch**. Это отличается от соседних постов в том же скане (`data/scan-history.tsv`), где Runello последовательно указывает конкретных работодателей (ЗАО КонсультантПлюс, TOOLUM, IT Devision, ООО Ломбард Пионер и др.) — то есть агрегатор технически способен публиковать название компании, но для этого конкретного поста оно отсутствует. Полные условия скрыты за кнопкой «Откликнуться через Runello-бот», недоступной без отклика (передачи резюме третьей стороне).
**Vibe команды:** Недостаточно данных в JD для оценки — сам пост не содержит текста о культуре, процессах или команде, только тег стека и уровня.
## B) Совпадение с CV
**Оценка ограничена: содержательного JD по существу нет** (только тег стека), но даже по этому минимуму совпадение слабое:
| Требование JD (тег стека) | Совпадение с CV |
|---|---|
| React | ❌ Не закрыто. Кандидат работает на Vue 3 (Composition API, Pinia), React в CV не упомянут |
| Python | ❌ Не закрыто. В CV — Node.js/Express (ознакомительный уровень), Python отсутствует |
| LLM / LangChain / RAG / BM25 / reranking | ❌ Не закрыто. В CV нет опыта с LLM-интеграциями, векторным поиском или ранжированием |
| PostgreSQL | ❌ Не закрыто напрямую. В CV — MongoDB (хакатон), PostgreSQL не упомянут |
| Middle/Middle+ | ✅ Уровень кандидата (Middle) формально совпадает |
**Пробелы:**
1. Это hard blocker или nice-to-have? — React/Python/LLM-стек — hard blocker: полностью другой технологический профиль (LLM-инженерия/бэкенд на Python), не смежный с Vue/Flutter-профилем кандидата.
2. Смежный опыт? — Минимальный: WebSocket-опыт (РМК, ЕКОМ) переносим на реалтайм-фичи, но не закрывает отсутствие Python/LLM-экспертизы.
3. Портфолио-проект, закрывающий пробел? — Нет; кандидат не заявляла LLM/RAG-проектов.
4. План закрытия — нецелесообразен для этой конкретной вакансии: разрыв в стеке слишком велик для позиционирования без искажения фактов.
## C) Уровень и стратегия
1. **Уровень в JD:** Middle/Middle+ формально совпадает с уровнем кандидата, но по фактическому стеку (React + Python/LLM) кандидат не является ни junior, ни middle в этом направлении — там просто нет опыта.
2. **План "продать senior без обмана":** Неприменим — стек не совпадает, попытка продать Vue/Flutter-опыт как эквивалент React/Python/LLM была бы искажением, что запрещено правилами (`modes/ru/_shared.md`, п. «НИКОГДА выдумывать опыт»).
3. **План "если понизят уровень":** Неприменим по той же причине — блокер не в уровне, а в направлении стека.
## D) Компенсация и спрос
WebSearch не проводился для компенсации — без названия компании и содержательного описания роли нет базы для сопоставления зарплаты. Зарплата, gross/net, бенефиты и оформление в посте не указаны. Общий рыночный контекст: спрос на Fullstack-разработчиков с LLM/RAG-стеком (LangChain, реранкинг, векторный поиск) в 2026 году растёт на рынке РФ, но это не меняет вывод — кандидат не закрывает этот стек.
## E) План персонализации
Неприменимо — балл 1.0/5 значительно ниже порога 4.0 (Ethical Use, `AGENTS.md`), рекомендация — не откликаться. Персонализация CV под эту вакансию не имеет смысла при полном рассогласовании стека и отсутствии названия компании.
## F) План собеседований
Неприменимо по той же причине, что и в блоке E: подготовка к интервью для неизвестного работодателя с несовпадающим стеком не оправдана временными затратами.
## G) Легитимность вакансии (Posting Legitimacy)
**Tier: Suspicious**
Сигналы:
- **Качество описания:** Крайне низкое — пост содержит только тег стека и уровня (`#javascript #react #middle #remote #global`), без единого предложения о задачах, требованиях, компании, зарплате или условиях. Это существенно ниже типичной терсности Telegram-постов того же канала: соседние посты в том же скане (`data/scan-history.tsv`) называют конкретных работодателей (ЗАО КонсультантПлюс, TOOLUM, IT Devision и др.), а этот — нет.
- **Наём компании через WebSearch:** Не подтверждён — WebSearch по фрагменту стека (React, LangChain, RAG, BM25, reranking, PostgreSQL) не выявил связи с конкретным работодателем; агрегатор Runello сам не раскрывает имя компании в этом посте.
- **Репост:** Проверка `data/scan-history.tsv` — URL `t.me/s/runello_rus_javascript/1445` встречается один раз (эта сессия скана), признаков многократного репоста не найдено; недостаточно истории для вывода.
- **Рыночный контекст роли:** Стек (React + Python/LLM/RAG) типичен для реальных вакансий 2026 года, сам факт стека не подозрителен — подозрителен именно способ подачи (анонимный работодатель + отклик исключительно через бота-агрегатора, который забирает резюме до раскрытия компании).
- **Свежесть:** Не проверялась (batch-режим, `check-liveness.mjs` не запускался для Telegram-постов) — свежесть неподтверждена.
**Итог:** Основной красный флаг — не терсность сама по себе (это норма для Telegram), а полное отсутствие названия работодателя в сочетании с обязательным откликом через сторонний бот, который аккумулирует резюме до того, как кандидат узнает, кому именно он отправляет данные. Это паттерн, типичный либо для lead-gen/сбора резюме рекрутинговым агрегатором, либо для непрозрачного посредника. Рекомендация: не откликаться через бота без предварительного раскрытия работодателя.
---
## Извлечённые ключевые слова
1. Fullstack Developer
2. React
3. Python
4. LLM
5. LangChain
6. RAG (Retrieval-Augmented Generation)
7. BM25
8. Reranking
9. PostgreSQL
10. Middle / Middle+
11. Remote
12. Global
13. JavaScript
14. Vector search
15. NLP-адъяцентный стек
16. Full-stack development
17. API integration
18. Backend (Python)
19. Frontend (React)
20. Job aggregator bot (Runello)
+129
View File
@@ -0,0 +1,129 @@
# Оценка: ЗАО КонсультантПлюс — Веб разработчик Vue/Js
**Дата:** 2026-07-07
**Архетип:** Frontend Developer (Vue.js) — primary
**Балл:** 3.0/5
**Legitimacy:** Proceed with Caution
**URL:** https://t.me/s/runello_rus_javascript/1448
**PDF:** output/cv-candidate-konsultantplyus-2026-07-07.pdf (генерируется, балл на пороге 3.0)
---
## ⚠️ Важное предупреждение по источнику
Вакансия найдена в дайджест-канале Telegram (`t.me/s/runello_rus_javascript/1448`), агрегирующем несколько офферов через бота Runello. Прямой текст поста по данной позиции крайне лаконичен — доступны только:
- Название роли: **«Веб разработчик Vue/Js»**
- Компания: **ЗАО КонсультантПлюс**
- Одна строка описания компании: *«"Консультант Плюс" — разработчик справочной правовой системы с собственными алгоритмами быстрого поиска и анализа информации»*
**Не указано в посте:** стек (кроме "Vue/Js" в названии), грейд/уровень, зарплата (gross/net), локация, формат работы (удалённо/гибрид/офис), оформление (ТК РФ/ГПХ), требования, бенефиты. Оценка ниже сделана консервативно там, где данных нет — вместо того чтобы их придумывать.
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Frontend Developer (Vue.js) — прямое совпадение с primary-архетипом кандидата |
| Domain | Frontend (справочно-правовая система, enterprise) |
| Function | Build |
| Seniority | Не указано в посте |
| Формат работы | Не указано (требует уточнения) |
| Размер команды | Не указано |
| Оформление | Не указано |
| TL;DR | Frontend-вакансия на Vue.js у крупного, давно существующего игрока рынка (КонсультантПлюс), но сам пост в дайджест-канале не раскрывает почти никаких деталей — нужен запрос полного описания перед решением. |
**Vibe команды (качественный сигнал, не входит в числовую оценку):** В самом тексте JD сигналов о культуре нет ("недостаточно данных в JD, стоит уточнить на собеседовании"). Из внешних отзывов сотрудников (Block D, не из текста вакансии) встречаются упоминания «дружного адекватного коллектива», «понимающего руководства» и «удалённого формата работы» в части отделов — но это не подтверждённый факт для конкретно этой команды/роли, а общий фон по компании.
## B) Совпадение с CV
Точное сопоставление требование→CV невозможно — JD не перечисляет требования. Ниже — сопоставление кандидата с **обычным профилем роли "Vue.js Web Developer"**, исходя только из названия позиции, помеченное как инференс:
| Типичное требование для роли (инференс из названия) | Строка CV |
|---|---|
| Коммерческий опыт Vue 3 / Composition API | «Frontend-разработчик с коммерческим опытом на Vue 3 (Composition API, TypeScript, Pinia)» — cv.md |
| TypeScript | «Vue 3, Composition API, TypeScript, Pinia» — «Здесь ЕКОМ», cv.md |
| Работа с REST/WebSocket | «WebSocket (WSS)» — ЕКОМ и РМК, cv.md |
| Компонентная архитектура / state management | Pinia, Vue Router, shadcn/shadcn-vue, TanStack Table — cv.md |
| Тестирование | Vitest (unit), Storybook, Playwright (E2E на РМК) — cv.md |
| Работа с legacy-кодом | «РМК» — legacy-проект, ~6 месяцев, багфиксинг, реактивность — cv.md |
**Пробелы (из-за отсутствия JD-текста, не из-за реального несоответствия):**
1. Неизвестен требуемый грейд — hard blocker/nice-to-have не определить.
2. Неизвестен домен-специфичный опыт (юридические справочные системы, крупный enterprise-legacy) — смежный опыт есть (крупная enterprise-система «Здесь ЕКОМ» на ~1200 аптек), но degree of overlap не проверить без полного JD.
3. Неизвестна локация/формат — **критично** для кандидата (см. Location Policy в `_profile.md`): нужно уточнить до подачи отклика, иначе оценка может быть пересмотрена вплоть до 1.0, если окажется офис вне Тулы без удалёнки.
**Стратегия закрытия:** запросить полный текст вакансии у бота Runello / рекрутера КонсультантПлюс до принятия решения об отклике.
## C) Уровень и стратегия
1. **Уровень в JD:** не указан. **Естественный уровень кандидата:** Middle (Frontend Vue.js, ~1.5+ года коммерческого Vue 3 опыта — см. `config/profile.yml`, primary archetype).
2. **План "продать Middle без обмана":** акцент на то, что фронтенд ЕКОМ разработан с нуля силами кандидата (не поддержка чужого кода) — «Frontend разработан с нуля» с полным стеком (Vue 3, Composition API, TS, Pinia, Vue Router, Vite, Vitest, Storybook, WebSocket) плюс самостоятельное проектирование RBAC — редкий для Middle кругозор.
3. **План "если понизят уровень":** принять Junior+/Middle- только если компенсация соответствует рынку регионального remote-специалиста (см. Block D); договориться о пересмотре грейда через 6 месяцев по чётким критериям (закрытые фичи, самостоятельные архитектурные решения).
## D) Компенсация и спрос
**Данные из JD:** отсутствуют — зарплата, gross/net, бенефиты не указаны в посте.
**Рыночные данные (WebSearch, РФ, 2026):**
| Источник | Данные |
|---|---|
| Общий рынок Middle Frontend (РФ) | 140 000–420 000 ₽ (медиана ~210 000 ₽) — по агрегированным данным зарплатных обзоров |
| Middle Vue.js (сегмент рынка выше среднего для frontend) | ориентировочно 290 000–380 000 ₽ по отдельным агрегаторам — данные смещены в сторону Москвы/крупных городов, для региональной удалённой позиции ожидать заметно ниже верхней границы |
| КонсультантПлюс — отзывы о зарплате (hh.ru/Dream Job/SuperJob, агрегированно) | Разброс мнений: часть отзывов — «зарплата выше рынка», часть — «ниже среднего»; средняя оценка оплаты труда сотрудниками ~1.8/5 (по малой выборке ~8 оценок) — сигнал неоднозначный, не окончательный |
| КонсультантПлюс — прочие условия (по отзывам) | ДМС с первых дней, квартальные премии, индексация зарплаты, официальное оформление по ТК РФ, в части отделов — удалённый формат работы |
**Gross vs Net:** не указано в JD — обязательно уточнить при первом контакте. Формула ориентировочного пересчёта: `net ≈ gross × 0.87`.
**Итог по Block D:** Цель кандидата — 100 000–120 000+ ₽/мес на руки (см. `config/profile.yml`). Судя по общему рыночному диапазону Middle Vue.js и смешанным отзывам о зарплате в КонсультантПлюс, попадание в целевой диапазон вероятно, но не гарантировано без конкретной цифры от работодателя. Официальное оформление по ТК РФ (по отзывам) — плюс к стабильности (+0.3 по внутренней шкале).
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Общее описание Vue3+Flutter dual-track | Подчеркнуть «фронтенд с нуля» (ЕКОМ) и RBAC-дизайн в первой строке | Роль — чистый Vue.js frontend, RBAC — уникальный дифференциатор |
| 2 | Опыт | Порядок разделов ЕКОМ → РМК → Аптека | Поднять ЕКОМ выше как основной релевантный кейс | Наибольшее совпадение по стеку (Vue 3, Pinia, TS) |
| 3 | Навыки | Flutter/Mobile в верхней части списка | Переместить Mobile-навыки ниже Frontend-блока | Роль не требует mobile |
| 4 | Заголовок резюме | "Frontend-разработчик (Vue 3 + Flutter)..." | "Frontend-разработчик (Vue 3, TypeScript, Pinia)..." для этой заявки | Точнее соответствует заголовку роли |
| 5 | Cover-письмо | — | Явно спросить формат работы (удалённо/гибрид/офис) и локацию команды в первом абзаце | Критично для location policy кандидата |
**Топ для LinkedIn/hh.ru:** заголовок профиля — "Vue.js / Frontend Developer (Middle)"; вывести RBAC-кейс и WebSocket real-time алерты в разделе "О себе".
## F) План собеседований
| # | Требование JD (инференс) | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Компонентная архитектура Vue 3 | ЕКОМ с нуля | Внутренняя система логистики без фронтенда | Спроектировать и построить UI с нуля | Vue 3 + Composition API + Pinia + TanStack Table | Логисты полностью самостоятельно управляют графиком, отдел работы с клиентами и техподдержка используют интерфейс | Осознала важность вовлечения будущих пользователей (логистов) в проектирование интерфейса на раннем этапе |
| 2 | Работа с правами доступа / ролевыми моделями | RBAC-дизайн в ЕКОМ | Логистика и другие отделы видели чужие заказы | Спроектировать ролевую модель авторизации | Разработала RBAC с разграничением по отделам, объяснила бэкенд-команде | Опыт в ИБ дал нестандартный для frontend взгляд на модели доступа — теперь объясняю это явно на собеседованиях |
| 3 | Работа с real-time данными (WebSocket) | РМК real-time оповещения | Не было видимости, сколько аптек онлайн | Внедрить WebSocket-оповещения | Реализовала WSS-канал с индикацией прочтения | Задержка почти нулевая, ~половина аптек читает в первые минуты — научилась мыслить о UX уведомлений, а не только о транспорте данных |
| 4 | Legacy-код и рефакторинг | Баг с замыканием в РМК | Клавиатура переставала работать после серии действий | Найти причину в глобальном классе биндинга клавиш | Исправила утечку через реактивные переменные | Стала внимательнее относиться к жизненному циклу реактивности вне компонентов Vue |
| 5 | Тестирование | Внедрение Playwright E2E на РМК | Не было автотестов на legacy-проекте | Внедрить E2E-покрытие | Playwright тесты, позитивные и негативные сценарии | Первый опыт внедрения тестовой культуры в команде без существующей практики |
| 6 | Процессная зрелость /自主ность | Feature Branching + менторство | Частые «зависшие» фичи, конфликты в git | Внедрить Git Flow, обучить коллегу с 11-летним стажем | Команда перешла на стабильные еженедельные релизы | Менторство сеньорного коллеги научило объяснять процесс, а не просто "делать по-своему" |
**Рекомендуемый кейс для показа:** «Здесь ЕКОМ» — фронтенд с нуля + RBAC-дизайн (наиболее прямое совпадение со стеком роли).
**Вопросы-ловушки:**
- *«Почему решили уйти из Здравсервис?»* — не уходить в негатив; фокус на росте: «Хочу сфокусироваться на одном продукте на Vue.js вместо параллельного ведения трёх продуктов (веб + mobile + legacy)».
- *«Почему КонсультантПлюс?»* — честно: «Крупный, стабильный продукт с историей на рынке; хочу подтвердить это на собеседовании, включая формат работы и стек».
## G) Посылка — Легитимность вакансии (Block G)
**Уровень доверия: Proceed with Caution**
| Сигнал | Оценка |
|---|---|
| Качество описания | Низкое — сам пост содержит только заголовок роли + одну строку о компании, без стека/требований/условий |
| Репутация/сигналы найма компании | КонсультантПлюс — крупный, давно существующий разработчик СПС «КонсультантПлюс»; активный профиль работодателя на hh.ru (10+ вакансий), карточка на Хабр Карьере, десятки отзывов сотрудников на нескольких агрегаторах (Dream Job, SuperJob, Elsolo) — сильный сигнал реального, действующего работодателя |
| Проверка на повтор (scan-history.tsv) | Не найдено повторов — единичное появление этого URL в истории сканирования |
| Рыночный контекст роли | Спрос на Vue.js Middle стабильный/умеренный (см. Block D) — правдоподобная, рыночная роль |
| Свежесть | Не подтверждена напрямую (batch-режим, без Playwright); пост в канале-дайджесте, счётчик просмотров (268) не аномален |
**Вывод:** Компания легитимна и стабильна вне всяких сомнений, но конкретный пост слишком скуден для полной проверки условий — стандартное применение default-правила при недостатке сигналов.
---
## Извлечённые ключевые слова (ATS)
Vue.js, Vue 3, Composition API, TypeScript, Pinia, Vue Router, JavaScript, Frontend-разработчик, Веб-разработчик, REST API, WebSocket, Vite, Vitest, Storybook, Tailwind CSS, RBAC, Git, GitLab, CI/CD, Agile, UI/UX
+135
View File
@@ -0,0 +1,135 @@
# Оценка: TOOLUM — Fullstack разработчик Next.js
**Дата:** 2026-07-07
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent fit; фактический стек роли (Next.js/React) смещает совпадение ещё дальше от основного архетипа кандидата (Frontend Vue.js)
**Балл:** 2.3/5
**Legitimacy:** Proceed with Caution
**URL:** https://t.me/s/runello_rus_javascript/1449
**PDF:** not generated (порог 3.0 не достигнут)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Fullstack Developer (Vue + Node.js) — adjacent (ближайший из архетипов кандидата; сам стек роли — Next.js/React, не Vue) |
| Domain | Frontend / Fullstack, продукт — "no-code"-конструктор приложений (по описанию компании: "рисуем Чертёж — карта продукта: экраны, архитектура, модель данных — и доводим до готового приложения") |
| Function | Build (разработка продукта) |
| Seniority | Не указан в посте (заголовок без грейда — не "Middle"/"Senior") |
| Формат работы | Не указан (нет данных об удалёнке/гибриде/офисе) |
| Размер команды | Не указан |
| Оформление | Не указано (ТК РФ / ГПХ / самозанятость — нет данных) |
| Компенсация | Не указана |
| Локация | Не указана |
**TL;DR:** Вакансия Fullstack-разработчика на Next.js в маленьком no-code/AI-стартапе TOOLUM — пост в Telegram-канале крайне короткий (только название роли + маркетинговое описание продукта), без единого требования, зарплаты, локации или формата работы; вся детализация скрыта за ботом Runello ("Подробнее"/"Откликнуться"), недоступным для верификации без интерактивного Telegram-клиента.
## B) Совпадение с CV
Пост не содержит списка технических требований — таблица построена по единственному явному сигналу заголовка ("Next.js") и общему описанию продукта TOOLUM.
| Требование JD (из заголовка/описания) | Совпадение с CV |
|---|---|
| Fullstack-разработка | `cv.md`: опыт fullstack на хакатоне TulaHack.Digital (Vue 3 + Express + Node.js + MongoDB) и заказной разработке в ТулГУ (Vue.js фронтенд + Node.js backend) — оба эпизода учебные/проектные, не продакшн |
| Next.js (React-based framework) | **Нет прямого совпадения.** CV кандидата не содержит React/Next.js/JSX — весь продакшн-опыт на Vue 3 (Composition API, Pinia, Vue Router) |
| JS/TS общие навыки | `cv.md`: "JavaScript, TypeScript" — раздел "Языки программирования"; сильное совпадение на уровне языка, независимо от фреймворка |
| Компонентная архитектура / SPA | `cv.md`: Vue 3 Composition API, shadcn/shadcn-vue, TanStack Table — компонентное мышление переносимо на React/Next.js, но требует освоения JSX и React hooks/паттернов состояния |
| Node.js/backend-часть fullstack | `cv.md` раздел "Backend (ознакомительный уровень)": Node.js, Express, MongoDB — заявлен явно как ознакомительный уровень, не продакшн |
| Тестирование | `cv.md`: Vitest, Storybook, Playwright E2E — тестовые практики переносимы на Jest/RTL/Playwright в React-стеке |
**Пробелы:**
1. **Next.js/React — hard blocker или nice-to-have?** Учитывая, что роль называется именно "Fullstack разработчик **Next.js**" (не общий JS/TS), это скорее всего hard requirement, а не nice-to-have — заголовок не оставляет альтернативы стеку.
2. **Есть ли смежный опыт?** Да, частично: JS/TS core, компонентный подход, SPA-архитектура, работа с REST/WebSocket, тестирование — всё переносимо. React-специфика (JSX, hooks, Next.js routing/SSR/App Router) — нет прямого опыта.
3. **Портфолио-проект, закрывающий пробел?** Нет публичного портфолио (см. `modes/_profile.md`: "No live public demo... do not fabricate one").
4. **План закрытия:** В сопроводительном/на созвоне явно обозначить: "продакшн-опыт на Vue 3 (аналог современного React по парадигме компонентов и реактивности), синтаксис Next.js осваивается быстро при сильных JS/TS-фундаментах" — но **не переоценивать** готовность к SSR/App Router специфике Next.js без реального опыта.
## C) Уровень и стратегия
1. **Уровень в JD:** не указан. **Естественный уровень кандидата** для архетипа Fullstack (Vue+Node) — Middle, но для *этого конкретного* стека (Next.js/React) кандидат по факту ближе к Junior+/Middle-, т.к. нет продакшн-опыта на самом фреймворке.
2. **План "продать senior без обмана":** Здесь неприменим — кандидат не может закрыть React/Next.js-пробел риторикой. Честная позиция: "сильный Middle на Vue 3 fullstack, осваивающий React/Next.js" — не позиционировать себя как готового Middle Next.js-разработчика без верификации на собеседовании.
3. **План "если понизят уровень":** Если компания предложит грейд ниже с планом обучения/онбординга на Next.js — рассмотреть только при соответствии compensation target (100-120k+ ₽/мес на руки) и подтверждённой удалёнке/офисе в Туле.
## D) Компенсация и спрос
Пост TOOLUM не содержит суммы компенсации — детали скрыты за ботом Runello, недоступным через WebFetch.
**Рыночный контекст (WebSearch, RU market, Middle Fullstack JS/TS, 2026):**
| Источник | Данные |
|---|---|
| Хабр Карьера | Middle Fullstack-разработчик — median ~175 000 ₽/мес (gross, по всем стекам) |
| Общий рынок (агрегаторы) | Middle JS/TS fullstack (Node.js + React/Vue) — 170 000–190 000 ₽/мес; общий медианный fullstack по РФ вырос до ~230 000 ₽/мес в 2026 |
| Примеры вакансий Next.js/React fullstack (Москва, hh.ru) | Диапазон 130 000–290 000 ₽/мес gross в зависимости от стека/грейда/локации (Python+React комбинации оплачиваются выше классического Node.js-стека) |
Без указанной цифры в самой вакансии TOOLUM невозможно сравнить с целевым диапазоном кандидата (100 000–120 000+ ₽/мес **на руки**, `config/profile.yml`). Учитывая, что рынок для Middle Next.js-fullstack в Москве стартует от ~130 000 ₽ gross (≈113 000 ₽ на руки при НДФЛ 13%), диапазон в принципе достижим — **но это неподтверждено для этой конкретной вакансии.**
**Gross vs Net:** не указано в посте — уточнить обязательно перед откликом.
**Оформление (ТК РФ / ГПХ / самозанятость):** не указано.
## E) План персонализации
Учитывая низкий балл (2.3/5, ниже порога PDF 3.0), детальный план персонализации CV **не рекомендуется на данном этапе**. Ключевые точки, если кандидат всё же решит откликнуться:
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Ведёт с Vue 3 + Flutter | Добавить строку "быстро осваиваю новые JS-фреймворки (React/Next.js) благодаря сильным TS/архитектурным фундаментам" | JD требует именно Next.js — нужно явно снять вопрос "почему у неё нет React" |
| 2 | Skills | React/Next.js отсутствует | НЕ добавлять React/Next.js в раздел "Навыки" — раздел "Быстро осваиваю" уже покрывает Nuxt/GraphQL, можно расширить на "React/Next.js (в процессе изучения)" **только если это правда** | Правило "keywords переформулируются, никогда не выдумываются" — недопустимо приписывать несуществующий опыт |
| 3 | Проекты | Fullstack на Vue+Node (хакатон, ТулГУ) | Подчеркнуть fullstack-эпизоды (хакатон + ТулГУ) как доказательство способности работать end-to-end | Закрывает "fullstack" часть роли, даже при разнице фреймворка |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Fullstack-разработка end-to-end | Хакатон TulaHack.Digital — "Книга рецептов" | Хакатон, ограниченное время | Собрать fullstack MVP (Vue 3 + Express + MongoDB) | Спроектировала фронтенд и backend-часть, интеграцию API | Работающий прототип с фильтрацией по ингредиентам и подсчётом калорий | Ограниченный временем проект показал способность быстро закрывать fullstack-задачи целиком, без разделения на роли |
| 2 | Компонентная архитектура / переносимость на React | ЕКОМ — фронтенд с нуля на Vue 3 | Новый внутренний продукт без готовой архитектуры | Спроектировать компонентную структуру, роутинг, state management (Pinia) | Реализовала архитектуру с нуля: Composition API, Pinia, Vue Router, TanStack Table | Продукт используется 4 отделами (логистика, клиентский сервис, техподдержка, разработка) | Опыт проектирования state management и компонентной структуры переносим на Redux/Zustand + Next.js App Router, но требует явного признания, что это перенос навыка, а не готовый опыт |
| 3 | Backend-часть fullstack (Node.js) | ТулГУ — заказная разработка для НИЦ "БиоХимТех" | Заказная разработка ПО для контроля загрязнений | Реализовать фронтенд на Vue.js + работу с серверной частью на Node.js | Участвовала в связке фронт+бэк на реальном заказном проекте | Первый опыт работы на границе фронт/бэк, заложивший интерес к fullstack | Осознала, что фронтенд — основная зона комфорта, backend — зона роста; сейчас целенаправленно берёт fullstack-задачи, чтобы закрыть разрыв |
| 4 | Быстрое обучение новым технологиям | Flutter — с нуля, без предыдущего мобильного опыта | Нужно было закрыть мобильное направление в команде из 4 человек | Прошла профильный курс по Flutter, взяла на себя мобильные задачи | Исправила 20+ багов, реализовала постраничную загрузку, портировала Android→iOS | Два приложения стабилизированы и адаптированы под iOS | Прямое доказательство способности быстро выйти на продуктивность в новом для себя фреймворке (Flutter/Dart) — прямая аналогия с задачей "выучить Next.js" |
**Рекомендуемый кейс:** ЕКОМ (архитектура с нуля + RBAC) — показывает способность проектировать fullstack-продукт целиком, даже если презентовать через призму "перенесу этот подход на Next.js".
**Вопросы-ловушки:**
- *"Почему у вас нет опыта с React/Next.js?"* → "Мой продакшн-стек — Vue 3, у него много общих концепций с React (компонентная модель, реактивность, хуки/composables). Быстро осваиваю новые фреймворки — так было с Flutter, где за короткое время дошла до продакшн-релизов на двух платформах."
- *"Почему заинтересовались именно TOOLUM?"* → По открытому описанию поста сложно ответить содержательно — рекомендуется **уточнить у рекрутёра детали продукта и стека до того, как отвечать на этот вопрос предметно.**
## G) Легитимность объявления (Posting Legitimacy)
**Итоговый тир: Proceed with Caution**
| Сигнал | Оценка |
|---|---|
| Качество описания | Низкое — пост состоит из названия роли + одного абзаца маркетингового описания продукта ("рисуем Чертёж..."). Нет требований, обязанностей, зарплаты, локации, формата работы. Детали скрыты за Telegram-ботом Runello (`RunelloBot`), недоступным для верификации через WebFetch (бот-мини-апп не отдаёт содержимое) |
| Сигналы найма компании (WebSearch) | TOOLUM не найдена в открытых источниках как работодатель на hh.ru или в отзывах о компаниях — минимальный публичный след. Это типично для очень раннего стартапа, но само по себе снижает уверенность в проверке репутации |
| Проверка на повторные публикации (`data/scan-history.tsv`) | Та же вакансия (TOOLUM, "Fullstack разработчик Next.js") встречается в истории сканирования **дважды за 2026-07-07**: `runello_rus_javascript/1449` и `runello_rus_webdevelopment/4730`. Это одновременная кросс-публикация в 2 Telegram-канала через один и тот же бот-канал распространения (Runello) в один день — не признак "протухшей"/долго висящей вакансии, скорее стандартная практика рекрутинг-бота вести рассылку по нескольким каналам одновременно |
| Рыночный контекст роли | Роль (Middle Fullstack Next.js) реалистична и востребована на рынке — это не отменяет отсутствия деталей в конкретном посте |
| Свежесть | Пост от 2026-07-07 (сегодня) — свежий, "unverified" сверх этого невозможно, т.к. полная карточка вакансии находится за ботом |
**Итог:** Нет явных признаков мошенничества (нет предоплаты, запроса персональных данных/документов до собеседования, нереалистичных обещаний дохода) — но и предоставленной информации недостаточно для уверенной оценки. Пост — по сути тизер, оформленный для перехода в бот, что типично для Telegram-рекрутинга, но затрудняет полноценную проверку до отклика.
---
## Vibe команды (качественный сигнал, не входит в числовую оценку)
Судя по формулировкам JD, единственный доступный текст — маркетинговое описание продукта, а не описание команды или процессов: "Большинство «no-code» решений обещает магию. Мы не про магию. Мы рисуем Чертёж..." Это скорее продуктовый пресс-релиз, чем сигнал о культуре инженерной команды.
**Недостаточно данных в JD** по всем 4 осям (ownership/автономия, бюрократия, менторство/рост, гибкость графика) — стоит уточнить на собеседовании, а не выдумывать позитивный вайб. Единственный косвенный сигнал — позиционирование продукта как "AI/no-code инструмент" может намекать на молодую, продуктово-ориентированную команду, но это инференс, не факт.
---
## Извлечённые ключевые слова (ATS)
Next.js, Fullstack, JavaScript, TypeScript, React, Node.js, SPA, компонентная архитектура, no-code, AI-продукт, продуктовая разработка, REST API, фронтенд-разработка, backend-разработка, архитектура данных, UI/UX, git, CI/CD, Vue.js (переносимый навык), тестирование (Vitest/Jest-эквивалент), state management
---
## Рекомендация
**Балл 2.3/5 — ниже порога 4.0 (Ethical Use, AGENTS.md/CLAUDE.md).** Настоятельно рекомендуется **не откликаться** без дополнительной информации. Основные причины:
1. Стек роли (Next.js/React) — hard-требование, не покрытое CV кандидата (только Vue 3 в продакшне).
2. Архетип "Fullstack (Vue+Node)" сам по себе adjacent, а не primary/secondary — это уже вторичный приоритет по `config/profile.yml`.
3. Отсутствуют критичные данные: зарплата, локация, формат работы (удалёнка/офис) — при жёстком ограничении кандидата "переезд/командировки — нет" это блокирующий вопрос, требующий прямого уточнения у рекрутёра **до** решения об отклике.
4. Компания TOOLUM не имеет публичного следа для верификации репутации.
Если кандидат всё же заинтересована (например, ради опыта в AI/no-code продукте), первый шаг — написать в Runello-бот с прямым вопросом о зарплатной вилке, формате работы (удалённо/офис, обязательна ли Москва) и стек-требованиях, **прежде** чем инвестировать время в подготовку персонализированного CV.
+120
View File
@@ -0,0 +1,120 @@
# Оценка: ООО «Ломбард Пионер» — Middle+ FullStack разработчик
**Дата:** 2026-07-07
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent fit
**Балл:** 2.7/5
**URL:** https://t.me/s/runello_rus_javascript/1454
**Legitimacy:** Proceed with Caution
**PDF:** not generated (порог 3.0 не достигнут)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Fullstack Developer (Vue + Node.js) — по `config/profile.yml` это **adjacent**-архетип кандидата (не primary/secondary) |
| Domain | Внутренний enterprise-тулинг для розничной сети ломбардов (финтех-смежная розница: краткосрочные займы под залог) |
| Function | Build |
| Seniority | Middle+ (заявлено в заголовке вакансии) |
| Формат работы | **Не указан в доступном тексте** — детали скрыты за кнопкой «Подробнее» бота Runello, недоступны через WebFetch |
| Размер команды | Не указано |
| Оформление (ТК РФ/ГПХ/самозанятость) | Не указано |
| TL;DR | Мидл+ фулстек-позиция у реального, давно работающего ритейлера (сеть ломбардов), но публично видимый текст вакансии — это только название роли и абзац о компании; весь технический контент (стек, зарплата, локация, формат) закрыт ботом и не подтверждён |
**Vibe команды:** Недостаточно данных в JD — весь текст вакансии, кроме заголовка и общей фразы о компании, скрыт за ботом. Никаких сигналов об ownership, code review, менторстве или гибкости графика извлечь не удалось. Стоит уточнить на первом контакте, прежде чем делать выводы.
## B) Совпадение с CV
Поскольку сам JD недоступен (стек не указан явно в открытой части поста), сопоставление сделано по заголовку роли («Middle+ FullStack разработчик», канал кросс-постится в JS- и TS-тематические каналы Runello, что намекает на JS/TS-стек — вероятно Vue/React + Node, но это предположение, не факт из JD):
| Предполагаемое требование (по заголовку роли, не подтверждено JD) | Строка из cv.md |
|---|---|
| Frontend на Vue/React + TS | «Стек: Vue 3, Composition API, TypeScript, Pinia, Vue Router... Vite, Vitest» (Здесь ЕКОМ) |
| Realtime/WebSocket на фулстек-проекте | «Внедрила WebSocket для оповещений в реальном времени... впервые в компании видно, сколько аптек онлайн» (РМК) |
| Node.js/Express/MongoDB backend | «Хакатон TulaHack.Digital... Стек: Vue 3, Ionic Capacitor, **Express, Node.js, MongoDB**» + курсовой проект ТулГУ: «Работа с серверной частью на Node.js» |
| Проектирование доступа/ролей (частая задача для финтех-смежного домена — займы, залоги, клиентские данные) | «Спроектировала ролевую модель авторизации (RBAC) с разграничением между отделами... объясняла бэкенд-разработчику принцип работы» (Здесь ЕКОМ) |
| Тестирование (unit/e2e) | «Vitest (unit-тесты Vue-компонентов)... Playwright (E2E-тесты на РМК)» |
**Пробелы:**
1. **Production backend-опыт (Node/Express/Mongo)** — hard blocker для настоящей Middle+ фулстек-роли, если backend несёт существенную нагрузку. У кандидата это только хакатон (2024) и учебный проект (2022), не production. *Стратегия:* честно обозначить уровень как «крепкий frontend + practical backend» и уточнить реальное распределение frontend/backend в задачах на собеседовании, прежде чем соглашаться на Middle+ по backend-оси.
2. **Формат работы неизвестен** — критично для кандидата с жёстким «переезд/командировки — нет». Nice-to-have выяснить нельзя — это hard blocker до подтверждения. *Стратегия:* первым вопросом при отклике уточнить формат (удалённо/гибрид/офис, город) до того, как тратить время на подготовку.
3. **Зарплата не указана** — не подтверждено попадание в таргет 100-120k+ ₽/мес на руки. *Стратегия:* запросить вилку до собеседования.
## C) Уровень и стратегия
1. **Уровень в JD:** Middle+ (фулстек). **Естественный уровень кандидата:** Middle для Vue3-frontend (primary архетип), но ближе к Junior/начальный Middle для production backend на Node — весь backend-опыт учебный/хакатонный, не production.
2. **План «продать senior без обмана»:** Не позиционировать как «полноценный fullstack на уровне Middle+» — это было бы искажением. Честная рамка: «Frontend-инженер с production Vue3 + практическим backend-опытом (Node/Express/Mongo на pet/хакатон-проектах) и подтверждённым realtime/WebSocket-опытом на production (РМК)». RBAC-опыт — сильный аргумент именно для финтех-смежного домена (займы под залог = чувствительные данные клиентов).
3. **План «если понизят уровень»:** Принять понижение до Middle (frontend-heavy) с чётким условием пересмотра через 3-6 месяцев по мере роста backend-экспозиции — но только если формат работы и зарплата подтверждены и соответствуют её ограничениям.
## D) Компенсация и спрос
Зарплата и формат работы **не указаны** в доступном тексте вакансии — прямых данных по этой позиции нет, ничего не выдумываю.
Рыночный контекст (WebSearch, 2026):
| Показатель | Значение | Источник |
|---|---|---|
| Middle Fullstack (стек Vue+Node) | ~170 000–190 000 ₽/мес gross | enigmai.ru/salary/fullstack |
| Медиана Fullstack РФ 2026 | ~230 000 ₽/мес gross (+21% к рынку IT) | enigmai.ru |
| Net-оценка (gross×0.87) | ~148 000–165 000 ₽ (нижняя вилка) до ~200 000 ₽ (медиана) | расчётная, стандартный НДФЛ 13% |
| Удалёнка на рынке | 67% вакансий remote/гибрид в 2026 | enigmai.ru |
Если реальное предложение попадёт в эту вилку — оно выше минимума кандидата (100 000 ₽ net), но это не подтверждено конкретно для данной вакансии.
Отзывы о компании (dreamjob.ru, 69 оценок, **общие по рознице, не по IT-отделу**): 78.3% рекомендуют работодателя; оплата труда 4.2/5, работа руководства 4.2/5, карьерный рост 4/5. Упомянутые минусы — отсутствие ДМС и бесплатного питания как стандартных льгот. Оформление (ТК РФ/ГПХ) не подтверждено.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary | Общий фрейминг Vue3+Flutter | Подчеркнуть Vue3 production + WebSocket realtime + RBAC | RBAC особенно релевантен для домена с чувствительными клиентскими/залоговыми данными |
| 2 | Backend-блок | Backend упомянут как «ознакомительный уровень» | Явно перечислить хакатон + курсовой проект как конкретные Node/Express/Mongo кейсы | Даёт фулстек-рекрутеру конкретные примеры, а не общую фразу |
| 3 | Проекты | ЕКОМ описан подробно | Добавить акцент на realtime WebSocket-оповещения (РМК) как ближайший аналог к «фулстек realtime фиче» | Прямое совпадение с типичной фулстек-задачей у ритейлера с сетью филиалов |
| 4 | Локация | Не упомянуто в CV явно для этой заявки | В сопроводительном сообщении сразу уточнить формат работы и город | Критично из-за жёсткого «переезд — нет» |
| 5 | Зарплата | — | Запросить вилку до отправки полноценного отклика | Нет данных для сравнения с таргетом |
**Рекомендация:** Не готовить полноценный тираж CV/PDF до уточнения формата работы, локации и зарплаты — слишком много открытых блокеров для кандидата с жёсткими ограничениями по переезду.
## F) План собеседований
| # | Требование (предполагаемое) | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | RBAC / контроль доступа | ЕКОМ — ролевая модель | Нужно было разграничить доступ между отделами | Спроектировать модель ролей | Спроектировала и объяснила бэкенд-команде | Логистика/заказы не видят чужие данные | ИБ-образование дало нестандартный для фронтендера взгляд на access control |
| 2 | Realtime/WebSocket | РМК — оповещения в реальном времени | Не было видимости, сколько аптек онлайн | Внедрить WebSocket-оповещения | Реализовала статусы прочтения и время | Видимость почти в реальном времени по ~1200 точкам | Realtime-фичи требуют думать о доставке и подтверждении, не только о UI |
| 3 | Node/Express/Mongo (backend) | Хакатон TulaHack.Digital | Собрать полноценный фулстек-прототип за хакатон | Реализовать backend на Express/Node/Mongo | Написала API и подключила фронт на Vue3+Ionic | Рабочее приложение «Книга рецептов» | Понимаю ограничения быстрого backend без production-нагрузки — честно обозначаю это как pet-опыт |
| 4 | Работа с legacy | РМК — замыкание в клавиатурном классе | Клавиатура переставала работать | Найти причину бага с реактивностью | Исправила утечку через глобальный класс | Баг устранён, задокументирован | Legacy-код требует терпения и системного дебага, не только патчей |
| 5 | UI для внутренних операционных систем | ЕКОМ — список заказов с 9 фильтрами | Таблицы 1С неудобны для отслеживания проблемных заказов | Спроектировать интерфейс с фильтрацией | Заменила таблицы на удобный UI | Используется логистикой, поддержкой, клиентским отделом | Внутренние тулы для нескольких ролей пользователей требуют думать о разных сценариях использования |
| 6 | Автоматизация ручных процессов | ЕКОМ — график курьеров (vue-cal) | Расписание вносили разработчики вручную SQL | Автоматизировать через drag-and-drop календарь | Внедрила vue-cal с drag-and-drop | Логистика управляет графиком самостоятельно | Автоматизация ручных SQL-правок разработчиками — типичная фулстек-задача снятия нагрузки с команды |
**Рекомендуемый кейс для презентации:** ЕКОМ (RBAC + список заказов) — лучше всего показывает связку frontend + понимание backend-логики доступа, релевантно для домена с чувствительными данными.
**Вопросы-ловушки:**
- «Почему заинтересовала вакансия в нестандартной для фронтендера индустрии (ломбарды)?» → Ответ: интересна операционная сложность розничной сети с филиалами — похоже на текущий опыт с сетью аптек (~1200 точек).
- «Готовы ли к Middle+ уровню нагрузки на backend при ограниченном production-опыте на Node?» → Честно: backend — pet/учебный опыт, но есть подтверждённый опыт realtime-интеграций (WebSocket) и готовность быстро расти на реальных задачах.
- «Как относитесь к тому, что в вакансии не указаны зарплата и формат работы?» → Прямо: это первое, что нужно уточнить перед дальнейшими шагами — переезд и командировки не рассматриваются принципиально.
---
## G) Легитимность вакансии (Posting Legitimacy)
**Tier: Proceed with Caution**
**Сигналы за легитимность:**
- Компания реально существует и зарегистрирована: ООО «Ломбард Пионер», ОГРН 1206300049075, ИНН 6320052778, юр. адрес Тольятти, ул. 40 лет Победы, д. 5 (подтверждено companies.rbc.ru, zachestnyibiznes.ru).
- Реальная розничная сеть: 58-60+ магазинов в 18-19 городах, действующий сайт pioneer24.ru, физические точки подтверждены в 2ГИС/Zoon по нескольким городам (Ростов-на-Дону, Липецк, СПб, Балаково и др.).
- Общие отзывы сотрудников умеренно позитивные: 78.3% рекомендуют, оплата 4.2/5, руководство 4.2/5 (dreamjob.ru, 69 оценок) — **но это отзывы розничного персонала, не IT-отдела**, прямого сигнала о культуре разработки нет.
**Сигналы, требующие осторожности:**
- Официальная среднесписочная численность юрлица — **3 человека** — при заявленной сети 58-60+ магазинов. Типично для холдинговой/франчайзинговой структуры ломбардов в РФ (отдельные юрлица на филиалы), но снижает уверенность в существовании полноценной штатной IT-команды именно в этом юрлице.
- **Полный текст вакансии недоступен** — весь контент (стек, зарплата, локация, формат работы) скрыт за кнопкой «Подробнее» бота Runello; ни через прямой WebFetch поста, ни через сестринский пост в другом канале текст не раскрывается.
- **Кросс-постинг:** идентичный текст вакансии опубликован в тот же день (2026-07-07) в двух разных Telegram-каналах агрегатора Runello — `runello_rus_javascript/1454` (эта заявка) и `runello_rus_typescript/1395` — подтверждено по `data/scan-history.tsv`. Это одновременная многоканальная бот-дистрибуция одного поста, а не исторический повтор вакансии со временем — сигнал об автоматизированной рассылке, не о «протухшей» вакансии.
- Прямого текущего листинга этой IT-роли на hh.ru не найдено — поиск по компании на hh.ru нашёл только розничные позиции (Ломбардист, Товаровед-оценщик), не фулстек-разработчика. Возможно, IT-найм идёт только через Runello-бот, не через мейнстрим-джоб-борды — умеренный сигнал непрозрачности.
- **Проверка на дубликат отчёта (по указанию в задаче):** в задаче было предположение, что для этой же компании уже существует отчёт (#034 или ~#095). Проверено: `reports/034-*` — это «034-playneta-2026-07-07.md», не связано с «Ломбард Пионер»; отчёта «#095» не существует вовсе; поиск по `Пионер|Ломбард|Lombard` (регистронезависимо) по всей папке `reports/` и по `data/applications.md` — **ничего не найдено**. Это первая оценка этой компании в системе; предположение о дубликате в задаче не подтвердилось.
**Итог:** Компания реальна и достаточно давно на рынке, но сама вакансия непрозрачна (без стека/зарплаты/локации, доступна только через бот-флоу) и распространяется одновременно по нескольким каналам-агрегаторам — типичная картина для автоматической рассылки от рекрутингового бота, не откровенный скам, но недостаточно данных для уверенной оценки без прямого контакта с рекрутером.
---
## Извлечённые ключевые слова
Middle+ FullStack разработчик, Vue 3, Composition API, TypeScript, Node.js, Express, MongoDB, WebSocket, Pinia, RBAC, ролевая модель доступа, REST API, Git, GitLab, CI/CD, Vitest, Playwright E2E, TanStack Table, розничная сеть, ломбард, краткосрочные займы, удалённая работа (не подтверждено), Middle-уровень
+113
View File
@@ -0,0 +1,113 @@
# Оценка: IT Devision — Fullstack AIfirst Developer
**Дата:** 2026-07-07
**Архетип:** Fullstack-разработчик (Vue + Node.js) — adjacent fit; вторичный кандидат-архетип: Frontend-разработчик (Vue.js)
**Балл:** 2.2/5
**Legitimacy:** Proceed with Caution
**URL:** https://t.me/s/runello_rus_javascript/1457
**PDF:** not generated (балл ниже порога 3.0)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Fullstack-разработчик (Vue + Node.js) — adjacent fit по `_profile.md`; ближайший второй архетип — Frontend-разработчик (Vue.js), т.к. пользовательская часть продукта (веб-интерфейс продавца/дашборд) вероятно фронтенд-ориентирована |
| Domain | Fullstack / AI-tooling продукт (нейросетевой помощник для маркетплейсов) |
| Function | build |
| Seniority | Не указан в посте |
| Формат работы | **Не указан** — ни удалёнка, ни офис, ни город не упомянуты в публичном анонсе |
| Размер команды | Не указано |
| Оформление (ТК РФ/ГПХ/самозанятость) | Не указано |
| TL;DR | Стартап-продукт — AI-ассистент, автоматически отвечающий на отзывы/вопросы/сообщения покупателей на Wildberries, Ozon, Авито и Яндекс.Маркет; публичный анонс в Telegram-канале крайне краток, ключевые параметры (зарплата, локация, стек, оформление) не раскрыты и доступны только через бота-заявку |
**Vibe команды (качественный сигнал, не входит в числовую оценку):** недостаточно данных в JD — пост состоит из одного абзаца о продукте, без единого упоминания культуры команды, автономии, менторства или гибкости графика. Стоит уточнить на собеседовании, а не считать вайб позитивным по умолчанию.
## B) Совпадение с CV
| Требование JD (известное/предполагаемое) | Совпадение с CV |
|---|---|
| Fullstack-разработка | Frontend сильный: Vue 3, Composition API, TS, Pinia — «Здесь ЕКОМ» разработан с нуля. Backend — только «ознакомительный уровень» (Node.js, Express, MongoDB, хакатон TulaHack.Digital + учебный проект ТулГУ) |
| Продукт на базе AI (нейросетевой помощник) | **Пробел.** В CV нет опыта интеграции LLM/AI API, prompt engineering или AI-фич. «AIfirst» в названии роли может означать (а) саму продуктовую AI-функциональность, либо (б) ожидание AI-ассистированной разработки (Cursor/Copilot) — из текста поста это не различить |
| Веб-интерфейс/дашборд (для продавца или для внутренней модерации ответов) — предположение по типу продукта | Релевантно: «Здесь ЕКОМ» — список заказов с фильтрацией по 9 параметрам, использующийся несколькими отделами; UI-редизайн без штатного дизайнера |
| Real-time компоненты (мониторинг статусов ответов/сообщений) — предположение | Релевантно: WebSocket/WSS в РМК (оповещения в реальном времени, статус прочтения) и в ЕКОМ |
| Работа с внешними API маркетплейсов | Частично релевантно через общий REST API опыт; прямого опыта интеграций с Wildberries/Ozon/Авито API нет |
**Пробелы и стратегия закрытия:**
1. **AI/LLM-интеграция — hard blocker или nice-to-have?** Скорее всего nice-to-have для frontend-части роли, но hard blocker если ожидается, что fullstack-разработчик пишет backend-логику вызова LLM API. Без деталей JD это неизвестно.
- Смежный опыт: WebSocket real-time системы, работа с внешними интеграциями на backend (Express/MongoDB).
- Портфолио-проект, закрывающий пробел: нет готового; можно упомянуть готовность быстро разобраться (пункт «Быстро осваиваю» в CV).
- Фраза для собеседования: «Прямого опыта интеграции LLM API у меня пока нет, но есть опыт быстрой интеграции внешних систем (WebSocket, REST) и самостоятельного изучения новых стеков — Flutter выучила с нуля за первые месяцы в Здравсервис».
2. **Backend-глубина (Node/Express/MongoDB) — nice-to-have если роль по факту frontend-heavy, hard blocker если 50/50 fullstack.** Текущий уровень — хакатон + учебный проект, не production.
- План: явно указать в резюме уровень («ознакомительный», не преувеличивать), предложить взять на себя backend-задачи под менторством, либо договориться о постепенном увеличении backend-доли.
3. **Отсутствие данных о локации/формате работы — критично при location policy кандидата (нет переезда, нет командировок).** Нужно уточнить ДО отклика — это не пробел в CV, а пробел в JD.
## C) Уровень и стратегия
1. **Уровень в JD:** не указан. **Естественный уровень кандидата для Fullstack (Vue+Node) архетипа:** Middle по frontend, Junior-Middle по backend (согласно `config/profile.yml`: Fullstack — adjacent fit, Middle).
2. **План «продать без обмана»:** Вести с Vue 3 production-опытом (ЕКОМ с нуля, RBAC, real-time WebSocket) как основным активом; backend — честно описывать как «рабочий, но не глубокий» уровень; RBAC/ИБ-образование — дифференциатор для продукта, обрабатывающего данные продавцов на нескольких площадках.
3. **План «если понизят/расширят backend-ожидания»:** принять, если зарплата и формат работы (удалёнка/Тула) соответствуют условиям кандидата; договориться о менторстве по backend и AI-интеграциям с ревью через 3-6 месяцев.
## D) Компенсация и спрос
**Зарплата в посте не указана** — невозможно сравнить с целевым диапазоном кандидата (100 000–120 000+ ₽/мес на руки, см. `config/profile.yml`). Gross/net не уточнены (нет цифр вовсе).
| Источник | Уровень | Диапазон (₽/мес) |
|---|---|---|
| quick-offer.ru / enigmai.ru (2026, поиск) | Junior Fullstack (Vue/Node) | 85 000–152 500 |
| enigmai.ru (2026, поиск) | Middle Fullstack (Node.js + React/Vue) | 170 000–340 000 (разные источники дают разброс 170-190к и 210-340к — вероятно разные методологии подсчёта) |
Данные противоречивы по методологии (два источника дают разный диапазон для Middle), поэтому ориентир приблизительный. Если реальное предложение IT Devision окажется в нижней части Junior-диапазона, оно НЕ дотягивает до цели кандидата.
**Репутация компании:** WebSearch не нашёл «IT Devision» ни на hh.ru, ни в обзорах, ни в отзывах о работодателях — отсутствие цифрового следа. Нишевый продукт (AI-автоответы для маркетплейсов) существует на рынке у конкурентов (ReviewMaster AI, Otveto, itgalaxy.company и др.), т.е. сама бизнес-идея правдоподобна, но конкретно эту компанию верифицировать не удалось.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Акцент на Vue3+Flutter dual-track | Добавить фразу про готовность к fullstack-росту (Node/Express) и интерес к AI-интегрированным продуктам | Соответствует dual требованиям роли |
| 2 | Опыт (ЕКОМ) | Общее описание fullstack-стека | Выделить WebSocket/real-time часть как проксирующую под «AI-сервис реагирует в реальном времени» | Прямая связь с продуктом (авточат-ответы) |
| 3 | Опыт (хакатон) | В самом низу CV, слабо заметен | Поднять видимость backend-опыта (Express/MongoDB) в summary или отдельным пунктом | Backend — самое слабое место для этой роли, нужно явно показать, что опыт есть |
| 4 | Навыки | Node.js указан как «ознакомительный уровень» | Оставить честную формулировку, но добавить «готова углублять backend» | Прозрачность + сигнал роста |
| 5 | Раздел «Быстро осваиваю» | Docker, GraphQL, Nuxt и др. | Добавить «интеграции с LLM/AI API» | Прямой сигнал готовности закрыть главный пробел |
| — | LinkedIn/hh.ru | — | В заголовке профиля добавить «Fullstack (Vue + Node.js)» рядом с «Frontend Developer», чтобы попадать в поиск по этой роли | Расширяет охват поиска рекрутеров без искажения фактов |
| — | LinkedIn/hh.ru | — | В разделе «Ищу» уточнить «удалённо или гибрид в Туле, без переезда» | Отсекает нерелевантные предложения на входе |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Fullstack-разработка с нуля | Разработка ЕКОМ frontend с нуля | Внутренней системе логистики не хватало фронтенда, всё велось через 1С/ручные SQL | Разработать frontend с нуля на Vue 3 | Спроектировала стек (Pinia, TanStack Table, WebSocket), UI списка заказов и график курьеров | Логисты и техподдержка полностью перешли на новый интерфейс | Поняла важность обсуждать архитектурные решения с бэкенд-командой заранее, а не постфактум |
| 2 | Real-time компоненты (аналог AI-автоответов) | WebSocket-оповещения в РМК | Не было видимости, какие аптеки онлайн и кто прочитал оповещения | Внедрить real-time статус | Реализовала WebSocket-канал с индикацией прочтения | Практически мгновенная доставка, видимость статуса ~1200 аптек | Осознала, что real-time UX требует продуманного fallback при разрыве соединения — стала закладывать это в следующие фичи |
| 3 | Backend-эксплуатация (Node/Express/MongoDB) | Хакатон TulaHack.Digital — «Книга рецептов» | Нужно было быстро собрать fullstack-прототип за хакатон | Разработать backend на Express/MongoDB и связать с Vue+Ionic frontend | Реализовала API для фильтрации рецептов и подсчёта калорий | Работающий прототип за отведённое время | Поняла разницу между «работает для демо» и production backend — не переоценивает этот опыт |
| 4 | Работа с данными о пользователях/продавцах (безопасность) | Проектирование RBAC в ЕКОМ | Логистика и другие отделы имели доступ ко всем заказам без разграничения | Спроектировать модель ролей | Спроектировала и объяснила бэкенд-команде RBAC-модель, используя ИБ-образование | Разграничение доступа между отделами внедрено | Ключевой урок — техническая грамотность в безопасности напрямую конвертируется в доверие бэкенд-команды |
| 5 | Диагностика проблем в проде (аналог мониторинга AI-ответов) | Баг «Избранное» в «Здесь Аптека» | Пользователи жаловались, что раздел не открывается | Найти причину без описания от пользователей | Диагностировала: все товары грузились одним запросом; внедрила постраничную загрузку | Жалобы прекратились | Стала до внедрения фич думать о нагрузке на список данных заранее |
| 6 | Быстрое обучение новому стеку (аналог обучения AI API) | Переход с Flutter-курса на продакшн | Не было готового Flutter-разработчика в команде | Пройти курс и сразу включиться в продакшн-разработку | Прошла профильный курс, взяла на себя портирование Android→iOS | Приложения успешно отправлены в App Store | Подтверждает способность быстро закрыть новый для себя технологический пробел — прямая параллель с AI-API |
**Рекомендуемый кейс для показа:** ЕКОМ — real-time график курьеров (WebSocket + drag-and-drop), как наиболее близкая по духу демонстрация «системы, которая реагирует в реальном времени на действия пользователей», аналогично тому, как AI-сервис IT Devision реагирует на сообщения покупателей.
**Вопросы-ловушки:**
- «У вас нет опыта с LLM/AI API — как быстро вы сможете влиться?» → Ответ: сослаться на историю с Flutter (курс → продакшн за месяцы) как доказанный паттерн быстрого обучения.
- «Почему рассматриваете fullstack, если специализация — frontend?» → Ответ: честно — растущий интерес к backend через хакатон и учебный проект, желание расширить компетенции под менторством, не позиционировать себя как готового backend-эксперта.
- «Расскажите про опыт с высокой нагрузкой/большим количеством запросов от пользователей» → История с оптимизацией «Избранное» (постраничная загрузка) — прямое совпадение.
## G) Посадочная легитимность (Posting Legitimacy)
**Tier: Proceed with Caution**
| Сигнал | Наблюдение |
|---|---|
| Качество описания | Очень краткое — один абзац о продукте, без зарплаты, локации, стека, оформления, требований к опыту. Название роли «AIfirst» — buzzword-heavy без расшифровки, типичный сигнал неопределённости JD |
| Цифровой след компании (WebSearch) | «IT Devision» не найдена ни на hh.ru, ни в отзывах о работодателях, ни в бизнес-каталогах — отсутствие подтверждаемого присутствия компании онлайн |
| Репост-проверка (`data/scan-history.tsv`) | Только одна запись за 2026-07-07 (сегодня, статус `added`) — свежее объявление, не повторный репост |
| Рыночный контекст роли | Нишевый продукт (AI-автоответы для Wildberries/Ozon/Авито/Яндекс.Маркет) существует у нескольких конкурентов на рынке (ReviewMaster AI, Otveto, itgalaxy.company) — бизнес-идея правдоподобна, хотя конкретную компанию не удалось верифицировать |
| Свежесть | Не подтверждена независимо — доступен только текст Telegram-анонса, полный текст вакансии скрыт за ботом-заявкой (Runello Bot) |
**Итог:** Не найдено явных признаков мошенничества (типовая схема для канала-агрегатора Runello), но отсутствие цифрового следа компании + крайне скудные детали + buzzword-название роли требуют осторожности. Рекомендуется запросить полный текст вакансии, зарплату и формат работы ДО подготовки полноценного отклика.
---
## Извлечённые ключевые слова
Fullstack, Vue 3, Node.js, JavaScript, TypeScript, AI-сервис, AI-ассистент, автоматизация, маркетплейсы, Wildberries, Ozon, Авито, Яндекс.Маркет, нейросетевой помощник, чат-бот, REST API, WebSocket, Express, MongoDB, интеграция LLM, дашборд продавца, real-time
@@ -0,0 +1,126 @@
# Оценка: Компания не указана (анонимная вакансия через Runello-бот) — Fullstack разработчик Android/iOS (Kotlin Multiplatform)
**Дата:** 2026-07-07
**Архетип:** Mobile Developer — ближе всего к архетипу «Mobile Developer (Flutter)» из `modes/_profile.md`, но фактический стек вакансии — нативный Kotlin Multiplatform + SwiftUI, а не Flutter/Dart. Это НЕ прямое совпадение ни с одним из трёх целевых архетипов кандидата (Frontend Vue.js / Mobile Flutter / Fullstack Vue+Node).
**Балл:** 1.8/5
**Legitimacy:** Proceed with Caution
**URL:** https://t.me/s/runello_rus_mobileappdevelopment/3170
**PDF:** not generated (порог 3.0 не достигнут)
**Verification:** unconfirmed (WebFetch-only, без Playwright — превью Telegram-канала, дата публикации не извлекается)
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип | Mobile Developer — нативный Kotlin Multiplatform (Android/iOS), не Flutter |
| Domain | mobile |
| Function | build |
| Seniority | Не указан в посте (стек предполагает минимум Middle) |
| Формат работы | Удалённо, глобально (`#remote #global`) |
| Размер команды | Не указан |
| Оформление | Не указано — компания скрыта, отклик только через Runello-бот |
| TL;DR | Мобильная fullstack-роль (Android+iOS) на нативном стеке Kotlin Multiplatform + Jetpack Compose + SwiftUI + Ktor + Kodein — принципиально другой технологический стек, чем Flutter/Dart у кандидата. |
**Vibe команды:** недостаточно данных в JD для оценки — текст поста содержит только хэштеги `#mobile #android #remote #global`, никаких сигналов об ownership, автономии, менторстве или гибкости. Стоит уточнить на собеседовании, если кандидат решит откликнуться.
**Важное замечание по компании:** пост из Telegram-канала «Mobile App Development Job Offers» — это канал-агрегатор бота Runello (подтверждено WebSearch: Runello — легитимный AI-агрегатор вакансий, ежедневно парсит тысячи вакансий и подбирает под профиль, не требует регистрации/личных данных для просмотра). Реальный работодатель в самом посте **не назван** — это стандартный паттерн анонимизации агрегатора: имя компании раскрывается только после отклика через бота. Название канала («Mobile App Development Job Offers — Telegram») — это НЕ работодатель, это сам канал, как и было указано в задаче.
## B) Совпадение с CV
Прочитан `cv.md`. Требования JD против точных строк CV:
| Требование JD | Совпадение в CV | Комментарий |
|---|---|---|
| Android + iOS mobile разработка | ✅ частично — «Флаттер-разработчик... Начала как Flutter-разработчик»; «Здесь Аптека» (Flutter, Android/iOS); «Здесь Сотрудник» и «Здесь Чат» — портирование Android → iOS (Flutter) | Опыт мобильной разработки под обе платформы РЕАЛЬНЫЙ, но через Flutter/Dart, а не нативный Kotlin/Swift |
| Kotlin, Kotlin Multiplatform (KMP) | ❌ отсутствует | Ни Kotlin, ни KMP не упомянуты в CV ни разу. Dart и Kotlin — разные языки с разным синтаксисом и экосистемой; знание одного не даёт рабочего знания другого |
| Jetpack Compose (нативный Android UI) | ❌ отсутствует | В CV — Flutter Widgets (свой UI-движок), не Jetpack Compose. Концептуально оба декларативны (как и Vue 3 Composition API кандидата), но синтаксис и API — разные |
| SwiftUI (нативный iOS UI) | ❌ отсутствует | Работа с iOS у кандидата — «Собрала iOS-сборки и отправила приложения на проверку в App Store» — это операционная часть релиза Flutter-приложения, не написание SwiftUI-кода |
| Ktor (Kotlin backend/networking) | ❌ отсутствует | CV указывает Node.js/Express/MongoDB на «ознакомительном уровне» — не Ktor и не Kotlin-backend |
| Kodein (DI-фреймворк для Kotlin) | ⚠️ смежный опыт | CV: «Service Locator (DI)» во Flutter-стеке — тот же паттерн (Dependency Injection), но другая реализация/язык |
| Kotlin Serialization | ❌ отсутствует | Не упоминается |
| Clean Architecture (подразумевается для KMP-проектов такого масштаба) | ✅ прямое совпадение | CV: «чистая архитектура (Clean Architecture)» — явно указано в разделе Mobile |
| REST API / WebSocket интеграции | ✅ совпадение | CV: «REST API, WebSocket/WSS», внедрила WebSocket в РМК |
### Пробелы и стратегия закрытия
1. **Kotlin / Kotlin Multiplatform — hard blocker.** Это ядро вакансии, и в CV нет ни одной строки про Kotlin. Смежный опыт (Dart/Flutter) даёт общее понимание мобильной разработки, но НЕ даёт рабочего знания синтаксиса Kotlin, KMP-модулей (`expect`/`actual`), Gradle-мультиплатформенной сборки. Закрыть за счёт «может продемонстрировать смежный опыт» — нет, честно нельзя выдавать Flutter-опыт за готовность к Kotlin-проекту.
2. **Jetpack Compose / SwiftUI — hard blocker для нативной части.** Аналогично: декларативный UI-паттерн знаком (Vue 3 Composition API, Flutter Widgets), но конкретные фреймворки — нет. Портфолио-проект, закрывающий пробел, отсутствует (согласно `modes/_profile.md`, у кандидата пока нет публичного портфолио).
3. **Ktor / Kotlin Serialization — nice-to-have относительно основного блокера**, но тоже отсутствуют полностью.
4. **Конкретный план закрытия:** Единственная честная фраза для сопроводительного — подчеркнуть опыт релиза мобильных приложений на две платформы (Firebase push-токены Android/iOS, отправка в App Store, DI и Clean Architecture как паттерны, а не как конкретные Kotlin-инструменты), и явно обозначить готовность переучиваться на Kotlin/Swift. Это НЕ быстрый прыжок — реалистично требует нескольких месяцев практики, а не одного «быстрого проекта» или заученной фразы для интервью.
**Вывод по Block B:** переносимые навыки (архитектурные паттерны, релиз-процесс, DI, REST/WebSocket) есть, но основной технологический стек вакансии (Kotlin Multiplatform, Jetpack Compose, SwiftUI, Ktor) у кандидата отсутствует полностью. Это не Flutter-вакансия — путать кросс-платформенность Flutter с нативной Kotlin Multiplatform было бы искажением фактов.
## C) Уровень и стратегия
1. **Уровень в JD:** не указан явно, но набор технологий (KMP + Compose + SwiftUI + Ktor + DI-фреймворк) обычно предполагает Middle/Middle+ по нативному мобильному стеку.
**Естественный уровень кандидата для этого архетипа:** по Kotlin/KMP — фактически Junior/начинающий (нулевой коммерческий опыт с языком), несмотря на Middle-уровень в Flutter/Vue.
2. **План «продать senior без обмана»:** здесь неприменим — нельзя продавать Middle+ уровень по стеку, которого нет в опыте. Честная позиция: «мобильный разработчик с опытом релиза production-приложений на Android+iOS (Flutter), сильными архитектурными паттернами (Clean Architecture, DI) и готовностью перейти на Kotlin Multiplatform» — то есть позиционирование как «смежный найм», не «готова прямо сейчас».
3. **План «если понизят уровень»:** принять junior/стартовый грейд по Kotlin-треку разумно, если компания даёт реальный план роста и компенсация не ниже минимума кандидата (100 000 ₽/мес на руки). Договориться о пересмотре через 3-6 месяцев адаптации к стеку, а не сразу требовать Middle-условия за незнакомый язык.
## D) Компенсация и спрос
Зарплата и оформление в самом посте **не указаны** — компания анонимна, условия раскрываются только после отклика через Runello-бот. Ниже — только общий рыночный контекст (WebSearch, 2026):
| Показатель | Значение | Источник |
|---|---|---|
| Медиана зарплаты мобильного разработчика в РФ | ~320 000 ₽ на руки | [ENIGMA AI](https://enigmai.ru/salary/mobile-development/) |
| Middle Android Developer (медиана) | ~270 000 ₽; диапазон 160 000–290 000 ₽ | [checkroi.ru](https://checkroi.ru/blog/zarplata-android-razrabotchika/) |
| Премия за навык Kotlin Multiplatform | +15-20% к вилке Middle; до +25% при KMP + нативный UI | [ENIGMA AI](https://enigmai.ru/salary/mobile-development/mobile-salary-2026/) |
| Формат | Удалённая работа доминирует, компании открыты к найму из регионов | [ENIGMA AI](https://enigmai.ru/salary/mobile-development/) |
**Специфика РФ:** gross/net не указаны в посте — уточнить обязательно при отклике (`net ≈ gross × 0.87` как ориентир). Оформление (ТК РФ / ГПХ / самозанятость) неизвестно.
**Оценка по компенсации:** приведённые цифры рынка для Middle Kotlin-разработчиков теоретически перекрывают минимум кандидата (100 000 ₽/мес на руки), но так как это медианы для опытных Kotlin-специалистов, а кандидат вошла бы в эту роль без опыта в Kotlin — реалистичный оффер скорее будет ближе к junior-вилке или ниже медианы. Балл по этой оси — нейтральный из-за отсутствия конкретных данных по самой вакансии.
## E) План персонализации
**Рекомендация: не адаптировать CV под эту вакансию.** Стек кандидата (Flutter/Dart, Vue 3) фундаментально отличается от требуемого (Kotlin Multiplatform, Jetpack Compose, SwiftUI, Ktor). Любая адаптация summary/буллетов под эту JD потребовала бы переформулировок, создающих ложное впечатление о владении Kotlin — это прямо запрещено правилом «Keywords get reformulated, never fabricated» (`CLAUDE.md`).
Если кандидат всё же решит откликнуться (например, из интереса к переходу в Kotlin-стек), единственное уместное изменение — явно указать в сопроводительном письме готовность к обучению и перечислить переносимые паттерны (Clean Architecture, DI, релиз на две платформы), не выдавая их за экспертизу в конкретных Kotlin-инструментах.
## F) План собеседований
Так как оффер не соответствует стеку кандидата, банк историй здесь ограничен переносимыми паттернами, а не Kotlin-специфичными кейсами:
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Опыт релиза на Android + iOS | Портирование «Здесь Сотрудник» и «Здесь Чат» с Android на iOS | Оба приложения были только под Android | Нужно было адаптировать под iOS и выпустить в App Store | Перепривязала Firebase push-токены на обе платформы, собрала iOS-билды, спроектировала app-иконки, отправила на проверку в App Store | Оба приложения успешно прошли ревью и стали доступны на iOS | Узнала специфику App Store review и различия в push-инфраструктуре iOS/Android — процесс релиза похож на то, что требуется в KMP-проекте, даже без Kotlin |
| 2 | Clean Architecture / DI | Service Locator (DI) + Clean Architecture во Flutter-приложении «Здесь Аптека» | Приложение росло, нужна была поддерживаемая структура кода | Спроектировала слои по Clean Architecture, внедрила DI через Service Locator | Код стал проще тестировать и расширять новым разработчикам | Поняла ценность архитектурных границ независимо от конкретного языка — тот же принцип применим к Kodein в Kotlin |
| 3 | REST API / real-time коммуникация | Внедрение WebSocket-оповещений в РМК | Не было видимости, сколько аптек онлайн в реальном времени | Нужно было решение с минимальной задержкой | Внедрила WSS-оповещения с отметкой прочтения | Впервые видно статус ~1200 аптек в реальном времени | Реал-тайм коммуникация через WebSocket переносится на любой стек, включая Ktor |
| 4 | Быстрое обучение новому стеку | Переход из ИБ-образования в frontend/Flutter разработку без профильного опыта | Не было бэкграунда в коммерческой разработке | Прошла профильный курс, взяла на себя Flutter-проект | Стала штатным разработчиком, ведёт 3 продукта одновременно | Показывает способность быстро закрывать технологические пробелы — прямой аргумент для перехода на Kotlin |
**Рекомендуемый кейс:** портирование Android → iOS приложений — единственная история, максимально близкая к теме вакансии (кросс-платформенный релиз), хотя и без Kotlin.
**Вопросы-ловушки:**
- *«У вас есть опыт с Kotlin/Kotlin Multiplatform?»* → честный ответ: нет коммерческого опыта, но есть опыт кросс-платформенной мобильной разработки (Flutter) и архитектурных паттернов (Clean Architecture, DI), которые переносятся на новый стек; готова инвестировать время в обучение.
- *«Почему решили сменить стек с Flutter на нативный Kotlin?»* → не отвечать шаблонно про «интересные технологии» — дать конкретную причину (если решит откликнуться), иначе этот вопрос обнажит слабую мотивацию.
## G) Легитимность публикации (Posting Legitimacy)
**Tier: Proceed with Caution**
| Сигнал | Оценка |
|---|---|
| Качество описания | Текст обрезан («интегра…») в Telegram-превью, но конкретный список технологий (Kotlin, KMP, Jetpack Compose, Ktor, Kodein, Kotlin Serialization) выглядит как реальная выдержка из JD, не как спам-шаблон. Terse-формат — типичная особенность Telegram-превью, а не сигнал подделки. |
| Компания | Не названа — стандартная анонимизация агрегатора Runello (подтверждено WebSearch: легитимный AI job-matching бот, не требует регистрации/личных данных для просмотра вакансий). Отсутствие имени компании само по себе не является red flag для этого канала, но не позволяет проверить репутацию работодателя напрямую. |
| Repost-проверка | По `data/scan-history.tsv` — вакансия встречается один раз (строка с этим URL, `first_seen: 2026-07-07`), признаков повторной публикации нет. |
| Рыночный контекст роли | Роль (KMP + Android/iOS, remote) соответствует активному и реальному сегменту рынка — есть конкретные зарплатные данные по KMP-специалистам в РФ (см. Block D), что говорит в пользу реальности такого найма в принципе. |
| Свежесть | Не подтверждена — дата публикации поста не извлекается из WebFetch-превью, Playwright недоступен в этом режиме. |
**Итог:** нет признаков мошенничества или фейковой вакансии, но отсутствие названия компании и невозможность проверить свежесть/детали без перехода в бота — по правилу «default to Proceed with Caution при недостаточных сигналах» присваиваем именно этот tier, не «High Confidence».
---
## Итоговая рекомендация
**Балл 1.8/5 — значительно ниже порога 4.0/5 (AGENTS.md/CLAUDE.md).** Настоятельно рекомендуется **не откликаться**. Основная причина — не компенсация и не локация (удалённо, без конфликта с политикой кандидата), а фундаментальное несовпадение технологического стека: вакансия требует нативной Kotlin Multiplatform + SwiftUI разработки, а профиль кандидата — Flutter/Dart + Vue 3. Кросс-платформенная модель Flutter — это смежный, но иной навык, чем нативная Android/iOS разработка на Kotlin/Swift; система не должна (и не будет) представлять эти навыки как эквивалентные.
Если кандидат заинтересована в переходе в нативный Kotlin-стек как в стратегическое направление карьеры — это отдельное решение, не отражённое в текущем CV/`modes/_profile.md`, и его стоит явно обсудить и зафиксировать в `config/profile.yml`/`modes/_profile.md`, прежде чем система начнёт продвигать такие вакансии выше.
---
## Извлечённые ключевые слова (ATS)
Kotlin, Kotlin Multiplatform, KMP, Android, iOS, Jetpack Compose, SwiftUI, Ktor, Kodein, Kotlin Serialization, Fullstack, мобильная разработка, cross-platform, дизайн-система, пользовательский интерфейс, remote, global, мобильное приложение, native mobile development, DI (Dependency Injection), Clean Architecture
+123
View File
@@ -0,0 +1,123 @@
# Оценка: R-Style Softlab — Flutter разработчик
**Дата:** 2026-07-07
**Архетип:** Mobile Developer (Flutter) — secondary fit
**Балл:** 3.6/5
**Legitimacy:** Proceed with Caution
**URL:** https://t.me/s/runello_rus_mobileappdevelopment/3172
**PDF:** output/cv-candidate-r-style-softlab-2026-07-07.pdf
**Verification:** Telegram-канал (t.me/s/...) — публичный preview получен через WebFetch. Пост крайне лаконичен: указаны только название компании, короткое описание компании и роль. Требования/стек/зарплата/локация/формат работы **не раскрыты** в превью (детали закрыты за кнопкой "Подробнее" → Runello-бот, недоступно без интерактивного бота). Оценка сделана консервативно, без домысливания отсутствующих деталей.
---
## A) Резюме роли
| Поле | Значение |
|---|---|
| Архетип | Mobile Developer (Flutter) — secondary fit (см. `config/profile.yml` archetypes) |
| Domain | Fintech / банковский софт (enterprise) |
| Function | Build (мобильная разработка) |
| Seniority | Не указан в посте |
| Формат работы | **Не указан в посте.** Отзывы сотрудников (Dream Job / retwork) отмечают, что компания практикует удалённую работу и выдаёт технику при необходимости — но это общий паттерн компании, не подтверждение по этой конкретной вакансии |
| Размер команды | Не указан |
| Оформление (ТК РФ/ГПХ/самозанятость) | Не указано; R-Style Softlab — крупный аккредитованный ИТ-работодатель (600+ сотрудников), по общим данным рынка обычно оформляет по ТК РФ, но это не подтверждено текстом вакансии |
| TL;DR | Flutter-позиция в известной банковской ИТ-компании (25+ лет на рынке, проекты для Сбера и РСХБ), но сам пост в Telegram не содержит требований, стека, зарплаты и локации — нужно уточнять при отклике |
**Vibe команды:** недостаточно данных в JD для оценки — пост состоит только из корпоративного описания компании ("аккредитованная ИТ-компания", "работаем с крупнейшими банками"), без единого слова о команде, процессах, code review, менторстве или гибкости. Внешние отзывы сотрудников (не JD) упоминают гибкий график и то, что руководитель "видит в сотрудниках полноценных партнёров", но также отмечают выгорание и разброс по зарплатам — при собеседовании стоит уточнить формат работы и нагрузку напрямую.
## B) Совпадение с CV
Архетип **Mobile Developer (Flutter)** — ведём блоком proof points "Здесь Аптека" по правилу `modes/_profile.md`:
| Требование (типичное для Flutter-вакансии; конкретный список в посте отсутствует) | Соответствие в cv.md |
|---|---|
| Опыт коммерческой разработки на Flutter | «С ноября 2024 — Flutter-разработчик в Здравсервис»; приложение «Здесь Аптека» (Android/iOS) |
| Багфиксинг и стабилизация продакшн-приложения | «Исправила более 20 багов, включая проблемы с фильтрами в поиске товаров... многие баги нашла самостоятельно, до жалоб пользователей» |
| Диагностика производительности / работа с загрузкой данных | «Диагностировала причину жалоб на не открывающийся раздел "Избранное": все товары загружались одним запросом... реализовала постраничную загрузку — жалобы прекратились» |
| Портирование Android → iOS, работа с push-уведомлениями | «Здесь Сотрудник» и «Здесь Чат» — «перепривязала токены Firebase push-уведомлений на iOS и Android», «собрала iOS-сборки и отправила приложения на проверку в App Store» |
| Архитектура (BLoC, Clean Architecture, DI) | Раздел навыков: «Flutter, BLoC, Service Locator (DI), Flutter Router, чистая архитектура» |
| UI/UX самостоятельность (частый запрос для банковских mobile-команд без выделенного дизайнера) | «Редизайн кнопки "Избранное"... в компании нет дизайнера, проектированием интерфейса занималась самостоятельно» |
| Опыт в highload/финтех-контексте (банковский домен R-Style Softlab) | Прямого банковского опыта нет; косвенно — работа с ~1200 аптеками (масштаб), RBAC-дизайн (авторизация — релевантно для банковского софта с ролевыми моделями доступа) |
**Пробелы:**
1. **Банковский/финтех-домен** — hard blocker или nice-to-have? Скорее nice-to-have: R-Style Softlab явно ищет Flutter-разработчиков, а не банковских специалистов по духу вакансии; но домен-специфика (комплаенс, безопасность транзакций) может быть плюсом при отборе.
- Смежный опыт: профильное образование в информационной безопасности + самостоятельно спроектированная RBAC-модель в ЕКОМ — прямая точка продажи для банковского работодателя, который ценит security-mindset.
- Портфолио-проект, закрывающий пробел: нет готового, но можно упомянуть RBAC-проект как демонстрацию понимания моделей доступа, типичных для банковских приложений.
- План закрытия: в сопроводительном письме явно связать ИБ-образование + RBAC-дизайн с тем, что банковский домен требует повышенного внимания к безопасности и разграничению доступа.
2. **Точный стек и требования неизвестны** — hard blocker для точной оценки, но не для отклика: пост не раскрывает версии Flutter/Dart, state-менеджер (BLoC vs Provider vs Riverpod), тестирование, CI/CD-практики компании. Стратегия: откликнуться и запросить полное описание вакансии/JD у HR перед тем, как вкладываться в глубокую подготовку.
3. **Формат работы и зарплата не указаны** — критично для кандидата (переезд/командировки исключены, целевой доход 100-120k+ ₽/мес на руки). Нужно уточнить это в первую очередь при контакте с рекрутером — до дальнейших шагов.
## C) Уровень и стратегия
1. **Уровень в JD**: не указан явно. **Естественный уровень кандидата** для архетипа Flutter — крепкий Junior+/начинающий Middle: около 8 месяцев коммерческого Flutter-опыта (с ноября 2024), но с зафиксированными самостоятельными находками багов, диагностикой сложных сценариев (постраничная загрузка) и полным циклом iOS-релиза (сборка + App Store review).
2. **План "продать уровень без обмана"**: подчеркнуть самостоятельность (баги нашла сама, до жалоб пользователей), полный цикл релиза на iOS (не просто пишет код, а доводит до продакшна), и нестандартный бэкграунд ИБ → RBAC, который для банковской компании звучит как повышенная осознанность в вопросах доступа/безопасности данных.
3. **План "если понизят уровень"**: учитывая ~8 месяцев чистого Flutter-опыта, junior/junior+ оффер на входе реалистичен и допустим — принять при справедливой компенсации (см. Блок D) с чётким условием пересмотра грейда через 6 месяцев по итогам двух релизных циклов.
## D) Компенсация и спрос
Пост в Telegram зарплату не указывает. Рыночные данные (WebSearch, 2026):
| Источник | Диапазон/медиана (gross, ₽/мес) |
|---|---|
| hh.ru (Middle Flutter) | 152 800 – 176 000 |
| Аналитика рынка (enigmai.ru, 2026) | медиана ~260 000 (Middle) |
| Habr Career (Разработчик мобильных приложений, Middle) | ~228 333 |
| Общий диапазон Middle mobile | 220 000 – 380 000 |
**Gross vs Net**: не уточнено в посте. Если ориентироваться на нижнюю границу junior/junior+ рынка (~120 000–160 000 ₽ gross), net ≈ gross × 0.87 → **~104 000–140 000 ₽/мес на руки** — это накрывает целевой диапазон кандидата (100 000–120 000+ ₽/мес на руки), но зависит от фактического грейда, который компания предложит.
**Репутация компании по компенсации** (отзывы сотрудников, Dream Job/retwork, WebSearch): мнения разделены — часть сотрудников отмечает "зарплаты ниже рынка, премий нет, индексации нет"; другая часть — "зарплата в соответствии с рынком... приходит вовремя". Гибкий график и удалённая работа с выдачей техники отмечаются положительно. Есть упоминания выгорания.
**Оформление**: R-Style Softlab — крупная аккредитованная ИТ-компания (аккредитация даёт налоговые льготы, обычно коррелирует с оформлением по ТК РФ), но пост это явно не подтверждает.
**Вывод**: компенсационный потенциал роли теоретически покрывает цель кандидата, но конкретную цифру и формат (gross/net, удалёнка) необходимо запросить до подготовки полноценного отклика.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|--------------------|--------------------------|--------|
| 1 | Summary в PDF | Общее summary (Vue3 + Flutter dual-track) | Выдвинуть вперёд Flutter-опыт и упомянуть ИБ/RBAC как security-осознанность | Роль в банковском ИТ ценит security-mindset |
| 2 | Порядок опыта | «Здесь Аптека» идёт после общего описания роли в Здравсервис | Оставить порядок, но расширить формулировки багфиксов через технический язык (реактивность, память/ссылки) | Показывает инженерную глубину, а не только "фиксила баги" |
| 3 | Skills-блок | Flutter указан в общем списке | Вынести Flutter/BLoC/Clean Architecture/Firebase в отдельный явный блок в верхней части skills | ATS и рекрутер быстро видят совпадение с ролью |
| 4 | Cover note | — | Добавить 2-3 строки: почему банковский домен интересен (ИБ-образование + RBAC-дизайн) | Закрывает пробел "нет банковского опыта" смежным аргументом |
| 5 | Вопрос рекрутеру | — | В сопроводительном сообщении сразу спросить формат работы (удалённо/офис/гибрид) и вилку зарплаты | У кандидата жёсткое ограничение "без переезда/командировок" — критично прояснить рано |
**Топ для LinkedIn/hh.ru**: аналогичные пять пунктов, с акцентом на ключевые слова "Flutter", "BLoC", "Clean Architecture", "iOS релиз", "Firebase Cloud Messaging" в заголовке и первых строках профиля.
## F) План собеседований
| # | Требование JD (типичное для Flutter-роли; конкретики в посте нет) | История STAR+R | S | T | A | R | Reflection |
|---|---|---|---|---|---|---|---|
| 1 | Опыт диагностики и исправления багов в продакшне | Баг с "Избранное" | Пользователи жаловались, что раздел «Избранное» не открывается | Найти причину и устранить без ухудшения UX | Диагностировала: все товары загружались одним запросом; обсудила с бэкендом; реализовала постраничную загрузку | Жалобы прекратились | Осознала важность обсуждения с бэкенд-командой до реализации фронтенд-фикса, а не только "патчить" на своей стороне |
| 2 | Работа с реактивностью/памятью (типичный сложный Flutter/Vue кейс) | Баг с замыканием в РМК (клавиатура) | Клавиатура переставала работать после навигации | Найти причину утечки/несвежих ссылок | Обнаружила, что реактивная переменная передавалась в глобальный класс биндинга клавиш — старые ссылки не очищались | Исправила, клавиатура стала стабильной | В следующий раз будет закладывать явную очистку ссылок при передаче реактивных объектов в глобальные классы |
| 3 | Портирование/релиз на новую платформу | Android → iOS порт «Здесь Сотрудник»/«Здесь Чат» | Приложения были только под Android | Адаптировать под iOS и выпустить в App Store | Перепривязала Firebase push-токены, собрала iOS-билды, отправила на ревью | Оба приложения успешно вышли в App Store | Поняла ценность заранее продумывать platform-specific различия (push, иконки) вместо доработки постфактум |
| 4 | Дизайн вне зоны фронтенда (UI/UX без дизайнера) | Редизайн кнопки «Избранное» и блока информации о заказе | Не было штатного дизайнера, интерфейс был неудобным | Улучшить UX самостоятельно | Спроектировала более крупную кнопку, компактный блок информации | Стало удобнее в использовании | Осознала, что взятие на себя дизайнерских решений требует более раннего согласования с продуктом, чтобы не переделывать |
| 5 | Опыт с моделями доступа/безопасностью (релевантно банковскому домену) | RBAC-дизайн в ЕКОМ | Нужно было разграничить доступ между отделами (логистика/заказы) | Спроектировать ролевую модель | Спроектировала RBAC, объяснила бэкенд-команде принцип и отличие от других моделей доступа | Модель внедрена, разграничение работает | Поняла ценность профильного ИБ-образования для frontend/mobile ролей в регулируемых доменах (финтех, банкинг) |
| 6 | Внедрение real-time функциональности (WebSocket) | WebSocket-оповещения в РМК | Не было видимости, какие аптеки онлайн | Внедрить систему оповещений в реальном времени | Внедрила WebSocket, добавила статус прочтения | Впервые видно ~1200 аптек онлайн в реальном времени | Осознала, как real-time фичи меняют операционные процессы, а не только UI |
**Рекомендуемый кейс:** RBAC-дизайн в ЕКОМ + баг-фикс «Избранное» — сочетание security-осознанности (релевантно банковскому домену R-Style Softlab) и инженерной дотошности в диагностике продакшн-проблем.
**Вопросы-ловушки:**
- *«Почему решили уйти из Здравсервис?»* — Пока не увольнялась; ответ на случай будущего вопроса: интерес к масштабу и специализации на мобильной разработке в финтех-домене, а не недовольство текущим местом.
- *«Опыта в банковском/финтех домене нет — как справитесь?»* — Ответ: профильное образование по информационной безопасности + самостоятельно спроектированная RBAC-модель — это ровно тот навык, который востребован в регулируемых доменах; готова быстро учиться специфике комплаенса.
- *«Раскажите про формат работы»* — важно уточнить это первым, так как переезд/командировки исключены (см. Блок C выше — критично прояснить).
## G) Проверка легитимности вакансии
**Тир: Proceed with Caution**
| Сигнал | Оценка |
|---|---|
| Качество описания вакансии | **Низкое** — сам пост в Telegram содержит только общее описание компании (skопировано практически без изменений между постами Runello-бота) и название роли; ни стек, ни требования, ни зарплата, ни локация, ни формат работы не раскрыты в публичном превью |
| Легитимность компании (WebSearch) | **Высокая** — R-Style Softlab: аккредитованная ИТ-компания, на рынке с 1994 (32 года), 600+ сотрудников, реальные банковские клиенты (первая версия мобильного приложения Сбера, текущая разработка интернет-банкинга РСХБ), подтверждено независимыми источниками (hh.ru, career.habr.com, Dream Job, softlab.ru) |
| Проверка на повтор (data/scan-history.tsv) | Запись встречается **один раз** (строка со `first_seen: 2026-07-07`, `status: added`) — не переразмещённая вакансия |
| Рыночный контекст роли | Спрос на Flutter-разработчиков стабильный, зарплаты сравнялись с нативными разработчиками (разрыв 5-7% в 2026 vs 20-30% в 2022) — роль соответствует активному сегменту рынка |
| Свежесть | Не подтверждена отдельно (Telegram-пост датирован текущим днём скана, 2026-07-07; отдельная проверка "живости" через ATS API не применима — не ATS-хостинг, а Telegram/бот) |
**Итог:** Компания реальна и заслуживает доверия, но сам пост слишком лаконичен, чтобы подтвердить конкретные условия роли (зарплата, формат, требования). Рекомендуется откликнуться через "Откликнуться" в Runello-боте с прямым запросом полного описания вакансии, прежде чем вкладываться в глубокую подготовку резюме под конкретный стек.
---
## Извлечённые ключевые слова
Flutter, Dart, Mobile Developer, iOS, Android, BLoC, Clean Architecture, Firebase Cloud Messaging, App Store, кроссплатформенная разработка, банковский софт, финтех, R-Style Softlab, автоматизация бизнес-процессов, интернет-банкинг, мобильное приложение, дизайн интерфейсов, багфиксинг, продакшн-стабильность, релиз мобильного приложения, разработка с нуля
+140
View File
@@ -0,0 +1,140 @@
# Evaluación: VK — Старший Frontend-разработчик (React, мессенджер-платформа)
**Fecha:** 2026-07-08
**Arquetipo:** No coincide con ningún arquetipo objetivo (Frontend Vue.js / Flutter / Fullstack Vue+Node) — rol React puro
**Score:** 1.0/5
**Legitimacy:** Suspicious
**URL:** https://getmatch.ru/vacancies/34414-starshii-frontend-razrabotchik?s=offers
**PDF:** not generated — run /career-ops pdf vk to create on demand
**Batch ID:** 1
---
## Machine Summary
```yaml
company: "VK"
role: "Старший Frontend-разработчик (React, мессенджер-платформа)"
score: 1.0
legitimacy_tier: "Suspicious"
archetype: "No target archetype match (React-only role vs Vue.js/Flutter/Fullstack primary archetypes)"
final_decision: "Skip"
hard_stops:
- "Вакансия архивирована — компания больше не рассматривает кандидатов (подтверждено WebFetch снапшотом источника)"
- "Стек — React (hooks, context, state management) — у кандидата нет коммерческого опыта на React; вся специализация в Vue 3"
- "Уровень — JD требует Senior 5+ лет; фактический опыт кандидата ~1.5-2 года (Здравсервис с ноября 2024 + учебный проект ТулГУ 2022)"
soft_gaps:
- "Опыт разработки ботов/мини-приложений для мессенджеров — не встречается в CV"
- "Frontend security hardening (CSP, XSS mitigation) — есть смежный опыт (RBAC-дизайн), но не прямое соответствие"
- "JS SDK разработка, Storybook на уровне библиотек компонентов для внешних потребителей — есть Storybook, но в ином контексте"
top_strengths:
- "Продвинутый TypeScript + тестирование (Vitest, Playwright) переносимо на любой фреймворк, включая React"
- "Проектирование ролевой модели авторизации (RBAC) — смежный опыт для темы 'frontend security'"
risk_level: "High"
confidence: "High"
next_action: "Skip — no aplicar. Vacante archivada y stack/nivel fuera de alcance del perfil objetivo."
```
## A) Resumen del Rol
| Campo | Valor |
|-------|-------|
| Arquetipo detectado | Ninguno de los 3 arquetipos objetivo coincide limpiamente. Es un rol de Frontend puro en **React**, no Vue — fuera de foco del perfil (`config/profile.yml` → archetypes: Frontend Vue.js / Flutter / Fullstack Vue+Node) |
| Domain | Plataforma de mensajería (mini-apps y bots dentro del mensajero de VK) |
| Function | Desarrollo Frontend — construcción de aplicaciones React ejecutadas dentro de un mensajero, integración con SDK de plataforma |
| Seniority | JD pide **Senior, 5+ años**. Nivel natural de la candidata: Middle temprano (~1.5-2 años de experiencia profesional total) |
| Remote | Ambiguo — el listado muestra "Moscú (metro Aeropuerto) | Remoto" simultáneamente; no se puede confirmar si el remoto es full-remote o híbrido con presencia ocasional |
| Team size | No especificado en el JD (VK como compañía: 1000+ empleados, oficinas en 14 ciudades) |
| TL;DR | Rol Senior de React para construir mini-apps de mensajería en VK. Stack (React) no coincide con la especialización de la candidata (Vue 3 + Flutter), la brecha de seniority es de varios años, y — el hallazgo más importante — **la vacante ya está archivada**: la fuente indica explícitamente que la empresa ya no busca candidatos. |
**Vibe команды:** El texto del JD en sí es corto y orientado a stack/responsabilidades técnicas, sin señales cualitativas propias sobre autonomía, mentoring o burocracia — insuficientes datos en el JD para inferir vibe del equipo específico. A nivel compañía (ver Bloque D), las reseñas de empleados de VK son mixtas: aspectos positivos mencionan remoto flexible, poca burocracia y presupuesto para cursos/conferencias; aspectos negativos señalan que las calibraciones de performance review están desconectadas del aporte individual.
## B) Match con CV
| Requisito JD | Match en CV | Línea/fuente |
|---|---|---|
| React (hooks, context, ciclo de vida) | ❌ Sin experiencia — toda la especialización es Vue 3 | cv.md líneas 83-85 (no menciona React) |
| Gestión de estado | 🟡 Parcial — experiencia con Pinia (Vue), no con equivalentes React (Redux/Context/Zustand) | cv.md línea 85 |
| TypeScript avanzado | ✅ Composition API + TS en producción | cv.md líneas 11, 34, 83 |
| ES6+ (async/await, promesas) | ✅ Implícito en stack JS/TS de producción | cv.md línea 83 |
| Vite | ✅ Match directo | cv.md línea 89 ("Сборка и тулинг: Vite") |
| Pruebas automatizadas frontend | ✅ Vitest (unit), Playwright (E2E) | cv.md líneas 91, 45 |
| Componentes modulares reutilizables | 🟡 Transferible — construcción de UI con shadcn-vue, TanStack Table, vue-cal, pero en ecosistema Vue, no React | cv.md línea 85 |
| Optimización en React | ❌ Sin experiencia React específica | — |
| Seguridad frontend | 🟡 Adyacente — diseño de modelo de autorización (RBAC), no hardening específico de frontend (CSP/XSS) | cv.md líneas 37, 101 |
| Desarrollo con APIs REST | ✅ Match directo | cv.md línea 93 |
| Bots/mini-apps para mensajería | ❌ Sin experiencia | — |
| Desarrollo con agentes de IA | ❌ Sin experiencia | — |
| Storybook | ✅ Match directo, aunque en contexto Vue | cv.md línea 91 |
| Creación de JS SDKs | ❌ Sin experiencia | — |
### Gaps y estrategia de mitigación
1. **React (hard blocker).** No hay experiencia comercial en React. La transferencia conceptual (componentes, estado reactivo, ciclo de vida) existe desde Vue, pero para un rol Senior de React esto no es un gap que se pueda "vender" con storytelling — se necesitaría experiencia hands-on real. No hay proyecto de portfolio que lo cubra.
2. **Brecha de seniority (hard blocker).** El JD pide 5+ años; la candidata tiene ~1.5-2 años de experiencia profesional total. No es un nice-to-have — es un requisito duro que normalmente filtra automáticamente en el ATS.
3. **Bots/mini-apps de mensajería (soft gap).** No bloqueante por sí solo, pero se suma a la falta de contexto de plataforma.
4. **Seguridad frontend específica (soft gap).** El ángulo de RBAC/ISS (educación en seguridad de la información) es un diferenciador real, pero no sustituye experiencia en hardening de frontend (CSP, sanitización, XSS) que el JD probablemente evalúa en entrevista técnica.
## C) Nivel y Estrategia
1. **Nivel detectado vs nivel natural:** JD = Senior (5+ años) explícito. Candidata = Middle temprano. La brecha es de varios años y de framework — no es un caso de "casi calza pero falta pulir el pitch".
2. **Plan "vender senior sin mentir":** No aplica de forma creíble aquí. Intentar posicionar la experiencia actual (Vue 3, ~1.5 años, sin React) como Senior React sería fabricar una narrativa no respaldada por `cv.md` — contradice la regla de "keywords se reformulan, nunca se fabrican". No hay ángulo honesto de venta senior para este rol específico.
3. **Plan "si me downlevelan":** No aplica — la vacante no ofrece una versión Middle/Junior de este rol, y de todas formas está archivada.
## D) Comp y Demanda
| Fuente | Dato |
|---|---|
| Listado GetMatch | Desde 300 000 ₽/mes netos |
| enigmai.ru (salarios VK por grado, 2026) | Senior (E5) en VK: 450 000–550 000 ₽; Senior+ hasta 650 000 ₽ con skills de optimización de BD/colas |
| hh.ru (vía Dream Job/quick-offer, 2026) | Mediana Senior Frontend en Moscú: ~287 500 ₽/mes; rango nacional Senior: 230 000–300 000 ₽ (media), 270 000–750 000 ₽ (Habr Career/Dream Job 2025) |
| career.habr.com/companies/vk (reseñas) | Positivo: remoto flexible, poca burocracia, presupuesto para cursos/conferencias, buen DMS. Negativo: calibraciones de performance review vistas como desconectadas del aporte individual; algunas quejas sobre nivel salarial vs competidores en ciertos equipos |
**Score de comp: 5/5** — el salario ofrecido (300k+₽) está muy por encima del rango objetivo de la candidata (100 000–120 000+ ₽, `config/profile.yml`) y es competitivo incluso para el mercado Senior ruso. Sin embargo, este dato es irrelevante en la práctica: la brecha de stack y nivel hace que la candidata no sea una postulante realista para este rol específico, independientemente de cuán atractivo sea el comp.
Sources: [Зарплаты разработчиков в VK в 2026 году](https://enigmai.ru/interview/vk/salary-vk-2026/), [Оценки и отзывы о VK — Хабр Карьера](https://career.habr.com/companies/vk/scores), [Зарплата Старший frontend-разработчик — Dream Job](https://dreamjob.ru/salary/starshiy-frontend-razrabotchik), [Зарплата frontend-разработчика в России 2026](https://quick-offer.ru/news/frontend-developers-salary)
## E) Plan de Personalización
**No recomendado generar CV personalizado para esta vacante** — dado el score (1.0/5) y que la vacante está archivada, no se justifica el esfuerzo de adaptación de CV/LinkedIn. Si en el futuro apareciera una vacante Middle de React (o React+Vue híbrido) activa en VK u otra empresa, los cambios recomendados serían:
| # | Sección | Estado actual | Cambio propuesto | Por qué |
|---|---------|---------------|-------------------|---------|
| 1 | Summary | Enfocado en Vue 3 + Flutter | No aplicaría sin experiencia React real — no inyectar keywords de React sobre experiencia Vue | Evitar fabricar match inexistente |
| 2 | Skills | TS, testing, REST listados | Resaltar TS avanzado, Vitest/Playwright, REST/WebSocket como transferibles | Son los únicos puntos de match genuino |
## F) Plan de Entrevistas
Dado que la vacante está archivada y el gap de stack/nivel es estructural, este bloque se limita a las historias que sí tendrían valor transferible si surgiera una vacante similar pero de nivel Middle:
| # | Requisito del JD | Historia STAR | S | T | A | R |
|---|---|---|---|---|---|---|
| 1 | TypeScript avanzado | Frontend ЕКОМ desde cero | Sistema interno de gestión de pedidos/logística sin frontend previo | Construir frontend completo con TS + Composition API | Definió arquitectura Vue 3 + Pinia + TS desde cero (cv.md L34) | Frontend en producción usado por logística, soporte y clientes |
| 2 | Pruebas automatizadas | Playwright E2E en RMK | Proyecto legacy sin cobertura de tests | Introducir E2E testing | Implementó Playwright E2E (cv.md L45) | Tests en fase de adopción activa |
| 3 | REST/WebSocket | Notificaciones WSS en tiempo real | Sin visibilidad de qué farmacias estaban online | Implementar WebSocket | Diseñó sistema de notificaciones en tiempo real (cv.md L43) | Primera vez que la empresa ve farmacias online + lectura de notificaciones en tiempo real |
| 4 | Seguridad frontend (ángulo adyacente) | Diseño de RBAC en ЕКОМ | Sin separación de acceso entre departamentos | Diseñar modelo de roles | Diseñó y explicó modelo RBAC al equipo backend usando formación en seguridad de la información (cv.md L37) | Modelo de autorización por departamentos en producción |
| 5 | Componentes reutilizables | Calendario de turnos vue-cal | Turnos ingresados manualmente por desarrolladores vía SQL | Construir UI de calendario drag-and-drop | Implementó vue-cal con drag-and-drop (cv.md L35) | Logística gestiona turnos de forma autónoma |
**Case study recomendado (si la entrevista llegara a ocurrir):** ЕКОМ end-to-end (frontend desde cero + RBAC) — es la historia más completa, pero se debe ser transparente desde la primera conversación técnica sobre la ausencia de experiencia en React, dado que es el core del stack del puesto.
**Pregunta red-flag esperada y cómo responder:** "¿Tienes experiencia con React?" → Respuesta honesta: no hay experiencia comercial en React; la especialización es Vue 3, con fundamentos transferibles (componentes, reactividad, TS, testing). No fabricar experiencia que no existe.
## G) Posting Legitimacy
**Assessment: Suspicious**
| Señal | Estado | Detalle |
|---|---|---|
| Estado de la publicación | 🔴 Confirmado cerrado | El snapshot obtenido vía WebFetch indica explícitamente: **"Estado: Vacante archivada (empresa ya no busca candidatos)"** |
| Frescura del posting (días activo, botón Apply) | No verificable en batch mode | Playwright no disponible en modo batch; no se pudo confirmar directamente vía navegador |
| Calidad de la descripción | Normal — específica en stack y responsabilidades, sin relleno genérico excesivo | No es indicativo de fraude, pero es irrelevante dado el cierre confirmado |
| Señales de la empresa (layoffs/freeze) | No se encontraron señales de freeze/layoffs en las búsquedas de comp (Bloque D); VK aparece activamente contratando en otros roles según reseñas recientes | — |
| Repostings | Sin historial previo en `data/scan-history.tsv` para esta URL (única aparición, agregada 2026-07-07 vía canal Telegram) | No aplica detección de repost |
**Context Notes:** El hallazgo dominante de este bloque es el estado "archivada" reportado directamente por la fuente al momento de la consulta (2026-07-08) — esto por sí solo es suficiente para clasificar la publicación como no accionable, independientemente de la calidad del texto del JD. Se recomienda **no aplicar** y no invertir más tiempo en esta oferta.
---
## Keywords extraídas
React, hooks, context API, ciclo de vida de componentes, gestión de estado, TypeScript, ES6+, async/await, promesas, Vite, RESTful API, pruebas automatizadas frontend, componentes modulares reutilizables, sistemas de diseño, optimización de rendimiento React, seguridad frontend, bots de mensajería, mini-aplicaciones, SDK de plataforma, desarrollo con agentes de IA, Storybook, JS SDK, mensajería (VK)
+163
View File
@@ -0,0 +1,163 @@
# Evaluación: Сбер (СберТех) — Frontend-разработчик (Middle)
**Fecha:** 2026-07-08
**Arquetipo:** Frontend Developer (React) — no coincide con arquetipo primario (Vue.js)
**Score:** 1.2/5
**Legitimacy:** Suspicious
**URL:** https://hirehi.ru/development/frontend-razrabotchik-55966
**PDF:** not generated — run /career-ops pdf sber to create on demand
**Batch ID:** 2
**Verification:** unconfirmed (batch mode) — además, la fuente (WebFetch vía hirehi.ru) reporta explícitamente el posting como archivado/cerrado (ver Bloque G)
---
## Machine Summary
```yaml
company: "Сбер (СберТех)"
role: "Frontend-разработчик (Middle)"
score: 1.2
legitimacy_tier: "Suspicious"
archetype: "Frontend Developer (React)"
final_decision: "Skip"
hard_stops:
- "Гибрид в Москве, кандидат не переезжает (Тула, no relocation policy) — жёсткий локационный блокер по modes/_profile.md"
- "Основной стек JD — React + React-Redux (Redux Toolkit), не Vue.js (primary archetype кандидата)"
- "Требуется опыт iOS-разработки на Swift — у кандидата только Flutter cross-platform (не native Swift)"
- "Посадка помечена источником (hirehi.ru) как 'Archived — position no longer accepting applications' (posted 2026-06-25)"
soft_gaps:
- "Нет коммерческого опыта с Oracle/PostgreSQL (только MongoDB, ознакомительный уровень)"
- "Нет опыта с GenAI-моделями / GigaChat / Kandinsky / созданием AI-агентов (указано как бонус, не блокирующее)"
- "Инструменты тестирования не совпадают напрямую: JD просит Jest/Cypress, у кандидата Vitest/Storybook/Playwright (адекватная база, но не 1:1)"
top_strengths:
- "Vite (сборка), Git/GitLab, Feature Branching — прямое совпадение с частью требований по тулингу и процессам"
risk_level: "High"
confidence: "Medium"
next_action: "Не подавать заявку — посадка неактивна по данным скрапинга, и есть 3 независимых жёстких блокера (локация, стек, iOS/Swift)"
```
## A) Resumen del Rol
| Campo | Valor |
|---|---|
| Arquetipo detectado | Frontend Developer (React) — mismatch vs. arquetipo primario del perfil (Vue.js) |
| Domain | Финтех / банкинг (розничные решения, retail banking) |
| Function | Frontend development — команда развивает retail-решения банка (доступность, безопасность, удобство сервиса) |
| Seniority | Middle (JD требует 3+ лет коммерческого опыта) |
| Remote | Гибрид, офис в Москве — НЕ полностью удалённо |
| Team size | Не указан в JD |
| TL;DR | Middle-позиция во frontend-команде Сбера на стеке React/Redux/TypeScript, гибрид в Москве. Не совпадает с профилем кандидата ни по стеку (Vue.js, не React), ни по локации (Тула, без переезда), ни по части требований (iOS Swift). Дополнительно — посадка помечена источником как архивная. |
**Vibe команды:** JD-текст в основном описывает командную миссию ("развивать технологический стек", "формировать техническое сообщество") и стандартный корпоративный бенефит-пакет — сигналов про autonomy/ownership, менторство или гибкость графика в извлечённом тексте недостаточно, чтобы делать выводы. Отзывы сотрудников с Хабр Карьеры (см. Блок D) отмечают раздутую бюрократию и медленные согласования в ряде подразделений — это скорее негативный сигнал по критерию "минимум бюрократии" из `_profile.md`, но относится к компании в целом, не конкретно к этой команде.
## B) Match con CV
| Requisito JD | Match CV | Notas |
|---|---|---|
| 3+ года коммерческого frontend-опыта | ⚠️ Частично | С Здравсервис (Nov 2024–наст.время) + ТулГУ (Mar–Dec 2022, заказная разработка) — суммарно меньше 3 лет непрерывного коммерческого опыта |
| JavaScript, TypeScript | ✅ Match | cv.md: "Языки программирования: JavaScript, TypeScript..." |
| React, React-Redux (Redux Toolkit) | ❌ Gap (hard) | Весь коммерческий опыт кандидата — на Vue 3 (Composition API, Pinia), React не упомянут в cv.md |
| Знание паттернов, алгоритмов и структур данных | ❓ Неизвестно | Не подтверждено явно в cv.md |
| БД: Oracle, PostgreSQL | ❌ Gap | cv.md указывает только MongoDB на "ознакомительном уровне" (хакатон + учебный проект ТулГУ) |
| CI/CD, webpack/vite | ✅ Частичный match | cv.md: "Vite, npm, ESLint, Prettier" + "CI/CD (рабочий опыт)" — webpack не упомянут |
| Confluence/Jira | ❓ Неизвестно | Не упомянуто в cv.md |
| Git | ✅ Match | cv.md: "Git, GitLab, CI/CD (рабочий опыт)" + "Feature Branching (Git Flow)" |
| iOS-разработка на Swift | ❌ Gap (hard) | Кандидат делала iOS-сборки через Flutter (портирование Android→iOS, отправка в App Store) — это НЕ native Swift-разработка |
| Тестирование: Jest (unit), Cypress (e2e) | ⚠️ Частично | cv.md: Vitest (unit), Storybook, Playwright (E2E на РМК) — сопоставимые практики, но не те же инструменты |
| Генеративные AI-модели (компетенция) | ❌ Gap | Не упомянуто в cv.md |
| GigaChat, Kandinsky, создание AI-агентов (бонус) | ❌ Gap | Не упомянуто в cv.md — но обозначено в JD как бонус, не блокер |
### Gaps y estrategia de mitigación
1. **React vs Vue (hard blocker).** Весь продакшн-опыт кандидата — Vue 3/Composition API/Pinia. React и Vue концептуально близки (component-based, reactive state), но это разные экосистемы и разный синтаксис. Adjacent-опыта, покрывающего именно React, нет. Ключевые ATS-фильтры по стеку с высокой вероятностью отсеют профиль на этапе резюме. Митигация: нет реалистичного пути закрыть этот гэп для конкретно этой заявки — честно не подавать, а не пытаться "продать" React-опыт, которого нет.
2. **iOS Swift (hard blocker).** У кандидата есть релевантный, но не идентичный опыт: сборка и релиз iOS-приложений через Flutter (репривязка Firebase push-токенов на iOS, сборка iOS-билдов, отправка в App Store). Это демонстрирует знакомство с iOS release-процессом, но НЕ native Swift-разработку. Митигация: если бы кандидат хотела откликнуться несмотря на это, честная формулировка — "опыт со сборкой/релизом iOS через Flutter, готова осваивать Swift", но это не закрывает hard-требование JD.
3. **Oracle/PostgreSQL (soft gap).** У кандидата только MongoDB на ознакомительном уровне. Frontend-роль обычно не требует глубокого владения БД, но explicit-упоминание в JD говорит о более full-stack-ориентированной команде, чем привычный профиль кандидата.
4. **GenAI/GigaChat/Kandinsky/AI-агенты (soft gap, bonus в JD).** Не блокирующее — JD явно маркирует это как "bonus", не как обязательное требование.
## C) Nivel y Estrategia
**Nivel detectado en JD:** Middle, 3+ года коммерческого опыта.
**Natural level кандидата:** Ближе к Junior+/начинающему Middle — коммерческий опыт с ноября 2024 (около 8 месяцев на момент оценки) плюс более ранняя заказная разработка в ТулГУ (10 месяцев, 2022). Суммарно заметно меньше формальных "3+ лет", которые запрашивает JD.
**Plan "vender senior sin mentir":** Учитывая одновременно (a) реальный разрыв по годам опыта и (b) полное несовпадение стека (React vs Vue) и (c) отсутствие native iOS/Swift — попытка "продать" уровень выше реального здесь не имеет смысла: разрыв не в seniority framing, а в фундаментальном стек-мисматче. Даже при идеальной подаче кандидат не закрывает hard-требования JD.
**Plan "si me downlevelan":** Неприменимо — посадка помечена источником как архивная (см. Блок G), обсуждать downlevel-сценарий преждевременно.
## D) Comp y Demanda
| Fuente | Dato | Nota |
|---|---|---|
| hirehi.ru (оценка ИИ) | ~218 541 ₽ (годовая оценка, вероятно ошибка парсинга/агрегатора) | Формулировка источника нестандартна ("annually"), трактовать с осторожностью |
| enigmai.ru (обзор зарплат разработчиков Сбера, 2026) | Middle на React в 2026 — ориентир ~320 000 ₽/мес | Существенно выше target-диапазона кандидата (100 000–120 000+ ₽/мес) |
| career.habr.com/companies/sbertech/scores | Смешанные отзывы: интересные задачи, достойная оплата — НО раздутая бюрократия, медленные согласования, ограниченная удалёнка в ряде подразделений | [Хабр Карьера — СберТех](https://career.habr.com/companies/sbertech/scores) |
**Score de comp: 4/5** (рыночно комп выше таргета кандидата) — но это второстепенно: комп не компенсирует жёсткие блокеры по локации и стеку ниже.
Sources:
- [Сколько платят разработчикам в Сбере в 2026 году: цифры и грейды | ENIGMA AI](https://enigmai.ru/interview/sber/sber-salary-dev-2026/)
- [Оценки и отзывы сотрудников о компании СберТех за 2026 год — Хабр Карьера](https://career.habr.com/companies/sbertech/scores)
## E) Plan de Personalización
Учитывая рекомендацию SKIP (архивная посадка + множественные hard-блокеры), детальная персонализация CV/LinkedIn для этой заявки не рекомендуется — усилия не окупятся. Если пользователь всё же захочет откликнуться "на будущее" (например, если появится похожая live-вакансия на React в Сбере с полностью удалённым форматом), базовые шаги:
| # | Sección | Estado actual | Cambio propuesto | Por qué |
|---|---------|---------------|-------------------|---------|
| 1 | Summary | Акцент на Vue 3 + Flutter | Явно указать "готова к быстрому переходу на React при сильной базе в Vue/TS" | Снижает риск автоматического отсева по keyword-match, но не отменяет реального гэпа |
| 2 | Skills | Vite упомянут без webpack | Добавить явное "готова к webpack" при наличии | Частичное совпадение по тулингу |
| 3 | Опыт | RBAC-история сформулирована под Vue-контекст | Обобщить формулировку до "проектирование ролевых моделей доступа", без привязки к фреймворку | Переносимый навык вне зависимости от стека |
*Top 5 изменений CV / LinkedIn не прорабатываются детально — см. рекомендацию Skip выше.*
## F) Plan de Entrevistas
Учитывая рекомендацию Skip, глубокая подготовка к интервью не оправдана. Если пользователь всё же продвинется, наиболее переносимые STAR-истории:
| # | Requisito JD | Historia STAR | S | T | A | R |
|---|---|---|---|---|---|---|
| 1 | Знание паттернов/архитектуры | Проектирование RBAC в «Здесь ЕКОМ» | Нужна была модель доступа с разграничением по отделам (логистика/заказы) | Спроектировать и объяснить бэкенд-команде ролевую модель | Использовала профильное ИБ-образование, разработала и защитила модель перед бэкенд-разработчиком | Модель внедрена, отделы видят только релевантные данные |
| 2 | Git/командная работа/процессы | Внедрение Feature Branching на РМК | Legacy-проект без версионирования веток, "зависающие" фичи | Внедрить Git Flow и обучить команду | Настроила процесс в GitLab, обучила коллегу с 11-летним стажем | Команда перешла на стабильные еженедельные релизы |
| 3 | Тестирование | Внедрение Playwright E2E на РМК | Legacy-проект без автотестов | Добавить E2E-покрытие критичных сценариев | Внедрила Playwright, покрытие позитивных/негативных сценариев | Тесты на этапе внедрения, снижение регрессий |
**Case study рекомендуемый:** RBAC-проектирование в «Здесь ЕКОМ» — единственная история, которая универсально переносится вне зависимости от React/Vue-контекста (архитектурное мышление, не синтаксис фреймворка).
**Red-flag вопросы и как отвечать:**
- *"У вас нет коммерческого опыта на React — как быстро вы адаптируетесь?"* — честно: "весь мой опыт на Vue 3/Composition API, но паттерны похожи (component-based, reactive state); готова к обучению, но не могу заявлять готовый React-опыт."
- *"Есть опыт на Swift?"* — честно: "нет native Swift, но есть опыт сборки и релиза iOS-приложений через Flutter, включая отправку в App Store."
## G) Posting Legitimacy
**Batch mode limitations:** Playwright недоступен — точные freshness-сигналы (apply button state, точное число дней) не верифицированы напрямую.
**Доступные сигналы:**
| Señal | Resultado | Fuente |
|---|---|---|
| Статус посадки | **"Archived — position no longer accepting applications"** (posted 2026-06-25) — явно сообщено источником при скрапинге | WebFetch → hirehi.ru |
| Источник посадки | hirehi.ru — агрегатор (AI-估计 оценка зарплаты, "estimated by AI"), не прямой ATS компании | WebFetch |
| Появление в data/scan-history.tsv | Добавлена 2026-07-07 через источник "telegram-api" (Telegram-канал "Javascript jobs Vue/React/Angular") — вторичный агрегатор, не первоисточник | data/scan-history.tsv |
| Качество описания JD | Средняя специфичность: есть конкретные требования по стеку и обязанностям, но общее описание команды шаблонное ("развивать технологический стек", "формировать сообщество") | Анализ текста JD |
| Company hiring signals | Нет признаков заморозки найма/увольнений у Сбера; компания активно фигурирует в scan-history с несколькими открытыми frontend-позициями (rabota.sber.ru) | data/scan-history.tsv + Блок D |
**Assessment: Suspicious.** Явный сигнал "archived / no longer accepting applications" от источника — это не типичная batch-mode неопределённость (когда просто нет данных), а прямое утверждение о закрытии посадки. В сочетании с тем, что запись пришла через вторичный Telegram-агрегатор, а не напрямую с rabota.sber.ru или карьерной страницы Сбера, уверенности в актуальности недостаточно для более высокого тира.
---
## Score Global
| Dimensión | Score |
|---|---|
| Match con CV | 2.0/5 |
| Alineación North Star | 1.0/5 |
| Comp | 4.0/5 |
| Señales culturales | 3.0/5 |
| Red flags | -2 (гибрид Москва/без переезда — жёсткий блокер по modes/_profile.md; посадка архивна; стек React не Vue; iOS Swift не Flutter) |
| **Global** | **1.2/5** |
**Рекомендация: SKIP.** Три независимых жёстких блокера (локация, стек, iOS/Swift) плюс явный сигнал о закрытии посадки. Не подавать заявку.
---
## Keywords extraídas
React, React-Redux, Redux Toolkit, TypeScript, JavaScript, Oracle, PostgreSQL, CI/CD, webpack, Vite, Confluence, Jira, Git, iOS, Swift, Jest, Cypress, генеративные модели, GigaChat, Kandinsky, AI-агенты, retail-решения, гибрид, Москва
+148
View File
@@ -0,0 +1,148 @@
# Evaluación: Т-Банк — Frontend Developer (React)
**Fecha:** 2026-07-08
**Arquetipo:** Frontend Developer (React) — off-archetype (primary del candidato es Vue.js)
**Score:** 1.2/5
**Legitimacy:** High Confidence
**URL:** https://hh.ru/vacancy/133056126?query=frontend&hhtmFrom=vacancy_search_list
**PDF:** not generated — run /career-ops pdf t-bank to create on demand
**Batch ID:** 4
---
## Machine Summary
```yaml
company: "Т-Банк"
role: "Frontend Developer (React)"
score: 1.2
legitimacy_tier: "High Confidence"
archetype: "Frontend Developer (React) — off-archetype"
final_decision: "Skip"
hard_stops:
- "Офис/гибрид в Казани — требует переезда, кандидат переезд не рассматривает (жёсткая политика локации)"
- "Требуемый опыт 3-6 лет (Middle-Senior) — у кандидата ~1.5-2 года коммерческого опыта"
- "Основной стек — React, у кандидата нет коммерческого опыта на React (только Vue 3)"
soft_gaps:
- "Node.js указан как plus — у кандидата только ознакомительный уровень (учебный проект + хакатон)"
top_strengths:
- "Крепкие JS/TypeScript основы и опыт unit/e2e тестирования (Vitest, Playwright) переносимы на любой фреймворк"
risk_level: "Low"
confidence: "High"
next_action: "Не применять; при появлении Vue-вакансии в Туле/удалённо у Т-Банка — переоценить"
```
## A) Resumen del Rol
| Campo | Valor |
|---|---|
| Arquetipo detectado | Frontend Developer (React) — no coincide con ninguno de los 3 arquetipos objetivo del candidato (Vue.js, Flutter, Fullstack Vue+Node) |
| Domain | Fintech / Banking (Т-Банк, ex-Тинькофф) |
| Function | Frontend Developer |
| Seniority | Middle-Senior (3-6 años de experiencia requeridos) |
| Remote | No — гибрид/офис en Kazan (ул. Спартаковская, 6) |
| Team size | No especificado en el JD |
| TL;DR | Vacante de Frontend en React para el hub de Kazan de Т-Банк. Choca con tres restricciones duras del candidato: stack (React, no Vue), ubicación (requiere reubicación desde Тула) y seniority (3-6 años vs. ~1.5-2 años reales). |
**Vibe команды (сигнал из JD, не подтверждённый факт):** JD упоминает платформу обучения T-Upgrade с курсами и менторством — это позитивный сигнал в пользу инвестиций в рост сотрудников. По формулировкам JD сложно судить об уровне автономии/bureaucратии — недостаточно данных в тексте вакансии, стоит уточнять на собеседовании. (Внешние отзывы о бюрократии в компании — см. Блок D — не относятся напрямую к этой команде.)
## B) Match con CV
| Requisito JD | Match en CV | Estado |
|---|---|---|
| Strong JavaScript | cv.md:83 — «Языки программирования: JavaScript, TypeScript...» | ✅ Match |
| React experience | Sin referencia en cv.md — стек кандидата: Vue 3, Composition API, Pinia (cv.md:85) | ❌ Gap crítico |
| TypeScript | cv.md:83, cv.md:85 — TypeScript в связке с Composition API | ✅ Match |
| Modern web dev stack | cv.md:85, cv.md:89 — Vite, ESLint, Prettier, Tailwind, shadcn | ⚠️ Match parcial (tooling sí, framework no) |
| CI/CD (GitLab) | cv.md:99 — «Git, GitLab, CI/CD (рабочий опыт)»; cv.md:46 — внедрила Feature Branching в GitLab | ✅ Match |
| Unit testing | cv.md:91 — Vitest (unit-тесты Vue-компонентов), Playwright E2E на РМК | ✅ Match (metodología transferible, sin React Testing Library) |
| Node.js | cv.md:95 — «Backend (ознакомительный уровень): Node.js, Express, MongoDB» (проект ТулГУ + хакатон) | ⚠️ Match débil — nivel introductorio |
| Distributed teams | cv.md:105 — кросс-командное взаимодействие (логистика, бэкенд, техподдержка, отдел работы с клиентами) | ✅ Match |
| 3-6 años de experiencia | Experiencia comercial desde nov. 2024 (~8 meses en rol actual) + proyecto freelance TulGU 2022 (~10 meses) + hackathon | ❌ Gap crítico |
### Gaps y estrategia de mitigación
1. **React (hard blocker)**
- ¿Bloqueador duro o nice-to-have? Duro — es el requisito técnico central del puesto, no un plus.
- ¿Experiencia adyacente demostrable? Sí parcialmente: Composition API (Vue) y hooks (React) comparten filosofía reactiva declarativa, y el candidato tiene fundamentos sólidos de JS/TS que son agnósticos de framework.
- ¿Proyecto de portfolio que cubra el gap? No — todo el trabajo comercial documentado en cv.md es Vue 3 o Flutter.
- Plan de mitigación: no hay mitigación realista para un puesto que exige React como stack principal con 3-6 años de experiencia — el candidato tendría que aprender React en el puesto, lo cual no es lo que la vacante busca a ese nivel de seniority.
2. **Seniority — 3-6 años requeridos (hard blocker)**
- ¿Duro o nice-to-have? Duro — está explícito en el JD como rango de experiencia.
- ¿Experiencia adyacente? El candidato ha tenido responsabilidad de alto impacto en poco tiempo (frontend de ЕКОМ desde cero, diseño de RBAC, mentoría a colega con 11 años de antigüedad) — argumento de "profundidad sobre años", pero no cierra una brecha de 1.5-4.5 años frente a un filtro mecánico de ATS/RRHH.
- Plan de mitigación: ninguno realista a corto plazo.
3. **Ubicación — Kazan, requiere reubicación (hard blocker de política, no de JD)**
- Según `modes/_profile.md`: *"Hybrid/office roles requiring relocation outside Тула... score 1.0 — this is a hard constraint, not a soft preference."*
- El candidato explícitamente no considera reubicación ni viajes de negocio (cv.md:119-120).
- Plan de mitigación: ninguno — es una restricción no negociable de política, no un gap de habilidades.
## C) Nivel y Estrategia
- **Nivel detectado en el JD:** Middle-Senior (3-6 años).
- **Nivel natural del candidato:** Junior alto / Middle en ascenso — primer rol comercial full-time desde noviembre 2024 (~8 meses), con antecedente de desarrollo freelance/académico (TulGU, 2022, ~10 meses) y un hackathon.
- **Plan "vender senior sin mentir":** Posible pero insuficiente para este caso — se podría enfatizar ownership real (diseñó el frontend de ЕКОМ desde cero, diseñó el modelo RBAC y lo explicó al equipo de backend, entrenó a un colega con 11 años de antigüedad en control de versiones) como evidencia de juicio de nivel senior pese a la antigüedad corta. Sin embargo, la brecha de framework (React vs. Vue) hace que este argumento no sea suficiente por sí solo — un filtro de React + 3-6 años suele ser mecánico en bancos grandes como Т-Банк.
- **Plan "si me downlevelan":** No aplica — este JD no ofrece una banda de seniority más baja; el mismatch es hacia arriba (JD pide más experiencia de la que el candidato tiene), no hacia abajo.
## D) Comp y Demanda
| Fuente | Dato |
|---|---|
| JD | Salario no especificado — "se discute en la entrevista" |
| WebSearch (dreamjob.ru, getgrade.ru, habr career) | Salarios de frontend en Т-Банк descritos como competitivos, a nivel de mercado o superior al incluir bonos anuales; la empresa es descrita como uno de los reclutadores más agresivos del mercado fintech ruso en 2026 |
| Reseñas de empleados | Aspectos positivos: proceso de promoción transparente, gestores receptivos, compensación de comidas/oficina. Aspectos negativos: burocracia, quejas de indexación salarial (mayormente de roles no-dev) |
**Score de comp: 3/5** — probablemente a nivel de mercado o ligeramente por encima, pero sin cifra confirmada en el JD; Kazan tiene costo de vida menor que Moscú, lo cual podría implicar banda salarial algo menor que en la sede central.
## E) Plan de Personalización
Dado que este rol tiene tres bloqueadores duros (stack, seniority, ubicación), **no se recomienda invertir en personalización de CV/LinkedIn para esta vacante específica.** Se documentan los cambios que se harían solo por completitud del proceso:
| # | Sección | Estado actual | Cambio propuesto | Por qué |
|---|---|---|---|---|
| 1 | Summary | Enfatiza Vue 3 + Flutter | Reescribir enfatizando JS/TS fundamentals y adaptabilidad de framework | Para intentar pasar el primer filtro de keywords |
| 2 | Skills | Vue 3 listado primero | No aplicable — no hay React real que destacar | No inventar experiencia no existente |
| 3 | Experiencia | Bullets en términos de Vue/Composition API | Reformular en vocabulario JS agnóstico donde sea honesto (ej. "component-based reactive UI") | Suaviza el mismatch sin fabricar |
**Top 5 cambios al CV:** no recomendado dado el score.
**Top 5 cambios a LinkedIn:** no recomendado dado el score.
## F) Plan de Entrevistas
STAR stories disponibles si el candidato decidiera aplicar de todos modos (por ejemplo, si está dispuesta a reconsiderar reubicación o si aparece un rol remoto React en el futuro):
| # | Requisito del JD | Historia STAR | S | T | A | R |
|---|---|---|---|---|---|---|
| 1 | Modern web dev stack / component architecture | Frontend de ЕКОМ desde cero | Necesidad de sistema interno de gestión de pedidos/logística | Construir frontend completo | Vue 3 + Composition API + TS + Pinia + Vite, desde arquitectura hasta despliegue | Sistema en uso activo por logística, soporte y desarrollo (cv.md:33-38) |
| 2 | Distributed teams / cross-functional work | Diseño del modelo RBAC | Necesidad de separar accesos entre departamentos | Diseñar y explicar el modelo de roles al equipo de backend | Aplicó fundamentos de su formación en seguridad de la información | Modelo implementado y adoptado (cv.md:37) |
| 3 | CI/CD (GitLab) | Introducción de Feature Branching | Releases inestables, features "colgadas" | Implementar Git Flow y capacitar a un colega senior | Enseñó control de versiones a colega con 11 años de antigüedad | Equipo pasó a releases semanales estables (cv.md:46) |
| 4 | Unit testing | Implementación de Playwright E2E | Falta de cobertura de pruebas en proyecto legacy (РМК) | Introducir tests E2E | Playwright, en fase de adopción activa | Proceso de QA más confiable (cv.md:45) |
| 5 | Debugging complejo / calidad de código | Bug de closures en РМК | Teclado dejaba de responder tras uso prolongado | Diagnosticar variable reactiva atrapada en clase global | Identificó la causa raíz y corrigió el binding | Bug resuelto, ~20 bugs corregidos en el mismo proyecto (cv.md:42) |
| 6 | Node.js (nice-to-have) | Proyecto de hackathon TulaHack.Digital | App con filtrado de recetas por ingredientes | Construir backend ligero | Express + Node.js + MongoDB | App funcional entregada en el hackathon (cv.md:63-64) |
**Case study recomendado (si aplicara):** ЕКОМ — diseño de RBAC, por ser el diferenciador único frente a otros candidatos frontend.
**Preguntas red-flag y cómo responderlas:**
- *"Vemos que tu experiencia es en Vue, no React — ¿por qué deberíamos considerarte?"* → Honestidad directa: framework distinto, pero fundamentos de JS/TS/testing/CI transferibles; no minimizar la brecha.
- *"¿Estarías dispuesta a mudarte a Kazan?"* → Respuesta honesta según política del candidato: no reubicación, solo remoto o híbrido en Tula — esto probablemente termina el proceso aquí, y está bien que así sea.
## G) Posting Legitimacy
**Assessment: High Confidence**
| Señal | Resultado |
|---|---|
| Especificidad de la descripción | Alta — dirección física exacta, horario 5/2, beneficios detallados (T-Upgrade, seguro dental, compensación deportiva/comida), rango de experiencia explícito. No es boilerplate genérico. |
| Empresa | Т-Банк (ex-Тинькофф) — banco/fintech grande y verificable, no hay señales de estafa |
| Reposting / historial | `data/scan-history.tsv` muestra que esta misma URL ya fue escaneada el 2026-07-07 (fuente: telegram-api). Además, Т-Банк tiene múltiples vacantes de Frontend activas simultáneamente (React y Angular en Moscú, más esta en Kazan) escaneadas el 2026-07-06 — consistente con contratación activa a gran escala, no con un posting fantasma o abandonado. |
| Freshness de la publicación | No verificado (batch mode) — Playwright no disponible en este contexto; no se pudo confirmar el estado exacto del botón "Responder" ni días desde publicación |
| Señales de mercado / despidos | No se encontraron señales de freeze o layoffs en la búsqueda de comp (Bloque D) |
**Nota:** posting freshness unverified (batch mode) — el resto de señales (especificidad, empresa verificable, contratación activa multi-rol) son consistentes con una vacante real y activa.
---
## Keywords extraídas
React, JavaScript, TypeScript, CI/CD, GitLab, Node.js, unit testing, distributed teams, client-facing interfaces, internal tools, modern web stack, Kazan, hybrid, 5/2 schedule, T-Upgrade, banking, fintech, high-load interfaces, code review, mentoring, scalable products
+143
View File
@@ -0,0 +1,143 @@
# Оценка: Exness — Frontend Software Engineer (Bootcamp)
**Дата:** 2026-07-08
**Архетип:** Frontend Developer (Vue.js) — ближайший из профиля кандидата; фактический стек вакансии — React/TypeScript
**Балл:** 1.0/5
**Legitimacy:** High Confidence
**URL:** https://getmatch.ru/vacancies/35037-frontend-software-engineer-bootcamp?s=offers
**PDF:** not generated — run /career-ops pdf exness to create on demand
**Batch ID:** 5
> **Дубликат:** Эта вакансия (тот же ID 35037) уже оценивалась 2026-07-07 как отчёт [055](055-exness-2026-07-07.md), балл 1.0/5. `data/scan-history.tsv` подтверждает первое появление 2026-07-07 (источник: telegram-api). Сегодняшний батч (2026-07-08) снова забрал тот же URL — репост/повторное появление в scan, а не новая вакансия. Выводы ниже идентичны отчёту 055: ничего в JD, локационной политике кандидата или стеке не изменилось за сутки.
---
## Machine Summary
```yaml
company: "Exness"
role: "Frontend Software Engineer (Bootcamp)"
score: 1.0
legitimacy_tier: "High Confidence"
archetype: "Frontend Developer (Vue.js)"
final_decision: "Skip"
hard_stops:
- "Office-based in Limassol, Cyprus; JD requires candidates already residing in Cyprus — candidate's location policy excludes relocation and business travel"
- "Primary stack is React/TypeScript; candidate's production experience is Vue 3 (Composition API, Pinia), no commercial React experience"
soft_gaps:
- "Requires 3+ years professional experience; candidate has under 2 years commercial experience (since Nov 2024, plus ~10 months contract work in 2022)"
- "English B2 minimum required; candidate CV states B1"
top_strengths:
- "TypeScript proficiency and testing-tool overlap (Vitest/Playwright are direct analogues of required Jest/Vitest/Playwright)"
risk_level: "Low"
confidence: "High"
next_action: "Skip — do not apply. Duplicate of report 055 (same posting, same conclusions); no new information changes the recommendation."
```
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (профильный) | Frontend Developer (Vue.js) — ближайший к профилю кандидата, но стек не совпадает (JD — React, не Vue) |
| Domain | Fintech / trading broker (Exness) |
| Function | Build — доставка продуктовых фич |
| Seniority | Middle (де-факто требует 3+ года коммерческого опыта; "Bootcamp" — программа для миддлов, не джуниоров) |
| Формат работы | **Офис, Лимасол, Кипр.** В JD прямо указано требование "open to candidates currently living in Cyprus" — удалённого формата нет |
| Размер команды | Не указан |
| Оформление | Не ТК РФ — кипрский работодатель |
| TL;DR | Офисная позиция в Лимасоле (Кипр) для React/TS-инженера с 3+ годами опыта в ротационной bootcamp-программе Exness — не подходит кандидату по локации (Тула, без переезда) и по стеку (React, не Vue) |
**Уточнение по названию:** "Bootcamp" — не образовательный курс, а внутреннее название мульти-ротационной инженерной программы Exness (участники работают в разных продуктовых командах перед постоянным назначением). Полноценная штатная позиция, зарплата от €4500/мес gross, не стажировка.
**Vibe команды:** Судя по формулировкам JD (ротация между продуктами, "unlimited learning opportunities", код-ревью как часть процесса, работа в паре с UX/UI-дизайнерами) — команда выглядит структурированной и инвестирующей в рост инженера. Недостаточно данных о степени автономии/бюрократии внутри продуктовых команд после ротации — не первоочередной вопрос при отсутствующей локационной применимости.
## B) Совпадение с CV
**Причина низкого балла — не в квалификации, а в жёстком ограничении по локации и формату работы (см. Блок C).**
| Требование JD | Совпадение с CV |
|---|---|
| 3+ года коммерческого опыта | ❌ Не закрыто. Коммерческий опыт кандидата — с ноября 2024 («Здравсервис») + ~10 мес. заказной разработки в 2022 (ТулГУ). Итого меньше 2 лет |
| React (продвинутый) | ❌ Не закрыто. Кандидат работает на Vue 3 (Composition API, Pinia); React в CV не упомянут |
| TypeScript | ✅ Закрыто: «Здесь ЕКОМ» — Vue 3, Composition API, **TypeScript**, Pinia |
| CSS + препроцессоры | ✅ Частично: Tailwind CSS, shadcn/shadcn-vue в опыте; классические препроцессоры (Sass/Less) не упомянуты |
| Тестирование: Jest, Vitest, Playwright | ✅ Хорошее совпадение: Vitest (unit-тесты Vue-компонентов), Playwright (E2E на РМК). Jest не упомянут, но Vitest — прямой аналог |
| Code review, документирование | ✅ Закрыто: внедрение Feature Branching, обучение коллеги, документирование процессов |
| Английский B2 минимум | ⚠️ Пробел: у кандидата B1 по CV |
**Пробелы:**
1. **Локация/формат работы — hard blocker.** Офис в Лимасоле, требование уже проживать на Кипре. `modes/_profile.md` фиксирует: переезд и командировки не рассматриваются. Не закрывается никакой аргументацией.
2. **Стек (React vs Vue) — hard blocker для этой конкретной роли.** Нет коммерческого опыта на React в CV.
3. **Опыт (3+ года) — soft blocker**, вторичен на фоне пунктов 1-2.
4. **Английский (B2 vs B1)** — soft gap, не первоочередной при наличии двух hard blockers.
## C) Уровень и стратегия
**Причина оценки 1.0/5 — правило локации из `modes/_profile.md` (Your Location Policy):**
> "On-site-only roles outside Тула with no remote option: score 1.0" — жёсткое ограничение, не мягкое предпочтение.
Вакансия — офисная позиция в Лимасоле (Кипр), явно требующая, чтобы кандидат уже проживал на Кипре, без опции удалённой работы. Кандидат живёт в Туле, Россия; политика кандидата: "Переезд: нет. Командировки: нет." Это даёт 1.0/5 независимо от качества компании, зарплаты или совпадения по стеку.
**План "продать senior без обмана":** Неприменимо — оценка блокируется на этапе локации.
**План "если понизят уровень":** Неприменимо по той же причине.
**Рекомендация:** Не откликаться. Даже если бы кандидат теоретически пересмотрела политику переезда, потребовался бы переход на React — коммерческого опыта, закрывающего этот пробел, сейчас нет.
## D) Компенсация и спрос
| Параметр | Значение |
|---|---|
| Зарплата (JD) | От €4500/мес **gross**, финальная сумма зависит от налоговой специфики и грейда, определяемого на интервью |
| Валюта | EUR — далеко выше диапазона в `config/profile.yml` (100-120k+ ₽/мес на руки ≈ €1000-1200/мес), но нерелевантно при hard-блокере по локации |
| Бенефиты | ДМС с покрытием семьи, неограниченное обучение, 21 день отпуска, служебный автомобиль (MINI Cooper), спортклубы, налоговые льготы для экспатов |
| Оформление | Кипрский трудовой контракт (не ТК РФ) |
| Репутация компании | Exness — крупный форекс-брокер, рейтинг 4.6/5 на Glassdoor (179 отзывов), Great Place to Work® (Кипр, 2022-2023). Компания реальна, найм активен |
**Вывод:** Компенсация и бенефиты объективно сильные для рынка Кипра/EU, но нерелевантны для кандидата — валюта, юрисдикция и офисный формат в другой стране делают сравнение с целевым диапазоном (RUB, Тула) бессмысленным.
## E) План персонализации
Неприменимо — при балле 1.0/5 персонализация CV/сопроводительного не рекомендуется. Hard-блокер по локации не устраняется правкой резюме.
## F) План собеседований
Неприменимо — согласно "Ethical Use", при балле ниже 4.0/5 отклик не рекомендуется; при 1.0/5 подготовка к интервью не имеет смысла. Время лучше инвестировать в вакансии, подходящие по локации/стеку (Vue-роли, удалённые или в Туле).
## G) Легитимность вакансии (Posting Legitimacy)
**Tier: High Confidence**
Сигналы:
- **Качество описания:** JD подробный, структурированный, с конкретными техническими требованиями, чёткой зарплатной вилкой и детальным списком бенефитов — профиль крупного корпоративного работодателя.
- **Наём компании подтверждён:** Exness — известный форекс-брокер, множественные независимые публикации о найме Frontend Software Engineer в Лимасоле, рейтинг Glassdoor 4.6/5, Great Place to Work.
- **Репост подтверждён:** `data/scan-history.tsv` содержит запись `35037-frontend-software-engineer-bootcamp` с датой первого появления 2026-07-07 (источник telegram-api). Тот же URL повторно попал в батч 2026-07-08 (сегодня) — классический сигнал репоста/повторного индексирования той же активной вакансии, не новая позиция и не тревожный сигнал сам по себе.
- **Рыночный контекст роли:** "Bootcamp"/ротационные инженерные программы у крупных финтех-компаний — стандартная практика, не тревожный сигнал.
- **Свежесть (freshness):** Не проверялась через Playwright (batch-режим); содержание доступно и полно через WebFetch, что согласуется с активным статусом.
**Итог:** Вакансия выглядит подлинной и активной. Единственная причина низкой оценки для кандидата — несовпадение по локации/формату работы и стеку, не признаки мошенничества.
---
## Извлечённые ключевые слова
1. Frontend Software Engineer
2. React
3. TypeScript
4. Flow
5. JavaScript (ES6+)
6. CSS preprocessors
7. Jest
8. Vitest
9. Playwright
10. Code review
11. UX/UI collaboration
12. Bootcamp / rotational program
13. Fintech
14. Trading platform
15. Limassol, Cyprus
16. Bachelor's/Master's degree Computer Science
17. English B2
18. Testing automation
19. Documentation
20. Clean code
+58
View File
@@ -0,0 +1,58 @@
# Оценка: РТК-ЦОД — Ведущий фронтенд-разработчик (React)
**Дата:** 2026-07-08
**Архетип:** Frontend-разработчик (React / Next.js / GraphQL) — НЕ входит в целевые архетипы кандидата. Ближайшие: Frontend Developer (Vue.js) [primary], Fullstack Developer (Vue + Node.js) [adjacent]
**Балл:** 1.8/5
**Legitimacy:** High Confidence
**URL:** https://career.habr.com/vacancies/1000167021
**PDF:** not generated — duplicate of report 056; run /career-ops pdf rtk-tsod to create on demand
**Batch ID:** 6
---
## ⚠️ Дубликат обнаружен
Эта вакансия (тот же URL, та же компания, та же роль, идентичный текст JD) уже полностью оценена в **[отчёте 056](056-rtk-tsod-2026-07-07.md)** от 2026-07-07 — на день раньше этого batch-запуска. JD, полученный через WebFetch для batch ID 6, совпадает с JD, использованным в отчёте 056: РТК-ЦОД, «Ведущий фронтенд-разработчик (React)», стек React/TypeScript/Next.js/GraphQL/Apollo/Strapi, диапазон сопоставимых зарплат 280 000–437 000 ₽ gross, формат «гибрид или удалённо» в Москве.
Полная A-G оценка не дублируется здесь — все выводы отчёта 056 остаются в силе без изменений:
- **Балл:** 1.8/5 (не изменился)
- **Ключевые блокеры:** роль требует уверенное коммерческое владение React — у кандидата нет ни одного проекта на React (весь опыт — Vue 3 Composition API + Flutter); нет коммерческого опыта Next.js/SSR (только «быстро осваиваю: Nuxt», непроверенный); нет опыта GraphQL (опыт кандидата — REST + WebSocket)
- **Уровень:** JD ищет Senior/Lead с самостоятельным ownership архитектуры в двух продуктовых зонах; естественный уровень кандидата — Middle, ~8 месяцев коммерческого опыта на момент оценки
- **Комп:** диапазон значительно выше целевого кандидата (100 000–120 000+ ₽ на руки), но практически недостижим при текущем технологическом разрыве — компания нанимает на подтверждённую экспертизу, не на потенциал
- **Легитимность:** High Confidence — компания реальна и активно нанимает (РТК-ЦОД, дочка Ростелекома), детальное описание вакансии, комп согласуется с рыночными данными
- **Рекомендация:** не откликаться
Полный текст блоков A-G, включая таблицу совпадения с CV, план собеседований (STAR+R истории) и разбор легитимности вакансии — см. **[reports/056-rtk-tsod-2026-07-07.md](056-rtk-tsod-2026-07-07.md)**.
**Действие по трекеру (batch ID 6):** отдельная строка TSV для этого batch ID **не создана**. Компания+роль уже представлены записью `batch/tracker-additions/056-rtk-tsod.tsv`, ожидающей merge через `merge-tracker.mjs`. `merge-tracker.mjs` проверяет дубликаты только против уже смерженных строк `data/applications.md` — не против других файлов в `tracker-additions/` из того же прогона — поэтому запись второй TSV для той же компании+роли создала бы дублирующуюся строку в трекере при следующем merge. Согласно правилу проекта («NEVER create new entries in applications.md if company+role already exists»), для batch ID 6 трекер не трогается; запись 056 покрывает эту вакансию.
---
## Machine Summary
```yaml
company: "РТК-ЦОД"
role: "Ведущий фронтенд-разработчик (React)"
score: 1.8
legitimacy_tier: "High Confidence"
archetype: "Frontend-разработчик (React/Next.js/GraphQL) — вне целевых архетипов кандидата"
final_decision: "Skip"
hard_stops:
- "Нет коммерческого опыта React — JD требует уверенное владение для Lead-позиции"
- "Нет коммерческого опыта Next.js/SSR"
- "Нет опыта GraphQL"
- "Уровень роли Senior/Lead vs естественный уровень кандидата Middle"
soft_gaps: []
top_strengths:
- "Сильный JS/TS фундамент и компонентное архитектурное мышление (Vue 3 Composition API), переносимое концептуально на React, но не заменяющее продакшн-опыт"
risk_level: "Low"
confidence: "High"
next_action: "Не откликаться. Дубликат отчёта 056 — решение подтверждено повторно, трекер не дублируется (см. отчёт 056)."
```
---
## Извлечённые ключевые слова
JavaScript, TypeScript, React, Next.js, GraphQL, Apollo Client, HTML5, CSS3, Git, unit-тестирование, компонентное тестирование, hooks, state management, интеграция API, DevTools, отладка (debugging), frontend-архитектура, server-side rendering (SSR), headless CMS, Strapi, UI Kit, личный кабинет
@@ -0,0 +1,140 @@
# Evaluación: Т-Банк — Frontend-разработчик React (Junior)
**Fecha:** 2026-07-08
**Arquetipo:** Frontend Developer (React) — off-archetype (primary del candidato es Vue.js)
**Score:** 1.7/5
**Legitimacy:** Proceed with Caution
**URL:** https://hh.ru/vacancy/119867578?query=frontend&hhtmFrom=vacancy_search_list
**PDF:** not generated — run /career-ops pdf t-bank-react-junior-perm to create on demand
**Batch ID:** 7
---
## Machine Summary
```yaml
company: "Т-Банк"
role: "Frontend-разработчик React (Junior)"
score: 1.7
legitimacy_tier: "Proceed with Caution"
archetype: "Frontend Developer (React) — off-archetype"
final_decision: "Skip"
hard_stops:
- "Основной стек — React, у кандидата нет коммерческого опыта на React (только Vue 3, её primary архетип)"
soft_gaps:
- "Уровень Junior — ниже фактического уровня ответственности кандидата (владеет продуктами end-to-end, спроектировала RBAC-модель); junior-компенсация вероятно ниже минимума кандидата (100 000 ₽/мес)"
- "JD крайне лаконичен (нет команды, нет зарплаты, нет деталей о проекте) — сложно оценить реальный контекст роли"
top_strengths:
- "Крепкие JS/TypeScript основы и опыт компонентной архитектуры (Vue 3 Composition API), переносимые на React"
risk_level: "Low"
confidence: "Medium"
next_action: "Не применять; при появлении вакансии на Vue в продуктовых командах Т-Банка (удалённо) — переоценить"
```
## A) Resumen del Rol
| Campo | Valor |
|---|---|
| Arquetipo detectado | Frontend Developer (React) — no coincide con ninguno de los 3 arquetipos objetivo de la candidata (Vue.js, Flutter, Fullstack Vue+Node) |
| Domain | Fintech / Banking (Т-Банк — productos que abarcan banca, viajes, inversiones, entretenimiento, educación) |
| Function | Frontend Developer — interfaces cliente e internas + herramientas de soporte |
| Seniority | Junior (mínimo 1 año de experiencia comercial en JS) |
| Remote | Sí — "на месте работодателя или удалённо" (oficina en Perm, ул. Куйбышева, 95Б, o remoto) |
| Team size | No especificado en el JD; solo se menciona que la comunidad React de la empresa supera los 350 desarrolladores |
| TL;DR | Vacante Junior de Frontend React en el hub de Perm de Т-Банк, con opción remota explícita. La ubicación no es bloqueo (a diferencia de otras vacantes de Т-Банк evaluadas previamente), pero el stack (React, no Vue) sigue siendo un choque directo con el archetype primario de la candidata, y el nivel Junior está por debajo de su alcance real de responsabilidad. |
**Vibe команды (сигнал из JD, не подтверждённый факт):** JD крайне лаконичен — упоминает только "внедрение новых технологий и практик" и "постоянное обучение и повышение квалификации" как часть обязанностей, а также поддержку менторства и платформу "Т-Банк Апгрейд" в бенефитах. Это слабый позитивный сигнал в пользу культуры обучения, но текста недостаточно, чтобы судить об автономии, бюрократии или гибкости — стоит уточнять на собеседовании. Внешние отзывы о бюрократии в компании (см. Блок D) касаются организации в целом, не конкретно этой команды в Perm.
## B) Match con CV
| Requisito JD | Match en CV | Estado |
|---|---|---|
| Опыт коммерческой frontend-разработки с JavaScript от 1 года | cv.md:16-17, 33-51 — с ноября 2024 в «Здравсервис» (~1 год 8 мес.) + фриланс-проект ТулГУ 2022 (~10 мес.) | ✅ Match (con margen amplio) |
| Высшее образование по техническому направлению | cv.md:68-71 — ТулГУ, Институт прикладной математики и компьютерных наук, «Информационная безопасность автоматизированных систем» | ✅ Match |
| React | Sin referencia en cv.md — стек кандидата: Vue 3, Composition API, Pinia (cv.md:85) | ❌ Gap crítico |
| Node.js | cv.md:95 — «Backend (ознакомительный уровень): Node.js, Express, MongoDB» (проект ТулГУ + хакатон) | ⚠️ Match débil — nivel introductorio |
| UI-Kit / librerías internas | cv.md:85 — experiencia con shadcn/shadcn-vue, Tailwind CSS (kits de componentes, aunque no el UI-Kit propietario de Т-Банк) | ⚠️ Match parcial — patrón transferible, no la librería específica |
| Разработка клиентских и внутренних интерфейсов | cv.md:21-38 — desarrolló desde cero el frontend de ЕКОМ (interfaz interna) y trabajó en «Здесь Аптека» (app cliente) | ✅ Match fuerte (conceptualmente, en Vue no React) |
| Внедрение новых технологий и практик | cv.md:44-47 — introdujo Feature Branching, Playwright E2E, versionado de builds en РМК | ✅ Match |
### Gaps y estrategia de mitigación
1. **React (hard blocker)**
- ¿Bloqueador duro o nice-to-have? Duro — es el stack central mencionado explícitamente en el JD, sin mención de Vue en ningún punto.
- ¿Experiencia adyacente demostrable? Sí, parcial: Composition API (Vue) y hooks (React) comparten el mismo modelo mental de UI reactiva y componentización; los fundamentos de JS/TS son agnósticos de framework.
- ¿Proyecto de portfolio que cubra el gap? No — todo el trabajo comercial documentado en cv.md es Vue 3 o Flutter.
- Plan de mitigación: dado que es un puesto Junior, el argumento "aprendo rápido" es más creíble aquí que en un rol Middle/Senior (cv.md:77 — completó un curso de reconversión y pasó a shippear Flutter en semanas). Aun así, no hay garantía de que el proceso de selección de un banco grande acepte un cambio de framework a este nivel de filtro.
2. **Nivel Junior vs. alcance real de la candidata (soft gap, mismatch inverso)**
- A diferencia de otras vacantes evaluadas donde el JD pide más seniority del que tiene la candidata, aquí ocurre lo contrario: el JD pide "1+ año", pero la candidata ya diseñó un frontend completo desde cero (ЕКОМ), diseñó un modelo de autorización RBAC y explicado a un equipo de backend, y mentoreó a un colega con 11 años de antigüedad (cv.md:33-51).
- Riesgo: un puesto Junior probablemente implica menor autonomía y una banda salarial (~55.000-80.000 ₽/mes según Bloque D) muy por debajo de su mínimo declarado (100.000 ₽/mes, config/profile.yml).
- Plan de mitigación: no aplica una estrategia de "vender senior sin mentir" aquí en el sentido habitual — el problema no es convencer al reclutador de mayor nivel, sino que el puesto en sí está diseñado para pagar y dar alcance de Junior.
## C) Nivel y Estrategia
- **Nivel detectado en el JD:** Junior (mínimo 1 año de experiencia comercial).
- **Nivel natural de la candidata:** Middle en ascenso — dueña end-to-end de un producto interno (ЕКОМ) desde cero, con diseño de modelo de autorización (RBAC) y mentoría a un colega senior, pese a ~1.5-2.5 años de trayectoria total.
- **Plan "vender senior sin mentir":** No aplica de forma útil aquí — el JD ya está calibrado a Junior; subir el nivel percibido no cambia la banda salarial ni el stack ofrecido.
- **Plan "si me downlevelan":** Es la situación inversa: la candidata estaría aceptando un downlevel voluntario. Solo tendría sentido si (a) el objetivo fuera exclusivamente aprender React de forma remunerada, y (b) la compensación ofrecida en la entrevista superara su mínimo — algo poco probable dado el rango de mercado para Junior (Bloque D). No se recomienda perseguir esta vacante bajo esa lógica.
## D) Comp y Demanda
| Fuente | Dato |
|---|---|
| JD | Salario no especificado — "Достойную зарплату — обсудим её на собеседовании" |
| WebSearch (Skillbox Media, Habr Career, getgrade.ru) | Salarios de Junior frontend en Rusia en 2026 rondan ~55.000-80.000 ₽/mes en regiones fuera de Moscú; remoto reduce algo la brecha regional (10-15%) pero no la elimina para el nivel Junior |
| WebSearch (dreamjob.ru, enigmai.ru) sobre Т-Банк | Comp de Middle frontend en Т-Банк descrita como fuerte (~257.000+ ₽/mes), pero esa cifra no aplica a Junior; reseñas mencionan buena comida/DMS con estomatología, plataforma de aprendizaje "Т-Банк Апгрейд", pero también quejas de burocracia e indexación salarial insuficiente frente a inflación |
**Score de comp: 1.5/5** — el rango de mercado Junior (~55.000-80.000 ₽/mes) está por debajo del mínimo declarado de la candidata (100.000 ₽/mes, config/profile.yml), y no hay cifra confirmada en el JD que sugiera una excepción positiva.
## E) Plan de Personalización
Dado el score bajo (stack fuera del archetype primario + compensación probablemente por debajo del mínimo), **no se recomienda invertir en personalización de CV/LinkedIn para esta vacante.** Se documentan los cambios que se harían solo por completitud:
| # | Sección | Estado actual | Cambio propuesto | Por qué |
|---|---|---|---|---|
| 1 | Summary | Enfatiza Vue 3 + Flutter | Reescribir enfatizando fundamentos JS/TS y velocidad de aprendizaje de nuevos frameworks | Para intentar pasar un primer filtro de keywords, sin fabricar experiencia React |
| 2 | Experiencia | Bullets en términos de Vue/Composition API | Reformular en vocabulario agnóstico de framework donde sea honesto (ej. "arquitectura de componentes reactivos") | Suaviza el mismatch sin inventar |
| 3 | Skills | Vue 3 listado primero | No aplicable — no hay React real que destacar | No inventar experiencia no existente |
**Top 5 cambios al CV:** no recomendado dado el score.
**Top 5 cambios a LinkedIn:** no recomendado dado el score.
## F) Plan de Entrevistas
STAR stories disponibles si la candidata decidiera aplicar de todos modos (por ejemplo, si busca activamente aprender React de forma remunerada):
| # | Requisito del JD | Historia STAR | S | T | A | R |
|---|---|---|---|---|---|---|
| 1 | Разработка внутренних интерфейсов | Frontend de ЕКОМ desde cero | Necesidad de sistema interno de gestión de pedidos/logística | Construir el frontend completo | Vue 3 + Composition API + TS + Pinia + Vite, desde arquitectura hasta despliegue | Sistema en uso activo por logística, soporte y desarrollo (cv.md:33-38) |
| 2 | Клиентские интерфейсы | Diagnóstico y fix del bug de «Избранное» en «Здесь Аптека» | Usuarios se quejaban de que la sección no cargaba | Diagnosticar la causa raíz | Identificó carga de todos los productos en una sola query; implementó carga paginada | Quejas de usuarios cesaron (cv.md:23) |
| 3 | Внедрение новых технологий и практик | Introducción de Feature Branching en GitLab | Releases inestables, features "colgadas" | Implementar Git Flow y capacitar a un colega | Enseñó control de versiones a colega con 11 años de antigüedad | Equipo pasó a releases semanales estables (cv.md:46) |
| 4 | Разграничение доступа / internal tools | Diseño del modelo RBAC en ЕКОМ | Necesidad de separar accesos entre departamentos | Diseñar y explicar el modelo de roles al equipo de backend | Aplicó fundamentos de su formación en seguridad de la información | Modelo implementado y adoptado (cv.md:37) |
| 5 | Node.js (soporte/backend ligero) | Proyecto de hackathon TulaHack.Digital | App con filtrado de recetas por ingredientes | Construir un backend ligero | Express + Node.js + MongoDB | App funcional entregada en el hackathon (cv.md:63-64) |
| 6 | Continuous learning / postoyanное обучение | Transición Flutter → Vue 3 en «Здравсервис» | Empezó como desarrolladora Flutter tras un curso de reconversión | Asumir el frontend de ЕКОМ (Vue 3) sin experiencia previa en ese framework | Aprendió Composition API/Pinia/TS en el puesto y lo llevó a producción | Producto en uso activo ~1 año después (cv.md:17, 33) |
**Case study recomendado (si aplicara):** transición Flutter → Vue 3 en «Здравсервис» — es la evidencia más directa de que puede aprender un framework nuevo en producción, que es exactamente lo que este puesto exigiría con React.
**Preguntas red-flag y cómo responderlas:**
- *"Vemos que tu experiencia es en Vue, no React — ¿por qué deberíamos considerarte para este puesto Junior?"* → Honestidad directa + evidencia concreta: ya hizo esta transición de framework una vez (Flutter → Vue 3) en producción real, en semanas, sin experiencia previa.
- *"¿Por qué buscarías un puesto Junior teniendo ya experiencia de dueño de producto?"* → Respuesta honesta: el interés sería aprender React remunerado; sería razonable pedir aclaración sobre banda salarial y alcance real de responsabilidades antes de avanzar, ya que un desajuste de nivel/comp descartaría el puesto rápidamente.
## G) Posting Legitimacy
**Assessment: Proceed with Caution**
| Señal | Resultado |
|---|---|
| Especificidad de la descripción | Media — incluye dirección física exacta (Perm, ул. Куйбышева, 95Б), horario 5/2, beneficios (DMS con estomatología, T-Upgrade, compensación de comida/transporte), pero los requisitos técnicos son muy genéricos (1 año de experiencia, sin detalle de proyecto/equipo/producto específico) |
| Empresa | Т-Банк — banco/fintech grande y verificable, sin señales de estafa |
| Reposting / historial | `data/scan-history.tsv` muestra que esta misma URL ya fue escaneada el 2026-07-07 (fuente: telegram-api) — una sola aparición, no hay patrón de repost sospechoso |
| Freshness de la publicación | No verificado (batch mode) — Playwright no disponible en este contexto; no se pudo confirmar el estado exacto del botón "Responder" ni días desde publicación |
| Señales de mercado / despidos | No se encontraron señales de freeze o layoffs en la búsqueda de comp (Bloque D); la empresa aparece descrita como reclutadora activa en el mercado fintech ruso |
**Nota:** posting freshness unverified (batch mode). Se marca "Proceed with Caution" (en vez de "High Confidence") porque la descripción es notablemente más genérica que otras vacantes de Т-Банк evaluadas previamente (menos detalle de stack/equipo/proyecto) — no hay señal de fraude, pero sí menos información verificable que en el caso típico "High Confidence".
---
## Keywords extraídas
React, JavaScript, Node.js, UI-Kit, internal libraries, frontend, client interfaces, internal tools, Perm, hybrid, remote, 5/2 schedule, junior, T-Upgrade, banking, fintech, mentoring, continuous learning, DMS, meal compensation, transportation compensation, higher education
@@ -0,0 +1,127 @@
# Оценка: Неизвестный работодатель (через Runello-бот) — Fullstack React Developer
**Дата:** 2026-07-08
**Архетип:** Fullstack Developer (Vue + Node.js) — ближайший из профиля кандидата (adjacent fit); фактический стек вакансии — React + Python/LLM, не совпадает
**Балл:** 1.0/5
**Legitimacy:** Suspicious
**URL:** https://t.me/s/runello_rus_javascript/1445
**PDF:** not generated — run /career-ops pdf unknown-employer-runello to create on demand
**Batch ID:** 9
> **Дубликат:** Эта вакансия (тот же URL `t.me/s/runello_rus_javascript/1445`) уже оценивалась 2026-07-07 как отчёт [059](059-unknown-employer-runello-2026-07-07.md), балл 1.0/5, Suspicious. `data/scan-history.tsv` подтверждает первое появление 2026-07-07 (источник: telegram-api). Сегодняшний батч (2026-07-08, batch ID 9) снова забрал тот же URL — репост/повторное появление в скане, а не новая вакансия. Выводы ниже идентичны отчёту 059: пост не изменился (тот же тег стека, тот же анонимный работодатель, тот же способ отклика только через Runello-бот).
---
## Machine Summary
```yaml
company: "Unknown (Runello aggregator bot)"
role: "Fullstack React Developer"
score: 1.0
legitimacy_tier: "Suspicious"
archetype: "Fullstack Developer (Vue + Node.js) - adjacent, poor fit"
final_decision: "Skip"
hard_stops:
- "Работодатель не назван ни в посте, ни в Runello-боте — невозможно проверить компанию"
- "Стек не совпадает: React (не Vue) + Python/LLM/LangChain/RAG/BM25/reranking — у кандидата нет опыта ни в одном из этих направлений"
- "Отклик возможен только через сторонний Runello-бот — нет прямого контакта с работодателем"
soft_gaps:
- "Зарплата, локация (кроме тегов #remote #global), оформление и требования не раскрыты"
top_strengths: []
risk_level: "High"
confidence: "Low"
next_action: "Не откликаться; дубликат отчёта 059 — ничего не изменилось за сутки"
```
---
## A) Резюме роли
| Параметр | Значение |
|---|---|
| Архетип (профильный) | Fullstack Developer (Vue + Node.js) — ближайший, но условный: JD требует React + Python/LLM-стек, у кандидата — Vue + лёгкий Node/Express |
| Domain | Неизвестен — компания не названа. Стек намекает на LLM/поисковые продукты (LangChain, RAG, BM25, reranking) |
| Function | Build (предположительно, судя по стеку) |
| Seniority | Middle / Middle+ (указано в теге поста) |
| Формат работы | Указаны только теги `#remote #global` — детали (страна, часовой пояс, требования к присутствию) не раскрыты |
| Размер команды | Не указан |
| Оформление | Не указано (ТК РФ / ГПХ / самозанятость — нет данных) |
| TL;DR | Пост в Telegram-агрегаторе Runello без названия компании, зарплаты и требований — только тег стека (React, Python, LLM, LangChain, RAG, BM25, reranking, PostgreSQL) и уровень Middle/Middle+; отклик только через встроенного бота |
**Важное уточнение по названию:** Канал называется "JavaScript Job Offers — Telegram" (`runello_rus_javascript`) — это название канала-агрегатора, не работодателя. Полный WebFetch поста (сообщение `t.me/s/runello_rus_javascript/1445`) не выявил имени компании ни в тексте, ни в тегах. Соседние посты того же канала (например, `1448` — ЗАО КонсультантПлюс, `1449` — TOOLUM) называют конкретных работодателей, то есть агрегатор технически способен раскрывать имя компании — для этого конкретного поста оно отсутствует. Полные условия скрыты за кнопкой «Откликнуться через Runello-бот».
**Vibe команды:** Недостаточно данных в JD для оценки — сам пост содержит только тег стека, уровня и одну обобщённую фразу ("наши приоритеты — люди и технологии... ключ к эффективной работе и стабильному росту"), не дающую сигналов о культуре, автономии или процессах.
## B) Совпадение с CV
**Оценка ограничена: содержательного JD по существу нет** (только тег стека + одна общая фраза), но даже по этому минимуму совпадение слабое:
| Требование JD (тег стека) | Совпадение с CV |
|---|---|
| React | ❌ Не закрыто. Кандидат работает на Vue 3 (Composition API, Pinia), React в CV не упомянут |
| Python | ❌ Не закрыто. В CV — Node.js/Express (ознакомительный уровень), Python отсутствует |
| LLM / LangChain / RAG / BM25 / reranking | ❌ Не закрыто. В CV нет опыта с LLM-интеграциями, векторным поиском или ранжированием |
| PostgreSQL | ❌ Не закрыто напрямую. В CV — MongoDB (хакатон), PostgreSQL не упомянут |
| Middle/Middle+ | ✅ Уровень кандидата (Middle) формально совпадает |
**Пробелы:**
1. Это hard blocker или nice-to-have? — React/Python/LLM-стек — hard blocker: полностью другой технологический профиль (LLM-инженерия/бэкенд на Python), не смежный с Vue/Flutter-профилем кандидата.
2. Смежный опыт? — Минимальный: WebSocket-опыт (РМК, ЕКОМ) переносим на реалтайм-фичи, но не закрывает отсутствие Python/LLM-экспертизы.
3. Портфолио-проект, закрывающий пробел? — Нет; кандидат не заявляла LLM/RAG-проектов.
4. План закрытия — нецелесообразен для этой конкретной вакансии: разрыв в стеке слишком велик для позиционирования без искажения фактов.
## C) Уровень и стратегия
1. **Уровень в JD:** Middle/Middle+ формально совпадает с уровнем кандидата, но по фактическому стеку (React + Python/LLM) кандидат не является ни junior, ни middle в этом направлении — там просто нет опыта.
2. **План "продать senior без обмана":** Неприменим — стек не совпадает, попытка продать Vue/Flutter-опыт как эквивалент React/Python/LLM была бы искажением фактов.
3. **План "если понизят уровень":** Неприменим по той же причине — блокер не в уровне, а в направлении стека.
## D) Компенсация и спрос
WebSearch не проводился для компенсации — без названия компании и содержательного описания роли нет базы для сопоставления зарплаты. Зарплата, gross/net, бенефиты и оформление в посте не указаны. Общий рыночный контекст: спрос на Fullstack-разработчиков с LLM/RAG-стеком (LangChain, реранкинг, векторный поиск) в 2026 году растёт на рынке РФ, но это не меняет вывод — кандидат не закрывает этот стек.
## E) План персонализации
Неприменимо — балл 1.0/5 значительно ниже порога 4.0 (Ethical Use, `AGENTS.md`), рекомендация — не откликаться. Персонализация CV под эту вакансию не имеет смысла при полном рассогласовании стека и отсутствии названия компании.
## F) План собеседований
Неприменимо по той же причине, что и в блоке E: подготовка к интервью для неизвестного работодателя с несовпадающим стеком не оправдана временными затратами.
## G) Легитимность вакансии (Posting Legitimacy)
**Tier: Suspicious**
Сигналы:
- **Качество описания:** Крайне низкое — пост содержит только тег стека и уровня (`#javascript #react #middle #remote #global`) плюс одну обобщённую фразу без конкретики о задачах, требованиях, компании, зарплате или условиях. Это существенно ниже типичной терсности постов того же канала — соседние посты называют конкретных работодателей (ЗАО КонсультантПлюс, TOOLUM и др.), а этот — нет.
- **Наём компании через WebSearch:** Не подтверждён — фрагмент стека (React, LangChain, RAG, BM25, reranking, PostgreSQL) не позволяет идентифицировать конкретного работодателя; сам агрегатор не раскрывает имя компании в этом посте.
- **Репост:** `data/scan-history.tsv` показывает, что URL `t.me/s/runello_rus_javascript/1445` уже был добавлен в скан 2026-07-07 и теперь повторно попал в батч 2026-07-08 (batch ID 9) — классический сигнал репоста той же вакансии, не новая позиция. Отчёт [059](059-unknown-employer-runello-2026-07-07.md) фиксирует первое появление.
- **Рыночный контекст роли:** Стек (React + Python/LLM/RAG) типичен для реальных вакансий 2026 года — сам факт стека не подозрителен; подозрителен способ подачи (анонимный работодатель + отклик исключительно через бота-агрегатора, который забирает резюме до раскрытия компании).
- **Свежесть:** Не проверялась (batch-режим, `check-liveness.mjs` не применим к Telegram-постам) — свежесть неподтверждена.
**Итог:** Основной красный флаг — не терсность сама по себе (норма для Telegram), а полное отсутствие названия работодателя в сочетании с обязательным откликом через сторонний бот, который аккумулирует резюме до того, как кандидат узнает, кому именно она отправляет данные. Рекомендация: не откликаться через бота без предварительного раскрытия работодателя.
---
## Извлечённые ключевые слова
1. Fullstack Developer
2. React
3. Python
4. LLM
5. LangChain
6. RAG (Retrieval-Augmented Generation)
7. BM25
8. Reranking
9. PostgreSQL
10. Middle / Middle+
11. Remote
12. Global
13. JavaScript
14. Vector search
15. NLP-адъяцентный стек
16. Full-stack development
17. API integration
18. Backend (Python)
19. Frontend (React)
20. Job aggregator bot (Runello)
+104
View File
@@ -0,0 +1,104 @@
# Оценка: СПБ ГКУ "СПБ ИАЦ" — Программист Front-end
**Дата:** 2026-07-08
**Архетип:** Frontend-разработчик (Vue.js) — primary
**Балл:** 1.0/5
**URL:** https://trudvsem.ru/vacancy/card/1247800130082/7a4cdea8-5d6a-11f0-a8b1-e7d0d2cf29b1
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend-разработчик (Vue.js) — primary archetype |
| Domain | Frontend, госсектор (ИТ-учреждение при Правительстве Санкт-Петербурга) |
| Function | Build |
| Seniority | Формально "от 1 года опыта", но по факту требуется уверенное владение Vue 3 Composition API + TS — фактическая планка ближе к Middle |
| Формат работы | **Обычное (офлайн), полный рабочий день** — удалёнка нигде не упомянута |
| Размер команды | Не указан |
| Оформление | Не указано явно в JD; ГКУ (государственное казённое учреждение) обычно подразумевает трудовой договор по ТК РФ |
| Адрес | Санкт-Петербург, 1-я Советская ул., 6 |
| TL;DR | Технически сильное совпадение по стеку (Vue 3 + Composition API + TS), но работа строго очно в Санкт-Петербурге без удалёнки — жёсткий блокер по вашей локационной политике (Тула, без переезда и командировок). |
⚠️ **Локационный блокер (не geo-mismatch, а прямое противоречие с политикой кандидата):** структурное поле "Тип рабочего места" = "Обычное", адрес — Санкт-Петербург, ни в одном месте JD не упомянута удалённая работа. Это не ошибка в объявлении (контрадикции между полем "remote" и текстом JD нет — поле честно говорит "офис"), а прямое несовпадение с вашим требованием "Тула, без переезда, без командировок".
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| Отличное знание JS и TS | ✅ `cv.md`: "Языки программирования: JavaScript, TypeScript" + весь проект ЕКОМ на TS |
| Уверенное владение Vue 3, понимание Composition API | ✅ `cv.md`: "«Здесь ЕКОМ»... Стек: Vue 3, Composition API, TypeScript, Pinia, Vue Router..." — фронтенд с нуля, ~1 год |
| Опыт с Vuetify, Vite, Pinia | ⚠️ Частично: Pinia и Vite — прямое совпадение (`cv.md`: "Vite, npm, ESLint, Prettier"; "Pinia"). Vuetify не упоминается — в опыте shadcn/shadcn-vue и Tailwind CSS вместо Vuetify |
| Знание HTTP, REST API, CORS | ✅ `cv.md`: "Сеть: REST API, WebSocket/WSS" — REST подтверждён, CORS отдельно не упомянут, но логично следует из работы с REST/WSS |
| Опыт с Node.js и Nest.js (плюс) | ⚠️ Частично: `cv.md`: "Backend (ознакомительный уровень): Node.js, Express, MongoDB" — Node.js есть, Nest.js нет (но Express — смежный опыт) |
| Проектирование API | ✅ `cv.md`: участие в проектировании ролевой модели (RBAC) в ЕКОМ, взаимодействие с бэкенд-командой по архитектуре доступа |
| Интеграция со сторонними сервисами | ✅ `cv.md`: интеграция Firebase Cloud Messaging, WebSocket-интеграции в РМК и ЕКОМ |
**Пробелы:**
1. **Vuetify** — nice-to-have, не hard blocker. У кандидата опыт с другими компонентными UI-китами (shadcn-vue, Tailwind) — навык переносимый; в `cv.md` явно указано "Быстро осваиваю: ...любые UI-киты и дизайн-системы".
2. **Nest.js** — nice-to-have, JD явно называет его "плюсом", не обязательным требованием. Есть смежный опыт (Express + Node.js).
3. **Локация (Санкт-Петербург, только офис) — HARD BLOCKER.** Не закрывается ни фразой в сопроводительном письме, ни портфолио-проектом — это прямое противоречие с политикой "без переезда, без командировок" из `modes/_profile.md`.
## C) Уровень и стратегия
1. **Уровень в JD vs естественный уровень кандидата:** формальное требование ("от 1 года") занижено относительно фактической технической планки (уверенное владение Composition API + TS + REST). У кандидата ровно такой профиль: ~1 год production-опыта на Vue 3 с нуля (ЕКОМ) плюс отдельный legacy-проект (РМК) на Vue 3. Уровень соответствует.
2. **План "продать senior без обмана":** "Спроектировала и объяснила бэкенд-команде ролевую модель авторизации (RBAC) в проекте, который вела фронтенд с нуля" — это прямой ответ на пункт JD "участие в проектировании API". Также уместно упомянуть замену ручных SQL-правок графика курьеров на UI drag-and-drop — демонстрирует зрелость в проектировании бизнес-логики, не только вёрстку.
3. **План "если понизят уровень":** неактуально — вопрос снят локационным блокером ниже.
## D) Компенсация и спрос
| Параметр | Значение | Источник |
|---|---|---|
| Зарплата (как указано) | 150 000 – 200 000 руб. | Карточка вакансии trudvsem.ru |
| Gross/Net | Не указано явно; для госучреждений обычно gross | JD |
| Оценка net (gross × 0.87) | ≈ 130 500 – 174 000 руб. на руки | Расчёт (стандартная ставка НДФЛ 13%) |
| Сравнение с целью кандидата | Выше целевого диапазона (100 000–120 000+ ₽ на руки) | `config/profile.yml` |
| Репутация компании по зарплате | 3.48 из 5 (29 оценок) — "белая, но не выше рынка"; есть отзывы о снижении зарплат при смене руководства | [dreamjob.ru/employers/106254](https://dreamjob.ru/employers/106254) |
| Рекомендация компании сотрудниками | 75.9% рекомендуют (29 оценок) | dreamjob.ru |
| Плюсы по отзывам | Офис в центре у метро, ДМС, квалифицированная команда, дружелюбный коллектив | dreamjob.ru |
| Минусы по отзывам | Бюрократия, директивное управление, местами некомпетентность/кумовство, отдельные жалобы на снижение выплат | dreamjob.ru |
**Вывод:** формально компенсация выше целевого диапазона и выглядит привлекательно, но эта цифра нерелевантна при офлайн-формате в другом городе — блокер по локации отменяет любые плюсы по деньгам.
## E) План персонализации
Не применимо — при жёстком локационном блокере (score 1.0) кастомизация CV/LinkedIn под эту вакансию не рекомендуется. Если бы формат был удалённым, топ-изменение было бы: подчеркнуть RBAC/API-проектирование в Summary и заменить упоминание "shadcn-vue" примером работы с компонентными UI-китами в целом (учитывая требование Vuetify).
## F) План собеседований
Приведены кратко — актуальны, только если вы решите проигнорировать локационный блокер (например, рассматриваете переезд или гибридный формат с редкими визитами):
| # | Требование JD | STAR+R история | Reflection |
|---|---|---|---|
| 1 | Проектирование API | Проектирование RBAC-модели в ЕКОМ, объяснение бэкенд-команде принципа разграничения по отделам | Профильное ИБ-образование дало нестандартный взгляд на модели доступа — редкое сочетание для frontend-кандидата |
| 2 | Реализация бизнес-логики на Vue | График курьеров на vue-cal с drag-and-drop, заменивший ручные SQL-правки разработчиков | Хороший пример перевода бизнес-процесса в UI без потери контроля логистики над расписанием |
| 3 | Работа с REST API / WSS | Внедрение WebSocket-оповещений в РМК — впервые видно, сколько аптек онлайн в реальном времени | Показывает не только фронтенд-навык, но и понимание сетевых протоколов за пределами базового REST |
| 4 | Уверенное владение TS | Весь фронтенд ЕКОМ построен на Vue 3 + Composition API + TypeScript с нуля | Помогает говорить предметно о выборе стека, а не только "работала с TS" |
**Вопрос-ловушка, который стоит ожидать:** "Готовы ли к ежедневным поездкам в офис на 1-й Советской?" — здесь честный и прямой ответ по вашей локационной политике: удалённо или гибрид в Туле при дневном графике; переезд и командировки не рассматриваются.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Свежесть объявления | Создано 10.07.2025, обновлено 06.07.2026 (2 дня назад) | Позитивный (свежее обновление), но контекст ниже |
| Кнопка отклика | "Откликнуться" активна | Позитивный |
| Верификация работодателем | "Данные вакансии проверены работодателем" | Позитивный, сильный сигнал |
| Качество описания | Конкретный стек (Vue 3, Composition API, Vuetify, Vite, Pinia, Node.js, Nest.js), чёткие обязанности, реалистичные требования | Позитивный |
| Просмотры/отклики | 13 просмотров, 5 откликов, сейчас 1 человек просматривает | Нейтральный — правдоподобные цифры для нишевого гос. портала |
| Кадровые сигналы компании | В открытом поиске явных новостей о сокращениях/заморозке найма не найдено | Нейтральный (не проверялось глубоко — бюджет запросов) |
| Repost-паттерн | Не проверялось по `scan-history.tsv` (не приоритет при остальных сильных позитивных сигналах) | Не оценено |
**Контекст:** дата создания карточки — почти год назад, что само по себе настораживающий сигнал для обычной ИТ-роли. Но в сочетании с недавним обновлением (2 дня назад), активной верификацией работодателем и низким, но ненулевым числом откликов это больше похоже на объявление, которое госучреждение держит открытым на регулярной основе (rolling/evergreen позиция), а не забытую карточку. Отдельно отмечу: госсектор — это отраслевой контекст, где длинные циклы найма и повторные публикации — норма, а не признак фиктивности (см. edge case "Government/academic postings").
---
## Извлечённые ключевые слова
Vue 3, Composition API, TypeScript, JavaScript, Vuetify, Vite, Pinia, HTTP, REST API, CORS, Node.js, Nest.js, Frontend-разработка, проектирование API, бизнес-логика приложений, интеграция сторонних сервисов, госучреждение, Санкт-Петербург, программист, анализ и проектирование Frontend, полная занятость
+71
View File
@@ -0,0 +1,71 @@
# Оценка: Bellerage — Стажер Frontend-разработчик
**Дата:** 2026-07-08
**Архетип:** Frontend-разработчик (Vue.js) — primary (частичное совпадение стека)
**Балл:** 1.0/5
**URL:** https://hh.ru/vacancy/134717822?query=frontend&hhtmFrom=vacancy_search_list
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend-разработчик — но React-стек, не Vue; уровень "стажёр" |
| Domain | Аутсорсинг/консалтинг (Bellerage) |
| Function | Build |
| Seniority | Стажировка, "опыт работы не требуется" |
| Формат работы | **"На месте работодателя"** (офис, Москва, м. Добрынинская/Серпуховская/Павелецкая) |
| Оформление | Стажировка с последующим трудоустройством в штат |
| TL;DR | Junior/стажёрская роль на React (не Vue), строго очно в Москве — жёсткий локационный блокер, плюс уровень ниже целевого (Middle). |
⚠️ **Локационный блокер:** структурное поле "Формат работы: на месте работодателя", офис в Москве. Удалённая работа нигде не упомянута — прямое противоречие с политикой "Тула, без переезда, без командировок".
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| JavaScript/TypeScript | ✅ прямое совпадение |
| React (не Vue) | ⚠️ Отсутствует опыт React в cv.md; весь фронтенд-опыт на Vue 3 |
| Redux Toolkit, Redux Saga, TanStack Query | ❌ Не упоминается |
| Уровень: стажёр, "опыт не требуется" | ⚠️ Кандидат уже Middle-уровня по факту (production Vue 3 проект), стажёрская роль — понижение уровня и, вероятно, дохода |
**Пробелы:** React-стек (не переносится напрямую с Vue без адаптации), стажёрский уровень не соответствует фактической квалификации, и — решающий фактор — **локация (HARD BLOCKER)**.
## C) Уровень и стратегия
Не применимо — роль стажёрская, ниже фактического уровня кандидата, и заблокирована локационно. Даже без блокера расхождение стека (React vs Vue) и уровня (intern vs Middle) сделало бы эту вакансию низкоприоритетной.
## D) Компенсация и спрос
| Параметр | Значение |
|---|---|
| Зарплата | Не указана ("Уровень дохода не указан") |
| Сравнение с целью | Невозможно сравнить — вероятно ниже целевого диапазона (100 000–120 000+ ₽) для стажёрской позиции |
## E) План персонализации
Не применимо — локационный блокер.
## F) План собеседований
Не применимо — локационный блокер и несоответствие стека/уровня делают подготовку нерелевантной.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Свежесть | Опубликована 8 июля 2026 (сегодня) |
| Кнопка отклика | "Откликнуться" активна |
| Просмотры | 16 человек сейчас смотрят |
| Качество описания | Конкретные обязанности, реалистичные для стажёрской роли требования, подробный список бенефитов |
---
## Извлечённые ключевые слова
React, JavaScript, TypeScript, Redux Toolkit, Redux Saga, TanStack Query, стажировка, фронтенд, вёрстка интерфейсов, интеграция с бэкенд-сервисами
+70
View File
@@ -0,0 +1,70 @@
# Оценка: Bioniq — Младший фронтенд-разработчик / Junior Frontend Developer
**Дата:** 2026-07-08
**Архетип:** Frontend-разработчик (Vue.js) — primary (стек не совпадает: Angular, не Vue)
**Балл:** 1.0/5
**URL:** https://youngjunior.ru/javascript/jobs/36190
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Junior Frontend/вёрстка на Angular — не Vue, не Middle |
| Domain | Health-tech / биохакинг (Bioniq) |
| Function | Build (в основном вёрстка лендингов и работа с макетами) |
| Seniority | Junior |
| Формат работы | Структурное поле: "в офис" (Москва). В тексте JD упомянуто "можно работать из дома" среди бенефитов — неоднозначный сигнал, но основной формат заявлен как офисный |
| TL;DR | Junior-роль на Angular с упором на вёрстку лендингов, офис в Москве — не совпадает ни по стеку, ни по уровню, ни по локации. |
⚠️ **Смешанный сигнал по локации:** тег вакансии — "в офис", но в блоке бенефитов есть строка "Можно работать из дома" (не выделена как основной формат, идёт в общем списке плюсов). Не тянет на прямое противоречие по правилам geo-mismatch check (это не структурное поле "remote" + текст "onsite", а наоборот — структурное поле "офис" + отдельная фраза о возможности удалёнки). Трактую консервативно: базовый формат — офис в Москве, что при отсутствии подтверждённого полного remote — блокер по локационной политике.
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| HTML5, CSS3/SCSS, адаптивная вёрстка | ✅ Есть общий фронтенд-опыт, но акцент JD на pixel-perfect вёрстке по Figma не является сильной стороной резюме (специализация — Vue-приложения, не лендинги) |
| Angular (компоненты, модули, DI) | ❌ Отсутствует — весь опыт на Vue 3 |
| JavaScript/TypeScript | ✅ Прямое совпадение |
| REST API | ✅ Совпадает |
**Пробелы:** Angular-стек отсутствует в cv.md (переход с Vue на Angular — не тривиальная замена), фокус роли на вёрстке лендингов не соответствует профилю "SPA-разработчик с RBAC-экспертизой", junior-уровень ниже фактической квалификации, и локация — блокер.
## C) Уровень и стратегия
Не применимо — стек (Angular vs Vue), фокус (вёрстка лендингов vs SPA-разработка) и уровень (junior vs фактический Middle) делают роль низкоприоритетной независимо от локации.
## D) Компенсация и спрос
| Параметр | Значение |
|---|---|
| Зарплата | Не указана |
| Сравнение с целью | Невозможно оценить |
## E) План персонализации
Не применимо.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Свежесть | Опубликована 2 дня назад |
| Кнопка отклика | "Откликнуться" активна |
| Источник | Найдена агрегатором на HH.ru — конкретное описание, реалистичные для junior требования |
| Качество описания | Развёрнутое, с конкретным стеком и реальными задачами (не generic-шаблон) |
---
## Извлечённые ключевые слова
Angular, HTML5, CSS3, SCSS, Figma, вёрстка, JavaScript, TypeScript, REST API, Angular CLI, Angular Material, Dependency Injection
+74
View File
@@ -0,0 +1,74 @@
# Оценка: А7-Технологии — Flutter-разработчик
**Дата:** 2026-07-08
**Архетип:** Mobile Developer (Flutter) — secondary
**Балл:** 1.0/5
**URL:** https://hh.ru/vacancy/134158972
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Mobile Developer (Flutter) — secondary archetype |
| Domain | FinTech (внутренние платежи, кросс-бордер переводы), группа компаний A7 (платформа международных платежей) |
| Function | Build |
| Seniority | Требуется 2+ года коммерческого Flutter, глубокое знание Clean Architecture, DI, Bloc — фактически Middle-Senior |
| Формат работы | **"Офис / Гибрид"**, Москва (Сколковское шоссе). Явно: "полностью удалённого формата нет", возможен частичный удалённый формат по договорённости |
| Оформление | ТК РФ, бессрочный договор |
| TL;DR | Сильный технический fit по Flutter/Dart/BLoC, но офис/гибрид в Москве без полной удалёнки — жёсткий локационный блокер. |
⚠️ **Локационный блокер:** структурное поле "Офис / Гибрид" + прямая цитата JD: "возможно обсудить частично удаленный вариант сотрудничества (полностью удаленного формата нет)". Частичная удалёнка не закрывает политику "Тула, без переезда, без командировок" — база всё равно офис в Москве.
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| 2+ года коммерческого Flutter (Dart) | ⚠️ Частично — есть production-опыт на "Здесь Аптека", но точный стаж в годах в cv.md не детализирован по Flutter отдельно |
| Bloc для управления состоянием | ✅ Соответствует профилю (`modes/_profile.md`: "Dart, BLoC, clean architecture, cross-platform") |
| Clean Architecture, DI (GetIt/Injectable) | ⚠️ Не подтверждено в cv.md на уровне детализации — есть общий опыт рефакторинга и стабилизации приложения, но не описано архитектурное владение Clean Architecture/DI явно |
| Локальные БД (ObjectBox/Hive), кэширование | ❌ Не упоминается в cv.md |
| Сложные UI с кастомными анимациями | ⚠️ Есть опыт UI-редизайна ("Избранное" с постраничной загрузкой), но не кастомные анимации |
| REST API, Dio/Retrofit | ✅ REST API есть в cv.md; Dio/Retrofit конкретно не упомянуты |
| Навигация (AutoRoute/Beamer) | ❌ Не упоминается |
**Пробелы:** роль требует специализированной архитектурной экспертизы (Clean Architecture, DI-фреймворки, локальные БД), которая не задокументирована в cv.md на нужном уровне детализации — это средний технический пробел даже без учёта локации. Плюс **локация (HARD BLOCKER)**.
## C) Уровень и стратегия
Не применимо — при жёстком локационном блокере детальная стратегия позиционирования не даёт практической ценности. Если бы формат был удалённым, стоило бы уточнить у кандидата глубину опыта с Clean Architecture/DI в проекте "Здесь Аптека" перед тем, как заявлять полное совпадение.
## D) Компенсация и спрос
| Параметр | Значение |
|---|---|
| Зарплата | "Конкурентоспособная заработная плата" — конкретная цифра не указана в JD |
| Сравнение с целью | Невозможно оценить без конкретной цифры |
## E) План персонализации
Не применимо — локационный блокер.
## F) План собеседований
Не применимо — локационный блокер. Формат отбора для справки: созвон с рекрутером 15 мин → техническое интервью 60 мин с TL.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Кнопка отклика | "Откликнуться" активна (дважды на странице) |
| Качество описания | Очень детальное: конкретный стек, зоны ответственности, процесс отбора, реалистичные требования для fintech-домена |
| Компания | А7 — известная группа компаний, платформа международных платежей, соответствует объёму задач в JD |
| Структура текста | Чёткое разделение "важно" / "будет плюсом" / "условия" — типично для проработанной, не фиктивной вакансии |
---
## Извлечённые ключевые слова
Flutter, Dart, BLoC, Clean Architecture, GetIt, Injectable, Dependency Injection, ObjectBox, Hive, Dio, Retrofit, REST API, OpenAPI, Swagger, AutoRoute, Beamer, SOLID, KISS, DRY, кроссплатформенная разработка, финтех
+72
View File
@@ -0,0 +1,72 @@
# Оценка: DataLouna — Backend Engineer (Node.js, TypeScript, Data, Real-time)
**Дата:** 2026-07-08
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent (по факту роль почти чисто backend/data)
**Балл:** 1.0/5
**URL:** https://geekjob.ru/vacancy/6a4b8f5965027e3ed90ff650
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Backend/Data Engineer — не Fullstack в привычном смысле: фронтенд в задачах не упоминается вообще |
| Domain | Киберспортивная аналитика (CS2/Dota2), real-time данные, betting-инфраструктура |
| Function | Build + владение данными end-to-end |
| Seniority | **Сеньор, опыт работы более 5 лет** — прямое требование в карточке вакансии |
| Формат работы | Удалённо, гибкий график — локационных ограничений нет |
| Команда | 7 человек, минимум бюрократии |
| TL;DR | Полностью remote, что снимает локационный вопрос, но это специализированная senior data/backend роль (парсеры, ClickHouse, Kubernetes, обход антибот-защит) без единого упоминания frontend — глубокое несовпадение по функции и уровню. |
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| Node.js/TypeScript backend, 5+ лет | ❌ `cv.md`: Node.js указан как "ознакомительный уровень" (Backend, вместе с Express/MongoDB) — не production backend-опыт, тем более не 5+ лет |
| Парсеры/скрейперы, обход ограничений, Playwright, proxy-инфраструктура | ❌ Не упоминается в cv.md |
| PostgreSQL, ClickHouse, партиционирование, миграции | ❌ Не упоминается в cv.md |
| BullMQ/Redis, воркеры и пайплайны, idempotency | ❌ Не упоминается в cv.md |
| Docker/Kubernetes/GKE, GitLab CI, Flux CD | ❌ Не упоминается в cv.md |
| REST/GraphQL API для веб-приложений | ⚠️ Частично: REST API есть в опыте (WebSocket/WSS в РМК), GraphQL отсутствует |
**Вывод:** это по сути отдельная профессия (data/backend infra engineer в узкой нише киберспортивной аналитики), а не смежная с фронтенд-профилем кандидата роль. Из заявленного стека совпадает разве что базовое знание TypeScript и общее знакомство с REST. Явное требование 5+ лет опыта — кандидат объективно младше по стажу.
## C) Уровень и стратегия
Понижение уровня здесь не спасает ситуацию: сама природа задач (парсинг закрытых источников, обход антибот-защит, дизайн ClickHouse-схем, продакшн Kubernetes) требует профильного backend/data-опыта, которого нет ни на Middle, ни на Junior уровне в текущем резюме. Продавать себя на эту роль означало бы обещать компетенции, не подтверждённые cv.md — прямое нарушение принципа "keywords переформулируются, но не выдумываются".
## D) Компенсация и спрос
| Параметр | Значение |
|---|---|
| Зарплата | $3,500–5,500/мес (по опыту) |
| Формат выплат | Не уточнён в JD |
| Сравнение с целью | Выше целевого диапазона в валюте, но нерелевантно — квалификационный барьер не пройден |
## E) План персонализации
Не применимо — квалификационное несоответствие делает кастомизацию бессмысленной.
## F) План собеседований
Не применимо. Формат отбора для справки: созвон с CTO 15–20 мин → техническое интервью 1.5–2 часа (system design, backend/data задачи) → оплачиваемый испытательный срок. Отклик требует обязательных ответов на 3 вопроса (AI-инструменты, опыт с БД, бэкграунд в киберспорте) — ещё один сигнал узкой специализации под конкретный профиль кандидата, не совпадающий с текущим.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Прямой работодатель | DataLouna (datalouna.io), часть киберспортивного холдинга, включая Team Spirit |
| Свежесть | Опубликована 6 июля 2026 |
| Кнопка отклика | "Откликнуться" активна |
| Качество описания | Очень подробное, конкретные технические детали, реалистичная структура отбора, честно обозначен уровень неопределённости задач |
---
## Извлечённые ключевые слова
Node.js, TypeScript, PostgreSQL, ClickHouse, Redis, BullMQ, Docker, Kubernetes, GKE, GitLab CI, Flux CD, Playwright, WebSocket, REST API, GraphQL, real-time data, парсинг, скрейпинг, киберспорт, data engineering
+72
View File
@@ -0,0 +1,72 @@
# Оценка: Selfwork — Full-stack engineer
**Дата:** 2026-07-08
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent (стек: React, не Vue)
**Балл:** 1.5/5
**URL:** https://geekjob.ru/vacancy/6a4bc2e72bec1b1aab0436ae
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Fullstack — React + Node.js (Fastify) |
| Domain | AI-стартап: Freelance Marketplace + B2B Payroll (fintech) |
| Function | Build, полная автономия end-to-end |
| Seniority | **Сеньор, 5+ лет коммерческого fullstack-опыта в продуктовых командах, явно "НЕ в аутсорсе"** |
| Формат работы | Полностью удалённо, официальный контракт, международная команда (юрисдикция Швейцария) — локационных ограничений нет |
| Команда | Маленькая, высокий темп, прямая коммуникация с CTO |
| TL;DR | Remote и стек частично пересекается (TS, Node.js), но фронтенд на React (не Vue), и жёсткое требование 5+ лет senior-опыта в продуктовых командах — существенный разрыв по уровню. |
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| React + TypeScript (включая PWA) | ❌ Весь frontend-опыт кандидата на Vue 3, не React — стек не переносится напрямую |
| TanStack Query, Vite, OpenAPI | ⚠️ Частично: Vite есть в опыте (Vue-проекты), TanStack Query и OpenAPI не упоминаются |
| Node.js (Fastify) backend | ⚠️ Node.js — "ознакомительный уровень" в cv.md (вместе с Express/MongoDB), Fastify не упоминается |
| PostgreSQL, MongoDB, ClickHouse, Redis, NATS | ❌ Не упоминается в cv.md |
| 5+ лет коммерческого fullstack-опыта, явно не в аутсорсе | ❌ У кандидата ~1 год production frontend-опыта (Vue) — прямое несоответствие заявленному порогу |
| Самостоятельная delivery от архитектуры до продакшна | ⚠️ Есть элементы (RBAC-проектирование, автономная работа над функциями в ЕКОМ), но не в masштабе senior fullstack-роли с полной ответственностью за прод |
**Вывод:** частичное пересечение по TypeScript/общей fullstack-направленности, но ключевой frontend-стек другой (React vs Vue), backend-требования (Fastify, NATS, ClickHouse) не покрыты, а явно заявленный порог 5+ лет опыта — не про кандидата на Middle-уровне.
## C) Уровень и стратегия
Понижение уровня не решает проблему: JD прямым текстом требует "5+ лет коммерческого full-stack опыта в продуктовых командах, НЕ в аутсорсе" — это формулировка без пространства для трактовки в пользу кандидата с ~1 годом опыта. Рекомендация — не продавать себя на явно заявленный senior-барьер.
## D) Компенсация и спрос
| Параметр | Значение |
|---|---|
| Доход | от $3000/мес (обсуждается индивидуально), выплаты в $/€/USDT с инвойсами |
| Отпуск | до 30 дней/год + day offs/sick leaves |
| Сравнение с целью | Выше целевого диапазона в валюте, но нерелевантно — квалификационный барьер (5+ лет) не пройден |
## E) План персонализации
Не применимо — квалификационное несоответствие по заявленному опыту.
## F) План собеседований
Не применимо. Формат отбора для справки: отклик (резюме + GitHub/проекты) → скрининг с HR ~45 мин → техническое интервью с CTO 1 час → оффер.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Прямой работодатель | Selfwork (selfwork.com) — стартап с двумя реальными продуктами и платящими клиентами |
| Свежесть | Опубликована 6 июля 2026 |
| Кнопка отклика | "Откликнуться" активна |
| Качество описания | Подробное, конкретный стек, честно обозначен высокий темп и требуемая автономия — не generic-шаблон |
---
## Извлечённые ключевые слова
React, TypeScript, PWA, TanStack Query, Vite, OpenAPI, Node.js, Fastify, PostgreSQL, MongoDB, ClickHouse, Redis, NATS, монорепо, Turbo, CI/CD, AI-ассистент, fintech, продуктовое мышление
@@ -0,0 +1,64 @@
# Оценка: Positive Technologies — Fullstack QA Engineer (RA VPN)
**Дата:** 2026-07-08
**Архетип:** Не соответствует ни одному целевому архетипу (QA/тестирование, не разработка)
**Балл:** 1.0/5
**URL:** https://ptsecurity.com/ru-ru/about/vacancy/qa-engineer--vpn/
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | QA Engineer — несмотря на слово "Fullstack" в названии, вся роль по факту про тестирование, не разработку |
| Domain | Кибербезопасность, VPN-агент NGFW (PT NGFW) |
| Function | QA/тестирование, а не Build |
| Формат работы | Удалённая работа — локационных ограничений нет |
| TL;DR | Название вводит в заблуждение: "Fullstack" здесь означает "полный цикл QA" (ручное тестирование + автоматизация + сетевая диагностика), а не frontend/backend разработку. Прямого пересечения с целевыми архетипами кандидата нет. |
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| Ручное функциональное/регрессионное тестирование, тест-планы, чек-листы | ❌ Не является профилем кандидата — она разработчик, не QA-инженер |
| Знание TCP/IP, сетевая диагностика, анализ трафика | ❌ Не упоминается в cv.md |
| Работа с Windows (PowerShell) и Linux (bash) на уровне администрирования | ❌ Не упоминается |
| Базовые навыки Python/Bash для автоматизации | ❌ Отсутствует — весь скриптинг-опыт кандидата на JS/TS |
| VPN-решения (Cisco AnyConnect, OpenVPN, WireGuard), IPSec, криптография | ❌ Не упоминается |
**Вывод:** это специализированная QA-роль в сетевой безопасности — совершенно другая профессия относительно фронтенд/мобильной разработки. Название "Fullstack QA Engineer" не должно вводить в заблуждение при парсинге по ключевым словам — по содержанию JD это чистое тестирование.
## C) Уровень и стратегия
Не применимо — функциональное несоответствие, а не вопрос уровня или позиционирования.
## D) Компенсация и спрос
Зарплата не указана в JD. Оценка нерелевантна при полном функциональном несоответствии.
## E) План персонализации
Не применимо.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Прямой работодатель | Positive Technologies — крупная, известная компания в сфере кибербезопасности |
| Кнопка отклика | "Откликнуться" активна, форма загрузки резюме присутствует |
| Качество описания | Очень подробное, конкретный домен (PT NGFW), реалистичная структура требований/плюсов/бенефитов |
---
## Извлечённые ключевые слова
QA-инженер, тестирование, TCP/IP, VPN, NGFW, Windows, Linux, PowerShell, bash, Python, IPSec, сетевая диагностика, кибербезопасность
+93
View File
@@ -0,0 +1,93 @@
# Оценка: Air Production (ЭИР Продакшн) — Frontend-разработчик (Vue.js)
**Дата:** 2026-07-08
**Архетип:** Frontend-разработчик (Vue.js) — primary
**Балл:** 4.0/5
**URL:** https://air.agency/career/frontend-razrabotchik-vue-js
**Legitimacy:** High Confidence
**PDF:** будет создан (балл ≥ порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend-разработчик (Vue.js) — primary archetype, прямое попадание |
| Domain | Digital/interactive-продакшн (веб-агентство: аналитика, веб-дизайн, программирование, техподдержка для клиентских проектов) |
| Function | Build (frontend новых и текущих клиентских проектов) |
| Seniority | "Опыт работы: 1–3 года" — точно совпадает с фактическим стажем кандидата |
| Формат работы | **Удалённо, полный день** — полностью соответствует локационной политике |
| График | 5/2, 10:00–19:00, с возможностью плавающего начала дня |
| TL;DR | Лучшее совпадение в этой сессии: Vue.js в основе стека, полностью удалённо, зарплата и опыт точно попадают в целевой диапазон кандидата. Есть toolchain-разрыв (Vuex/Webpack/Gulp вместо Pinia/Vite) — учитывать при подготовке, но не блокер. |
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| HTML5, CSS3, Flexbox, ES6+ | ✅ Прямое совпадение |
| Vue.js | ✅ Прямое совпадение — весь основной опыт кандидата на Vue 3 + Composition API |
| Vue-router | ✅ `modes/_profile.md` подтверждает опыт с Vue Router |
| Nuxt.js | ❌ Не упоминается в cv.md — весь опыт на чистом Vue 3 + Vite, без SSR-фреймворка |
| Vuex | ⚠️ Кандидат использует Pinia, не Vuex — концептуально близко (оба — стейт-менеджмент для Vue), но другой API, потребуется адаптация |
| Webpack | ⚠️ Кандидат использует Vite, не Webpack — иной бандлер, конфигурация отличается |
| Sass/Less | ❌ Не упоминается в cv.md явно (есть опыт с Tailwind CSS / shadcn-vue) |
| Gulp/Grunt | ❌ Не упоминается — устаревшие таск-раннеры, вряд ли есть опыт |
| BEM/OOCSS | ❌ Не упоминается явно в cv.md |
| Git, таск-трекеры | ✅ Прямое совпадение |
**Пробелы:** JD ориентирован на чуть более старый Vue-стек (Vuex вместо Pinia, Webpack вместо Vite, Gulp/Grunt) — похоже на устоявшийся agency-пайплайн для клиентских сайтов, а не современный SPA-стек кандидата. Это закрываемые пробелы (концептуально близкие технологии), не hard blocker, но стоит явно упомянуть на собеседовании готовность быстро адаптироваться.
## C) Уровень и стратегия
1. **Уровень:** JD прямо просит 1–3 года опыта — ровно попадает в фактический стаж кандидата (~1 год production Vue 3). Не нужно ни завышать, ни занижать позиционирование.
2. **Как продать:** сделать акцент на скорости адаптации к новым инструментам — кандидат уже переходила между разными стек-конфигурациями (Vue 3 + Vite/Pinia в ЕКОМ, legacy Vue 3 в РМК), что показывает гибкость между разными "поколениями" Vue-экосистемы.
3. **Что спросить на собеседовании:** уточнить состав проектов агентства (лендинги vs полноценные SPA/личные кабинеты) — это определит, насколько релевантен RBAC/API-проектирование опыт кандидата или роль будет более "вёрсточной".
## D) Компенсация и спрос
| Параметр | Значение | Источник |
|---|---|---|
| Зарплата (как указано) | 90 000 – 130 000 руб/мес на руки | Карточка вакансии air.agency |
| Сравнение с целью кандидата | Нижняя граница (90 000) ниже минимума кандидата (100 000), верхняя (130 000) выше цели (100 000–120 000+) — диапазон частично перекрывается, есть пространство для переговоров ("оклад по результатам собеседования, можем предложить больше или меньше в зависимости от опыта") | `config/profile.yml` |
| Компания | Air Production (air.agency) — digital/interactive-продакшн: аналитика, менеджмент проектов, веб-дизайн, программирование, техподдержка | WebSearch (tagline.ru, hh.ru/employer/2670837, career.habr.com/companies/air-agency) |
| Отзывы сотрудников | Развёрнутых отзывов на DreamJob не найдено; на других агрегаторах недостаточно голосов для публичного рейтинга (2023, 8 из требуемых 10) | WebSearch |
| Открытые вакансии | 3 вакансии на hh.ru у этого работодателя — компания активно нанимает, не разовая публикация | WebSearch |
**Вывод:** компания легитимна и профильна (внесена в каталог digital-агентств Tagline, есть карточка на Habr Career), но отзывов о зарплате/культуре мало — стоит уточнить детали на первом созвоне.
## E) План персонализации
Топ-3 изменения в CV/сопроводительном под эту роль:
1. В Summary — сделать акцент на "быстро адаптируюсь к разным Vue-стекам" (Vue 3 + Vite/Pinia в одном проекте, legacy Vue 3 в другом) вместо чистого перечисления инструментов, поскольку JD требует именно Vuex/Webpack/Gulp — иной набор.
2. Явно упомянуть опыт работы одновременно с несколькими продуктами (веб + legacy + мобильное приложение) — прямое попадание в "взаимодействовать с менеджерами на проектах" (агентство ведёт несколько клиентских проектов параллельно).
3. Не заявлять владение Nuxt.js/Vuex/Gulp как готовый навык — сформулировать как "быстро осваиваю новые инструменты в экосистеме Vue" (что подтверждено фразой в cv.md "Быстро осваиваю... любые UI-киты и дизайн-системы").
## F) План собеседований
| # | Требование JD | STAR+R история | Reflection |
|---|---|---|---|
| 1 | Разработка frontend для разных клиентских проектов | Одновременное ведение веб-проекта ЕКОМ (с нуля) и legacy-проекта РМК на Vue 3 | Показывает опыт переключения между разными кодовыми базами и требованиями — прямой аналог агентской работы с разными клиентами |
| 2 | Взаимодействие с менеджерами на проектах | Проактивная работа с продукт-оунером по приоритизации бэклога, участие в спринт-планировании | Демонстрирует навык координации с нетехническими стейкхолдерами, не только "молчаливое" кодирование |
| 3 | Vue.js, Vue-router, компонентная архитектура | Frontend ЕКОМ с нуля: Vue 3, Composition API, Vue Router, Pinia | Прямое совпадение по core-стеку |
| 4 | Адаптация к иному стеку (Vuex/Webpack/Gulp) | Явно нет прямого прецедента — использовать честный ответ | Признать разницу в конкретных инструментах, подчеркнуть скорость освоения похожих по назначению технологий |
**Вопрос-ловушка, который стоит ожидать:** "У нас Vuex и Webpack, а не Pinia/Vite — не будет проблем перестроиться?" — честный ответ: концепции стейт-менеджмента и сборки одинаковы, разница в API/конфигурации осваивается за 1-2 недели, готова изучить документацию заранее до старта.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение | Вес |
|---|---|---|
| Кнопка отклика | "Откликнуться на вакансию" активна (дважды на странице) | Позитивный |
| Качество описания | Конкретный стек, реалистичные обязанности, честная формулировка зарплатной вилки с оговоркой про опыт | Позитивный |
| Компания в отраслевых каталогах | Найдена в Tagline (каталог digital-агентств), Habr Career, 3 открытые вакансии на hh.ru | Позитивный — не одноразовая/фиктивная публикация |
| Похожие вакансии на сайте | На той же странице показаны другие открытые роли компании ("Менеджер проектов", "Разработчик 1С-Битрикс") | Позитивный — активный, действующий набор персонала |
| Отзывы сотрудников | Недостаточно данных для публичного рейтинга на агрегаторах отзывов | Нейтральный — не негативный сигнал, просто мало данных |
---
## Извлечённые ключевые слова
Vue.js, Nuxt.js, Vue-router, Vuex, Webpack, HTML5, CSS3, Flexbox, ES6+, Sass, Less, Gulp, Grunt, BEM, OOCSS, Git, frontend-разработка, клиентские проекты
+66
View File
@@ -0,0 +1,66 @@
# Оценка: Nexters (GDEV) — Senior Frontend Developer (Hero Wars)
**Дата:** 2026-07-08
**Архетип:** Frontend-разработчик (Vue.js) — primary (стек не совпадает: gamedev/игровые движки, не веб-фреймворки)
**Балл:** 1.0/5
**URL:** https://www.nexters.com/en/about/alljobs/?vacancy=frontend-developer-1782982849
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend Developer — но в контексте геймдева (client-side для игровых событий Hero Wars), не веб-фреймворки |
| Domain | Gamedev — GDEV holding (Nexters, Cubic Games, Royal Ark, Game Gears), проект Hero Wars |
| Function | Build игровых событий и внутриигровых активностей, влияющих на монетизацию |
| Seniority | **Senior, 3+ года опыта client-side разработки** |
| Формат работы | Офисы в Кипре/Армении/Казахстане **или полностью удалённо** — локационных ограничений нет |
| TL;DR | Формат работы полностью удалённый (плюс), но стек и домен — специализированная геймдев-разработка на игровых движках (Cocos, Phaser, Babylon, Pixi, Spine SDK), не веб-Vue-разработка. Плюс явное требование Senior/3+ года. |
## B) Совпадение с CV
| Требование JD | Совпадение с cv.md |
|---|---|
| 3+ года client-side разработки (TypeScript/C#/Haxe) | ⚠️ Частично: TypeScript есть, но стаж кандидата ~1 год, не 3+ |
| Игровые движки (Cocos, Phaser, Babylon, Pixi) | ❌ Не упоминается в cv.md — Vue.js не является игровым движком, прямого переноса навыков нет |
| Spine SDK (2D-анимация для игр) | ❌ Не упоминается |
| Опыт работы с большими кодовыми базами | ⚠️ Частично — ЕКОМ разрабатывался с нуля, крупная кодовая база не описана явно |
| Технический дизайн, декомпозиция задач по игровому/серверному дизайну | ❌ Не упоминается — нет игрового домена в опыте |
**Вывод:** несмотря на пересечение по TypeScript, это специализированная gamedev-роль (движки, игровая логика, монетизационные события) — принципиально другой технический домен относительно Vue.js SPA-разработки. Плюс явный Senior-барьер (3+ года).
## C) Уровень и стратегия
Не применимо — квалификационный (домен игровых движков) и уровневый (Senior, 3+ года) барьеры делают роль нерелевантной независимо от локации.
## D) Компенсация и спрос
Зарплата не указана в JD (стандартно для международных gamedev-компаний, встречный оффер обсуждается индивидуально). Оценка нерелевантна при данном несоответствии.
## E) План персонализации
Не применимо.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Прямой работодатель | Nexters — публичная компания (NASDAQ: GDEV), часть холдинга GDEV |
| Кнопка отклика | "Apply now" активна |
| Качество описания | Очень подробное: конкретный проект (Hero Wars), реалистичные обязанности, детальный список бенефитов и условий |
| Формат работы | Явно указан ("Work format: офисы в официальных локациях или удалённо") — не generic-шаблон |
---
## Извлечённые ключевые слова
TypeScript, C#, Haxe, Cocos, Phaser, Babylon, Pixi, Spine SDK, gamedev, client-side development, монетизация, игровые события, code review
@@ -0,0 +1,57 @@
# Оценка: МТС — Middle QA fullstack [Телеком платформа]
**Дата:** 2026-07-08
**Архетип:** Не соответствует ни одному целевому архетипу (QA/тестирование, не разработка)
**Балл:** 1.0/5
**URL:** https://job.mts.ru/vacancy/679310015839863189
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | QA Engineer — тестирование телеком-платформы, не разработка |
| Domain | Телеком-платформа МТС |
| Function | QA/тестирование (работа с функциональными/нефункциональными требованиями, спецификациями) |
| Seniority | Middle |
| Формат работы | Удалённая работа — локационных ограничений нет |
| TL;DR | Локация не блокер (remote), но функциональное несоответствие: это QA-роль, не разработка. Как и в отчёте 081 (Positive Technologies), удалённый формат не компенсирует полное отсутствие пересечения по профессии. |
## B) Совпадение с CV
Не оценивается детально — функциональное несоответствие (QA, не разработка) делает детальное сопоставление технических требований нерелевантным. Кандидат — разработчик (Frontend/Flutter/Fullstack), не QA-инженер.
## C) Уровень и стратегия
Не применимо — функциональное несоответствие, а не вопрос уровня.
## D) Компенсация и спрос
Зарплата не указана в JD. Оценка нерелевантна при полном функциональном несоответствии.
## E) План персонализации
Не применимо.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Прямой работодатель | ООО МТС Веб Сервисы, официальный карьерный портал |
| Кнопка отклика | "Откликнуться" активна |
| Качество описания | Подробное, реалистичные QA-обязанности и требования |
---
## Извлечённые ключевые слова
QA-инженер, тестирование, требования, спецификации, телеком-платформа
+57
View File
@@ -0,0 +1,57 @@
# Оценка: МТС — Middle/Senior Fullstack разработчик
**Дата:** 2026-07-08
**Архетип:** Fullstack-разработчик (Vue+Node.js) — adjacent, но локация под вопросом
**Балл:** 1.0/5
**URL:** https://job.mts.ru/vacancy/494139774567713837
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Fullstack-разработчик — adjacent архетип кандидата, но стек в JD не детализирован (только "backend и frontend разработка") |
| Domain | МТС — мультисервисная цифровая экосистема (продукт не уточнён) |
| Function | Build + Requirements-analysis (сбор требований, проектирование, интеграции) |
| Seniority | Middle/Senior, опыт более 2 лет |
| Формат работы | **Не указан явно** — карточка вакансии показывает только "Москва" и "Гибкий график" (плавающее начало дня), без тега "Удалённая работа" или "Гибридный", в отличие от остальных 6 вакансий МТС в этой партии, где формат указан явно |
| TL;DR | Это единственная из 7 вакансий МТС без явного указания удалённого/гибридного формата — только "Москва" + "Гибкий график". Отсутствие явного remote-тега при явном указании Москвы трактуется консервативно как вероятное присутствие в офисе, что является блокером по локационной политике кандидата (Тула, без релокации). |
## B) Совпадение с CV
Не оценивается детально в силу вероятного локационного блокера (см. TL;DR) и неконкретного стека JD ("хорошие навыки backend и frontend разработки" без указания конкретных фреймворков — невозможно оценить совпадение с Vue/Node.js стеком кандидата).
## C) Уровень и стратегия
Не применимо.
## D) Компенсация и спрос
Зарплата не указана в JD. Оценка нерелевантна при вероятном локационном блокере.
## E) План персонализации
Не применимо.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Прямой работодатель | ООО МТС Веб Сервисы, официальный карьерный портал |
| Кнопка отклика | "Откликнуться" активна |
| Качество описания | Умеренно подробное, но менее конкретное по стеку/продукту чем остальные вакансии МТС в этой партии |
---
## Извлечённые ключевые слова
Backend, frontend, кроссбраузерные решения, Git, SQL, реляционные базы данных
+65
View File
@@ -0,0 +1,65 @@
# Оценка: Неизвестный работодатель (Telegram-брокер @ann0_ch0) — WebView-разработчик (Unity / Flutter / Native)
**Дата:** 2026-07-09
**Архетип:** Mobile Developer (Flutter) — secondary, но не совпадает по факту работы
**Балл:** 1.0/5
**URL:** https://t.me/s/dartlang_jobs/4220
**Legitimacy:** Suspicious
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Формально пересекается с Mobile (Flutter), но по сути это не разработка приложения — задача "обернуть" готовый контент в WebView и провести его через модерацию сторов на любом из трёх стеков (Unity/Flutter/Native) |
| Domain | Не указан — нет названия компании, нет описания продукта |
| Function | Разовая/проектная сдача приложений в сторы, сдельная оплата за каждое прошедшее модерацию приложение |
| Seniority | Не указан (только "опыт разработки WebView от 6 месяцев") |
| Формат работы | Не указан (нет упоминания удалёнки/офиса) |
| Оформление | Не указано — нет признаков ТК РФ/ГПХ, оплата "сдельная за каждое приложение", похоже на разовые подрядные заказы без оформления |
| TL;DR | Это не вакансия в обычном смысле, а предложение серийной сборки WebView-обёрток для прохождения стора за сдельную оплату — не совпадает с профилем кандидата (production Flutter-разработка) и не имеет признаков полноценного трудоустройства |
## B) Совпадение с CV
Детальное сопоставление не имеет смысла: сама природа задачи (серийная сборка WebView-приложений для стора, сдельно, без компании и без описания продукта) не соответствует ни одному из архетипов кандидата — Frontend Vue.js, Flutter mobile production, Fullstack Vue+Node. У кандидата есть опыт Flutter (`cv.md` — "Здесь Аптека"), но это опыт полноценной продуктовой разработки с командой и релизным циклом, а не сдельного массового WebView-клонирования.
**Пробелы:**
1. Hard blocker — это не позиция, которую стоит рассматривать как трудоустройство: нет компании, нет фиксированной оплаты, нет описания продукта.
2. Смежного опыта, закрывающего разрыв, не требуется — сама структура предложения не подходит под цели кандидата (стабильный доход 100-120к+ ₽/мес на руки).
## C) Уровень и стратегия
Не применимо — нет грейда, нет описания продукта, нет команды.
## D) Компенсация и спрос
Оплата не фиксирована — "сдельная оплата за каждое приложение, прошедшее в стор", объём не гарантирован ("готовы выкупать любой объём в месяц" — формулировка на стороне заказчика, не кандидата). Сравнить с целевым диапазоном кандидата (100 000–120 000+ ₽/мес на руки) невозможно — нет базовой ставки. Справочно, рынок Flutter Middle remote в РФ в 2026 году — около 150 000–250 000 ₽/мес gross (Хабр Карьера, hh.ru), но эта вакансия не сопоставима по формату занятости.
## E) План персонализации
Не применимо — не рекомендуется откликаться.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: Suspicious**
| Сигнал | Наблюдение |
|---|---|
| Название компании | Отсутствует — контакт только личный Telegram-аккаунт (@ann0_ch0) |
| Оплата | Сдельная, без базовой ставки, привязана к прохождению модерации сторов — типичная схема массового клонирования/фарма приложений в сторах |
| Формат сообщения | Короткий пост-объявление без описания продукта, команды или условий — типичная структура для брокерских/посреднических предложений в этом канале |
| Apply-контрол | Не применимо (Telegram-контакт, не форма отклика) |
Это не обвинение в мошенничестве — возможно, это легитимный подрядный заказ на массовую публикацию WebView-приложений. Но по структуре предложения (нет компании, сдельная оплата, личный контакт) кандидату стоит отнестись с осторожностью и не рассматривать это как замену полноценному трудоустройству.
---
## Извлечённые ключевые слова
WebView, Unity, Flutter, Native, Swift, Kotlin, Java, модерация сторов, сдельная оплата
@@ -0,0 +1,71 @@
# Оценка: Swiftly / STA TECH — Frontend Developer / Junior Flutter-разработчик
**Дата:** 2026-07-09
**Архетип:** Mobile Developer (Flutter) — secondary
**Балл:** 1.2/5
**URL:** https://t.me/s/dartlang_jobs/4229
**Legitimacy:** Proceed with Caution
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Mobile Developer (Flutter) — совпадает по стеку (Dart, Flutter, REST API, WebSockets, навигация) |
| Domain | Swiftly — рабочее пространство для команд (чат, задачи, календарь, облако, звонки), стадия до релиза |
| Function | Build — разработка и доработка Flutter-приложения, подключение экранов к backend-логике |
| Seniority | Junior — ниже целевого уровня кандидата (Middle) |
| Формат работы | #Удаленка, гибкий график, проектное участие |
| Оформление | Не указано (нет упоминания ТК РФ/ГПХ) — формулировка "обсуждаем оплату после релиза" указывает на отсутствие формального оформления на старте |
| TL;DR | Реальный продукт и стек соответствуют профилю кандидата (Flutter, API, WebSockets), но **оплаты сейчас нет** — "фиксированной оплаты нет до выхода приложения", оплата обсуждается только после релиза и начала монетизации |
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Dart: типы, коллекции, null safety, ООП | cv.md — "Языки программирования: ... Dart"; коммерческий Flutter-опыт в «Здесь Аптека» |
| Async: Future, async/await, Stream | cv.md — Flutter-стек, BLoC (предполагает знание async-паттернов Dart) |
| Flutter Core: Stateless/Stateful widgets | cv.md — "Mobile: Flutter, BLoC, ... Flutter Router, чистая архитектура" |
| REST API, WebSockets | cv.md — "Сеть: REST API, WebSocket/WSS" (опыт с WSS на проекте РМК) |
| Навигация (Navigator 2.0/go_router) | Не подтверждено явно в cv.md — использовался "Flutter Router" |
**Пробелы:**
1. Junior-грейд вакансии — не hard blocker сам по себе, но сигнал, что роль ориентирована на менее опытного кандидата, чем Middle-уровень «Здесь Аптека».
2. **Hard blocker: отсутствие фиксированной оплаты на старте.** Это не пробел в компетенциях, а структурный красный флаг — работа "за долю в будущей монетизации" не покрывает целевой доход кандидата (100 000–120 000+ ₽/мес на руки) и не имеет реалистичного пути закрытия без явного изменения условий со стороны компании.
## C) Уровень и стратегия
Естественный уровень кандидата для Flutter-архетипа — Middle (secondary fit, ~1.5 года коммерческого Flutter-опыта). Вакансия рассчитана на Junior — с точки зрения грейда кандидат перекрывает требования с запасом. Но стратегия "продать senior" здесь не актуальна: ключевой блокер не уровень, а модель оплаты.
## D) Компенсация и спрос
Оплата не фиксирована: "На текущем этапе фиксированной оплаты нет до выхода приложения. После релиза и начала монетизации обсуждаем оплату." Это соответствует модели "equity/upside в обмен на бесплатный труд", распространённой у ранних стартапов без финансирования. Справочно (WebSearch, 2026): Middle Flutter remote в РФ — ориентировочно 150 000–250 000 ₽/мес gross (Хабр Карьера, hh.ru); даже Junior Flutter обычно предполагает хотя бы минимальную фиксированную ставку. Это предложение **ниже рынка на всю сумму базовой ставки** — заведомо ниже целевого диапазона кандидата.
## E) План персонализации
Не рекомендуется к отклику при текущих условиях — план персонализации нецелесообразен.
## F) План собеседований
Не применимо при текущих условиях оплаты.
## G) Легитимность вакансии
**Оценка: Proceed with Caution**
| Сигнал | Наблюдение |
|---|---|
| Компания | Указана (Swiftly / STA TECH), продукт описан конкретно (workspace-приложение: чат, задачи, календарь) |
| Техническая специфичность | Высокая — детальный список технологий и задач, похоже на реальный проект, а не шаблонный текст |
| Модель оплаты | Открыто заявлена как "без оплаты до релиза" — не скрыта, что честно со стороны компании, но объективно не подходит под цели кандидата по доходу |
| Apply-контрол | Личный Telegram-контакт (@Tank300Dargo), не форма отклика |
Компания открыто и честно указывает модель оплаты — это не признак мошенничества, а типичная ранняя стадия pre-seed стартапа. Тем не менее, для кандидата с чёткой целью по доходу (100–120к+ ₽/мес на руки) это делает предложение непригодным вне зависимости от легитимности.
---
## Извлечённые ключевые слова
Flutter, Dart, null safety, async/await, Stream, StatefulWidget, REST API, WebSockets, Navigator 2.0, go_router, MediaQuery, LayoutBuilder
+58
View File
@@ -0,0 +1,58 @@
# Оценка: АО ГК Орбита — Fullstack C# Senior
**Дата:** 2026-07-09
**Архетип:** Не совпадает ни с одним архетипом кандидата
**Балл:** 1.0/5
**URL:** https://t.me/s/runello_rus_backend/4055
**Legitimacy:** Proceed with Caution
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Fullstack C# — не пересекается ни с одним из архетипов кандидата (Frontend Vue.js, Mobile Flutter, Fullstack Vue+Node.js) |
| Domain | АО ГК Орбита — ИТ-компания, цифровизация бизнеса (госсектор, FinTech, HR Tech, недвижимость, travel) |
| Seniority | Senior |
| Формат работы | Не раскрыт — карточка в Telegram-канале (Runello-бот) даёт только заголовок и описание компании, полный текст JD доступен через deep-link в Telegram-боте, недоступный для извлечения через браузер |
| TL;DR | Основной стек роли — C# (Senior Fullstack), это не Vue.js/TypeScript и не Flutter/Dart — прямое архетипическое несовпадение, независимо от условий формата работы и компенсации |
## B) Совпадение с CV
Не оценивается детально: у кандидата нет опыта коммерческой разработки на C#/.NET (`cv.md` — фронтенд-стек: Vue 3/TS, мобильный: Flutter/Dart, знакомство с Node.js/Express на уровне hackathon-проекта). Даже при полном раскрытии JD совпадение с профилем кандидата было бы минимальным.
## C) Уровень и стратегия
Не применимо — стек не совпадает.
## D) Компенсация и спрос
Зарплата не раскрыта в доступном фрагменте карточки (полный текст — за Telegram-бот deep-link). Оценка нерелевантна при архетипическом несовпадении.
## E) План персонализации
Не применимо — не рекомендуется откликаться.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: Proceed with Caution**
| Сигнал | Наблюдение |
|---|---|
| Компания | Указана явно (АО ГК Орбита), с описанием отраслей |
| Полнота JD | Заголовок + описание компании видны в превью канала, но полный текст требования/условия скрыт за deep-link Runello-бота (`t.me/RunelloBot/...`), недоступный для верификации через браузер |
| Apply-контрол | Кнопки "Подробнее"/"Откликнуться" ведут в Telegram-бот, не проверялись напрямую |
Умеренные сигналы: реальная компания с описанием, но невозможность увидеть полный текст вакансии через браузер не позволяет полностью подтвердить активность и условия — это ограничение канала-агрегатора (Runello), а не признак недобросовестности конкретного объявления.
---
## Извлечённые ключевые слова
C#, .NET, Fullstack, Senior, госсектор, FinTech, HR Tech
+61
View File
@@ -0,0 +1,61 @@
# Оценка: EvaTeam — Frontend разработчик Angular
**Дата:** 2026-07-09
**Архетип:** Frontend Developer — не совпадает по фреймворку (Angular, не Vue.js)
**Балл:** 1.3/5
**URL:** https://t.me/s/runello_rus_webdevelopment/4709
**Legitimacy:** Proceed with Caution
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend Developer — пересекается по функции (frontend-разработка), но фреймворк роли — Angular, а не Vue.js (профиль кандидата) |
| Domain | EvaTeam — российская альтернатива Jira/Confluence/Jira Service Management (продуктовая B2B SaaS-компания) |
| Формат работы | Не раскрыт в доступном фрагменте — полный текст JD за deep-link Runello-бота |
| TL;DR | Продукт понятный и реальный (task-management SaaS), но требуемый стек — Angular, а не Vue 3/Composition API/Pinia, на которых строится весь коммерческий опыт кандидата |
## B) Совпадение с CV
У кандидата нет коммерческого опыта Angular (`cv.md` — Frontend-стек: Vue 3, Composition API, Vue Router, Pinia, Tailwind, shadcn; Vue 2 отмечен только "базово"). Angular — отдельная экосистема (TypeScript+RxJS+DI-контейнер+модульная архитектура), общего между Vue 3 Composition API и Angular немного за пределами TypeScript.
**Пробелы:**
1. Hard requirement по фреймворку — Angular не входит в стек кандидата, это не пробел, закрываемый смежным опытом за короткий срок.
2. Общий TypeScript-опыт (у кандидата есть) частично смягчает разрыв, но большинство Angular-специфичных требований (DI, RxJS, модули) не подтверждены в CV.
## C) Уровень и стратегия
Не применимо — стек не совпадает.
## D) Компенсация и спрос
Зарплата не раскрыта в доступном фрагменте карточки (текст за Runello-бот deep-link). Оценка нерелевантна при стековом несовпадении.
## E) План персонализации
Не рекомендуется — стек роли не пересекается с текущим профилем кандидата настолько, чтобы обосновать персонализацию CV под Angular без реального опыта.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: Proceed with Caution**
| Сигнал | Наблюдение |
|---|---|
| Компания | Указана явно (EvaTeam), продукт описан конкретно и правдоподобно |
| Полнота JD | Заголовок + описание компании видны, полный текст условий/требований скрыт за Telegram-бот deep-link, не проверялся напрямую |
| Apply-контрол | Кнопки "Подробнее"/"Откликнуться" ведут в Runello-бот |
Реальная продуктовая компания с понятным описанием — умеренно позитивный сигнал, ограничение оценки связано с форматом канала-агрегатора, а не с самой вакансией.
---
## Извлечённые ключевые слова
Angular, TypeScript, Frontend, SaaS, task management
+87
View File
@@ -0,0 +1,87 @@
# Оценка: AppDepo — Flutter Developer (Junior)
**Дата:** 2026-07-09
**Архетип:** Mobile Developer (Flutter) — secondary, сильное совпадение по стеку
**Балл:** 3.2/5
**URL:** https://geekjob.ru/vacancy/6a438ed2be5714b9180b0517
**Legitimacy:** High Confidence
**PDF:** output/cv-valeriya-romanova-appdepo-2026-07-09.pdf
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Mobile Developer (Flutter) — сильное совпадение по стеку (Flutter, Dart, Bloc/Cubit, REST API, Firebase) |
| Domain | AppDepo — собственная продуктовая платформа для мобильных приложений программ лояльности (торговые центры, медцентры, рестораны) |
| Function | Build — разработка и поддержка мобильных приложений, интеграция с REST API, code review |
| Seniority | Стажер • Джуниор • Миддл — компания явно открыта к кандидатам без коммерческого опыта, с pet-проектами |
| Формат работы | Полностью удалённо, гибкий график, частичная или полная занятость |
| Оформление | Не указано явно (почасовая оплата, еженедельные выплаты — похоже на подрядную/фриланс-модель, а не оформление по ТК РФ) |
| TL;DR | Сильнейшее стековое совпадение среди вакансий этой партии (Flutter+Bloc+Firebase+REST — прямое совпадение с cv.md), но зарплата не раскрыта в вакансии (только "почасовая оплата, еженедельные выплаты"), формат больше похож на гибкий подряд, чем на штатную позицию |
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Flutter, Dart | cv.md — "Mobile: Flutter, BLoC, Service Locator (DI), Flutter Router, чистая архитектура"; коммерческий опыт на «Здесь Аптека» |
| Bloc/Cubit | cv.md — прямое совпадение: "BLoC" явно указан в разделе Mobile |
| REST API, HTTP, JSON | cv.md — "Сеть: REST API, WebSocket/WSS" |
| Firebase | cv.md — "Firebase Cloud Messaging (push-уведомления)" — прямое совпадение, включая опыт перепривязки токенов между Android/iOS |
| Code review, работа в команде | cv.md — обучила коллегу с 11-летним стажем работе с git, менторский опыт |
| pet-проекты / примеры кода | Портфолио отсутствует (`modes/_profile.md`: "нет живого демо/GitHub") — единственный формальный пробел, но JD явно принимает "другой практический опыт", а у кандидата есть значимый коммерческий опыт вместо pet-проектов |
**Пробелы:**
1. Публичного портфолио/GitHub нет — но JD допускает замену на описание практического опыта, что у кандидата есть в избытке (коммерческий Flutter-проект «Здесь Аптека»).
2. Опыт использования AI-инструментов (Claude Code, Cursor) отмечен как плюс, не подтверждён в cv.md — не hard blocker.
## C) Уровень и стратегия
Естественный уровень кандидата (Middle, ~1.5 года коммерческого Flutter-опыта) выше "Junior" в заголовке, но вилка вакансии сама включает Миддл, и описание явно нацелено на широкий диапазон уровней. Стратегия: подавать заявку с явным указанием коммерческого Flutter-опыта (баг-фиксы, «Избранное», редизайн) как более сильную альтернативу pet-проектам, которые компания принимает по умолчанию — это должно поднять кандидата выше типичного джуниора без опыта.
## D) Компенсация и спрос
Зарплата **не раскрыта в тексте JD** — указана только модель оплаты: "почасовая оплата, еженедельные выплаты, частичная или полная занятость". Это не позволяет напрямую сравнить с целевым диапазоном кандидата (100 000–120 000+ ₽/мес на руки). Справочно (WebSearch, 2026): Middle Flutter remote в РФ — ориентировочно 150 000–250 000 ₽/мес gross (Хабр Карьера, hh.ru); почасовая модель может как совпасть, так и оказаться существенно ниже этого диапазона в пересчёте на полную занятость — критично уточнить ставку и ожидаемую загрузку до отклика.
## E) План персонализации
| # | Раздел | Текущее состояние | Предлагаемое изменение | Почему |
|---|--------|-------------------|------------------------|--------|
| 1 | Summary | Общий фрейминг Vue+Flutter | Сместить акцент на Flutter/Bloc/Firebase-часть опыта | JD целиком про Flutter-стек |
| 2 | Опыт | Общее описание проекта «Здесь Аптека» | Выделить конкретные баги/фичи (Избранное, редизайн кнопки) как аналог "pet-проектов" с измеримым результатом | Компания явно оценивает практические примеры вместо формального опыта |
| 3 | Контакты | — | В сопроводительном письме прямо спросить про почасовую ставку и ожидаемую загрузку (часов/неделю) | Это единственный некритичный, но решающий для принятия решения пробел |
## F) План собеседований
| # | Требование JD | История STAR+R | S | T | A | R | Reflection |
|---|---------------|----------------|---|---|---|---|------------|
| 1 | Bloc/Cubit, REST API | Диагностика бага «Избранное» (загрузка одним запросом) | Жалобы пользователей на неоткрывающийся раздел | Найти причину и починить без потери UX | Реализовала постраничную загрузку после обсуждения с бэкенд-разработчиком | Жалобы прекратились | Проверять предположения о причине бага эмпирически, не полагаться на первую гипотезу |
| 2 | Firebase | Портирование push-уведомлений Android→iOS | Приложения только под Android, нужен iOS-релиз | Перепривязать токены Firebase на новую платформу | Собрала iOS-билды, отправила на проверку в App Store | Успешный релиз на обеих платформах | Кросс-платформенная работа с push требует внимания к деталям токенов на каждой ОС |
| 3 | Code review / командная работа | Обучение коллеги с 11-летним стажем Git/Feature Branching | Команда не использовала стабильный workflow версионирования | Внедрить Feature Branching и обучить коллегу | Переход на стабильные еженедельные релизы | Сократилось количество "зависших" фич | Внедрение процесса требует не только технического решения, но и терпеливого обучения |
**Рекомендуемый кейс:** «Здесь Аптека» — диагностика и фикс бага «Избранное» — прямое совпадение с ожиданиями JD (интеграция REST API, самостоятельный поиск причины багов).
**Вопрос-ловушка:** "Почему рассматриваете позицию Junior при вашем опыте?" → ответ: "Вилка вакансии явно включает Middle, и меня привлёк стек (Bloc, Firebase) и продукт — готова обсуждать грейд и условия по итогам собеседования."
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Прямой работодатель | AppDepo, указан сайт продукта (app-depo.ru), карточка компании на geekjob.ru |
| Кнопка отклика | "Откликнуться" активна, форма на странице |
| Дата публикации | 30 июня — свежая (посадка в течение ~10 дней до оценки) |
| Тех. специфичность | Высокая — конкретный стек, конкретные задачи, реалистичные требования, детальный раздел "Условия" |
| Прозрачность модели оплаты | Открыто указана почасовая модель — не скрыта, но сумма не названа |
Компания открыто описывает модель оплаты и продукт — сильный позитивный сигнал легитимности. Единственная неопределённость (конкретная ставка) — нормальная часть переговорного процесса, а не признак недобросовестности.
**Vibe команды:** Судя по формулировкам JD — небольшая продуктовая команда с регулярным code review и готовностью обучать менее опытных разработчиков ("поддержка команды и регулярный code review", открытость к кандидатам без коммерческого опыта). Явных признаков автономии/RFC нет, но гибкий график и приветствие AI-инструментов в работе — позитивный сигнал гибкости. Недостаточно данных в JD об оформлении (ТК РФ vs подряд) — стоит уточнить на собеседовании.
---
## Извлечённые ключевые слова
Flutter, Dart, Bloc, Cubit, REST API, HTTP, JSON, Firebase, Git, code review, мобильные приложения, программы лояльности
+58
View File
@@ -0,0 +1,58 @@
# Оценка: Awelite — Fullstack Web разработчик
**Дата:** 2026-07-09
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent, но бэкенд-стек не совпадает (PHP)
**Балл:** 1.3/5
**URL:** https://t.me/s/runello_rus_frontend/3926
**Legitimacy:** Proceed with Caution
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Fullstack Developer — компания явно специализируется на веб-разработке на **PHP**, а не Node.js |
| Domain | Awelite — аккредитованная Минцифры РФ IT-компания, веб-разработка для крупного/среднего бизнеса |
| Формат работы | Не раскрыт в доступном фрагменте — полный текст JD за deep-link Runello-бота |
| TL;DR | Основной бэкенд-стек компании — PHP, тогда как fullstack-опыт кандидата построен на Node.js/Express/MongoDB — вероятное архетипическое несовпадение по бэкенд-части |
## B) Совпадение с CV
Frontend-часть роли потенциально могла бы пересекаться с опытом кандидата (Vue 3), но описание компании явно указывает PHP как основной бэкенд-стек — у кандидата нет опыта PHP (`cv.md` — backend только на ознакомительном уровне: Node.js, Express, MongoDB). Без подтверждения конкретного frontend-фреймворка роли (не указан в доступном фрагменте) оценка совпадения ограничена.
**Пробелы:**
1. PHP-бэкенд — hard requirement для "Fullstack" роли в PHP-компании, не покрывается опытом кандидата.
## C) Уровень и стратегия
Не применимо — стек не подтверждён.
## D) Компенсация и спрос
Зарплата не раскрыта в доступном фрагменте карточки (текст за Runello-бот deep-link).
## E) План персонализации
Не рекомендуется без подтверждения frontend-стека роли (Vue vs что-то другое) и без опыта PHP на бэкенде.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: Proceed with Caution**
| Сигнал | Наблюдение |
|---|---|
| Компания | Указана явно (Awelite), с описанием (аккредитация Минцифры, PHP-специализация) |
| Полнота JD | Только заголовок + описание компании, полный текст условий скрыт за Telegram-бот deep-link |
| Apply-контрол | Кнопки "Подробнее"/"Откликнуться" ведут в Runello-бот |
---
## Извлечённые ключевые слова
PHP, Fullstack, веб-разработка, Минцифры РФ
+71
View File
@@ -0,0 +1,71 @@
# Оценка: Young&Junior (публикация от лица "СОФИ И ПАРТНЕРЫ") — Junior Frontend Разработчик
**Дата:** 2026-07-09
**Архетип:** Frontend Developer — не совпадает по фреймворку (React, не Vue.js)
**Балл:** 1.6/5
**URL:** https://finder.work/vacancies/32324807
**Legitimacy:** Proceed with Caution
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend Developer — функция совпадает, но требуемый фреймворк — React (хуки, состояние, роутинг), а не Vue.js |
| Domain | Job-board платформа для джунов/стажёров Young&Junior (30 000 пользователей в месяц) — сама вакансия публикуется на площадке "СОФИ И ПАРТНЕРЫ" в Грозном |
| Function | Build — вёрстка интерфейсов, интеграция с REST API, настройка фронтенд-аналитики (Yandex Metrica/GA/GTM, A/B-тесты) |
| Seniority | Junior, без опыта — открытая позиция для начинающих |
| Формат работы | Полная удалёнка, гибкое начало дня — подходит по локационной политике |
| TL;DR | Полностью удалённая позиция с интересными задачами (продуктовая аналитика на фронте), но требуемый стек — React, а не Vue 3, и зарплата от 90 000 ₽ — на нижней границе целевого диапазона кандидата (100 000–120 000+ ₽/мес на руки) |
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| JavaScript (ES6+), асинхронность | cv.md — "Языки программирования: JavaScript, TypeScript"; коммерческий опыт с async-паттернами (WebSocket, REST) |
| React (хуки, состояние, роутинг) | Не подтверждено — у кандидата коммерческий опыт только на Vue 3 (Composition API, Pinia, Vue Router), Vue 2 отмечен как базовый |
| HTML5/CSS3, Flex/Grid, адаптив | cv.md — "HTML5/CSS3", опыт адаптивной вёрстки в проектах ЕКОМ/РМК |
| REST API | cv.md — "Сеть: REST API, WebSocket/WSS" — прямое совпадение |
| SQL (базовый уровень) | Не подтверждено в cv.md — backend-опыт ограничен Node.js/Express/MongoDB |
| Фронтенд-аналитика (Yandex Metrica/GA/GTM, A/B-тесты) | Не подтверждено в cv.md — новая область |
**Пробелы:**
1. React — hard requirement, не входит в стек кандидата (весь коммерческий frontend-опыт на Vue 3).
2. Продуктовая аналитика на фронте (события, A/B-тесты) — не подтверждённый опыт, но описан в JD как обучаемая часть роли, не строгий барьер на входе.
## C) Уровень и стратегия
Роль позиционируется как Junior/без опыта — ниже естественного уровня кандидата (Middle Vue.js, secondary Flutter). Даже с учётом отставания по React, общий уровень разработки (адаптивная вёрстка, REST-интеграция, работа с командой) у кандидата выше, чем у типичного джуниора без коммерческого опыта. Стратегия: не актуальна при отсутствии React-опыта — переход на новый фреймворк для младшей по грейду позиции с зарплатой ниже целевого диапазона экономически нецелесообразен.
## D) Компенсация и спрос
Зарплата: от 90 000 ₽ (открытая вилка). Это ниже минимума целевого диапазона кандидата (100 000 ₽/мес на руки — walk-away number из `config/profile.yml`). Справочно (WebSearch, 2026): Junior/Middle Frontend remote в РФ на React — рынок сильно варьируется по грейду, но нижняя граница вилки (90к) для полной занятости заметно ниже медианных значений для позиций с продуктовой аналитикой и React-стеком.
## E) План персонализации
Не рекомендуется — стек (React) не совпадает, а зарплата на входе ниже минимума кандидата.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: Proceed with Caution**
| Сигнал | Наблюдение |
|---|---|
| Несоответствие брендинга | Карточка вакансии на finder.work указывает работодателя "СОФИ И ПАРТНЕРЫ" (Грозный), но текст JD от первого лица говорит "Мы — команда платформы Young&Junior" — вероятно, агрегатор/рекрутер публикует вакансию от имени конечного заказчика, но с несовпадающим названием компании в карточке |
| Apply-контрол | Кнопка "Откликнуться на hh.ru" ведёт на конкретный vacancyId=133758090 на hh.ru — реальная, отслеживаемая вакансия |
| Тех. специфичность | Высокая — очень конкретный список задач и требований, похоже на реальную продуктовую роль |
| Дата публикации | Опубликована 4 дня назад (04.07.2026) — свежая |
Несовпадение названия компании между карточкой (СОФИ И ПАРТНЕРЫ, Грозный) и телом текста (Young&Junior) — не обязательно признак недобросовестности (частая практика агрегаторов и рекрутинговых агентств), но кандидату стоит уточнить фактического работодателя и место трудоустройства до отклика.
---
## Извлечённые ключевые слова
React, JavaScript, ES6+, REST API, HTML5, CSS3, Flex, Grid, Yandex Metrica, Google Analytics, GTM, A/B-тесты, SQL
@@ -0,0 +1,64 @@
# Оценка: Constructor TECH — Frontend Engineer (Intern)
**Дата:** 2026-07-09
**Архетип:** Frontend Developer — функция совпадает, но роль формально недоступна кандидату
**Балл:** 1.0/5
**URL:** https://job-boards.eu.greenhouse.io/constructortech/jobs/4772104101 (найдена через встроенный careers-виджет на https://constructor.tech/about-us; исходная ссылка из Telegram вела на общую "about us"-страницу, не на конкретную вакансию)
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend Developer — стек гибкий (React, Vue.js или Angular — "familiarity with... any"), функция совпадает |
| Domain | Constructor — платформа для цифрового образования (EdTech, machine intelligence и data science) |
| Function | Build — вёрстка, поддержка frontend-компонентов, участие в code review, полный цикл разработки |
| Seniority | Стажировка (Internship), от 2 месяцев |
| Формат работы | 100% удалённо ИЛИ гибрид в офисах Bremen (GER), Sofia (BG), Belgrade (SRB), Istanbul (TR), Sakarya (TR), Singapore — удалённый вариант формально снимает локационный блокер |
| TL;DR | **Hard blocker, не связанный с локацией:** обязательное поле формы отклика — "Are you a student at Constructor University OR Constructor Nexademy OR Nexford University?" — стажировка предназначена для студентов конкретных партнёрских вузов; кандидат не учится ни в одном из них. Также интерны прямо исключены из льгот ("NOT eligible for equipment and other benefits") — оплата в JD не упомянута вовсе |
## B) Совпадение с CV
Стек гибкий (JD допускает React, Vue.js или Angular) — у кандидата есть Vue 3 (`cv.md`), формально удовлетворяет "familiarity with frontend frameworks". HTML5/CSS3/JS(ES6+)/Git — прямое совпадение.
**Пробелы:**
1. **Hard blocker: eligibility.** Форма отклика требует подтверждения обучения в Constructor University / Constructor Nexademy / Nexford University — у кандидата профильное образование в ТулГУ, не в одном из партнёрских вузов. Это не пробел в компетенциях, а формальный барьер входа, который нельзя закрыть опытом или сопроводительным письмом.
2. Оплата не упомянута — интерны явно исключены из льгот компании, что для кандидата с чётким доходным таргетом (100 000–120 000+ ₽/мес на руки) делает позицию непригодной независимо от eligibility.
## C) Уровень и стратегия
Не применимо — позиция недоступна кандидату по формальному критерию (не студент партнёрского вуза).
## D) Компенсация и спрос
Оплата не упомянута в JD. Указано, что "Interns are NOT eligible for equipment and other benefits as the position is temporary" — сильный сигнал, что стажировка неоплачиваемая или компенсируется минимально. Несовместимо с целевым доходом кандидата.
## E) План персонализации
Не применимо — не рекомендуется откликаться (формальный барьер входа + вероятно неоплачиваемая позиция).
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Прямой работодатель | Constructor TECH, официальная страница на Greenhouse (job-boards.eu.greenhouse.io) |
| Apply-контрол | Полноценная форма отклика активна, включая загрузку резюме и кастомные вопросы |
| Тех. специфичность | Высокая — конкретные обязанности, требования, условия для интернов и полный список бенефитов для штатных сотрудников |
| Прозрачность условий | Компания честно и явно указывает ограничения для интернов (отсутствие льгот, требование к вузу) — не скрытые условия |
Исходная ссылка из Telegram (constructor.tech/about-us) действительно вела на общую страницу компании без явной вакансии, как и было отмечено в задаче — но эта страница содержит встроенный careers-виджет с реальными вакансиями, включая ровно ту позицию Frontend Engineer (Intern), что упоминалась в исходном Telegram-посте. Вакансия сама по себе полностью легитимна; проблема исключительно в её недоступности для кандидата.
---
## Извлечённые ключевые слова
React, Vue.js, Angular, HTML5, CSS3, JavaScript ES6+, Git, code review, EdTech, internship, Bremen
@@ -0,0 +1,64 @@
# Оценка: CHOICY (агентство, партнёрская компания не раскрыта) — Senior Full-stack React Developer
**Дата:** 2026-07-09
**Архетип:** Frontend/Fullstack Developer — не совпадает по фреймворку (React) и по seniority
**Балл:** 1.0/5
**URL:** https://choicy.work/job/1781790025661x566226125055590400
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend/Fullstack — стек React + TypeScript, не Vue.js |
| Domain | B2C SaaS-продукты (генератор резюме, генератор юридических документов) — название конечной компании не раскрыто, роль публикует рекрутинговое агентство CHOICY |
| Function | Build — React-модули, интеграция с backend API/AI-фичами, продуктовая аналитика (funnels, A/B-тесты) |
| Seniority | Senior, **8+ лет опыта** |
| Формат работы | Remote/async |
| Компенсация | $6000–10000/мес (указано явно) |
| TL;DR | Значительно более высокий грейд, чем у кандидата (8+ лет против ~1.5 года коммерческого опыта), и стек — React, а не Vue.js. Двойное несовпадение делает роль нереалистичной для отклика |
## B) Совпадение с CV
TypeScript и общее понимание frontend-разработки пересекаются (`cv.md`), но:
**Пробелы:**
1. 8+ лет опыта — hard requirement по seniority, кандидат на раннем этапе карьеры (~1.5 года коммерческого опыта).
2. React — не входит в стек кандидата (Vue 3 — основной инструмент).
3. Продуктовая аналитика роста (funnels, paywalls, A/B-тесты, retention) — не подтверждена в cv.md.
## C) Уровень и стратегия
Не применимо — разрыв в seniority (8+ лет vs ~1.5 года) слишком велик для стратегии "продать senior без обмана".
## D) Компенсация и спрос
$6000–10000/мес — заметно выше целевого диапазона кандидата (100 000–120 000+ ₽/мес на руки, ≈ $1100-1350/мес по текущему курсу), но это компенсация для совершенно другого грейда (Senior 8+ лет), нерелевантная для сравнения.
## E) План персонализации
Не рекомендуется — двойное несовпадение (грейд + стек).
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Публикатор | CHOICY — рекрутинговое агентство с публичным сайтом, явно обозначает свою роль посредника |
| Apply-контрол | Ссылка на форму отклика ATS (careers.headly.ru) активна |
| Зарплата | Указана явно и конкретно ($6000-10000/мес) |
| Тех. специфичность | Высокая — детальный список задач и требований, специфика продукта раскрыта |
---
## Извлечённые ключевые слова
React, TypeScript, B2C SaaS, funnels, paywalls, A/B-тесты, Figma, продуктовая аналитика
@@ -0,0 +1,59 @@
# Оценка: Tilda Publishing — Head of Frontend-разработки
**Дата:** 2026-07-09
**Архетип:** Не совпадает — управленческая роль, не IC-разработка
**Балл:** 1.0/5
**URL:** https://company.tilda.ru/ru/head-of-frontend
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Head of Frontend / Engineering Manager — управленческая роль, не совпадает ни с одним из архетипов кандидата (все три — IC-роли: Frontend Vue.js, Mobile Flutter, Fullstack Vue+Node) |
| Domain | Tilda Publishing — международная no-code платформа для создания сайтов |
| Function | Manage — управление командой (более 15 разработчиков в подчинении), техническое видение, найм, менторство лидов |
| Seniority | 5+ лет фронтенд-разработки + 3+ года на позиции руководителя — двойной блокер по опыту |
| Формат работы | Гибрид, офисы в Москве и Санкт-Петербурге — удалёнка не упомянута |
| TL;DR | **Двойной hard blocker:** (1) роль управленческая, требует 3+ года опыта руководства командой из 15+ разработчиков — кандидат на позиции IC с ~1.5 годами коммерческого опыта; (2) гибридный формат в офисах Москвы/СПб без явного remote-варианта — нарушает локационную политику кандидата (Тула, без переезда) |
## B) Совпадение с CV
Не оценивается детально — ни функция (менеджмент команды), ни грейд (5+ лет разработки + 3+ года руководства), ни локация (гибрид Москва/СПб) не совпадают с профилем кандидата. Технический стек роли (Vanilla JavaScript, кроссбраузерная вёрстка) частично пересекается с общими frontend-компетенциями кандидата, но это не компенсирует управленческий и локационный блокеры.
## C) Уровень и стратегия
Не применимо — разрыв в уровне (IC ~1.5 года vs Head of Frontend с 15+ подчинёнными) исключает любую стратегию "продать грейд выше".
## D) Компенсация и спрос
Не оценивается — роль недоступна по формату работы и грейду независимо от компенсации.
## E) План персонализации
Не применимо.
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Прямой работодатель | Tilda Publishing, официальная карьерная страница компании |
| Apply-контрол | Полноценная форма отклика на странице, активна |
| Тех. специфичность | Высокая — детальный список задач, требований и условий (включая оформление по ТК РФ с первого дня) |
**Vibe команды:** Судя по формулировкам JD — "минимум бюрократии", "работаем в гибком графике — на результат, а не с 10:00 до 18:00", регулярные performance review — сильные позитивные сигналы культуры для тех, кто подходит по грейду и локации. Не относится к текущей оценке кандидата из-за hard-блокеров выше.
---
## Извлечённые ключевые слова
Head of Frontend, управление командой, Vanilla JavaScript, кроссбраузерная вёрстка, найм, менторство, ТК РФ
+70
View File
@@ -0,0 +1,70 @@
# Оценка: Data World (аутстаффинг для команды Сбера) — Frontend разработчик с опытом работы в банке
**Дата:** 2026-07-09
**Архетип:** Frontend Developer — не совпадает по фреймворку (React) и по минимальному опыту
**Балл:** 1.4/5
**URL:** https://t.me/s/JScript_jobs/5732
**Legitimacy:** High Confidence
**PDF:** не создан (балл ниже порога 3.0)
---
## A) Резюме роли
| Поле | Значение |
|------|----------|
| Архетип | Frontend Developer — стек React 16+, Redux/RTK/RTK Query/SWR, не Vue.js |
| Domain | Data World — аккредитованная Минцифрой IT-компания-аутстаффер; трудовая функция выполняется на стороне продуктовой команды Сбера |
| Function | Build — крупные фронтенд-проекты, архитектура (Feature-Sliced Design, Micro Frontends), code review |
| Seniority | Не менее 3 лет коммерческой разработки на JavaScript/TypeScript — выше текущего опыта кандидата (~1.5 года) |
| Формат работы | #удаленкарф — полностью удалённо из любого города РФ |
| Компенсация | 200 000–208 800 ₽ (указано явно) |
| TL;DR | Привлекательная зарплата (выше целевого диапазона кандидата) и полная удалёнка, но два структурных несовпадения: стек — React вместо Vue, и минимальный порог опыта — 3+ года против ~1.5 года у кандидата |
## B) Совпадение с CV
| Требование JD | Совпадение с CV |
|---|---|
| Опыт коммерческой разработки от 3 лет на JS/TS | Не совпадает — у кандидата ~1.5 года коммерческого опыта (с ноября 2024) |
| React 16+, Redux/RTK/RTK Query/SWR | Не подтверждено — коммерческий опыт кандидата на Vue 3/Pinia, не React/Redux |
| Webpack | cv.md указывает Vite как основной инструмент сборки, не Webpack |
| Jest (модульные/компонентные/интеграционные тесты) | cv.md — тестовый опыт на Vitest/Playwright, не Jest, но общий принцип тестирования знаком |
| Code Review, Git Flow | cv.md — прямое совпадение (внедрила Feature Branching, обучила коллегу Git) |
| Feature-Sliced Design, Micro Frontends | Не подтверждено в cv.md |
**Пробелы:**
1. Порог 3+ года коммерческого опыта — hard requirement, кандидат пока не достигает.
2. React-стек (включая продвинутые паттерны — FSD, Micro Frontends) — не входит в текущий опыт кандидата.
## C) Уровень и стратегия
Не применимо — минимальный порог опыта (3+ года) явно не достигнут, и это не вопрос "продать senior" — компания указала конкретный количественный критерий отбора.
## D) Компенсация и спрос
200 000–208 800 ₽/мес — выше целевого диапазона кандидата (100 000–120 000+ ₽/мес на руки), но это компенсация за роль с более высоким порогом входа (3+ года опыта, React-экспертиза), нерелевантная для прямого сравнения при текущем уровне кандидата.
## E) План персонализации
Не рекомендуется — двойное несовпадение (минимальный опыт + стек).
## F) План собеседований
Не применимо.
## G) Легитимность вакансии
**Оценка: High Confidence**
| Сигнал | Наблюдение |
|---|---|
| Компания | Data World — аккредитованная Минцифрой IT-компания, аутстаффинг-модель прозрачно описана (работа "на стороне команды Сбера") |
| Прозрачность условий | Подробно расписаны оформление (ТК РФ или ИП), белая ЗП, бенефиты, этапы интервью |
| Контакт | Именной email (sberdnikova@data-world.ru), не анонимный |
| Тех. специфичность | Высокая — детальный, реалистичный список требований и технологий |
---
## Извлечённые ключевые слова
React, Redux, RTK Query, SWR, Webpack, Jest, Feature-Sliced Design, Micro Frontends, Git Flow, Jenkins, аутстаффинг, Сбер
+22
View File
@@ -0,0 +1,22 @@
# Оценка: CORE TECHNOLOGY — Frontend Developer (Middle)
**Дата:** 2026-07-09
**Архетип:** Frontend Developer (Vue.js) — тех. стек в посте не указан
**Балл:** 1.0/5
**URL:** https://www.linkedin.com/posts/%D0%BC%D0%B5%D1%85%D1%80%D0%B0%D0%BD%D0%B3%D0%B8%D0%B7-%D1%80%D1%83%D1%81%D1%82%D0%B0%D0%BC%D0%BE%D0%B2%D0%B0-586b8426b_hiring-tashkent-uzbekistan-share-7474720792996601856-UPvh/
**Legitimacy:** Proceed with Caution
**PDF:** ❌
---
## Причина отказа (hard blocker)
Вакансия требует работы **только офлайн в Ташкенте** ("On-site work in Tashkent office (no remote options)", "Must be physically located in Tashkent"). Отклик подразумевает переезд в Узбекистан.
Согласно `modes/_profile.md` → Location Policy: "Hybrid/office roles requiring relocation outside Тула, or requiring business travel: score **1.0**" — переезд и командировки кандидат не рассматривает.
Полная оценка A-F не проводилась — блокер жёсткий и не зависит от совпадения по навыкам.
**Контакт для отклика (для справки, не рекомендуется):** Telegram @mekhrangiz_r, тел. +998 99 030 29 98, будни 10:00-17:00.
**Legitimacy note:** Пост от рекрутера (Мехрангиз Рустамова) с прямым Telegram-контактом на 8 открытых позиций разом — типично для активного найма, но нет структурированной публикации на ATS/сайте компании для кросс-проверки свежести.
+22
View File
@@ -0,0 +1,22 @@
# Оценка: Lunas.pro — Lead Graphics Engineer - Web 3D (WebGPU/Three.js/TypeScript)
**Дата:** 2026-07-09
**Архетип:** Вне текущих архетипов — узкоспециализированная 3D graphics engineering роль
**Балл:** 1.0/5
**URL:** https://geekjob.ru/vacancy/6a43d0dc67c1a829500ba168
**Legitimacy:** High Confidence
**PDF:** ❌
---
## Причина отказа
Роль требует глубокой специализации в 3D-графике: production-опыт с vanilla Three.js (WebGPU renderer, TSL), написание шейдеров вручную (WGSL/GLSL/HLSL/Metal), PBR-материалы, HDRI/IBL, postprocess/G-buffer, GPU-профилирование под мобильные устройства.
В `cv.md` нет ни одного пересечения с этим стеком — опыт кандидата: Vue 3, Flutter, RBAC-авторизация, REST/WebSocket. Ни Three.js, ни WebGPU, ни шейдеров, ни 3D-графики в резюме нет — это принципиально другой инженерный домен (специализированная computer graphics роль), а не смежный frontend-стек.
Дополнительно: заявленный уровень — "Lead", кандидат — Middle. Совпадение по навыкам ниже порога для полной оценки A-F.
**Remote:** удалённо (это не блокер) — блокер чисто по скиллам.
**Legitimacy note:** Прямой работодатель, конкретный стек и требования (не generic JD), дата публикации 30 июня — свежая, признаков ghost job нет.
+26
View File
@@ -0,0 +1,26 @@
# Оценка: Podscribe — Senior Full-stack Engineer (Node.js)
**Дата:** 2026-07-09
**Архетип:** Fullstack Developer (Vue + Node.js) — adjacent fit, но требования не совпадают с профилем
**Балл:** 1.5/5
**URL:** https://geekjob.ru/vacancy/6a465812707e05202708f559
**Legitimacy:** High Confidence
**PDF:** ❌
---
## Причина низкого балла
- **Уровень:** заявлен Senior (5+ лет опыта), у кандидата ~1.5 года коммерческого опыта — существенный разрыв.
- **Frontend-стек:** требуется React; у кандидата — Vue 3 (Composition API), React в резюме не упомянут.
- **Backend-стек:** требуется сильный Node.js/TypeScript + Python + ClickHouse/SQL; у кандидата Node.js/Express/MongoDB отмечены как "ознакомительный уровень" в `cv.md`, Python и ClickHouse отсутствуют.
- **Язык:** международная remote-команда (США), рабочий язык явно английский; у кандидата B1 — риск для реальной синхронной коммуникации на Senior-позиции.
- **Локация/удалёнка:** remote — это не блокер (соответствует политике).
## Что могло бы сработать
Если рассматривать всерьёз — потребовалось бы явно позиционировать это как "stretch"-заявку с акцентом на скорость обучения и WebSocket/backend-touch опыт (хакатон на Express+MongoDB, TulGU-проект на Node.js), но разрыв по уровню и стеку слишком велик для полноценной А-F оценки.
**Salary range:** $4,000–$10,000/мес (широкий разброс, вероятно top of range — для senior+ с полным стеком, не для входящего уровня).
**Legitimacy note:** Прямой работодатель (Podscribe, bootstrapped/profitable), конкретный стек и диапазон зарплаты указаны, дата публикации 2 июля — свежая, признаков ghost job нет.
+20
View File
@@ -0,0 +1,20 @@
# Оценка: IDT — Senior Frontend Software Engineer (React)
**Дата:** 2026-07-09
**Архетип:** Frontend Developer — стек не совпадает (React, не Vue)
**Балл:** 1.0/5
**URL:** https://jobs.lever.co/idt/f1a5f1fd-d773-4474-903f-462073b4334a
**Legitimacy:** High Confidence
**PDF:** ❌
---
## Причина отказа (двойной блокер)
**1. География/оформление:** в посте прямо указано "Remote b2b (Georgia-Moldova) or on-site employment (Belarus-Moldova) work opportunity" — оформление и/или физическое присутствие привязано к Грузии/Молдове/Беларуси, не к РФ. Кандидат в Туле, Россия — не подпадает под доступные варианты оформления.
**2. Стек:** требуется React 18, TypeScript, Vite, **Electron**, **AWS CDK**, CloudFront, S3, Lambda@Edge. У кандидата — Vue 3 (не React), нет Electron, нет AWS CDK/облачного опыта. Уровень заявлен Senior, у кандидата — Middle.
Полная A-F оценка не проводилась — оба блокера (география оформления + стек) делают отклик нецелесообразным.
**Legitimacy note:** Прямой работодатель (IDT), детальная структура команды (7 инженеров, 2 squad), конкретный стек — признаков ghost job нет.
+21
View File
@@ -0,0 +1,21 @@
# Оценка: Acronis — Senior Full-Stack Developer (Partner Experience Platforms)
**Дата:** 2026-07-09
**Архетип:** Frontend Developer (Vue.js) — сильное тематическое совпадение по стеку и RBAC, но блок по локации и уровню
**Балл:** 1.0/5
**URL:** https://www.acronis.com/en/careers/job/r-100807/
**Legitimacy:** High Confidence
**PDF:** ❌
---
## Причина отказа (два жёстких блокера)
1. **Локация:** роль в Болгарии, "Hybrid working model: 2 days in the office" — гибрид с обязательным присутствием в офисе вне Тулы = релокация. Согласно `modes/_profile.md` Location Policy это автоматически даёт **1.0** ("hybrid/office roles requiring relocation outside Тула... score 1.0").
2. **Уровень:** заявлено 6+ лет опыта full-stack на enterprise/SaaS-платформах, архитектурная роль (technical mentor, ownership без прямого репортинга). У кандидата ~1.5 года коммерческого опыта — разрыв слишком велик, "sell senior" здесь не сработает честно.
## Заметка (для паттернов, не влияет на балл)
Несмотря на отказ — стек и требования исключительно хорошо ложатся на профиль по содержанию: "Vue.js, component-driven UI", **"Strong understanding of RBAC, authentication, and authorization patterns"** — это прямое попадание в заявленный дифференциатор кандидата (RBAC-дизайн в ЕКОМ). Стоит держать в уме: если появится Middle/Senior-junior вариант этой же компании с remote-опцией, вернуться к оценке.
**Legitimacy note:** Крупная компания (Acronis, Workday ATS), детальное описание роли и команды, чёткая структура — признаков ghost job нет.
+17
View File
@@ -0,0 +1,17 @@
# Оценка: Naoma AI — Full-Stack Developer (Go/TypeScript)
**Дата:** 2026-07-09
**Архетип:** Вне текущих архетипов — Go backend не пересекается с профилем
**Балл:** 1.0/5
**URL:** https://www.vseti.app/vakansii/3434348834934934843834333
**Legitimacy:** Proceed with Caution
**PDF:** ❌
---
## Причина отказа (двойной блокер)
1. **География:** прямо указано "Remote (outside RF/RB)" — компания явно исключает кандидатов из России и Беларуси. Кандидат в Туле, РФ — не подходит по формальному критерию найма.
2. **Стек:** backend на Go, которого нет в резюме кандидата вообще (только Node.js/Express на ознакомительном уровне). Junior-уровень с фокусом на AI coding tools (Claude Code) — не пересекается с текущим Vue/Flutter профилем.
**Legitimacy note:** Небольшая AI-компания (Naoma AI), конкретные требования и описание задач — не generic JD, но нет проверяемых внешних сигналов (отзывы, публичный сайт с историей).
+94
View File
@@ -0,0 +1,94 @@
# Оценка: Magnit Tech — Fullstack Developer Vue.JS + WebTutor
**Дата:** 2026-07-09
**Архетип:** Frontend Developer (Vue.js), с элементами Fullstack (adjacent)
**Балл:** 3.2/5
**URL:** https://www.vseti.app/vakansii/4374384394304343943843434343
**Legitimacy:** High Confidence
**PDF:** ❌ (балл ниже 4.0 — PDF не генерирую по умолчанию, см. рекомендацию ниже)
---
## A) Резюме роли
| Поле | Значение |
|---|---|
| Архетип | Frontend Developer (Vue.js) + Fullstack (adjacent) |
| Domain | Retail-tech / внутренняя экосистема сервисов |
| Function | Build |
| Уровень в JD | Middle-Senior |
| Формат работы | Remote (РФ); опционально офис Москва/Краснодар/СПб/Иннополис — **опционально, не блокер** |
| Команда | Team Lead, PM, 5 fullstack, дизайнер, 6 системных аналитиков |
| Оформление | Аккредитованная ИТ-компания (даёт налоговые льготы сотруднику, обычно ТК РФ) |
| TL;DR | Vue 3 + TS фронтенд с MS SQL бэкенд-тачем во внутренней HR/обучающей системе (WebTutor) крупного ритейлера |
## B) Совпадение с CV
| Требование JD | CV |
|---|---|
| Vue 3, Composition API, TS | ✅ ЕКОМ — прямое совпадение, ~1 год production |
| 3+ года коммерческого Vue.js | ⚠️ Gap — у кандидата ~1 год коммерческого Vue3 (ЕКОМ) + учебный Vue.js-проект ТулГУ (2022) |
| 2+ года backend-разработки | ❌ Gap — только ознакомительный уровень (Node/Express/MongoDB, хакатон + ТулГУ) |
| 1+ год SQL (прямые запросы) | ❌ Gap — в резюме нет SQL, только MongoDB |
| Git | ✅ Git/GitLab, Feature Branching |
| WebTutor (бонус) | ❌ Не указан как блокер в JD |
**Пробелы:**
1. **Backend/SQL — hard blocker по цифрам** (2+ года backend, 1+ год SQL — формальный порог, который кандидат объективно не закрывает). Смягчить: упомянуть Node.js/Express/MongoDB (ТулГУ, хакатон) как доказательство способности работать с backend, честно отметить отсутствие SQL и готовность быстро освоить.
2. **Года коммерческого Vue.js (3+ vs ~1)** — nice-to-have относительно первого пункта, можно закрыть демонстрацией глубины (RBAC, drag-and-drop календарь, WebSocket) вместо количества лет.
## C) Уровень и стратегия
Естественный уровень кандидата — **Middle Frontend**, JD целится в Middle-Senior **fullstack**. Честно "продать senior" здесь не получится из-за жёстких численных требований к backend/SQL.
**Важная находка:** у Magnit Tech в открытом найме параллельно есть **чисто фронтенд-вакансии** без backend/SQL требований — "Middle Frontend разработчик Vue.js" и "Middle Frontend разработчик (Vue 3 + TypeScript)" (magnit.tech/vacancies/2350 и /2689). Это может быть значительно более сильный матч — тот же стек (Vue 3 + TS), та же компания, без backend-барьера. Рекомендую оценить их отдельно, если интересно.
**План "если понизят":** реалистичнее позиционировать себя не как fullstack-кандидата на эту роль, а претендовать на профильную Middle Frontend вакансию у того же работодателя.
## D) Компенсация и спрос
- Middle Vue.js по РФ: 120 000 – 180 000 ₽ (по данным Habr Career / Practicum, 2026); это выше нижней границы цели кандидата (100-120k+ на руки).
- Компания: **Magnit Tech**, 3500 IT-специалистов, рейтинг 3.74/5 и 74% рекомендаций на Хабр Карьере — плюсы: современный стек, интересные задачи, адекватная зарплата; минусы: неэффективная орг. структура, местами устаревшие методики.
- З/п в вакансии не указана ("обсуждается индивидуально") — учитывая backend/SQL gap, реальное предложение может оказаться ближе к нижней границе диапазона Middle.
- Оформление через аккредитованную ИТ-компанию — плюс к стабильности (даёт налоговые льготы + обычно полноценный ТК РФ).
## E) План персонализации
| # | Раздел | Текущее | Изменение | Почему |
|---|---|---|---|---|
| 1 | Summary | Общий | Добавить фразу про Node.js/MongoDB опыт (ТулГУ, хакатон) | Закрыть backend-gap хотя бы частично |
| 2 | Skills | Backend помечен "ознакомительный" | Оставить честно, добавить "готова углублять SQL/backend" | Не завышать, но показать trajectory |
| 3 | Достижения | RBAC-проект на первом месте | Оставить — прямое попадание в domain WebTutor (HR-система с ролями доступа) | RBAC = сильный дифференциатор именно для системы с ролевой моделью |
## F) План собеседований
| # | Требование JD | История | Reflection |
|---|---|---|---|
| 1 | Vue 3 + TS production | RBAC-модель в ЕКОМ | Научилась объяснять архитектурные решения нетехническим стейкхолдерам |
| 2 | Работа с большими UI-системами | Список заказов с 9 фильтрами (замена таблиц 1С) | Поняла ценность user research перед редизайном |
| 3 | Backend touch | ТулГУ-проект (Vue + Node.js) | Использовать как доказательство fullstack-потенциала |
**Вопрос-ловушка:** "У вас нет 2+ лет backend и SQL — почему решили откликнуться?" → Честный ответ: "Мой fullstack-опыт компактный (учебный проект + хакатон на Node/MongoDB), но я быстро учусь и системно закрываю пробелы — так было с RBAC, в котором у меня тоже не было готовой методологии, я разработала её сама, опираясь на ИБ-образование."
---
## G) Легитимность вакансии
**Оценка: High Confidence**
- Крупный, известный работодатель (Магнит), детальная структура команды указана
- Множественные параллельные Vue.js-вакансии разных уровней у того же работодателя — типично для активного найма в крупной компании, не признак ghost job
- Внешние отзывы существуют и разнообразны (не только позитивные — признак подлинности)
- Дата публикации: 24 июня — свежая
---
## Извлечённые ключевые слова
Vue.js, Vue 3, TypeScript, Composition API, MS SQL, WebTutor, fullstack, Git, HTML, CSS, JavaScript, remote РФ, аккредитованная ИТ-компания, RBAC, ролевая модель, HR-система
---
## Рекомендация
Балл 3.2/5 — ниже порога 4.0, где обычно не рекомендуется откликаться без явной причины. Причина здесь может быть: сильный content-match по Vue3/RBAC и хорошая репутация компании — но backend/SQL требования жёсткие числовые пороги, которые кандидат не закрывает. **Более сильный ход: оценить параллельную вакансию "Middle Frontend разработчик (Vue 3 + TypeScript)" у того же работодателя** (magnit.tech/vacancies/2689) — тот же стек без backend-барьера.
+17
View File
@@ -0,0 +1,17 @@
# Оценка: Buildern — Full Stack Software Engineer
**Дата:** 2026-07-09
**Архетип:** Вне текущих архетипов — React/Node стек, офис в Ереване
**Балл:** 1.0/5
**URL:** https://buildern.bamboohr.com/careers/56
**Legitimacy:** High Confidence
**PDF:** ❌
---
## Причина отказа (двойной блокер)
1. **Локация:** структурное поле "Location: Yerevan, Yerevan", без remote-опции — офис в Ереване, требует релокации вне Тулы. По `modes/_profile.md` Location Policy → **1.0**.
2. **Стек:** React.js, Node.js, GraphQL, React Native — Vue.js не упоминается вообще. У кандидата — Vue 3, не React.
**Legitimacy note:** Живая карьерная страница на BambooHR ATS, конкретное описание продукта (construction management platform), кнопка Apply активна — признаков ghost job нет.
+23
View File
@@ -0,0 +1,23 @@
# Оценка: Quickbase — Senior Software Engineer (Frontend)
**Дата:** 2026-07-09
**Архетип:** Frontend Developer — стек не указан, недостаточно данных
**Балл:** 1.3/5
**URL:** https://www.linkedin.com/posts/simona-georgieva1_were-hiring-senior-software-engineers-in-share-7473343966369763330-YooD/
**Legitimacy:** Proceed with Caution
**PDF:** ❌
---
## Причина низкого балла
Пост в LinkedIn неформальный, без структурированного JD: не указан тех.стек, нет формальных требований, нет чёткого пути отклика (сама автор поста пишет "Referrals welcome. Bribes negotiable" в шутливом тоне; в комментариях кандидаты просят форму отклика, но её нет).
**Известные факты:**
- Уровень: **Senior** — у кандидата Middle, разрыв.
- Локация: **Болгария** — remote-политика не уточнена; если требуется присутствие/релокация, это блокер по `_profile.md` (score 1.0).
- Стек: не указан → нельзя подтвердить совпадение с Vue.js.
Полная A-F оценка не проводилась — недостаточно структурированных данных, и заявленный уровень (Senior) уже создаёт разрыв независимо от локации.
**Legitimacy note:** Обычный пост сотрудника компании (не рекрутинговый портал), тон неформальный, отсутствует чёткий apply-flow — не признак фейка, но и не полноценная вакансия для оценки. "Proceed with Caution" не из-за подозрения в обмане, а из-за нехватки данных для полноценного анализа.
+20
View File
@@ -0,0 +1,20 @@
# Оценка: Muse Group — Frontend Tech Lead Developer
**Дата:** 2026-07-09
**Архетип:** Frontend Developer — уровень и стек не совпадают
**Балл:** 1.0/5
**URL:** https://www.mu.se/positions/position-99_b67
**Legitimacy:** High Confidence
**PDF:** ❌
---
## Причина отказа (тройной блокер)
1. **Уровень:** Lead-роль, 6+ лет опыта + 2+ года технического лидерства. У кандидата ~1.5 года коммерческого опыта, без опыта тимлидства.
2. **Стек:** React/Redux, не Vue.js. У кандидата опыта с React нет.
3. **Английский:** обязательный минимум B2, у кандидата B1.
Remote/Кипр — сам по себе не блокер (remote доступен), но остальные три барьера делают отклик нецелесообразным.
**Legitimacy note:** Известная компания (Muse Group / MuseScore), детальное описание технических требований — не generic JD, признаков ghost job нет.
+18
View File
@@ -0,0 +1,18 @@
# Оценка: Яндекс — Fullstack-разработчик в DataLens
**Дата:** 2026-07-09
**Архетип:** Вне текущих архетипов — backend-heavy React/PostgreSQL, не совпадает
**Балл:** 1.0/5
**URL:** https://yandex.ru/jobs/vacancies/fullstackrazrabotchik-v-datalens-32370
**Legitimacy:** High Confidence
**PDF:** ❌
---
## Причина отказа (тройной блокер)
1. **Локация:** Москва, гибрид/офис — релокация вне Тулы. По `_profile.md` Location Policy → **1.0**.
2. **Уровень:** заявлено 5+ лет опыта (Senior), у кандидата ~1.5 года.
3. **Стек:** React/Redux (не Vue), PostgreSQL/Knex.js, Terraform, Kubernetes — ничего из этого нет в `cv.md`. Роль явно backend-heavy ("emphasizes backend development over frontend").
**Legitimacy note:** Яндекс, известный продукт (DataLens), детальное описание задач — признаков ghost job нет.
Loaded 100 of 1527 files, more files were not shown because too many files have changed in this diff. Show more