contact@jetteam.dev
Компетенции и кейсы/Веб-платформы и корпоративные системы
открытыйпоиск · высокая нагрузка

Платформа для поиска вакансий с интеграцией агрегаторов

Платформа Rabix для поиска вакансий и публикации резюме с интеграцией с внешними агрегаторами и собственной системой поиска, рассчитанная на работу с большим объёмом данных и высоким количеством запросов.

смотреть вживуюrabix.ru

Контекст

Вакансии приходят из нескольких внешних источников в разных форматах и с разной полнотой полей, а дубликаты между источниками неизбежны.

Трафик такого сервиса во многом поисковый. Каталоги поэтому собираются по реальным запросам людей; придуманный рубрикатор в выдачу не попадает.

схема

Путь вакансии до страницы каталога

АГРЕГАТОРЫJooble,ГородРабот,HeadHunterимпортНОРМАЛИЗАЦИЯединаяструктура,снятие дублейприведениеELASTICSEARCHпоиск побольшомуобъёму данныхзапросыКАТАЛОГИстраницы пореальнымзапросамстраницыИНДЕКСАЦИЯsitemap ипоисковыесистемыКаталоги строятся на основе поисковых запросов пользователей, поэтому структура сайта следует за реальным спросом людей.
Сложность здесь в разнородности, а не в объёме: одна и та же вакансия из двух источников должна стать одной записью, иначе поиск и каталоги заполняются дублями.
из проекта

Как это выглядит

Главная страница с каталогами, собранными по реальным поисковым запросам пользователей.
Главная страница с каталогами, собранными по реальным поисковым запросам пользователей.
Страница каталога: вакансии из нескольких агрегаторов, приведённые к одной структуре и снятые от дублей.
Страница каталога: вакансии из нескольких агрегаторов, приведённые к одной структуре и снятые от дублей.
Переход на источник: если вакансия пришла от внешнего сервиса, платформа честно сообщает об этом и передаёт пользователя
Переход на источник: если вакансия пришла от внешнего сервиса, платформа честно сообщает об этом и передаёт пользователя дальше.

Что входило в задачи

Каталоги строятся по реальным поисковым запросамтрафик такого сервиса во многом поисковый, и придуманный рубрикатор в выдачу просто не попадает

  • Три источникаJooble, ГородРабот, HeadHunter
  • Нормализацияразные форматы и полнота полей сводятся к одной структуре
  • Дубликатыодна вакансия из двух источников становится одной записью
  • ПоискElasticSearch по объединённой базе
  • Генерация каталоговстраницы с метаинформацией под поисковые требования
  • Sitemapкаталог отдаётся поисковым системам целиком

Стек проекта

PythonElasticSearchPostgreSQLRedisSEO-инструменты

Есть похожая задача?

contact@jetteam.dev