WorkSift

О проекте

WorkSift вырос из личной задачи. При поиске удалённой работы приходится каждый день обходить несколько сайтов, и на третьей неделе становится ясно, что половину времени вы пересматриваете вакансии, которые уже видели. Проще было написать бота, который делает это за вас и присылает только новое.

Как устроена выдача

Бот забирает вакансии из источников по расписанию, а не в момент вашего запроса. Всё, что пришло, складывается в собственную базу — оттуда и идёт подбор. Такой порядок даёт две вещи: ответ приходит быстро, потому что не нужно ждать чужие сервера, и мы не создаём лишнюю нагрузку на источники.

Одна и та же вакансия часто опубликована в нескольких местах. При загрузке она приводится к общему виду и склеивается по паре «источник плюс её идентификатор», а повторная встреча только обновляет отметку о том, что вакансия ещё жива. Поэтому в подборке нет четырёх копий одного объявления.

Вакансии старше двух месяцев удаляются. Смысла держать их нет: почти все закрыты, а поиск по мёртвым объявлениям только раздражает.

Источники

Мы берём данные только оттуда, где есть открытый программный доступ: официальные API HeadHunter и SuperJob, полностью открытые данные портала «Работа России» и публичную ленту Хабр Карьеры. Никакого обхода защиты и выкачивания страниц вопреки правилам сайтов — если у источника нет легального способа получить данные, его в списке не будет.

Добавление нового источника устроено просто, поэтому список со временем растёт. Если вам не хватает какого-то сайта, напишите — посмотрим, есть ли у него открытый API.

Чего бот не делает

Он не хранит резюме, не откликается за вас и не показывает ваши данные работодателям. Отклик оформляется на сайте источника по ссылке из сообщения — так вы видите вакансию в первоисточнике, вместе со всеми условиями, которые в пересказе могли бы потеряться.

Кто его ведёт

Проект поддерживается в свободное время, поэтому ответы приходят не мгновенно, зато отвечает человек, а не шаблон. Баги, пожелания по фильтрам и предложения источников пишите прямо в бот — там виден контекст и не приходится объяснять всё заново.