cv-2026/base/reference/vacancy-filter-and-triage-2...

15 KiB
Raw Blame History

Критерии отсева и триаж вакансий — 2026

Статус документа: authoritative playbook для триажа. Единый источник для решения apply / skip и выбора версии CV. Сводит воедино критерии из strategy-positioning-tracks-2026.md (разделы 34), <objective> + <reality_calibration> из основной инструкции, backend-трек из cv-backend-variant-hostinger-2026-05.md, таймзонные расчёты из facts-from-salmon-chat.md. Приоритет при конфликте: явное указание Олега → этот документ → остальные файлы. Последнее обновление: 2 июня 2026 (v1, ввод comp-scaled таймзоны, fallback comp-яруса, research-протокола по площадкам).


1. Логика в двух словах

Сначала четыре hard-gate (объективные блокеры — отсев без вариантов). Прошли все четыре — вакансия в работе, дальше не отсев, а классификация трека и выбор CV. Триаж занимает ~5 минут чтения JD.

Базовая постура: trying-friendly, не filtering-friendly. На спорных побеждает «подаём». Жёсткий skip — редкость, нужен конкретный объективный блокер.


2. Hard-gate — четыре блокера

Вакансия проходит, если выполнены все четыре одновременно.

Gate 1 — География / найм

Можно нанять одним из:

  • global remote. employee для компаний, нанимающих non-US, non-UK, non-EU и тп кандидатов
  • contractor через Deel или другой подобны EOR из Таиланда
  • b2b контракт для удаленной работы
  • Русскоязычные команды или компании с русскоговорящими фаундерами, нанимающие удаленно, кроме РФ и РБ
  • Российские компании, нанимающие удаленно (не обязательно находиться в РФ)
  • Компании предлагающие релокацию, ПРИ УСЛОВИИ, что зарплата вы $10K в месяц
  • Временная контрактная работа, не привязанная к географии вообще. Типа mira, algery и подобные аггрегаторы

Skip если: location-locked / US-only / UK-only / EOR не покрывает Таиланд и нет contractor-опции.

Gate 2 — Таймзона (comp-scaled, не бинарный)

Базовое окно гибкости: 9:0022:00 GMT+7 (полный EMEA overlap, утренний US East). Это предел, до которого можно растягиваться без доплаты за неудобство; комфортный день — 11:0020:00.

Что требует роль Условие прохождения
Overlap укладывается в 9:0022:00 GMT+7 проходит при любом comp ≥ floor
Overlap выходит за окно (частичное пересечение) проходит, если comp > $9k
Полный overlap, ночная работа (PST core hours, full US-day) проходит, если comp > $10k

Skip по таймзоне только если: comp ≤ $9k И требуемый overlap выходит за пределы 9:0022:00 GMT+7.

Gate 3 — Compensation

Ярус Зона Как рассматриваем
Целевая $812k/мес основная воронка
Floor $68k/мес нормальный рабочий нижний порог
Fallback $4.56k/мес только временный мостик, «если вообще ничего нет». Не основная воронка, штучно и осознанно
Skip < $4.5k/мес отсев

Сигналы «ниже floor» без явной вилки: pre-seed без funding visibility + equity-heavy framing + явное «scrappy team». Stretch выше $15k существует для founding-engineer ролей в AI-стартапах Series AB, но только при реальном матче профиля.

Gate 4 — Уровень роли

Senior / Staff / Tech Lead / опытный middle+.

Skip если: явный junior / mid без потолка роста. НЕ skip если: роль выглядит выше (Lead / Principal / Head) — это сигнал, что внутри такого человека нет, стоит пробовать, особенно если подача быстрая. НЕ skip если: роль выглядит как мидл, но при этом укладывается в требования по компенсации и дает интересный новый опыт: AI, работа с клиентами, прокачка английского


3. Классификация трека (после прохождения gate)

Не отсев, а выбор CV и угла письма.

Условие в JD Трек CV
AI в must-have (LLM / agents / MCP / RAG / orchestration / embeddings в core requirements) Track A CV-A (cv-2026-05-base.md)
Чистый Node.js / backend, AI как nice-to-have / «significant plus» Backend-first CV-C (cv-backend-variant-hostinger-2026-05.md)
Senior / full-stack / frontend без AI в must-have Track B CV-B (oleg_proskurin_fullstack_techlead_cv.md)
Senior + AI-tooling fluency как требование (не AI-продукт, а «build with AI assistance») Hybrid CV-B с AI, поднятым в Skills на 23 позицию

Russian-speaking scale-ups (Manychat, inDrive, Wheely, Joom, Adapty и подобные) — по умолчанию Track B, даже если AI в JD не упомянут.

Принцип на спорных:

  • между «Track B» и «skip» → побеждает Track B;
  • между «Track A» и «Track B» для гибридной JD → есть AI в must-have → A, нет → B.

4. Обработка отсутствующих навыков

Один отсутствующий навык (Go, конкретный фреймворк, named-инструмент) — не skip если он не указан явно как MUST HAVE.

Но:

  • Не флагать явно в письме. Не строить конструкцию «вот тут у меня гэп / one thing to flag».
  • Сначала уточнить у Олега перед подачей: «в JD просят X, не вижу его в материалах — был ли опыт?» Навык часто есть, просто выпал при тримминге CV (примеры: Redux Toolkit / RTK Query, Vitest, Playwright в facts-from-salmon-chat.md; Jest в backend-CV; eCommerce/CMS tail в cv-master-extended.md).
  • Сначала проверяем реальность → потом решаем, как подавать.

Реальные гэпы, которые можно называть без проверки (из <profile_scope_and_matching>): языки вне стека (Go, Rust, Java, C++, Ruby, PHP), heavy DevOps (K8s-оркестрация at scale, SRE), нативный мобайл (Swift, Kotlin). React Native и Python — bridgeable, не гэп.


5. Research-протокол при анализе вакансии

5.0 Прежде чем изучать вакансию - необходмо проверить, подавались ли мы до этого на нее или в эту компанию. Для этого необходимо изучить доступные подключенные источники данных: трелло, телеграм группы где мы трекаем подачи, мой gmail и тп. Исходить из того, что доступно на момент проверки.

Дополнительно к чтению самой JD — рекомендуется (особенно для ролей, проходящих gate):

5.1. Поресёрчить саму компанию

Что за компания, что делает, продукт, стадия, funding, недавние новости, размер команды, репутация (Glassdoor / Blind где есть). Цель — понять контекст и отсеять ghost / red-flag компании.

5.2. Найти, где ещё выложена эта вакансия

Сравнить постинг на разных площадках (careers-page компании, LinkedIn, ATS-ссылка, job-боарды, агрегаторы). Обратить внимание и консолидировать:

  • Дата постинга — самое раннее появление. Старый постинг (90+ дней без обновлений) — ghost-сигнал.
  • Вилка — где какая указана. Разные площадки часто дают разные band'ы.
  • Гео-ограничения — где-нибудь указано US Only / UK Only / location-locked / список eligible стран?

5.3. Правило приоритета ограничений

Ограничения трактуются как более актуальная / авторитетная информация. Если в одном месте «remote», а в другом «US only» — значит берут US only, отсев по Gate 1. Менее ограничительная формулировка побеждает только если прямо и явно указано, что ограничение снято / расширено.

Это согласуется с известным паттерном (<memory>, strategy-docs): «100% remote» на LinkedIn engagement-листах надёжно завышает гео-гибкость — всегда проверять hiring-country eligibility до вложения в тейлоринг. Freshteam ATS: SSR отдаёт полный JD независимо от статуса; «not accepting applications» — JS-оверлей, подтверждать активность apply-кнопки в браузере.

Вся найденная информация консолидируется в один разбор вакансии, не размазывается.


6. Ложные блокеры — НЕ основание для skip

Системные ошибки триажа, которых избегаем (из strategy-positioning-tracks-2026.md раздел 4):

  1. Роль выглядит senior-heavy (Lead / Principal / Head) → сигнал «внутри нет такого», пробовать.
  2. Один отсутствующий навык → уточнить у Олега, не skip (см. раздел 4).
  3. «Не AI-first компания» → причина для Track B / Hybrid, не отказ.
  4. Поверхностный domain mismatch → смотрим на технические задачи (orchestration, structured extraction, LLM workflows), не на ярлык индустрии.
  5. «Не Russian-speaking scale-up» → нейтрально, не минус.
  6. «Stage / timeline не вписывается в 8 недель» → влияет на приоритизацию последовательности, не на отсев. Проверять скорость interview-процесса по сигналам.
  7. Comp ниже $8k но в floor / fallback → рассматриваем, особенно если компания стратегическая или роль интересная.
  8. Tech-stack mismatch с быстрым ramp → лиди к подаче, ramp упоминаем честно (но не выпячиваем гэп — см. раздел 4).
  9. Вакансия не проходит триаж, но на нее мало подавались и матч есть хотя бы на 50% - плюс технически подача проста и может быть автоматизированна (easy apply на Linkedin, простая форма без дополниельных эссе, подача через DM в телеге) - пробуем податься в "быстром" режиме, чтобы потренировать прохождение следующих этапов если пройдем дальше, получить опыт и фидбэк. Однако это надо явно указать.

7. Operational flow при получении JD

  1. Открыть и прочитать JD (при недоступности URL — halt, не реконструировать из памяти). Использовать web-fetch или открыть через браузер если там стоит защита от ботов. используй chrome-session скилл для доступа через chrome.
  2. Извлечь за первую минуту: уровень роли, must-have stack, AI-наличие (must / nice / нет), location & timezone constraints, comp-сигналы.
  3. Прогнать 4 hard-gate (раздел 2). Любой провален → skip с одним объективным критерием.
  4. Anti-pattern self-check (раздел 6): отсеваю ли по subjective критерию? Да → повысить класс.
  5. Research-протокол (раздел 5): компания + кросс-площадочная проверка ограничений и вилки.
  6. Прошли gate → классифицировать трек (раздел 3) + назвать рекомендуемое CV + 23 proof-point для письма.
  7. Missing skills → уточнить у Олега до подачи (раздел 4).
  8. Выдать консолидированный разбор: роль/компания, фит, трек, strong matches, open questions, найденные ограничения/вилки по площадкам, рекомендация apply/skip.

8. Когда обновлять документ

Позиции на которые подались, сохранять в нашей Trello доске. Затем обновлять при:

  • После первого callback / interview / rejection из каждого трека → калибровка proof-point и порогов.
  • При изменении comp-floor, таймзонного окна или target-зоны Олегом → правка немедленно.
  • Изменении статуса, отказа и тп.
  • Раз в 4 недели baseline pass — рынок и позиционирование меняются быстро.