Мне надоело вручную искать работу и я написал mvp бот-агрегатор вакансий в телеграм
Привет! Меня зовут Иван. Я написал бот Ready2Work, который собирает вакансии с тематических телеграм каналов. Расскажу о том что сподвигло, к чему пришел и что в планах.
Предистория.
Компания где я работал закрылась. И так как у меня нет накоплений в несколько десятков миллионов, чтобы жить не работая, нужно было искать работу.
Да, я вновь активировал анкету на hh, начал смотреть вакансии какие мне там попадались, но большенство найденных вакансий мне не подходили по ряду параметров и захотелось расширить круг поиска.
И где же еще можно найти много вакансий? Конечно же в телеграм каналах с этими самым вакансиями. Но, как вы понимаете, листать сотни каналов с вакансиями это тоже не выход. Поэтому я решил написать агрегатор. Да, агрегаторов полно, но нормальных агрегаторов по вакансиями в телеграме, я не нашел.
Как искать и расширяться?
Чтобы что-то найти, нужно было сначала что-то собрать. Для начала я написал бот-сборщик всего что постится на канал с вакансиями. Смысла собирать старые вакансии не было, поэтому собираются только новые сообщения. Все сообщения бережно складывают и обрабатываются чтобы определить, является ли сообщение вакансией или это реклама курсов, ставок и прочих рекламных дел. Затем эти сообщения индексируются, чтобы потом можно было легко найти нужное.
И казалось бы все готово. Но я знал только пару каналов с вакансиями, а этого мало. Поэтому кроме анализа сообщений с вакансиями бот мониторит и рекламу других каналов с вакансиями. И база начала разрастаться. В начале я добавил пару крупных «игроков», а дальше уже дело техники и время ожидания.
На данный момент мониторится около 500 каналов с вакансиями. В день добавляется более 1000 вакансий.
Наработки по поиску.
Сейчас в боте кроме поиска еще есть и подписка на то что пользователь искал. Т.е. если пользователь искал «фронтенд» и подписался на эту выдачу, то ему будут приходить уведомления, если вакансия с такой формулировкой появится. А т.к. в боте работает морфологической поиск, так что волноваться за род, число и падеж не стоит.
Поиск сделан так, что сначала пользователю показываются вакансии за день, за неделю, за 2 недели и за месяц. Т.е. вначале всегда показывается самое свежее.
При этом постоянно мониторится статус вакансии и если она удаляется с канала источника, то вакансия так же пропадает и из поискового индекса.
Проблемы.
Не обошлось и без проблем. Одна из главных это как раз корректная фильтрация сообщений, т.к. не всегда алгоритм может распознать 100% является ли сообщение на канале рекламным постом или вакансией, т.к. алгоритм основывается на ряде триггеров в тексте. Решение конечно же есть — это подключать нейронки и учить.
Успешность MVP.
Так как это mvp продукта, то дальнейшая судьба бота зависит конечно же от пользователей. Зайдет ли он им или нет.
Метрикой успешности mvp я выбрал это кол-во подписок на вакансии и их просмотр. Кол-во пользователей не самый главный показатель в данной тематике.
Зашло? Что дальше?
А дальше расширять функционал поиска. Т.к. сейчас нет фильтрации вилки зарплат, хотя эти данные тоже собираются.
Очень хочется поработать с нейронкой, чтобы с бОльшей уверенностью отделять рекламу от вакансий.
Опять же есть план нейронкой собирать группы схожих вакансий. Чтобы при поиске «фронтенд разработчик» находились вакансии и «frontend developer», «js программист» и т.п.
Но ведь воровать грешно…
Наверное некоторые уже подумали о том, что я использую контент других для своих целей, не отдавая ничего в замен? Не совсем так, при просмотре полного текста вакансии указывается с какого ресурса она была взята и конечно же ссылка на оригинал сообщения.
В заключение
Чтобы не потеряли, вот вам еще раз ссылка на бота. Расскажите в комментариях, как вам? Что понравилось, что не очень? Буду очень признателен если напишите о фичах которых не хватает в боте.
Напишите в личку в телеге: @revealed_dave.
Есть пара мыслей.
Тот самый админ джс, проджект и продакт Джобс каналов.
@Ivan Koffka мне там написали в личку. Это вы?
Просто уточняю,а то всякое бывает
Если вы про гуся с розой, то да )
Интересная штука.
1. Можно выделять названия вакансий жирным.
2. Когда нажимаешь "Показать еще", чтобы в самый конец не перебрасывало.
3. "Опять же есть план нейронкой собирать группы схожих вакансий" - это было бы просто замечательно.
1. Думаю да. Сделаем.
2. Тут уже особенности телеграма. Но подумаю как можно сделать хорошо.
3. Все зависит от интереса пользователей к проекту. Ведь это не законченный продукт, а только mvp.
спасибо! понравилось очень: показывает дату публикации вакансии, показывает подборку за неделю, показывает канал, откуда взято. нет привязки к одной категории, ее легко сменить! буду рекомендовать всем!
Большое спасибо за отзыв!
Так же буду признателен за конструктивную критику. Что не понравилось или чего не хватает.
Так а работу всё таки нашёл?
Да! Со своей задачей бот справился.
Привет. Как парсишь вакансии? Ты токенизируешь и ищешь по ключам? И как отделяешь рекламу другого канала от предложения увеличить член?
Алгоритм проверяет уже сам канал по различным триггерам. Если канал про вакансии, то то добавляется в список сборщика. Если есть сомнения, т.е. не все триггеры отработали, то мне отправляется сообщения на ручную модерацию. Но обычно отрабатывает на 95%.
Прикольно. А вакансии ты кластеризуешь или у тебя релевантный поиск?
Сохраняю в базу с доп.информацией + индексация с последующим релевантным поиском.
Красава. Отличное решение. Не знаю, как монетизируют телеграм каналы, но кто-то должен тебе заплатить🙂
У спортмастера, к слову, все на эластике, они обещают дохуя платить и премии в 50% годовых. Расскажи, если устроишься.
Спасибо )
Монетизация в основном рекламой или ограничением доступа к фичам.
ФИчи ограничивать не буду, а вот насчет рекламы, подумаю как интегрировать рекламу, чтобы она не была бесящей.
Не совсем в тему, но может посоветуете, как разместить свои вакансии в 50 городах - бесплатно, или за разумные деньги (на HH.RU мне не по карману).
если вы ИТшник, тогда в Линкедин все можно сделать, обновите свой профиль
Не ИТшник, но попробую, спасибо.
Смотря что за вакансия. Так то можно в вк по профильным пабликам раскидать (относительно недорого или бесплатно).
В том же вк, в городских сообществах, часто в разделе Обсуждения есть вакансии, там все бесплатно. Особенно актуально для небольших городов.
Юлу можно попробовать . Более актуально для МСК, Питера и миллионников. Дешевле чем хх, авито и т.д., но и отклик похуже.
Спасибо. Пробовал. Отклики совсем не о чем.
Попробовал перейти по ссылке. Робот не позволил — сообщение — к сожалению вы не состоите в чате.
Нажал название сайт откуда ссылка выскочило сообщение - истёк срок ссылки.
Как я понимаю по ссылке в тексте вакансии? Тут уже как автор вакансии указал.
Посмотрите приложение - Trovit Работа. Там ссылки на «первоначальные сайты» работает. Может все же дело в другом? )
Одно дело на сайты, а другое на закрытые каналы. Суть в том, что если канал приватный, то вы в него не попадете без первоначальной ссылки. Ссылка периодически меняется админом канала и публикуется по желанию админа.
В данном случае, скорее всего, вы как раз попытались перейти на закрытый канал.
"И так как у меня нет накоплений в несколько десятков миллионов, чтобы жить не работая, нужно было искать работу." Это ты пошутил?)
Комментарий недоступен
хм, Иван, вы бота который будет обновлять цены по запросу на сайте +телеграм сможете сделать?
Смотря где цены. А так, конечно все возможно.
Разве в каналы не добавляют запрет ботам добавляться в число участников?
Конечно. Но ведь добавляется один юзер-бот.
Комментарий недоступен
Пользуйтесь в удовольствие ;)
Такое впечатление что символы типа # не глотает, c# developer ищется только слово developer в c# вообще не ищется, надо экранировать как то символы
Больше спасибо за замечание. Исправлю.
ввел DBA получил какую-то муть, закрыл. на hh все проще.. :)
Спасибо за отзыв.
А что это? Я поискал на той же rabota.ru и там ничего такого нет. В поисковиках ничего толком по теме вакансий с таким запросов не выдается. Может стоит попробовать другую формулировку?
🤷♂️ яндекс и росработу никогда не любил
Уважаемый, Иван!)
Я — не сноб, но после заголовка «ПредИстрория», которое со школы помню, как предыстория, сразу вся остальная инфа провалилась. Пишу просто по своим ощущениям. Обязательно вникну в то, о чем Вы пишите.
Ок
...вдогонку. Почему мы можем писать ботов, а следовательно задавать им определенные правила, и спокойно игнорируем правила русского языка?!
Понравился бот! Хорошая разработка.
Спасибо!
О, круто!! а на сколько сложно было писать такого бота? и где вы писали этого бота?
Как минимум пришлось посидеть подумать как сделать )
А так оценить сложность не смогу.
Не понял вопрос "где вы писали этого бота".
Вы имеете ввиду на какой языке? Python. Т.е. бот не в конструкторе собран, а написан условно "с нуля".
Добрый день, а он ещё работает?
похоже уже не работает