Получение откликов от кандидатов через самодельные Webhook уведомления
Интеграция Пачка × Habr Career для автоматического получения уведомлений о новых откликах на вакансии

Если в компании идет постоянный найм технических специалистов через Habr, то интеграция Пачка × Habr Career поможет не пропускать уведомления о новых откликах. На Habr нет встроенных вебхуков на этот сценарий, поэтому описываем процесс создания API-приложения.
Подробно описали интеграцию, чтобы ее мог реализовать любой пользователь с опытом разработки. Еще в статье приводим примеры кода, чтобы задача была сильно проще.
Технические детали
Скрипт: Авторизация OAuth2.0, получение JSON, отправка вебхука, APScheduler
Язык: Python + Flask
Сложность: Средняя
Автор: Данила, менеджер тех.поддержки
Репозиторий: https://github.com/doesntneedname/HabrCareerAPI/tree/main
Этап 1: Подготовка
Для начала вам понадобится виртуальная среда .venv. Развернуть ее можно в любом IDE. Достаточно убедиться, что ваша версия Python — 3 и выше и прописать в терминал следующий код:
python3 -m venv .venv
Также необходимо установить Flask и requests, нужно вписать в терминал команды по отдельности:
pip install Flask
pip install requests
pip install apscheduler
Этап 2: Подготовка 2.0
Теперь нам нужен исходный код, скопируйте его отсюда: https://github.com/doesntneedname/HabrCareerAPI/blob/main/main.py
from flask import Flask, redirect, request, session, jsonify, json
from flask_apscheduler import APScheduler
import requests
import urllib.parse
import math
app = Flask(__name__)
Подготовка еще не окончена, нужно создать два пустых файла в папке .venv: cached_applies.json и access_token.txt
Этап 3: Настройка и запуск
Теперь нужно задать данные некоторым константам, все подобные действия описаны в коде через #.
Внимательно просмотрите комментарии к коду и занесите ваши данные (кроме WEBHOOK_URL, его мы получим при создании интеграции в Пачке). Также вы можете настраивать таймер, по которому приложение будет выполнять цикл и другие отмеченные переменные, опираясь на описание. Например: одно обращение к серверу и проверка каждую минуту.
Этап 4: Прием вебхука в Пачке
На этом шаге нам нужно научить Пачку принимать вебхук от нашего приложения, для этого:
-
Создайте новую интеграцию в разделе "Интеграции" → "Чат-боты и Вебхуки". Если вы планируете отображать данные в нескольких чатах, выберите тип интеграции "для нескольких чатов".
-
Дальше нужно прописать шаблон сообщения, чтобы отображать данные, которые передаются в Пачку. Ключи должны соответствовать ключам Payload из кода:
👨💻Новый отклик на вакансию {{vacancy_title}} от {{user_name}}!
Опыт работы: {{experience}} лет
Ссылка на резюме: {{link}}
Email: {{email}}
Телеграм: https://t.me/{{telegram}}
{{habr_profile_link}}
{{body}}
-
Перейдите во вкладку "Входящий Webhook" и вставьте шаблон.
-
Скопируйте Webhook URL и вставьте в код вместо
WEBHOOK_URL. -
Перейдите в чат, в котором вы хотите видеть сообщения о новых откликах. Откройте Список участников → Интеграции и добавьте созданный вебхук через
+.
Этап 5: Запуск
Осталось запустить код на локальном сервере:
- Запустите ваш код в терминале IDE, приложение вернет в терминал ссылку на локальный сервер. Не перепутайте с обычным запуском кода.
- Откройте страницу по ссылке и нажмите на Login.
- Откиньте спинку кресла и наблюдайте, как новые отклики поступают в рабочий чат.
Как бонус — когда приходит отклик от нового кандидата, то его можно обсудить с коллегами прямо в треде под сообщением бота.