Скраппинг LinkedIn с помощью n8n, Bright Data, OpenAI и SMTP

Создайте рабочий процесс без кода, чтобы скрести LinkedIn, извлекать профили с помощью искусственного интеллекта и отправлять результаты прямо в почтовый ящик, используя n8n, Bright Data и OpenAI.
2 мин. чтения
LinkedIn Scraping With n8n, Bright Data, OpenAI and SMTP blog image

В этом руководстве вы узнаете:

  • Как автоматизировать поиск информации в LinkedIn с помощью n8n, Bright Data и OpenAI
  • Как построить бескодовый рабочий процесс, который будет отправлять анкеты кандидатов прямо в ваш почтовый ящик
  • Почему объединение Web Unlocker, ChatGPT и SMTP создает мощный инструмент для рекрутинга

Давайте начнем!

Начало работы

Вы можете посмотреть этот рабочий процесс на n8n здесь. Однако для самой простой настройки нам нужно сделать несколько вещей.

Самостоятельный хостинг n8n

Этот рабочий процесс опирается на узлы сообщества n8n. Community Nodes – это сторонние инструменты, предоставляемые добрыми самаритянами из сообщества n8n. Лучший способ управлять всеми этими подвижными частями – упаковать их в Docker-контейнер.

Установка Docker

Используя родную Ubuntu или Ubuntu через WSL в Windows, выполните следующую команду для установки Docker. Об установке Docker для других платформ вы можете узнать здесь.

sudo snap install docker

После установки Docker создайте том для хранения и запустите свой контейнер.

Создание контейнера n8n

sudo docker volume create n8n_data
sudo docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Установка узлов сообщества

Откройте http://localhost:5678/ в своем браузере. У вас будет полностью самостоятельная версия веб-приложения n8n, запущенная локально.

На боковой панели нажмите на три точки рядом с вашим профилем и выберите “Настройки”.

Откройте настройки

Оказавшись в меню настроек, выберите “Community Nodes”. Это даст вам доступ к сторонним инструментам, о которых я упоминал ранее.

Нажмите “Установить”, и вы увидите всплывающее окно для узла, который вы хотите установить. В разделе “Пакет npm” вставьте следующий пакет.

n8n-nodes-brightdata

Когда все будет готово, нажмите “Установить”.

Установите узел Bright Data Community Node

Теперь повторите этот процесс для Генератора документов.

n8n-nodes-document-generator
Установите узел сообщества генератора документов

Перезапуск контейнера

После установки узлов сообщества убейте контейнер с помощью ctrl+c. Выполните приведенную ниже команду, чтобы перезапустить n8n.

sudo docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n

Импорт рабочего процесса

После настройки мы наконец-то готовы импортировать рабочий процесс, о котором я упоминал ранее. Перейдите на страницу n8n и нажмите на кнопку “Использовать бесплатно”.

Профиль LinkedIn Главная страница Findr

У вас должно появиться всплывающее окно с несколькими вариантами. Самый простой способ – выбрать “Импортировать шаблон в localhost:5678 self-hosted instance”.

Параметры импорта из n8n

Введите или импортируйте свои учетные данные

Теперь вам будет автоматически предложено ввести учетные данные для Bright Data, OpenAI и SMTP.

Введите свои учетные данные

Получение ключей API

Яркие данные

Этот рабочий процесс использует Web Unlocker для выполнения поиска. После регистрации в Web Unlocker перейдите на панель Web Unlocker Dashboard и получите свой ключ API. n8n будет использовать этот ключ для поиска результатов с помощью Bright Data.

Панель управления Web Unlocker

OpenAI

Перейдите на платформу разработчиков OpenAI и создайте учетную запись, если вы еще этого не сделали. Затем нажмите на “API-ключи”, чтобы сгенерировать ключ.

Получение ключей API OpenAI

SMTP

Этот процесс совместим с любым SMTP-клиентом. В настоящее время я использую Elastic Email. Их бесплатный тарифный план отлично подходит для локальных проектов, подобных этому. Сохраните имя пользователя, пароль, сервер и порт. Мы будем использовать их вместе с n8n для автоматизации процесса отправки электронной почты.

Учетные данные SMTP

Шаги рабочего процесса

Рабочий процесс поиска профиля LinkedIn

Когда пользователь заполняет форму

Когда пользователь заполняет веб-форму, это запускает наш рабочий процесс. Не стесняйтесь открывать этот узел и просматривать параметры и настройки. Однако все на этом шаге должно быть предварительно настроено – редактировать ничего не нужно.

Настройки формы пользователя

Создание URL-адреса LinkedIn и поиск компании

Когда форма заполнена, мы запускаем два отдельных рабочих процесса.

Один из них создает URL-адрес Google для поиска профиля этого человека в LinkedIn.

Поиск профиля в LinkedIn

Другой делает отдельный Google url для поиска LinkedIn по своей компании.

Оба этих URL-адреса передаются в Web Unlocker, чтобы избежать блокировки.

Создание URL-адресов и передача их в Web Unlocker

Извлечение HTML из результатов

Теперь мы извлекаем HTML из наших результатов. У нас есть два узла под названием “Извлечь тело и заголовок с веб-сайта”. Оба узла извлекают заголовок и тело из JSON-ответа Bright Data.

Извлечение содержимого HTML

В рабочем процессе оба этих выделенных этапа происходят одновременно.

Этапы рабочего процесса: Извлечение HTML

Разбор результатов с помощью ChatGPT

Теперь, когда мы извлекли заголовок и тело из каждого поиска, мы передаем наши HTML-результаты в ChatGPT для обработки. Каждый из этих узлов содержит процесс, как показано ниже. Мы определяем нашу модель (GPT-4o mini) и даем ей запрос на извлечение данных.

Разбор с параметрами и настройками ChatGPT

Как вы можете видеть ниже, это происходит в обоих наших процессах одновременно.

Разбор результатов Google с помощью ChatGPT

Извлечение разобранных результатов и разделение на части для завершения поиска компании

На этом шаге один из наших отдельных рабочих процессов завершается с помощью “Split Out”. Поскольку рабочий процесс “Компания” завершается, мы извлекаем разобранные результаты из рабочего процесса “Человек”.

Вот инструкции по извлечению. Как вы можете видеть, мы просто извлекаем небольшие фрагменты из большого JSON-тела.

Процесс извлечения

Наш рабочий процесс “Компания” завершен, а рабочему процессу “Человек” осталось выполнить несколько шагов. Рабочий процесс “Компания” будет приостановлен до тех пор, пока эти процессы не будут готовы к слиянию – вот где действительно проявляется красота n8n… асинхронное программирование без необходимости кодирования!

Выделение и извлечение результатов парсинга

Ограничьтесь 1 профилем и подтвердите его существование

Наш рабочий процесс “Человек” фильтрует результат, чтобы использовать только совпадающие профили. Затем мы ограничиваем его одним профилем и убеждаемся, что он существует. Если он не существует, мы обновляем форму и сообщаем пользователю, что профиль не найден.

Сообщение об обработке ошибок

Пока профиль существует, мы готовы к объединению в единый, последовательный рабочий процесс.

Выберите только одного человека и убедитесь, что его профиль существует

Объединение рабочих процессов

Как вы можете видеть ниже, данные из обоих рабочих процессов используются в качестве входных. Они объединяются в один выходной файл, который мы в последний раз передаем в ChatGPT.

Объединение входных данных

Наконец-то все собралось воедино. Когда мы получили единый рабочий процесс, мы готовы выполнить последние шаги.

Объединение двух рабочих процессов

Разработка шагов по работе с населением и последующей деятельности

Теперь мы передаем этот единственный вывод обратно в ChatGPT, чтобы завершить работу над письмом. Он даже пишет пользовательский HTML, так что нам даже не нужно беспокоиться о коде разметки.

Передача входных данных в ChatGPT

Как только HTML-файл будет получен, мы готовы отправить результаты по электронной почте.

ChatGPT пишет письмо

Отправка электронного письма

Откройте узел “Отправить электронное письмо” и убедитесь, что ваши учетные данные и сведения о подключении верны. Как вы видите, мы передаем json.message.content.content для создания письма. Это буквально берет HTML из ChatGPT и вставляет его прямо в тело письма.

SMTP-соединение и креды

Измените “From Email” на используемый SMTP-почту. Затем письмо будет отправлено на “To Email” – измените это значение на ваш личный адрес, чтобы получать результаты в ваш личный почтовый ящик.

Отправка узла рабочего процесса по электронной почте

Обновление формы, чтобы показать завершение

Наконец, мы обновляем форму, чтобы сообщить пользователю об успешном выполнении операции. Если вы откроете “Форму отправки письма”, то увидите различные параметры для обновления формы. Как видите, мы показываем плитку “Завершение”, которая говорит: “Спасибо!” и сообщение: “Мы отправили вам письмо”.

Представление формы пользователя

Теперь мы завершили последний этап рабочего процесса! Не стесняйтесь нажать кнопку “Test Workflow” и посмотреть, как все работает.

Отправка электронной почты формы

Результаты

Если вы решили запустить рабочий процесс, сначала появится всплывающее окно с предложением заполнить форму поиска. Заполните форму и нажмите “Получить ссылки”.

Форма пользователя

После завершения процесса ваша форма должна выглядеть так, как показано ниже. Как видите, она говорит “Спасибо!” и отображает наше сообщение о завершении.

Если вы откроете почтовый ящик, то получите новое письмо с подробным описанием кандидата и ссылками на его веб-сайт и профиль в LinkedIn. Ниже вы увидите рекомендации ChatGPT по работе с кандидатами и их последующим действиям.

Рекомендации по работе с населением и последующим действиям

Заключение

С помощью n8n, Bright Data, OpenAI и SMTP вы построили полностью автоматизированный процесс поиска и рассылки информации в LinkedIn без написания сложного кода. Эта мощная система упрощает процесс подбора персонала, предоставляя обогащенные профили кандидатов и персонализированные рассылки прямо в ваш почтовый ящик.

Независимо от того, расширяете ли вы конвейер найма или улучшаете генерацию потенциальных клиентов, этот рабочий процесс – только начало. Bright Data предлагает полный набор инструментов, чтобы поднять автоматизацию на новый уровень:

  • Web Unlocker: обходите CAPTCHA, блокировки и обнаружение ботов, чтобы надежно скрести LinkedIn и другие сайты.
  • Резидентные прокси: Доступ к IP-адресам реальных пользователей со всего мира, что обеспечивает высокий процент успеха и геотаргетинг.
  • Браузер для скрапинга: Безголовый браузер со встроенной поддержкой прокси – идеальное решение для страниц, перегруженных JavaScript.
  • API скрепера: Используйте готовые шаблоны для извлечения структурированных данных без особых усилий.
  • Наборы данных: Используйте готовые наборы данных, содержащие объявления о вакансиях, данные о компаниях и многое другое, чтобы обогатить свой охват.

Подпишитесь на бесплатную пробную версию и начните автоматизировать умнее уже сегодня!

Кредитная карта не требуется