Как HireSeeker собирает вакансии: источники и ML-фильтрация
Обновлено
Вы открыли вакансию на hh.ru, сохранили похожую из Telegram, а вечером нашли её же на сайте компании. Три прочитанных объявления, один потенциальный отклик. Между ними легко потерять другую позицию, которую работодатель разместил только на своей карьерной странице.
HireSeeker собирает IT-вакансии из разных источников, приводит объявления к общему виду и помогает выбрать подходящие. На сайте можно начать с поиска без регистрации. Если нужна регулярная подборка, критерии подписки настраиваются в личном кабинете, а ссылка на ежедневный дайджест приходит в Telegram. Разберём путь вакансии от публикации до вашей ленты и то, где автоматике всё ещё нужна проверка соискателя.
Почему одной площадки обычно мало
Работодатель выбирает каналы под конкретный найм. Массовую позицию удобно разместить на крупном джоб-борде. Узкого специалиста могут искать через профессиональное сообщество. Карьерный сайт компании содержит собственный список открытых ролей, который не обязательно совпадает с объявлениями на внешних площадках. Даже привычное название должности меняется: похожие задачи встречаются у backend-разработчика, software engineer и инженера платформенной команды.
В HireSeeker есть несколько типов источников: hh.ru, Telegram-каналы, карьерные сайты компаний и специализированные площадки, например Habr Career и GetMatch. Их объявления сходятся в общую ленту. Подключённые площадки меняются, поэтому обещание собрать буквально каждую вакансию рынка было бы нечестным. Происхождение конкретной вакансии проверяйте по ссылкам на оригинальные публикации.
Представьте Python-разработчика, которому интересны продуктовые команды. В одной вкладке он проверяет джоб-борд, во второй читает канал рекрутера, в третьей следит за компанией мечты. Общая лента сокращает этот обход. При этом сам факт появления объявления в ней ничего не говорит о качестве работодателя: сервис помогает найти предложение, а условия найма предстоит оценить отдельно.
Разные источники полезны и для проверки деталей. Короткий пост в канале может содержать только стек и контакт, тогда как страница работодателя объясняет задачи команды. Если условия расходятся, стоит открыть оригиналы и спросить рекрутера, какая версия актуальна. Автоматическое объединение информации помогает ориентироваться, но не заменяет такой разговор.
Если вы меняете специализацию, разнообразие источников особенно полезно. Вакансии позволяют сравнить, как компании описывают одну роль: где ждут готового специалиста, а где допускают обучение соседним задачам. Но сначала определите направление перехода. Попытка одновременно отслеживать разработку, аналитику и управление продуктом даст много карточек, из которых трудно выбрать следующий шаг. Разделите такие поиски и сравнивайте требования внутри каждого направления.
Для знакомого работодателя проверяйте также конкретную команду. Известный бренд не гарантирует одинаковых условий во всех подразделениях. Похожее название должности может скрывать поддержку старой системы, развитие нового сервиса или внутреннюю автоматизацию. В общей ленте удобно заметить варианты; понять разницу помогает чтение задач и вопросы на первом разговоре.
Что происходит с объявлением после сбора
Сначала сервис получает доступные сведения из источника. У одного объявления есть структурированные поля, у другого только текст сообщения и ссылка. Эти форматы нужно привести к общей карточке, чтобы профессию, зарплату и происхождение вакансии можно было использовать при поиске. Иначе одинаковые условия пришлось бы заново разбирать на каждой площадке.
| Этап | Что делает сервис | Что получает соискатель |
|---|---|---|
| Сбор | Забирает объявления из подключённых источников | Общую точку поиска |
| Подготовка | Разбирает доступные поля и описание | Карточки в едином формате |
| Дедупликация | Находит повторные публикации | Меньше повторного чтения |
| Фильтрация | Проверяет профессию и выбранные условия | Более подходящую выборку |
| Доставка | Формирует подборку для подписки | Ссылку на дайджест в Telegram |
Важная подробность: сбор и появление карточки в выдаче не происходят одновременно. Между ними есть обработка и проверки. Частота обновления зависит от источника, а доступность внешнего сайта влияет на получение данных. Поэтому универсальный срок «все новые вакансии появятся за час» здесь не подходит. Объявление может попасть в ленту позже своей публикации.
Дата в объявлении тоже требует внимания. Компания могла обновить старую позицию или разместить её повторно. Если интересует конкретная роль, проверьте исходную страницу перед откликом: продолжается ли набор, сохранились ли условия, работает ли форма. Свежесть карточки и готовность работодателя принять отклик связаны, но не означают одно и то же.
В карточке иногда остаются пробелы: зарплата не указана, стек описан общо, название команды отсутствует. Сервис не должен превращать недостающие сведения в уверенные обещания. Соискателю полезно держать короткий список вопросов и сверять его с каждой заинтересовавшей вакансией. Так вы быстрее замечаете, какая информация уже есть, а какую нужно уточнить.
Если оригинальная страница перестала открываться, сначала проверьте доступный контакт работодателя. Причиной бывает закрытый набор, перемещение объявления или временная ошибка сайта. По одному недоступному адресу нельзя уверенно заключить, что компания отказалась от найма.
Как фильтр отличает профессию от случайного слова
Поиск по ключевому слову даёт полезную отправную точку, но плохо различает контекст. Python встречается в вакансии разработчика, аналитика и технического продавца. Упоминание языка ещё не делает все три роли одинаково подходящими. Чтобы выбрать профессию, нужно учитывать обязанности и требования, а не только заголовок.
В HireSeeker несколько уровней отбора. На уровне общей базы система определяет профессиональную принадлежность и применяет проверки допуска к выдаче. Затем учитываются условия поиска или подписки: выбранные профессии, зарплатные диапазоны, источники и другие доступные настройки. Для персонального ML-отчёта можно дополнительно задать текстовые критерии. Это отдельный способ оценить соответствие вакансии вашим пожеланиям.
Например, запрос «Python, удалённо, хочу развивать API в продуктовой команде» содержит разные по смыслу условия. Профессию лучше задать в настройках, обязательные ограничения выбрать там, где для них есть фильтр, а контекст задач описать текстом. Фраза «интересна разработка сервисов, не хочу заниматься преимущественно поддержкой клиентов» объясняет предпочтение точнее, чем список модных технологий.
Оценка модели помогает решить, что прочитать первым. Перед откликом проверьте обязанности, обязательные навыки и ограничения работодателя в оригинале вакансии.
У любой модели есть пограничные случаи. Название роли может быть широким, описание коротким, а обязанности смешанными. Особенно внимательно стоит читать вакансии на стыке профессий: аналитика с разработкой, DevOps с администрированием, продакт-менеджмент с маркетингом. Подробности подхода разобраны в статье о ML-фильтрации вакансий.
Полезно разделять требования работодателя на обязательные и желательные. Если в объявлении SQL указан как основа ежедневной работы, это другой сигнал, чем «знакомство с SQL будет плюсом». Соискатель может принять решение с учётом своего опыта и интереса к задачам. Числовая оценка сама по себе не объясняет, готовы ли вы учиться недостающему навыку.
Проверьте текст пожеланий на двух примерах. Возьмите вакансию, на которую точно хотели бы откликнуться, и похожую, которую точно пропустили бы. Назовите разницу одним предложением: «В первой я разрабатываю сервисы, во второй преимущественно консультирую пользователей». Если ваши критерии этой разницы не отражают, уточните их. Такая проверка помогает сформулировать запрос через работу, а не через оценочные слова вроде «перспективная компания».
Не превращайте каждое предпочтение в обязательное условие. Один незнакомый инструмент может осваиваться в первые недели, а несовместимый график или невозможность трудоустройства решаются совсем иначе. Отдельно выпишите ограничения, при которых предложение теряет смысл, и пожелания, которые готовы обсуждать. Это облегчает и настройку подборки, и общение с рекрутером.
Зачем объединять дубли и где проходит граница
Одна позиция часто распространяется по нескольким каналам. На сайте компании лежит подробное описание, на джоб-борде версия с зарплатой, а рекрутер публикует сокращённый пост. Тексты отличаются, хотя за ними может стоять одна команда и один процесс найма. Точное сравнение строк пропустило бы такой повтор.
Дедупликация ищет совпадения по содержанию и признакам объявления. Связанные публикации объединяются, чтобы вам не приходилось заново читать одно предложение под разными заголовками. Сведения о происхождении помогают вернуться к источнику и выбрать способ связи с работодателем. Это особенно полезно, когда короткое сообщение отправляет на полноценную карьерную страницу.
Но похожие вакансии не всегда дубли. У компании могут одновременно открываться две Python-позиции в разных командах: в одной нужен опыт платежей, в другой работа с внутренней платформой. Сходный стек ещё не повод считать их одним предложением. И наоборот, изменившийся заголовок не гарантирует, что появилась новая роль.
Для соискателя практическая проверка проста: сравните задачи, команду и контакт рекрутера. Если уже откликались, укажите это при повторном общении. Историю собственных откликов полезно вести отдельно, с датой и ссылкой. Чистая лента уменьшает количество повторов, но не заменяет вашу запись о том, какие переговоры уже начались.
Повторный контакт тоже можно использовать с пользой. Если предложение уже знакомо, спросите, изменились ли требования или появилась ли другая команда. Иногда новое объявление действительно описывает новую возможность. Но отправлять одно и то же резюме несколько раз без пояснения обычно бессмысленно: рекрутеру придётся восстанавливать историю, которую вы уже знаете. Одна строка о предыдущем общении помогает продолжить разговор предметно.
Как настроить подборку, которую хочется читать
Начните с просмотра ленты: откройте несколько подходящих и несколько спорных карточек. Так быстрее становится понятно, какое направление и какие условия действительно важны. Затем настройте подписку на сайте. Telegram-бот служит каналом доставки и управления подписками; основные критерии задаются в личном кабинете.
- Выберите профессии, соответствующие задачам, которыми хотите заниматься. Не добавляйте соседние направления только ради количества объявлений.
- Задайте доступные фильтры по зарплате и источникам. Учитывайте, что часть работодателей не раскрывает вилку: отсутствие суммы ещё не означает низкую оплату.
- При необходимости добавьте текстовые пожелания для ML-отчёта: тип команды, интересные задачи, желательный стек, ограничения.
- Проверьте настройки времени дайджеста и подключение Telegram. В сообщении приходит ссылка на страницу подборки, где удобно изучить вакансии.
Тестовая формулировка для разработчика может звучать так: «Ищу backend на Python. Интересны API, интеграции и развитие продукта. Есть опыт PostgreSQL. Готов рассмотреть незнакомый фреймворк, если основная работа связана с разработкой». Здесь понятно, что обязательно, а где человек готов обсуждать варианты. Формулировка «любая интересная работа с хорошей зарплатой» оставляет слишком много места для догадок.
После нескольких подборок меняйте один критерий за раз. Если вакансий мало, проверьте, какое ограничение сильнее всего сужает выбор. Если много неподходящих, определите повторяющуюся причину: чужая профессия, нежелательные задачи или условия. Такой разбор полезнее, чем каждый день полностью переписывать пожелания.
Оценивайте подборку по решениям, которые она помогает принять. Сколько карточек захотелось открыть? В каких было достаточно информации для отклика? Почему остальные не подошли? Несколько таких наблюдений показывают, что именно стоит изменить. Например, расширить выбранную профессию, пересмотреть зарплатное ограничение или точнее описать задачи. Большое число объявлений само по себе не делает поиск успешным.
Что делать после получения дайджеста
Сначала просмотрите задачи и обязательные требования, затем откройте оригинал заинтересовавшей вакансии. Проверьте формат работы, место трудоустройства, зарплату и способ отклика. Если важного условия нет в тексте, превратите пробел в конкретный вопрос рекрутеру. Например: «Команда работает удалённо из любой страны или только из определённых регионов?»
Допустим, в подборке есть две позиции с одинаковым стеком. В первой предстоит развивать API для внешних клиентов, во второй сопровождать внутреннюю систему и разбирать обращения сотрудников. Вместо общего вопроса «Какие задачи у разработчика?» спросите, какую долю недели занимает поддержка и что команда планирует выпустить в ближайшие месяцы. Ответ поможет сопоставить реальную работу с вашими ожиданиями.
Если описание обещает удалённый формат, отдельно уточните обязательные часы присутствия и допустимые страны проживания. Слово «удалённо» не раскрывает эти ограничения. Несколько точных вопросов до технического интервью могут сберечь время обеим сторонам и оставить в поиске предложения, с которыми имеет смысл продолжать переговоры.
Сохраняйте ответы рекрутера для последующего сравнения условий.
Выберите несколько предложений, где можете объяснить соответствие на примерах своего опыта. Подготовьте короткий отклик под задачи роли и сохраните ссылку с датой отправки. На следующем просмотре это поможет отличить новое предложение от уже обсуждаемого и продолжить разговор без повторного знакомства.
HireSeeker берёт на себя регулярный сбор и первичный отбор. Решения о команде, условиях и следующем шаге остаются за вами. Попробуйте поиск вакансий, прочитайте несколько карточек и настройте подборку вокруг той работы, которую хотите делать каждый день.