Поиск работы в Москве: как ML-модели Авито из 1,5 млн вакансий выбирают 200 для вас
Машинное обучение (ML, когда алгоритм сам находит закономерности в данных и улучшает результат без ручного программирования) уже сортирует вакансии за вас: Авито Работа рассказала, как трёхуровневая система ранжирования из полутора миллионов объявлений выбирает 200, которые подходят именно вам.

Когда вы вбиваете запрос вроде «поиск работы в Москве вакансии», за выдачей стоит не простой текстовый фильтр, а цепочка ML-моделей, которые учитывают вашу историю, локацию и даже готовность к смежным профессиям. Понимание этой механики позволяет искать работу точнее и не терять подходящие предложения.
Вадим Вахрушев, старший DS-инженер (инженер по обработке данных) в Авито, описал внутреннюю кухню поискового ранжирования на платформе Авито Работа. Материал раскрывает, как алгоритмы балансируют между тремя задачами: показать релевантные вакансии, обеспечить монетизацию (продвижение объявлений работодателями) и сохранить справедливость, чтобы каждая свежая вакансия была показана хотя бы раз.
Как устроена «пирамида» из трёх уровней?
Выдача формируется тремя последовательными этапами, от широкого охвата к точной подборке.
L1: отбор кандидатов. Из более чем 1,5 миллиона вакансий система выбирает 1 000 наиболее подходящих. Здесь работают так называемые кандидатогенераторы (наборы правил отбора) двух типов:
- Горизонтальные (общие для всего Авито): полнотекстовое совпадение слов запроса, семантический поиск (находит «педагог» по запросу «учитель», даже если слово не совпадает), подмешивание вакансий из соседних регионов.
- Вертикальные (специфичные для раздела «Работа»): если запрос про удалёнку, фильтр по локации сбрасывается и система показывает вакансии со всей России. Отдельно работает механизм смежных профессий: алгоритм анализирует, на что люди откликаются помимо основного запроса, и кластеризует профессии. По данным Авито, это критично для рабочих специальностей, где соискатели готовы рассматривать сразу несколько смежных направлений.
На этом же уровне подключаются три ML-модели:
- Векторный кандидатогенератор: двухбашенная модель (отдельно обрабатывает запрос и вакансию), обученная на позитивных действиях пользователей: звонках, сообщениях, добавлении в избранное.
- ClickPred: ранжирующая модель, которая, несмотря на название, обучается на контактах (звонки, сообщения), а не на кликах. Использует базовые статистики: конверсию в контакт, конверсию в клик и текстовые метрики BM25 и TF-IDF (формулы, измеряющие, насколько слова запроса важны для конкретного объявления).
- RelPred: модель текстовой релевантности, обученная не на пользовательских оценках (они слишком «шумные»), а на разметке, которую сделала большая языковая модель (LLM). Это даёт «идеализированную» оценку того, насколько вакансия соответствует запросу.
Финальная формула отбора топ-1 000 кандидатов выглядит так:
score = sigmoid(w1 × clickpred + w2 × relpred + w3 × item_age)
Возраст вакансии (item_age) включён сознательно: свежие объявления получают шанс быть показанными хотя бы раз, а система успевает накопить по ним статистику для дальнейшего ранжирования.
L2: вычисление интентов. Для отобранной тысячи вакансий рассчитываются два ключевых показателя:
- BX («баерское счастье»): вероятность, что вакансия и соискатель «совпадут». Считается как произведение трёх скоров: предсказания контакта (CttrPred), текстовой релевантности (RelPred) и коэффициента пессимизации, который занижает фродовые (мошеннические) и накрученные объявления.
- ECPI: ожидаемая выручка от показа вакансии, учитывающая платное продвижение работодателями.
Модель CTTR (предсказание контактов) персонализирована: она учитывает скоры моделей мэтчинга пользователя и вакансии, близость к месту работы и конверсионные статистики. По данным Авито, именно фичи (признаки) персонализации оказались самыми важными для качества выдачи в разделе вакансий.
L3: блендер. Алгоритм перемешивает кандидатов, балансируя релевантность, монетизацию и справедливость, и формирует итоговую выдачу из примерно 200 вакансий.
Что понадобится
- Аккаунт на Авито (бесплатная регистрация).
- Заполненный профиль соискателя с указанием города, опыта и желаемой зарплаты: каждый параметр становится входом для ML-моделей.
- 15 минут на настройку фильтров и первые отклики, чтобы алгоритм начал «узнавать» ваши предпочтения.
Пошаговая инструкция
-
Заполните профиль максимально подробно. Укажите город, опыт и зарплатные ожидания. Векторный кандидатогенератор берёт на вход «заголовок + текст + параметры» (зарплата, локация, опыт). Чем точнее ваши данные, тем точнее совпадение.
-
Формулируйте запрос конкретно, но не слишком узко. Запрос «бухгалтер удалённо» сработает лучше, чем «работа на дому»: семантический поиск подберёт синонимы, но ему нужна точка опоры. Для поиска работы в Москве вакансии можно указывать конкретный район: система подмешает объявления из ближайших зон.
-
Используйте фильтры, а не дописывайте условия в строку. Удалёнка, зарплата, график: фильтры напрямую попадают в вектор запроса и кэшируются. Текст в строке поиска обрабатывается отдельной моделью.
-
Откликайтесь на подходящие вакансии, звоните, пишите. Каждый контакт (звонок, сообщение, добавление в избранное) обучает модель CttrPred именно под вас. Чем больше осмысленных действий, тем точнее персонализация.
-
Проверяйте выдачу регулярно. Свежие вакансии получают приоритет через параметр
item_age, поэтому утренняя выдача отличается от вечерней. Новые объявления появляются в топе быстро, но и уходят из него, если не набирают статистику. -
Не игнорируйте смежные профессии. Если вы ищете «водитель», система может показать «курьер на авто» или «экспедитор». Это не ошибка, а работа кластеризации смежных профессий. Для рабочих специальностей такие предложения часто оказываются выгоднее исходного запроса.
Запрос: «учитель в Москве».
Что делает система: собирает вакансии с точным совпадением «учитель» в Москве, добавляет «педагог» через семантический поиск, подмешивает вакансии из Долгопрудного (смежный город). Если пользователь ранее откликался на вакансии репетитора, модель CTTR повышает скор для похожих объявлений.
Результат: вместо 30 вакансий по точному совпадению соискатель видит 200 отранжированных предложений, включая те, которые он не догадался бы искать сам.
- Пустой профиль. Без указания города и опыта модель персонализации работает «вхолостую»: вы получаете общую выдачу вместо подобранной.
- Слишком длинный запрос. Фраза из 7 и более слов снижает полноту: полнотекстовое совпадение требует наличия всех слов в объявлении, и подходящие вакансии отсеиваются.
- Игнорирование «странных» результатов. Смежные профессии в выдаче, не баг. Если система показывает «кладовщик» по запросу «грузчик», это результат кластеризации по реальному поведению соискателей.
- Ожидание мгновенной точности. Модель набирает данные о вас постепенно. Первые 3 и 5 взаимодействий (клики, звонки, избранное) критичны: не пролистывайте молча.
Что делать с этим прямо сейчас, по ролям
Соискателю (в том числе 50+). Заполните профиль, выставьте фильтры и сделайте первые отклики осознанно. Алгоритм учится на ваших действиях, а не на ваших мыслях. Для поиска работы в Москве вакансии стоит проверять утром: свежие объявления получают буст.
Автору Дзена, копирайтеру. Логика «покажи релевантное, а не просто совпавшее по словам» напрямую переносится на SEO-заголовки: алгоритмы ищут семантическое совпадение, а не набор ключевых слов. Пишите заголовки вакансий и статей так, как их ищет человек, а не как их индексирует робот.
Маркетологу, HR-специалисту. Платное продвижение вакансий учитывается через ECPI, но не отменяет релевантности. Вакансия с высоким BX-скором обойдёт продвинутую, но нерелевантную. Вкладывайтесь в качество описания, а не только в бюджет.
Предпринимателю в РФ. Механика Авито, пример того, как российская платформа строит ML-ранжирование с учётом локальной специфики (удалёнка для малых городов, смежные рабочие профессии). Если вы размещаете вакансии, указывайте зарплату и точный адрес: каждый параметр напрямую влияет на то, увидит ли ваше объявление нужный кандидат.
Подход Авито показывает зрелую инженерную культуру: три уровня фильтрации, честная пессимизация фрода и обучение на разметке LLM вместо «шумных» пользовательских оценок. На мой взгляд, главная ценность для обычного соискателя, осознание, что выдача не случайна. Вы можете влиять на неё своими действиями: откликами, звонками, заполненным профилем. Честная оговорка: алгоритм оптимизирован под задачи платформы, включая монетизацию. Это значит, что продвинутые (платные) вакансии получают дополнительный скор. Полностью «нейтральной» выдачи не бывает ни на одной платформе, и Авито хотя бы открыто описывает, как устроен баланс.
Хотите разобраться, как нейросети меняют контент и поиск?
В dzen.guru мы тестируем ИИ-инструменты и показываем, как применять их для Дзена, маркетинга и бизнеса в РФ.
Попробовать dzen.guruАлгоритмы уже решают, какую вакансию вы увидите первой. Единственный способ сделать их союзником, а не чёрным ящиком, давать им точные данные о себе и понимать, на что именно они реагируют.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Google открыла Gemini Robotics ER 2 по API: инженер-робототехник подключит её к своему роботу уже сегодня
Компания Google представила Gemini Robotics ER 2, модель «воплощённого рассуждения» (embodied reasoning) для робототехники, и сразу открыла к ней доступ через…

Nous Research подключила AI-агенты к Buzz на базе Nostr: без токенов, на своих ключах
Nous Research выпустила поддержку ИИ-агента Hermes для Buzz, открытого рабочего пространства от Block, где люди и ИИ-агенты (автономные программы, выполняющие…
GPT 5 Pro анонсирована, но цен и доступа для России пока нет
Компания OpenAI представила GPT-5 Pro, и пока это самое заметное обновление за последний год, однако конкретных данных о ценах, архитектуре и доступности…
Комментарии