Назад к блогу
Интеграции

Получение откликов от кандидатов через самодельные Webhook уведомления

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

Автор:danila-support
Получение откликов от кандидатов через самодельные Webhook уведомления

Если в компании идет постоянный найм технических специалистов через 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: Прием вебхука в Пачке

На этом шаге нам нужно научить Пачку принимать вебхук от нашего приложения, для этого:

  1. Создайте новую интеграцию в разделе "Интеграции" → "Чат-боты и Вебхуки". Если вы планируете отображать данные в нескольких чатах, выберите тип интеграции "для нескольких чатов".

  2. Дальше нужно прописать шаблон сообщения, чтобы отображать данные, которые передаются в Пачку. Ключи должны соответствовать ключам Payload из кода:

👨💻Новый отклик на вакансию {{vacancy_title}} от {{user_name}}!
Опыт работы: {{experience}} лет
Ссылка на резюме: {{link}}
Email: {{email}}
Телеграм: https://t.me/{{telegram}}
{{habr_profile_link}}
{{body}}
  1. Перейдите во вкладку "Входящий Webhook" и вставьте шаблон.

  2. Скопируйте Webhook URL и вставьте в код вместо WEBHOOK_URL.

  3. Перейдите в чат, в котором вы хотите видеть сообщения о новых откликах. Откройте Список участников → Интеграции и добавьте созданный вебхук через +.

Этап 5: Запуск

Осталось запустить код на локальном сервере:

  1. Запустите ваш код в терминале IDE, приложение вернет в терминал ссылку на локальный сервер. Не перепутайте с обычным запуском кода.
  2. Откройте страницу по ссылке и нажмите на Login.
  3. Откиньте спинку кресла и наблюдайте, как новые отклики поступают в рабочий чат.

Как бонус — когда приходит отклик от нового кандидата, то его можно обсудить с коллегами прямо в треде под сообщением бота.