본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 08. 10:57

Claude AI를 사용하여 리드 스코어링(Lead Scoring) 봇 구축하기 (Python 50줄)

요약

Claude의 tool_use API를 활용하여 CSV 리드 데이터를 분석하고 우선순위를 매기는 Python 자동화 봇 구축 방법을 소개합니다. 구조화된 출력을 강제하는 도구 호출 기능을 통해 별도의 파싱 없이 정확한 스코어링과 개인화된 이메일 초안을 생성합니다.

핵심 포인트

  • Claude의 tool_use API를 통한 구조화된 데이터 출력 강제
  • 50줄의 Python 코드로 리드 스코어링 프로세스 자동화
  • 복잡한 파싱 없이 검증된 스키마 기반의 데이터 획득
  • 리드 점수 산정 및 개인화된 후속 이메일 초안 동시 생성

우선순위에 따라 리드(Leads)를 수동으로 분류하는 작업은 2시간이 걸리는 일입니다. 저는 이를 50줄의 코드로 자동화했습니다.

매주 저는 200개 이상의 리드(회사명, 직함, 이메일 참여 데이터 등)가 담긴 스프레드시트를 뚫어지게 쳐다보며 누구에게 먼저 전화를 걸어야 할지 고민하곤 했습니다. 뜨거운 리드(Hot leads)가 차가운 리드(Cold leads) 아래에 파묻혀 있었습니다. 정렬되지 않은 채 CSV 파일 안에 매출 기회가 잠들어 있었던 것입니다.

그러다 Claude의 tool_use API를 사용하여 50줄짜리 Python 스크립트를 만들었습니다. 이제 이 스크립트는 30초 만에 실행되며, 복사해서 바로 붙여넣을 수 있는 개인화된 후속 이메일 초안과 함께 순위가 매겨진 리스트를 저에게 전달합니다.

정확히 어떻게 작동하는지 소개합니다.

봇이 하는 일

스크립트는 다음과 같은 과정을 거칩니다:

  1. 리드 CSV 파일(이름, 회사, 직함, open_count, click_count, last_activity)을 읽습니다.
  2. 각 리드를 score_lead 도구 정의(tool definition)와 함께 Claude에게 보냅니다.
  3. Claude는 우선순위 점수(1-10)와 그 근거를 포함하여 도구를 호출합니다.
  4. 리드별로 개인화된 후속 이메일이 포함된 순위 리스트를 출력합니다.

외부 스코어링 모델도, 하드코딩된 규칙도 없습니다. Claude가 신호(signals)를 읽고 판단을 내립니다.

전체 스크립트

import csv
import json
import anthropic
...

샘플 leads.csv

name,company,title,open_count,click_count,last_activity
Sarah Chen,Acme Corp,VP of Sales,12,4,2 days ago
Mike Torres,StartupXYZ,Founder,1,0,3 weeks ago
...

Claude의 tool_use가 이를 가능하게 하는 방법

핵심 통찰: Claude의 tool_use는 구조화된 출력(structured output)을 강제합니다.

tool_use가 없다면 Claude에게 JSON을 요청해야 하고, 이 경우 일관성 없는 포맷, 누락된 필드, 또는 파싱 과정에서 번거로운 마크다운(markdown)으로 감싸진 JSON을 받게 될 것입니다. 반면 tool_use를 사용하면 Claude는 검증된 스키마(schema)에 따라 반드시 함수를 호출해야 합니다. 덕분에 매번 깨끗한 Python 딕셔너리(dict)를 얻을 수 있습니다.

score_lead 도구 정의는 하나의 계약(contract) 역할을 합니다. Claude는 참여 신호(engagement signals)를 읽고 반드시 1-10 사이의 점수, 근거, 그리고 이메일 구성 요소를 반환해야 합니다. 별도의 파싱이나 검증이 필요 없습니다. 그저 구조화된 데이터가 나올 뿐입니다.

이는 Claude를 문서 인지 워크플로우(document-aware workflows)에 강력하게 만드는 것과 동일한 패턴입니다. 원하는 출력에 대한 스키마를 정의하고, Claude가 추론(reasoning)을 수행하게 만드는 것입니다.

샘플 출력

위의 CSV 파일을 사용하여 스크립트를 실행하면 다음과 같은 결과가 나옵니다:

==============================
LEAD PRIORITY RANKING — 4 leads scored
==============================
...

직접 실행해보기

pip install anthropic jinja2
export ANTHROPIC_API_KEY=your_key_here
python lead_scorer.py

leads.csv 파일에는 name, company, title, open_count, click_count, last_activity 컬럼이 포함되어 있어야 합니다. 컬럼 이름은 사용 중인 CRM에서 내보내는 형식에 맞춰 수정하세요.

다음에 구축할 것

이 기능을 더 확장할 수 있는 몇 가지 방법입니다:

Anthropic의 Message Batches API를 이용한 배치 처리 (Batch processing) — 1,000개의 리드를 동기식(synchronously)으로 실행하는 대신, 비용을 50% 절감하며 밤새 처리할 수 있습니다.

SendGrid를 통한 자동 발송 — 점수가 8점 이상인 리드를 필터링하여 이메일 초안을 아웃바운드 시퀀스(outbound sequence)로 직접 전달합니다.

Webhook 트리거 — 이 기능을 FastAPI 엔드포인트로 감싸서, 새로운 리드가 CRM에 등록될 때마다 트리거되도록 만듭니다.

핵심 패턴은 확장 가능합니다. Claude는 추론(reasoning)을 담당하고, 여러분의 코드는 배관(plumbing) 작업을 담당합니다.

저의 전체 브라우저 자동화 + API 툴킷(이 스크립트 포함)을 여기에 패키징해 두었습니다: https://payhip.com/b/GuCSa

이것으로 무언가를 만드셨다면 댓글을 남겨주세요. 어떤 유스케이스(use cases)를 발견하셨는지 궁금합니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0