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

> **Статус документа: authoritative playbook для триажа.**
> Единый источник для решения apply / skip и выбора версии CV.
> Сводит воедино критерии из `strategy-positioning-tracks-2026.md` (разделы 3–4), `<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:00–22:00 GMT+7** (полный EMEA overlap, утренний US East). Это предел, до которого можно растягиваться без доплаты за неудобство; комфортный день — 11:00–20:00.

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

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

### Gate 3 — Compensation
| Ярус | Зона | Как рассматриваем |
|---|---|---|
| Целевая | $8–12k/мес | основная воронка |
| Floor | $6–8k/мес | нормальный рабочий нижний порог |
| Fallback | $4.5–6k/мес | **только временный мостик**, «если вообще ничего нет». Не основная воронка, штучно и осознанно |
| Skip | < $4.5k/мес | отсев |

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

### 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 на 2–3 позицию |

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).
10. Вакансия не проходит триаж, но на нее мало подавались и матч есть хотя бы на 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 + 2–3 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 — рынок и позиционирование меняются быстро.
