Поиск работы традиционно является одним из самых ответственных и в то же время утомительных этапов в жизни каждого человека. Огромное количество вакансий на десятках сайтов, повторяющиеся предложения, сложные системы подачи заявок и бесконечные переключения между вкладками в браузере могут свести с ума. Разработчик chaosharmonic решил кардинально изменить этот опыт, создав проект Escape Rope – своеобразный Tinder для вакансий с открытым кодом, который можно разместить на собственном сервере. Escape Rope задуман как инструмент, который не просто собирает вакансии, а систематизирует и оптимизирует их просмотр и обработку. Основная идея проекта заключается в автоматическом сборе объявлений с различных ресурсов посредством написанных автором краулеров.
Эти краулеры периодически выполняют поиск и получают список вакансий в формате JSON, что значительно упрощает последующую обработку данных. Применение таких краулеров помогает избежать повторений, которые зачастую встречаются на разных досках объявлений, и предотвращает лишние переходы по копиям одних и тех же вакансий. Пользователь может загружать результаты поиска непосредственно в приложение, а далее с помощью удобного интерфейса «свайпить» вакансии – подобно тому, как это происходит в мобильном приложении Tinder. Таким образом, можно быстро отсортировать релевантные предложения, отметив те, которые хотелось бы рассмотреть более подробно или начать процесс отклика. Такой уникальный подход экономит сотни часов и бюрократических сложностей, присущих традиционным способам поиска работы.
Проект включает в себя два важных компонента: фронтенд – пользовательский интерфейс, и бэкенд – API для хранения и управления данными. В бэкенде реализована интеллектуальная система определения дубликатов. Она помогает не только сокращать количество одинаковых вакансий при загрузке, но и объединять результаты, полученные из разных источников, что в конечном итоге создает более чистую и структурированную базу для поиска. Интересным решением стали встроенные шаблоны для сопроводительных писем и стандартных вопросов для интервью. Это позволяет экономить время на подготовку документов и облегчить повторяющиеся процессы при отклике на вакансии.
В дальнейшем планируется расширить функционал, добавив еще больше опций для кастомизации источников данных, улучшения удобства добавления и редактирования вакансий, а также внедрения системы отслеживания компаний. Разработчик признался, что изначально проект создавался исключительно для собственных нужд: чтобы избавиться от бессмысленной рутины и лишних задержек при поиске работы. Но благодаря открытому коду и простоте установки Escape Rope может быть полезен и другим специалистам с техническим уклоном, которые хотят взять под контроль весь процесс трудоустройства и сделать его максимально прозрачным. Интерфейс выполнен с использованием hand-rolled CSS, что требует дополнительной работы над адаптивностью и исправлением мелких багов, например, с отображением полос прокрутки на мобильных устройствах или анимациями в браузере Firefox. Также автор рассматривает варианты отказа от React в пользу более легких и быстрых решений, что позволит упрощать поддержку и развитие продукта.
Помимо создания краулеров и самого Escape Rope, разработчик внес вклад в несколько викторин с открытым исходным кодом. В частности, алгоритм определения дубликатов построен на основе решения, которое он добавил в kvdex — документальную базу данных, построенную на Deno KV. Кроме того, он добавил возможность подмены user agent для браузерной автоматизации в библиотеку Astral, что позволило использовать разные браузеры и эмулировать поведение пользователя для эффективного сбора данных. Среди прочих особенностей стоит отметить минимальное количество внешних зависимостей в проекте — нацеленность на легкость и контроль над всем стеком программного обеспечения. Однако полностью отказаться от сторонних библиотек не удалось, ведь некоторые функции требуют поддержки и обновлений, которые проще обеспечить за счет использования проверенных решений.
Публичная демонстрация проекта доступна по адресу escape-rope.bhmt.dev, что позволяет потенциальным пользователям оценить интерфейс и основные возможности на практике. Свои исходные коды можно найти на GitHub: backend-репозиторий расположен на github.com/chaosharmonic/escape-rope, а frontend — на github.
com/chaosharmonic/escape-rope-ui. Также автор подробно описал процесс написания краулеров и технические детали проекта в своем блоге на bhmt.dev/blog/scraping. Escape Rope — пример того, как нестандартный подход к решению повседневных задач может привести к созданию интересного и полезного инструмента. Это не просто очередной агрегатор вакансий, а полноценная система, позволяющая каждому пользователю упростить поиск работы, уменьшить повторения и быстро отсеивать нерелевантные результаты.
Текущий статус проекта можно назвать MVP — минимально жизнеспособным продуктом, готовым к использованию, но главная цель автора — продолжать постепенное развитие с учетом потребностей сообщества и собственного опыта. В будущем возможно появление новых функций, таких как расширенные фильтры, интеграция с другими сервисами и более совершенные механизмы кастомизации. Для тех, кто хочет управлять своим временем и сделать процесс поиска работы максимально эффективным, Escape Rope предлагает свободу и прозрачность. Возможность самостоятельно хостить приложение на своих серверах также гарантирует безопасность и контроль данных, что немаловажно в эпоху повышенного внимания к приватности. Таким образом, Escape Rope является инновационным решением, объединившим в себе лучшие практики автоматизации и современные методы взаимодействия пользователя с информацией.
Он демонстрирует, что даже такой рутинный процесс, как поиски работы, можно сделать удобнее, быстрее и приятнее, используя правильные технологии и задуманные с умом интерфейсы. Если вам надоели привычные сайты с миллионами вакансий и их спамом или вы просто хотите иметь полный контроль над собственным поиском работы, Escape Rope открывает дверь в новый мир самодостаточных и прозрачных инструментов карьерного роста.