Анализатор описания вакансии — вытащите реальные требования
Большинство описаний вакансий написаны так, чтобы скрыть суть роли. Вставьте любое JD в поле ниже — и вы получите сигнал об уровне, реальные требуемые навыки, фразы-красные флаги, намёки на зарплату и режим удалённой работы — мгновенно, в браузере, без отправки чего-либо на сервер.
Вставьте описание вакансии
100% в браузере. Никакого отслеживания, ничего не загружается.Почему описания вакансий скрывают реальную роль
Описание вакансии — это слой перевода. Нанимающий менеджер хочет человека, который сможет выкатить фичу X к кварталу Y в команде, где не хватает двух инженеров и дежурство каждую четвёртую неделю. К моменту, когда это намерение доходит до рекрутера, потом до шаблона JD, потом до юридической проверки, а потом до CMS карьерной страницы, на выходе получается документ, полный буллетов вроде «опыт работы с кросс-функциональными командами» и «сильные коммуникативные навыки». Перевод теряет смысл в обе стороны. Рекрутер теряет срочность. Кандидат теряет контекст, который сказал бы ему, подходит ли это.
Вдобавок JD копируются между ролями. Наём staff-инженера в инфраструктуру и junior-фронтендера часто делят 60% одного и того же шаблона в одной компании. Реальные различия живут в трёх-четырёх предложениях, зарытых в середине документа, и в формулировках вокруг «ideally», «preferred» и «you might also». Заголовок гласит «Senior Engineer», но фактический уровень закодирован в числе лет опыта ниже, в намёке на зарплатную вилку и в том, упоминают ли они менторство junior-инженеров.
Анализатор выше построен вокруг тех же эвристик, которые использует опытный рекрутер или нанимающий менеджер, просматривая JD: где живёт сигнал об уровне, какие ключевые слова — реальные требования, а какие — наполнитель, какие фразы сигнализируют о проблемах культуры. Вы можете делать такое чтение вручную после сотни просмотренных JD. Инструмент просто проводит вас к тому же ответу быстрее.
Как читать между строк
Уровень — первое, на чём нужно зацепиться. Ищите явные тайтлы — junior, senior, staff, principal, — но также и числовые требования к опыту. «5+ years» в JD обычно соответствует senior. «2–4 years» — это mid. «Less than 2 years» или «new grad» — junior. Число лет опыта честнее тайтла, потому что тайтлы инфлируют каждые два года по всей индустрии, а число лет калибруется под реальную зарплатную вилку.
Раздел требуемых навыков — вторая опора. Хитрость: требуемые навыки — те, что встречаются три и более раз по всему документу: один раз в заголовке, один в «responsibilities», один в «qualifications». Навыки, встречающиеся лишь раз, — это украшение. Навыки, что есть только в «nice to have», — именно это и есть: полезны, чтобы интервьюер о них спросил, но за их отсутствие вас не отклонят. Анализатор считает упоминания по каждому навыку, так что вы с первого взгляда отделяете сигнал от наполнителя.
Третья опора — язык культуры. «Fast-paced», «demanding», «wear many hats», «we're a family», «rockstar» — все эти фразы означают вполне конкретные вещи, и, повидав достаточно JD, вы сможете предсказать компанию ещё до того, как прочитаете заголовок. Высокая концентрация этих фраз — структурное предупреждение: либо команда в хроническом режиме тушения пожаров, либо у HR не было достаточно жёсткого фильтра, чтобы отсеять сырой текст нанимающего менеджера. Ни то, ни другое не сулит вам ничего хорошего в первый день.
Четвёртая опора — сигнал о зарплате. Если в JD названа вилка, воспринимайте её буквально — это и есть вилка. Если в JD написано «competitive salary» без числа, считайте, что вилка на 10–20% ниже рынка для вашего уровня. Компании, которые платят по рынку, публикуют число, потому что число — их оружие в найме. Компании, которые платят ниже рынка, используют расплывчатые формулировки и надеются, что вы заякоритесь низко.
Пятая опора — локация. «Remote-first» означает, что вся компания построена вокруг удалённой работы, включая инфраструктуру и культуру встреч. «Remote-friendly» обычно означает, что есть офис и несколько удалённых сотрудников, которые чувствуют себя гражданами второго сорта. «Hybrid» означает три дня в офисе и редко гибок. Следите за «relocation expected» или «visa sponsorship not available» — это жёсткие фильтры.
Словарь красных флагов
Анализатор отмечает около двадцати частых фраз. Вот самые распространённые с более развёрнутыми пояснениями, чтобы вы могли поспорить сами с собой, действительно ли это флаг или просто неудачный текст.
«Fast-paced environment»
Почти каждое JD это пишет. Значимо это лишь в отсутствие других сигналов — чёткой дорожной карты, определённых OKR, названной команды. Fast-paced плюс «wear many hats» плюс отсутствие упоминания руководителя — святая троица команды в режиме выживания. Fast-paced внутри компании на 5000 человек с дорожной картой и чётким скоупом — просто наполнитель.
«We're a family»
Семьи не увольняют вас за 15-минутный Zoom. Эта фраза непропорционально часто появляется в JD от компаний, которые недавно прошли — или вот-вот пройдут — тяжёлые увольнения. Она также коррелирует с ожиданием Slack по выходным и эмоциональным долгом как инструментом управления. Рабочее место — это рабочее место. Называть его семьёй — либо маркетинг, либо предупреждение.
«Wear many hats»
Две трактовки. Здоровая: маленькая команда, где вы действительно осваиваете смежные навыки при явной поддержке. Нездоровая: расползание скоупа как фича, без дополнительной оплаты, без дополнительного тайтла и без дополнительного времени. Попросите рекрутера назвать три «шляпы», которые вы должны носить в первые полгода. Если он не может — это нездоровая версия.
«Rockstar / ninja / 10x engineer»
Инфляция тайтлов в самом JD. Коррелирует с культурой героизма, отсутствием процессов и командой, которая построила хрупкие системы и теперь расплачивается за них. Скрытое послание: «мы ждём, что вы будете работать за троих обычных инженеров», а переработки заложены изначально. Не всегда стоп-фактор, но стоит задать выверенный вопрос о средних часах.
«Competitive salary»
Самый надёжный сигнал оплаты ниже рынка. Компании, которые платят хорошо, публикуют числа. Компании, которые платят плохо, используют слово «competitive». Если они отказываются назвать вилку на скрининге у рекрутера, вилка достаточно плоха, чтобы они предпочли продолжать переговоры из позиции асимметрии информации.
«Self-starter who thrives in ambiguity»
Вежливая версия «никакого онбординга, никакого плейбука, никакой поддержки руководителя, разбирайся сам». В senior-роли это может быть честно — у лидерства часто действительно есть неопределённость. В mid- или junior-роли это структурная проблема. Спросите, кто будет вашим напарником на первой неделе. Если не могут назвать человека — считайте, что навигировать будете вслепую.
«Unlimited PTO»
Парадоксально: сотрудники компаний с безлимитным отпуском статистически берут меньше выходных, чем сотрудники с фиксированным запасом, потому что нечего «потратить» из накопленного. Эта политика — ещё и манёвр для баланса: накопленный PTO — обязательство, которое компания больше не должна нести. Не стоп-фактор, но спросите о среднем числе взятых дней за прошлый год. Если не могут ответить — это театр.
Разбор на примере
Возьмём такой фрагмент: «We're looking for a senior backend engineer with 5+ years of Python and PostgreSQL experience. You'll own the entire data pipeline. Self-starter, comfortable with ambiguity. Competitive salary, unlimited PTO, equity in lieu of higher base. Fully remote, US time zones.»
Прогоните это через анализатор — и вы получите: сигнал об уровне — senior (явный тайтл плюс 5+ лет), hard-навыки — python, postgresql, backend, data pipeline, красные флаги — self-starter, comfortable with ambiguity, competitive salary, unlimited PTO, equity in lieu, зарплата — не указана, локация — fully remote, фильтр по US TZ. Вывод: роль реальная и senior, но ситуация с зарплатой непрозрачна, вам стоит ожидать, что скоуп придётся определять самому без онбординга, и нужно проверить историю с equity реальным числом, прежде чем считать это компенсацией. Двухминутное чтение вместо пятнадцати.
Что делать с результатом
Анализатор даёт вам структурированное прочтение, но это прочтение полезно, только если вы действуете по нему. Три хода, в порядке того, как часто они окупаются.
Первое: используйте список требуемых навыков как ключевую основу для адаптации резюме. Если в JD трижды упомянуты Python, PostgreSQL и AWS, эти три слова должны появиться дословно в вашем резюме — в буллетах опыта, а не только в разделе навыков. И поиск рекрутера, и встроенная оценка совпадения ATS ищут совпадение по ключевым словам, и адаптированное резюме получает значительно больше «вытягиваний» на первом фильтре, чем общее. Сопутствующее руководство по адаптации резюме под описание вакансии проходит весь процесс.
Второе: используйте красные флаги как список вопросов для скрининга у рекрутера. Если в JD были «fast-paced» и «wear many hats», спросите рекрутера прямо: «Как выглядит типичная неделя инженера в этой роли — по часам и по скоупу?» Ответ либо растворяет флаг, либо подтверждает его. Любой исход полезен.
Третье: используйте намёки на зарплату и сигналы о режиме удалёнки для предварительного отсева. Если в JD было «competitive salary» и вилку на скрининге не назвали, а локация — гибрид без гибкости, вы можете решить, что это «нет», прежде чем потратить четыре часа на тестовое. Предварительный отсев — самый результативный ход в любом поиске работы, и большинство кандидатов его пропускают.
Когда вы решили двигаться дальше, зафиксируйте отклик в трекере, чтобы в конце сравнивать офферы бок о бок. Страница трекер откликов описывает настройку трекера, которая выводит именно те поля зарплаты, уровня и красных флагов, которые выдаёт анализатор, так что вы держите структурированное прочтение рядом со статусом отклика.
FAQ
Анализатор действительно бесплатный, и что-то загружается?
Да, он бесплатный, и ничего не покидает ваш браузер. JS-файл парсит текст на месте с помощью regex и сопоставления по словарю. Никаких fetch, никакой аналитики по содержимому текста, никакого серверного хранения. Можете проверить, открыв DevTools и наблюдая за вкладкой Network.
Чем это отличается от вставки JD в ChatGPT?
Двумя вещами. Во-первых, анализатор детерминирован — вставьте одно и то же JD дважды, получите тот же результат. Большие языковые модели дрейфуют между запусками. Во-вторых, анализатор применяет конкретную эвристику рекрутера (уровень через годы и пересечение тайтлов, словарь фраз-красных флагов, паттерны языка о зарплате), тогда как ChatGPT даст вам общее саммари, если не сформулировать промпт аккуратно. Для более глубокого, авторского прочтения с контекстом по конкретной компании используйте полный приём вакансий, который сочетает парсинг с LLM и вашим резюме.
Список навыков пропустил что-то важное. Почему?
Анализатор использует курируемый словарь из ~120 распространённых инженерных и продуктовых навыков плюс запасной механизм для аббревиатур в верхнем регистре и токенов с техническими символами (C++, .NET, Vue.js). Нишевые инструменты или специфичные для компании названия технологий могут не появиться. Результат — сильный сигнал, а не полное извлечение. Воспринимайте «топ-15» как «наиболее упоминаемые термины, которые знает словарь».
Что считается красным флагом? Можно ли его настроить?
Список флагов — это около двадцати фраз, которые стабильно коррелируют с переработками, расплывчатым скоупом или оплатой ниже рынка в индустрии. Список авторский. Если вы не согласны с конкретной отметкой (некоторые команды действительно fast-paced в здоровом смысле), воспринимайте флаг как повод для вопроса на скрининге у рекрутера, а не как приговор. Инструмент полностью клиентский; вы можете форкнуть JS-файл по адресу /consumer/jd-analyzer-tool.js и настроить словарь по своему вкусу.
Работает ли это для не инженерных JD?
Определение уровня, словарь красных флагов, определение языка о зарплате и определение режима удалёнки — универсальны. Словарь навыков смещён в сторону инженерии, так что для вакансий в продажах, маркетинге или дизайне раздел «требуемые hard-навыки» будет беднее. Всё остальное по-прежнему работает.