n8n, Bright Data, OpenAI 및 SMTP를 활용한 LinkedIn 스크래핑

n8n, Bright Data, OpenAI를 활용하여 LinkedIn 스크래핑, AI 기반 프로필 추출, 결과물을 직접 수신함으로 전송하는 노코드 워크플로를 구축하세요.
1 분 읽기
LinkedIn Scraping With n8n, Bright Data, OpenAI and SMTP blog image

이 가이드에서는 다음을 알아볼 수 있습니다:

  • n8n, Bright Data, OpenAI를 활용한 LinkedIn 스크래핑 자동화 방법
  • 후보 프로필을 바로 이메일로 전송하는 노코드 워크플로 구축 방법
  • 웹 언락커(Web Unlocker), ChatGPT, SMTP를 결합하면 강력한 채용 도구가 되는 이유

시작해 보세요!

시작하기

이 워크플로는 n8n에서 여기에서 볼 수 있습니다. 그러나 가장 쉬운 설정을 위해 먼저 몇 가지 작업을 수행해야 합니다.

n8n 자체 호스팅

이 워크플로는 n8n의 커뮤니티 노드에 의존합니다. 커뮤니티 노드는 n8n 커뮤니티의 선의의 사용자들이 제공하는 타사 도구입니다. 이러한 모든 구성 요소를 관리하는 가장 좋은 방법은 Docker 컨테이너로 묶는 것입니다.

Docker 설치

Windows의 WSL을 통한 Ubuntu 또는 네이티브 Ubuntu에서 다음 명령어를 실행하여 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 웹앱 버전이 실행됩니다.

사이드바에서 프로필 옆의 점 세 개를 클릭하고 “설정”을 선택하세요.

Open Up Settings

설정 메뉴에서 “커뮤니티 노드”를 선택하세요. 이렇게 하면 앞서 언급한 타사 도구에 접근할 수 있습니다.

“설치”를 클릭하면 설치하려는 노드에 대한 팝업이 표시됩니다. npm 패키지 섹션에 다음 패키지를 붙여넣으세요.

n8n-nodes-brightdata

준비가 되면 “설치”를 클릭하세요.

Install Bright Data Community Node

이제 문서 생성기(Document Generator)에 대해서도 동일한 과정을 반복하세요.

n8n-nodes-document-generator
Install Document Generator Community Node

컨테이너 재시작

커뮤니티 노드가 설치되면 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 Profile Findr Home Page

여러 가지 옵션이 있는 팝업이 표시될 것입니다. 가장 쉬운 방법은 “Import template to localhost:5678 self-hosted instance”를 선택하는 것입니다.

Import Options from n8n

인증 정보 입력 또는 가져오기

이제 Bright Data, OpenAI 및 SMTP에 대한 자격 증명을 입력하라는 메시지가 자동으로 표시됩니다.

Enter Your Credentials

API 키 획득하기

Bright Data

이 워크플로는 Web Unlocker를 사용하여 검색을 수행합니다. Web Unlocker에 가입한 후 Web Unlocker 대시보드로 이동하여 API 키를 가져옵니다. n8n은 이 키를 사용하여 Bright Data로 결과를 스크랩합니다.

Web Unlocker Dashboard

OpenAI

OpenAI 개발자 플랫폼으로 이동하여 아직 계정이 없다면 계정을 만드세요. 그런 다음 “API 키”를 클릭하여 키를 생성하세요.

Get OpenAI API Keys

SMTP

이 프로세스는 모든 SMTP 클라이언트와 호환됩니다. 현재 저는 Elastic Email을 사용하고 있습니다. 무료 플랜은 이와 같은 로컬 프로젝트에 매우 적합합니다. 사용자 이름, 비밀번호, 서버, 포트를 저장하세요. n8n과 함께 이 정보를 사용하여 이메일 프로세스를 자동화할 것입니다.

SMTP Credentials

워크플로 단계

LinkedIn Profile Finder Workflow

사용자가 양식을 완료할 때

사용자가 웹 양식을 완료하면 워크플로가 시작됩니다. 이 노드를 열어 매개변수와 설정을 확인해도 됩니다. 다만 이 단계의 모든 설정은 미리 구성되어 있으므로 편집할 필요가 없습니다.

User Form Settings

링크드인 URL 생성 및 회사 검색

양식이 완료되면 두 개의 별도 워크플로우를 실행합니다.

하나는 해당 인물의 LinkedIn 프로필을 검색할 Google URL을 생성합니다.

LinkedIn Profile Search

다른 하나는 해당 회사를 LinkedIn에서 검색하기 위한 별도의 Google URL을 생성합니다.

이 두 URL은 차단되지 않도록 Web Unlocker로 전달됩니다.

Creating the URLs and Passing Them Into Web Unlocker

결과에서 HTML 추출

이제 결과에서 HTML을 추출합니다. “웹사이트에서 본문과 제목 추출”이라는 두 개의 노드가 있습니다. 이 두 노드는 Bright Data의 JSON 응답에서 제목과 본문을 가져옵니다.

Extract The HTML Content

워크플로우에서, 이 두 가지 강조 표시된 단계는 동시에 수행됩니다.

Workflow Steps: HTML Extraction

ChatGPT로 결과 파싱

각 검색에서 제목과 본문을 추출했으므로, HTML 결과를 ChatGPT로 전달하여 처리합니다. 각 노드에는 아래와 같은 프로세스가 포함됩니다. 모델(GPT-4o mini)을 정의하고 데이터 추출을 위한 프롬프트를 제공합니다.

Parse With ChatGPT Params and Settings

아래에서 볼 수 있듯이, 이 작업도 두 프로세스에서 동시에 수행됩니다.

Parsing the Google Results With ChatGPT

구문 분석된 결과 추출 및 회사 검색 종료 분할

이 단계에서 별도의 워크플로 중 하나가 “분리(Split Out)”로 종료됩니다. “회사(Company)” 워크플로가 종료되면 “개인(Person)” 워크플로에서 파싱된 결과를 추출합니다.

추출을 위한 지침은 다음과 같습니다. 보시다시피, 기본적으로 더 큰 JSON 본문에서 작은 조각들을 추출하는 작업입니다.

Extraction Process

이제 “회사” 워크플로가 종료되었으며 “개인” 워크플로에는 완료해야 할 몇 가지 단계가 남아 있습니다. “회사” 워크플로는 이 프로세스들이 병합될 준비가 될 때까지 일시 중지된 상태로 유지됩니다. 바로 여기서 n8n의 진정한 장점이 드러납니다… 코딩 없이도 가능한 비동기 프로그래밍!

Split Out and Extract Parsed Results

프로필 1개로 제한하고 존재 여부 검증

“Person” 워크플로는 일치하는 프로필만 사용하도록 결과를 필터링합니다. 그런 다음 프로필을 하나로 제한하고 해당 프로필이 존재하는지 확인합니다. 존재하지 않으면 양식을 업데이트하고 사용자에게 프로필을 찾을 수 없었다고 알리는 방식으로 처리합니다.

Error Handling Message

프로필이 존재하는 한, 이제 단일하고 일관된 워크플로로 병합할 준비가 되었습니다.

Pull Only One Person and Make Sure Their Profile Exists

워크플로 병합

아래에서 볼 수 있듯이, 두 워크플로의 데이터가 입력으로 사용됩니다. 이 데이터는 단일 출력으로 병합되어 ChatGPT에 최종 전달됩니다.

Merging The Inputs

모든 것이 마침내 하나로 통합됩니다. 단일 워크플로우를 확보한 후에는 최종 단계를 실행할 준비가 된 것입니다.

Merging the Two Workflows

아웃리치 및 후속 조치 단계 구성

이제 이 단일 출력을 ChatGPT에 다시 전달하여 이메일을 완성합니다. 심지어 맞춤형 HTML까지 작성해 주므로 마크업 코드에 대해 걱정할 필요조차 없습니다.

Passing The Input To ChatGPT

HTML이 반환되면 결과를 이메일로 발송할 준비가 완료됩니다.

ChatGPT Writes the Email

이메일 발송

“이메일 보내기” 노드를 열어 자격 증명과 연결 세부 정보가 올바른지 확인하세요. 보시다시피, json.message.content.content를 전달하여 이메일을 생성합니다. 이는 문자 그대로 ChatGPT에서 가져온 HTML을 이메일 본문에 직접 붙여넣는 것입니다.

SMTP Connection and Creds

“보낸 사람 이메일”을 사용 중인 SMTP 이메일로 변경하세요. 이메일이 “받는 사람 이메일”로 전송됩니다. 결과를 개인 수신함에서 확인하려면 이 주소를 개인 이메일로 변경하세요.

Sending the Email Workflow Node

완료 상태 표시를 위한 양식 업데이트

마지막으로 사용자에게 작업이 성공했음을 알리는 양식을 업데이트합니다. “Form Email Sent”를 열면 양식 업데이트를 위한 다양한 매개변수를 확인할 수 있습니다. 보시다시피 “완료 타일”에 “감사합니다!”라는 문구와 “이메일을 발송했습니다”라는 메시지를 표시합니다.

User Form Submission

이제 워크플로의 마지막 단계를 완료했습니다! “워크플로 테스트” 버튼을 클릭하여 전체 작동 방식을 확인해 보세요.

Form Email Sent

결과

워크플로우를 실행하기로 결정하면, 먼저 검색 양식을 작성하라는 팝업이 표시됩니다. 양식을 작성하고 “참조 자료 받기”를 클릭하세요.

User Form

프로세스 실행이 완료되면 양식이 아래와 같이 표시됩니다. 보시다시피 “감사합니다!”라는 완료 메시지가 표시됩니다.

수신함을 열어보면, 후보자에 대한 상세 개요와 함께 그들의 웹사이트 및 LinkedIn 프로필 링크가 포함된 새 이메일이 도착해 있을 것입니다. 그 아래에는 ChatGPT가 제안하는 연락 및 후속 조치 권장 사항이 표시됩니다.

Outreach and Follow-Up Recommendations

결론

n8n, Bright Data, OpenAI, SMTP를 활용하여 복잡한 코드 작성 없이 완전히 자동화된 LinkedIn 스크래핑 및 아웃리치 워크플로우를 구축했습니다. 이 강력한 설정은 채용 프로세스를 간소화하여 풍부한 후보자 프로필과 맞춤형 아웃리치를 직접 수신함으로 전달합니다.

채용 파이프라인 확장이나 리드 생성 강화 등 어떤 목표를 추구하든, 이 워크플로는 시작에 불과합니다. Bright Data는 자동화를 한 단계 업그레이드할 수 있는 완벽한 도구 모음을 제공합니다:

  • 웹 언락커: CAPTCHA, 차단, 봇 탐지를 우회하여 LinkedIn 및 기타 사이트를 안정적으로 스크래핑합니다.
  • 레지덴셜 프록시: 전 세계 실제 사용자 IP에 접근하여 높은 성공률과 지리적 타겟팅을 보장합니다.
  • 스크래핑 브라우저: 프록시 지원이 내장된 헤드리스 브라우저로, 자바스크립트 기반 페이지에 이상적입니다.
  • 스크레이퍼 API: 사전 구축된 스크래핑 템플릿을 활용해 구조화된 데이터를 손쉽게 추출하세요.
  • 데이터셋: 구인 목록, 기업 데이터 등 즉시 활용 가능한 데이터셋을 활용하여 아웃리치 효과를 극대화하세요.

무료 체험판에 가입하고 오늘부터 더 스마트한 자동화를 시작하세요!