Як 200+ відгуків на вакансію перетворилися на мій pet-проєкт

Останнім часом я сам знаходжусь у пошуку роботи. І під час цього процесу помітив одну доволі неприємну річ.
Знаходиш цікаву вакансію, відкриваєш, читаєш опис. Стек підходить. Досвід підходить. Проєкт цікавий. В голові вже: «О, а це виглядає непогано». А потім бачиш:
200+ відгуків.
І ентузіазму стає трохи менше :)
Звісно, це не означає, що не потрібно відгукуватися. Серед цих 200 кандидатів можуть бути люди з зовсім іншим досвідом, частина відгуків може не відповідати вакансії, та й хороший рекрутер все одно може дійти до твого CV. Але виникає інша думка: «А моє резюме взагалі хтось побачить?» Особливо коли вакансія з’явилася не сьогодні, а ти знайшов її через декілька днів. Тоді я подумав: якщо проблема в тому, що я знаходжу вакансії запізно, чому б просто не дізнаватися про них раніше? Я ж програміст. А в програмістів є чудова звичка: витратити кілька годин на автоматизацію того, що можна було робити руками по 10 хвилин на день
Так з’явився JobWatcher.
Що він робить?
Ідея максимально проста. Замість того щоб я протягом дня постійно відкривав DOU, Djinni, Jobico та перевіряв: «Ну що, з’явилося щось нове?» — це робить програма. JobWatcher моніторить вибрані категорії вакансій на DOU, Djinni та Jobico. З’явилася нова вакансія — я отримую сповіщення. Причому навіть не обов’язково сидіти й дивитися на відкриту вкладку. Можна отримувати звичайні browser notifications, а можна підключити Telegram-бота — і нова вакансія прилетить прямо в Telegram. Тобто замість: «Так, зараз зайду на DOU... тепер Djinni... ще Jobico... нічого... добре, перевірю через годину» — отримуємо:
🔔 Нова вакансія
І вже тоді можна відкрити її, швидко подивитися вимоги й вирішити, чи варто відгукуватися.
І ще важливий момент — JobWatcher повністю безкоштовний
Ніяких підписок, платних тарифів чи «7 днів безкоштовно, а потім введіть картку» :) JobWatcher — повністю безкоштовний open-source проєкт, який можна підняти локально на своєму комп’ютері. Тобто вам не потрібно реєструватися в якомусь сторонньому сервісі чи передавати кудись свої дані. Клонуєте репозиторій, запускаєте застосунок у себе на комп’ютері, налаштовуєте потрібні категорії та, за бажанням, підключаєте Telegram. І все. Ваш особистий маленький мисливець за вакансіями працює у вас локально й чекає, поки в мережі з’явиться щось цікаве.
Є тільки один очевидний нюанс локального запуску: Вимкнули комп’ютер — JobWatcher теж пішов відпочивати. Він усе-таки застосунок, а не дуже мотивований рекрутер, який працює 24/7 Але це легко змінити. Якщо розгорнути JobWatcher на сервері — наприклад, в AWS, Microsoft Azure або Google Cloud — він зможе працювати постійно, незалежно від того, увімкнений ваш ноутбук чи ні. Тоді схема стає ще цікавішою: ви спите, гуляєте, працюєте або взагалі не відкриваєте сайти з вакансіями, а JobWatcher продовжує їх перевіряти. З’являється щось нове — Telegram уже знає, де вас знайти. Фактично виходить власний маленький 24/7 сервіс моніторингу вакансій.
Чому не зробити звичайний парсер?
Спочатку найочевидніша думка була саме такою: відкрити сторінку → розпарсити HTML → знайти вакансії → порівняти з попередніми. Але HTML має одну не дуже приємну властивість. Сьогодні потрібний блок має один class. Завтра дизайнер трохи оновив сторінку. Післязавтра твій парсер вирішив, що вакансій у світі більше не існує. Тому там, де джерело надає нормальний фід або інший стабільний спосіб отримання вакансій, краще використовувати саме його. Далі все досить просто: застосунок запам’ятовує вже побачені вакансії та повідомляє тільки про нові. Є фільтрація за джерелом і категоріями, можна поставити моніторинг на паузу, залишити тільки нові вакансії, вимкнути звук, browser notifications або Telegram окремо.
А щоб після першого запуску Telegram не перетворився на кулемет із 40 старих вакансій, перша перевірка просто запам’ятовує поточний стан. Сповіщення починаються вже з наступних нових вакансій. Маленька деталь, але мій Telegram сказав би за неї дякую.
А ще на JobWatcher можна потренуватися
Це ще одна причина, чому я вирішив залишити проєкт відкритим. JobWatcher не обов’язково використовувати тільки як готовий інструмент. Якщо ви вивчаєте розробку або просто хочете попрактикуватися на реальному невеликому проєкті — його можна взяти й розширити. Наприклад, додати ще одне джерело вакансій. Той же LinkedIn або будь-який інший сайт, яким ви користуєтеся для пошуку роботи. Тут уже починається цікава частина для розробника: розібратися, яким способом можна отримувати вакансії з конкретного джерела, привести їх до спільного формату, додати фільтрацію, уникнути дублікатів і підключити все це до існуючої системи сповіщень. Звісно, у випадку з кожним стороннім сервісом потрібно враховувати його API, доступні фіди та правила використання. Але саме як задача для практики це вже набагато цікавіше, ніж черговий TODO List. У результаті JobWatcher можна поступово перетворити на власний агрегатор:
DOU + Djinni + Jobico + ваше джерело № 4 + джерело № 5 + ...
А Telegram при цьому залишається одним місцем, куди прилітає все цікаве.
Мені взагалі подобаються такі pet-проєкти. Коли ти не вигадуєш проблему для того, щоб продемонструвати технологію, а спочатку маєш реальну проблему — і вже під неї пишеш рішення.
А чи дає це якусь перевагу?
JobWatcher, звичайно, не гарантує роботу. Було б чудово:
npm start
Congratulations, you’re hired.
Але поки що Node.js так не вміє :) Зате він вирішує одну конкретну проблему — час. Якщо хороша вакансія з’явилася щойно, я хочу побачити її зараз, а не ввечері або через два дні. Не тому, що потрібно будь-якою ціною бути першим. А тому, що між «Я один із перших кандидатів, які побачили вакансію» і «Тут уже 200+ відгуків, але спробуємо» я все-таки оберу перший варіант.
Навіщо я взагалі про це пишу?
По-перше, можливо, JobWatcher буде корисним ще комусь, хто зараз проходить цей прекрасний квест під назвою «пошук роботи в IT». Проєкт відкритий, повністю безкоштовний і лежить на GitHub: github.com/dadi2008/job-watcher Можна запустити його локально, через Docker або розгорнути у хмарі, якщо хочеться, щоб він моніторив вакансії цілодобово. А далі — налаштувати потрібні категорії, підключити Telegram і просто займатися своїми справами.
Якщо спробуєте JobWatcher і він виявиться для вас корисним — буду дуже вдячний за зірочку на GitHub. Для open-source проєкту це маленький клік для користувача, але дуже приємний знак для розробника, що він робив це не тільки для власного Telegram А якщо знайдете баг, матимете ідею для покращення, захочете додати нове джерело вакансій або просто потренуватися на реальному проєкті — issues та pull requests також ніхто не скасовував.
А по-друге, мені подобається сам підхід. Я побачив проблему, яка мене дратувала. Можна було просто продовжувати оновлювати сторінки. А можна було спробувати її вирішити. Тому я відкрив IDE. І тепер сторінки оновлює комп’ютер. Як і має бути.
4 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарівВакансии сейчас закрываются неторопливо, лучше быть не быстрым а подходящим.
Ну промониторите ресурс 1: на нем 200 откликов. Промониторите ресурс 2: 200 откликов и так далее. Напоминает анекдот про 2 ковбоев г...но и 100 долларов.Кажется Билли мы просто г...на наелись. Дружище — корабль IT приплыл в пустыню где гуляет ветер бродят дикие голодные обезьяны и еда где то там за горизонтом
Ну не знаю ::)) Але мій корабль поки пливе ::))
І вже перевірено що за допомогою JobWatcher Ти не сотий відгукуєшся. Коли приходить сповіщення, то ти коли відгукуєшся на вакансію ти у першій десятці,
