Files
career-ops-vbleroy/reports/061-toolum-2026-07-07.md
redlineo d295c7f139
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
init
2026-07-13 10:14:00 +03:00

136 lines
22 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Оценка: 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.