임원 인사 변화 기반 영업 연락 — 새 VP → 개인화된 영업 연락 — Claude Skill
Claude Code용 Claude 스킬 · 제공: Gooseworks · 실행: /leadership-change-outreach (Claude 내)·업데이트: 2026년 6월 13일
타깃 계정의 VP급 이상 임원 인사 변화에 맞춰 실행하는 영업 연락
- Apollo로 최근 VP급 이상 임원 인사 변화를 감지합니다
- 제품과의 관련성을 평가합니다
- '새 역할' 후크를 활용한 개인화 영업 연락을 작성합니다
- 경력 이력과 검증된 이메일을 포함합니다
- 영업 연락 플랫폼과 무관하게 사용할 수 있습니다
대상
기능
타깃 회사가 새 VP를 영입했을 때는 공급업체를 선택하기 전에 제품을 소개할 수 있는 순간입니다.
거래가 멈춘 상태에서 새 VP가 맡게 되면 새로운 기회가 열립니다.
새 리더는 자신의 성과를 보여주려 하므로 도구를 바꿀 가능성이 가장 높습니다.
작동 방식
타깃 회사를 입력으로 받습니다
Apollo로 최근 VP급 이상 인사 변화를 감지합니다
제품과의 관련성을 평가합니다
개인화된 3회 접촉 시퀀스를 작성합니다
영업 연락 도구로 넘깁니다
개선되는 지표
지원 도구
임원 인사 변화 기반 영업 연락을(를) 사용해 보시겠어요?
시작 방법을 선택하세요.
이 스킬을 컴퓨터에 로컬로 설치하고 실행합니다.
컴퓨터에서 터미널을 열고 이 명령을 붙여넣으세요:
이 명령은 스킬과 모든 파일을 컴퓨터에 다운로드합니다:
모든 프로젝트에서 사용하려면 끝에 -g를 추가하세요.
Claude Code를 시작한 다음 명령을 입력하세요:
임원 인사 변화 기반 영업 연락
타깃 회사의 신규 임원 채용을 감지하고, 그 새 리더가 제품과 관련성이 있는지 평가합니다. 직접 구매자, 내부 지지자, 또는 맡은 과제가 제품이 제공하는 가치와 맞는 사람인지 확인합니다. 관련성이 있으면 프로필을 보강하고, 새 역할의 우선순위에 맞춘 개인화 영업 연락을 작성합니다.
임원 인사 변화가 효과적인 이유: 새 리더는 첫 90일 동안 거의 모든 것을 재평가합니다. 본인이 선택하지 않은 공급업체 스택, 직접 구성하지 않은 팀, 빠르게 달성해야 하는 KPI를 물려받습니다. 이들은 조직에서 가장 수용성이 높은 구매자입니다.
- 부서에 자신의 방식을 남기고 싶어합니다
- 변화를 만들 권한과 보통 예산도 있습니다
- 새 조직에서 신뢰를 쌓기 위해 빠른 성과가 필요합니다
- 기존 공급업체에 대한 충성도가 아직 형성되지 않았습니다
자동 로드 시점
다음 경우 이 컴포지트를 로드합니다.
- 사용자가 "check for leadership changes", "new executive hires", "leadership signal outreach"라고 말하는 경우
- 사용자가 회사 목록을 가지고 있고, 관련성 있는 새 리더가 있는 회사를 찾고 싶은 경우
- 상위 워크플로(TAM Pulse, company monitoring)가 임원 인사 변화 확인을 트리거하는 경우
감지 방식: Apollo(무료 검색 + 정보 보강)
이 컴포지트는 느린 웹 검색 방식을 대체하는 2단계 Apollo 파이프라인을 사용합니다.
- Apollo 무료 검색 —
q_organization_domains+person_titles필터로search_people를 실행합니다. 사람 ID, 난독화된 이름, 직함을 반환합니다. credit은 쓰지 않습니다. 약 30초 안에 수십 개 회사에서 100명 이상을 스캔합니다. - 로컬 후처리 필터 — Apollo의 fuzzy matching에서 생기는 잡음(지역 직함, 하위 기능 조직장, 시장 진출과 무관한 역할)을 제거하기 위해 엄격한 직함 매칭을 적용합니다. 보통 결과를 50-60% 줄입니다.
- ID 기반 Apollo 정보 보강 — 무료 검색에서 받은 사람
id로people/match를 호출합니다. 모든 역할의start_date/end_date가 포함된 전체 경력 이력, LinkedIn URL, 검증된 이메일, 전체 이름을 반환합니다. 사람당 1 credit이 듭니다. - 변화 감지 — 정보 보강 결과에서
current: true인 경력 항목의start_date가 lookback window 안에 있는지 필터링합니다.
웹 검색보다 나은 이유: 웹 검색은 보도자료와 발표에 의존하지만, C-suite 아래의 임원 변화 대부분은 공개 발표되지 않습니다. Apollo는 LinkedIn 프로필 데이터에서 직접 가져오므로 웹 검색이 놓치는 변화를 잡습니다. 속도도 웹 검색 5분 이상 대비 전체 약 90초입니다.
비용: 정보 보강한 사람 1명당 Apollo 1 credit입니다. 엄격한 후처리 필터(VP급 이상 시장 진출 직함만)를 쓰면 10-15개 회사 스캔은 보통 30-50 credit이 듭니다.
중요: Apollo는 시작일을 정확한 일자가 아니라 월 단위(예: 2026-02-01)로 추적합니다. lookback window도 이에 맞춰 정확한 일수보다 전체 월 기준으로 설정합니다.
Step 0: 설정(최초 1회)
클라이언트/사용자의 첫 실행에서 아래 선호 설정을 수집해 저장합니다. 이후 실행에서는 건너뜁니다.
리더 관련성 매핑
| 질문 | 목적 | 저장 필드 |
|---|---|---|
| 제품이 무엇을 하나요? (1-2문장) | 리더의 과제와 매칭 | company_description |
| 어떤 리더 직함이 제품의 직접 구매자인가요? | 최우선순위 — 구매 결정을 내릴 수 있음 | buyer_leader_titles |
| 어떤 리더 직함이 제품의 내부 지지자가 될 수 있나요? | 내부에서 옹호하거나 진입점이 될 수 있음 | champion_leader_titles |
| 어떤 리더 직함이 제품이 지원하는 과제를 갖고 있나요? | 목표가 제품 가치와 맞음 | aligned_leader_titles |
| 관련 부서는 무엇인가요? | 무관한 임원 인사 변화 필터링 | relevant_departments |
영업 AI 제품 예시:
buyer_leader_titles: ["VP Sales", "CRO", "Chief Revenue Officer", "SVP Sales"]
champion_leader_titles: ["Director of Sales Ops", "Head of Revenue Operations", "VP Business Development"]
aligned_leader_titles: ["COO", "CEO", "VP Operations"]
relevant_departments: ["Sales", "Revenue", "Operations", "Business Development"]
신호 감지 설정
| 질문 | 옵션 | 저장 필드 |
|---|---|---|
| 얼마나 과거까지 볼까요? | 30 / 60 / 90 days (기본값: 90) | lookback_days |
| 감지할 최소 직급은? | VP+ (기본값) / Head+ / Director+ | min_seniority |
Apollo 직함 목록
무료 검색은 person_titles로 필터링합니다. 클라이언트의 구매자/내부 지지자/관련 과제 직함을 기준으로 정의합니다. 기본 VP급 이상 시장 진출 직함은 다음과 같습니다.
titles = [
# C-Suite
'CRO', 'Chief Revenue Officer',
'CMO', 'Chief Marketing Officer',
'CCO', 'Chief Commercial Officer',
# VP-level (Sales, Marketing, Growth, Revenue, RevOps, Demand Gen, BD, Partnerships, CS, Commercial, GTM)
'VP of Sales', 'VP Sales', 'Vice President of Sales', 'Vice President Sales',
'SVP Sales', 'SVP of Sales',
'VP of Marketing', 'VP Marketing', 'Vice President of Marketing',
'SVP Marketing', 'SVP of Marketing',
'VP of Growth', 'VP Growth', 'Vice President of Growth',
'VP of Revenue', 'VP Revenue', 'Vice President of Revenue',
'VP of Revenue Operations', 'VP RevOps',
'VP of Demand Generation', 'VP Demand Gen',
'VP of Business Development', 'VP Business Development',
'VP of Partnerships', 'VP Partnerships',
'VP of Customer Success', 'VP Customer Success',
'VP of Commercial', 'VP Commercial',
'VP GTM', 'VP of GTM',
# Head-level
'Head of Sales', 'Head of Marketing', 'Head of Growth',
'Head of Revenue', 'Head of Revenue Operations', 'Head of RevOps',
'Head of Demand Generation', 'Head of Demand Gen',
'Head of Business Development', 'Head of Partnerships',
'Head of Customer Success', 'Head of Commercial',
'Head of GTM',
]
중요: Apollo의 person_seniority 필터(예: ['vp', 'c_suite'])는 사용하지 마세요. 너무 넓어서 지역 관리자, 과장된 직함을 가진 개인 기여자 등이 반환됩니다. 대신 명시적인 person_titles와 로컬 후처리 필터를 사용하세요.
후처리 필터 규칙
Apollo는 fuzzy title matching을 하므로 결과에 잡음이 섞입니다. 다음을 수행하는 엄격한 로컬 후처리 필터를 적용합니다.
- 비시장 진출 기능 제외: engineering, talent, legal, privacy, data science, analytics, product marketing, field marketing, partner marketing, customer marketing, content, communications, community, solutions marketing, enablement, marketing operations
- 지역/하위 세그먼트 역할 제외: Area VP, AVP, regional heads, EMEA/APAC/Americas-specific roles, enterprise sales by region (West/East/Central/etc.), channel sales, velocity sales, sales development, sales finance, sales strategy
- Apollo 잡음 제외: "related to search terms"가 포함된 모든 직함
- 유효한 접두어 요구: 직함은 VP/Vice President/SVP/Head of/Chief/CRO/CMO/CCO/President로 시작해야 합니다
보통 결과를 50-60% 줄입니다(예: 원본 100개 → 필터 후 40개).
영업 연락 설정
| 질문 | 옵션 | 저장 필드 |
|---|---|---|
| 영업 연락을 어디로 보낼까요? | Smartlead / Instantly / Outreach.io / CSV export | outreach_tool |
| 이메일만 또는 멀티채널? | Email only / Email + LinkedIn | outreach_channels |
자사 컨텍스트
| 질문 | 목적 | 저장 필드 |
|---|---|---|
| 어떤 문제를 해결하나요? | 이메일 후크 | pain_point |
| 증거 포인트 2-3개를 적어 주세요(고객, 지표, 성과) | 이메일 신뢰도 | proof_points |
| 새 리더가 제품으로 얻을 수 있는 빠른 성과는 무엇인가요? | 첫 90일 관점 | quick_wins |
| 제품이 없을 때의 "이전" 상태는 어떤 모습인가요? | 고통 지점 프레이밍 | before_state |
설정 저장 위치: clients/<client-name>/config/signal-outreach.json 또는 이에 준하는 위치.
Step 1: 임원 인사 변화 감지(Apollo 파이프라인)
목적: 입력 회사 목록의 각 회사에서 VP급 이상 시장 진출 리더를 찾고, 최근 시작한 사람이 누구인지 감지합니다.
입력 계약
companies: [
{
name: string # 필수
domain: string # 필수(q_organization_domains에 사용)
industry?: string # 선택
size?: string # 선택
}
]
titles: string[] # 설정에서 가져옴(기본값은 위 VP급 이상 GTM 목록)
lookback_days: integer # 설정에서 가져옴(기본값: 90)
프로세스
Phase 1: Apollo 무료 검색(약 30초)
다음 필터로 apollo_client.search_people()를 사용합니다.
filters = {
'q_organization_domains': '\n'.join([c['domain'] for c in companies]), # 모든 도메인을 하나의 쿼리로 전달
'person_titles': titles, # 설정에서 가져옴
'per_page': 100,
'page': 1
}
핵심 세부 사항:
q_organization_domains를 사용하세요(organization_domains가 아님). 도메인 필터링에는q_접두어가 필요합니다- 모든 회사 도메인을 하나의 쿼리로 전달할 수 있습니다(줄바꿈으로 구분)
- 무료 티어 반환값:
id,first_name,last_name("?"로 난독화),title,organization.name,last_refreshed_at - 무료 티어는 전체 성, LinkedIn URL, 이메일, 경력 이력을 반환하지 않습니다
total_entries > 100이면page: 2등으로 페이지네이션합니다
Phase 2: 로컬 후처리 필터(거의 즉시)
Step 0의 엄격한 후처리 필터 규칙을 적용해 잡음을 제거합니다. 이는 매우 중요합니다. Apollo의 fuzzy title matching은 지역 관리자, 하위 기능 조직장, 시장 진출과 무관한 역할을 반환할 수 있습니다.
def is_valid_gtm_leader(title):
"""최상위 시장 진출 리더 역할에만 True를 반환합니다."""
tl = title.lower().strip()
# 1. 비시장 진출 기능 제외
reject_keywords = ['engineering', 'engineer', 'talent', 'legal', 'privacy',
'data science', 'analytics', 'product marketing',
'field marketing', 'partner marketing', 'customer marketing',
'content', 'communications', 'community',
'channel sales', 'solutions marketing',
'enablement', 'education', 'operations & marketing',
'marketing operations']
if any(kw in tl for kw in reject_keywords):
return False
# 2. 지역/하위 세그먼트 역할 제외
regional_keywords = ['area vice president', 'avp ', 'regional', 'emea', 'apac',
'apj', 'americas', 'enterprise sales west', 'enterprise sales east',
'enterprise sales central', 'enterprise sales south',
'enterprise sales north', 'enterprise sales -',
'enterprise sales,', 'na enterprise',
'majors sales', 'velocity sales',
'canada', 'latin america', 'u.s.', 'uk&i',
'chief of staff', 'sales finance', 'sales strategy',
'sales development']
if any(kw in tl for kw in regional_keywords):
return False
# 3. Apollo 잡음 제외
if 'related to search terms' in tl:
return False
# 4. 유효한 접두어로 시작해야 함
valid_prefixes = [
'vp ', 'vp,', 'vp/', 'vice president of', 'vice president,',
'svp', 'senior vice president',
'head of sales', 'head of marketing', 'head of growth',
'head of revenue', 'head of demand gen', 'head of business development',
'head of partnerships', 'head of customer success', 'head of commercial',
'head of gtm',
'chief revenue officer', 'chief marketing officer', 'chief commercial officer',
'cro', 'cmo', 'cco',
'president',
]
return any(tl.startswith(p) for p in valid_prefixes)
Phase 3: ID 기반 Apollo 정보 보강(사람당 약 1초)
후처리 필터를 통과한 각 사람에 대해 무료 검색에서 받은 id로 정보를 보강합니다.
# 무료 검색에서 받은 사람 id를 사용하세요. 이것이 전체 이름 없이도
# 정보 보강이 작동하게 하는 핵심입니다(무료 티어는 성을 난독화합니다).
url = "https://api.apollo.io/api/v1/people/match"
payload = {"api_key": api_key, "id": person_id}
정보 보강 반환값(사람당 1 credit):
name— 전체 이름(더 이상 난독화되지 않음)employment_history— 각 역할의start_date,end_date,title,organization_name,current(boolean)이 포함된 전체 경력 배열linkedin_url— 전체 LinkedIn 프로필 URLemail+email_status— 검증된 업무 이메일city,state,country— 위치
중요: first_name + organization_name으로 bulk_enrich_people를 사용하지 마세요. 무료 검색은 성을 난독화하므로 Apollo가 매칭할 수 없습니다. 항상 id로 정보 보강하세요.
Rate limiting: 429를 피하려면 5개 요청마다 짧은 지연(0.5초)을 추가합니다. 제한에 걸리면 Retry-After 헤더를 따릅니다.
Phase 4: 변화 감지
정보 보강된 각 사람에서 current: true인 경력 항목을 추출하고 start_date를 확인합니다.
emp_history = person.get('employment_history', [])
current_role = next((e for e in emp_history if e.get('current')), None)
start_date = current_role.get('start_date', '') if current_role else '' # 예: "2026-02-01"
# lookback window 안에 있는지 확인
# 참고: Apollo는 정확한 일이 아니라 월 단위(YYYY-MM-01)를 사용합니다
변화 유형을 판정합니다.
- new_hire: 이전 역할이 다른 회사였음
- internal_promotion: 이전 역할이 같은 회사였음
출력 계약
leadership_changes: [
{
company: {
name: string
domain: string
}
new_leader: {
full_name: string
new_title: string
start_date: string # ISO 날짜(월 단위: "2026-02-01")
previous_company: string
previous_title: string
change_type: "new_hire" | "internal_promotion"
linkedin_url: string
email: string
email_status: string # "verified", "guessed" 등
city: string
state: string
country: string
}
}
]
출력 파일
두 파일을 저장합니다.
- CSV (
leadership-change-scan.csv) — 정보 보강된 모든 사람을 start_date 내림차순으로 정렬합니다. 열: name, title, company, domain, start_date, change_type, previous_title, previous_company, previous_end_date, email, email_status, linkedin_url, city, state, country - Markdown (
leadership-change-outreach.md) — 신호 요약, 적격 판정, 이메일 초안을 포함한 형식화된 보고서
사람 확인 지점
X개 회사 스캔 → 원본 결과 Y개 → 후처리 필터 후 Z개 → 정보 보강 W개
최근 {lookback_days}일 내 임원 인사 변화:
| 회사 | 새 리더 | 직함 | 시작일 | 이전 역할 | 유형 |
|---------|-----------|-------|---------|---------------|------|
| Acme Corp | Jane Smith | VP Sales | 2026-02-01 | Dir. Sales @ Competitor Inc | new_hire |
| Beta Inc | Tom Brown | CRO | 2026-01-01 | VP Revenue @ Beta Inc | internal_promotion |
사용한 credit: W
관련성 평가를 진행할까요? (Y/n)
Step 2: 관련성 평가 및 우선순위 지정
목적: 각 임원 인사 변화에 대해 새 리더가 제품과 관련성이 있는지 평가하고, 가장 좋은 영업 연락 접근법을 결정합니다. 순수 LLM 추론이므로 본질적으로 도구에 종속되지 않습니다.
입력 계약
leadership_changes: [...] # Step 1 출력에서 가져옴
your_company: {
description: string
pain_point: string
proof_points: string[]
quick_wins: string[]
before_state: string
}
buyer_leader_titles: string[]
champion_leader_titles: string[]
aligned_leader_titles: string[]
프로세스
각 임원 인사 변화를 세 가지 차원에서 평가합니다.
A) 역할 관련성
| 범주 | 매칭 기준 | 우선순위 |
|---|---|---|
| 직접 구매자 | 직함이 buyer_leader_titles와 일치 | 최고 — 구매 결정을 내릴 수 있음 |
| 내부 지지자 | 직함이 champion_leader_titles와 일치 | 높음 — 옹호하고 구매자에게 영향력을 행사할 수 있음 |
| 관련 과제 | 직함이 aligned_leader_titles와 일치 | 중간 — 목표가 제품에서 이익을 얻음 |
| 관련성 없음 | 어떤 목록과도 일치하지 않음 | 제외 |
B) 타이밍 창
| 역할 시작 후 일수 | 창 | 영업 연락 톤 |
|---|---|---|
| 0-30일 | 허니문 | "합류를 환영합니다 — 빠르게 적응하고 성과를 내는 데 도움이 될 자료입니다" |
| 31-60일 | 평가 | "한 달 동안 스택을 평가해 보셨을 텐데, 동료들은 이렇게 하고 있습니다" |
| 61-90일 | 실행 | "로드맵을 마무리하고 계실 가능성이 높습니다 — 고려할 만한 빠른 성과입니다" |
| 90일 이상 | 안착 | 신호는 약하지만 여전히 유효 — "[company]에 최근 합류하신 것을 봤습니다" |
C) 배경 신호
새 리더의 이전 회사와 역할은 컨텍스트를 더합니다.
| 배경 | 신호 | 활용 방법 |
|---|---|---|
| 자사 고객사에서 옴 | 가장 강한 신호 — 이미 제품을 알고 있음 | "[previous company]에서 [product]를 쓰셨습니다 — [new company]에도 도입해 보시겠습니까?" |
| 경쟁사 고객에서 옴 | 카테고리 경험이 있음 | "[previous company]에서 [competitor]를 쓰셨습니다 — [product]는 이렇게 다릅니다" |
| 같은 산업에서 옴 | 고통 지점을 이해함 | 그들이 봤을 산업별 문제를 언급 |
| 다른 산업에서 옴 | 신선한 관점이 있고 새 접근법에 열려 있을 수 있음 | "[old industry]의 플레이북이 항상 [new industry]에 맞지는 않습니다 — 여기서는 이런 방식이 효과적입니다" |
| 내부 승진 | 기존 스택과 그 한계를 알고 있음 | "이제 예산을 맡게 되셨으니, 팀이 요청해 온 것을 해결할 수 있습니다" |
점수화
- Tier 1 (오늘 실행): 직접 구매자 + 역할 시작 30일 미만 + 외부 영입. 새로운 시각, 예산 권한, 전면 재평가.
- Tier 2 (이번 주 실행): 직접 구매자 30-60일차, 또는 내부 지지자 30일 미만, 또는 고객/경쟁사 고객 출신.
- Tier 3 (대기열): 관련 과제, 또는 역할 시작 60-90일, 또는 내부 지지자 직함의 내부 승진.
- 제외: 역할 관련성 없음, 또는 역할 시작 90일 초과이고 적합도가 약함.
각 적격 리더에 대해 다음을 생성합니다.
- 관련성 근거: 왜 이 리더가 지금 제품에 관심을 가질지
- 영업 연락 각도: 역할 + 타이밍 + 배경을 바탕으로 한 구체적 후크
- 핵심 인사이트: 영업 연락을 개인적으로 만드는 상황 정보 하나
출력 계약
qualified_leaders: [
{
...leadership_change_fields,
role_relevance: "direct_buyer" | "champion" | "aligned_mandate"
timing_window: "honeymoon" | "assessment" | "action" | "established"
background_signal: string # 예: "경쟁사 고객사에서 옴"
priority_tier: "tier_1" | "tier_2" | "tier_3"
relevance_reasoning: string
outreach_angle: string
key_insight: string
}
]
dropped_leaders: [
{ name: string, company: string, drop_reason: string }
]
사람 확인 지점
## 관련성 평가
### Tier 1 — 오늘 실행(X명)
| 리더 | 회사 | 직함 | 역할 시작 후 일수 | 유형 | 각도 |
|--------|---------|-------|---------|------|-------|
| Jane Smith | Acme | VP Sales | 32 | 직접 구매자, 평가 창 | "Acme의 영업 스택을 평가해 보셨을 지금..." |
### Tier 2 — 이번 주 실행(X명)
| ... |
### Tier 3 — 대기열(X명)
| ... |
### 제외(X명)
| 리더 | 회사 | 이유 |
|--------|---------|--------|
| ... | ... | ... |
영업 연락 초안 작성 전에 승인하시겠습니까?
Step 3: 리더 프로필 보강
목적: 각 적격 리더에 대해 개인화에 쓸 추가 컨텍스트를 수집합니다. Step 1의 Apollo 정보 보강은 이미 이메일, LinkedIn URL, 전체 경력 이력을 제공합니다. 이 단계는 Apollo가 제공하지 않는 컨텍스트를 더합니다.
입력 계약
qualified_leaders: [...] # Step 2 출력에서 가져옴(이미 Apollo의 email, linkedin, emp history 포함)
프로세스
Step 1의 Apollo 정보 보강은 이미 다음을 제공합니다.
- 전체 이름, 검증된 이메일, LinkedIn URL
- 전체 경력 이력(시작/종료일이 있는 모든 이전 역할)
- 위치(도시, 주, 국가)
각 적격 리더에 대해 Apollo가 제공하지 않는 컨텍스트를 추가합니다.
-
LinkedIn 활동(선택이지만 가치가 큼 — 가능하면
linkedin-profile-post-scraper사용):- 최근 게시물 또는 공유 — 무엇을 이야기하고 있는가?
- 새 역할 시작 관련 게시물 — 우선순위에 대해 무엇을 말했는가?
-
이전 회사 컨텍스트(경력 이력에서 도출):
- 이전 회사는 무엇을 하는가?
- 그곳에서 자사 제품 또는 경쟁사 제품을 썼는가?
- 재직 기간은 얼마였는가? (긴 재직 = 깊은 전문성. 짧은 재직 = 커리어 이동이 잦을 수 있음.)
-
새 회사 컨텍스트:
- 새 회사는 무엇을 하는가?
- 임원 인사 변화 외에 최근 회사 뉴스가 있는가?
출력 계약
enriched_leaders: [
{
...qualified_leader_fields,
email: string | null # 이미 Apollo에서 가져옴
linkedin_url: string # 이미 Apollo에서 가져옴
linkedin_activity: {
recent_posts: string[] # 가장 관련성 높은 게시물 요약 2-3개
new_role_post: string | null # 이 역할을 시작하며 말한 내용
} | null
previous_company_context: string # 이전 회사에 대한 1-2문장
new_company_context: string # 이 회사가 무엇을 하는지에 대한 1-2문장
personalization_hooks: string[] # 이메일에서 언급할 3-5가지
}
]
사람 확인 지점
## 보강된 리더 프로필
### Jane Smith — VP Sales @ Acme Corp (Tier 1)
- 이메일: [email protected] (verified)
- LinkedIn: linkedin.com/in/janesmith
- 이전: Director of Sales @ Competitor Inc (3년)
- 새 역할 게시물: "Excited to join Acme Corp as VP Sales..."
- 개인화 후크:
1. 2주 전 "scaling outbound without scaling headcount"에 대해 게시함
2. 이전 회사가 [competitor product]를 사용함
3. Acme가 최근 Series B($40M)를 유치함
### Tom Brown — CRO @ Beta Inc (Tier 2)
| ... |
영업 연락 초안 작성 전에 승인하시겠습니까?
Step 4: 개인화 영업 연락 작성
목적: 각 새 리더에게 그들의 상황(새 역할, 새 우선순위, 촉박한 일정)을 이해하고 있음을 보여주는 영업 연락을 작성합니다. 순수 LLM 추론이므로 본질적으로 도구에 종속되지 않습니다.
입력 계약
enriched_leaders: [...] # Step 3 출력에서 가져옴
your_company: {
description: string
pain_point: string
proof_points: string[]
quick_wins: string[]
before_state: string
}
sequence_config: {
touches: integer # 기본값: 3
timing: integer[] # 기본값: [1, 5, 12]
tone: string # 기본값: "professional-sharp" (임원은 이 톤을 기대함)
cta: string # 기본값: "15-min intro call"
}
프로세스
-
역할 관련성에 따라 프레임워크 선택:
- 직접 구매자 → Signal-Proof-Ask (역할 변화를 언급하고, 증거를 보여주고, 시간을 요청)
- 내부 지지자 → BAB (before: 물려받은 현재 상태 / after: 제품이 있을 때의 모습 / bridge: 30일 안의 빠른 성과)
- 관련 과제 → PAS (problem: 그들의 과제가 의미하는 문제 / agitate: 현재 도구가 부족한 이유 / solve: 자사 제품)
-
보강된 프로필에서 개인화 구성:
개인화 요소 출처 예시 역할 변화 언급 Step 1 "Acme의 VP Sales 역할을 맡으신 것을 축하드립니다" 타이밍 인식 프레이밍 Step 2 timing_window "이제 한 달 정도 스택을 평가해 보셨을 텐데..." 배경 연결 Step 2 background_signal "Competitor Inc에서 [similar tool]을 쓰셨다면..." LinkedIn 활동 언급 Step 3 linkedin_activity "outbound 확장에 대한 게시물이 인상적이었습니다..." 회사 컨텍스트 Step 3 new_company_context "Acme의 Series B와 성장 계획을 고려하면..." 빠른 성과 제안 Config quick_wins "대부분의 VP는 우리와 함께 첫 30일 안에 [result]를 봅니다" -
타이밍 창별 이메일 각도 조정:
창 Touch 1 접근법 제목 패턴 허니문 (0-30d) 환영 + 빠른 성과 제안. 가벼운 접촉 — 아직 온보딩 중입니다. "{company}에서의 첫 90일을 위한 빠른 성과" 평가 (31-60d) 이미 평가 중임을 인정. 동료 비교 제안. "다른 {title}들이 다르게 하는 것" 실행 (61-90d) 지금 결정을 내리고 있습니다. 가치를 직접적으로 제시합니다. "{company}의 {goal}을 위한 {Product}" -
email-drafting스킬 규칙을 따르기:- Touch 1: 50-90단어. 역할 변화 + 개인화 후크 하나 + 부드러운 CTA를 언급합니다.
- Touch 2: 30-50단어. 새로운 증거 포인트 또는 빠른 성과 제안.
- Touch 3: 20-40단어. 동료 사회적 증거 또는 정중한 마무리.
- 톤: 기본적으로 professional-sharp. 임원은 수다스러움보다 간결함과 구체성에 반응합니다.
출력 계약
email_sequences: [
{
leader: { full_name, email, title, company_name, role_relevance, timing_window }
sequence: [
{
touch_number: integer
send_day: integer
subject: string
body: string
framework: string
personalization_elements: {
role_change: string # 역할 변화를 어떻게 언급했는지
timing: string # 타이밍 창을 어떻게 사용했는지
background: string # 배경을 어떻게 활용했는지
company_context: string # 회사 컨텍스트를 어떻게 사용했는지
linkedin_reference: string | null # 언급한 LinkedIn 활동
}
word_count: integer
}
]
}
]
사람 확인 지점
서로 다른 타이밍 창과 역할 유형을 대표하는 샘플을 제시합니다.
## 검토용 영업 연락 샘플
### Jane Smith, VP Sales @ Acme Corp
Tier 1 | 직접 구매자 | 평가 창(32일) | 이전 Competitor Inc
**Touch 1 — Day 1**
Subject: 새 VP Sales들이 가장 먼저 바꾸는 것
> 안녕하세요 Jane — Acme로 옮기신 것을 축하드립니다. 한 달쯤 지나셨으니
> 영업 스택에서 무엇이 작동하고 무엇이 아닌지 이미 파악하셨을 것 같습니다.
>
> [Product]는 비슷한 전환기에 [peer company]가 도입한 제품이고,
> 30일 안에 [specific result]를 냈습니다. 인력을 늘리지 않고
> outbound를 확장하는 것에 대한 게시물은 저희가 해결하는 문제와 정확히 맞닿아 있습니다.
>
> 15분 소개 통화가 의미 있을까요?
**Touch 2 — Day 5**
Subject: [previous company]의 플레이북 → Acme
> [그들의 배경을 언급하는 전체 이메일]
**Touch 3 — Day 12**
Subject: 마지막으로 한 가지 생각
> [마무리 이메일]
---
이 샘플을 승인하시겠습니까? 같은 스타일로 나머지를 생성하겠습니다.
Step 5: 영업 연락으로 인계
funding-signal-outreach의 Step 5와 동일합니다. 설정된 영업 연락 도구용으로 연락처와 이메일 시퀀스를 패키징합니다.
출력 계약
campaign_package: {
tool: string
file_path: string
contact_count: integer
sequence_touches: integer
estimated_send_days: integer
next_action: string
}
사람 확인 지점
## 캠페인 준비 완료
도구: [configured tool]
신호 유형: 임원 인사 변화
연락처: Y개 회사의 새 리더 X명
시퀀스: 12일 동안 3회 접촉
시작할까요?
실행 요약
| 단계 | 도구 의존성 | 사람 확인 지점 | 일반 소요 시간 |
|---|---|---|---|
| 0. 설정 | 없음 | 최초 실행만 | 5분(1회) |
| 1. 감지 | Apollo Free Search + Enrichment by ID | 임원 인사 변화 + 사용 credit 검토 | 약 90초(기계) |
| 2. 평가 | 없음(LLM 추론) | 관련성 + tier 순위 승인 | 2-3분 |
| 3. 보강 | LinkedIn post scraper(선택) | 보강된 프로필 검토 | 1-2분 |
| 4. 작성 | 없음(LLM 추론) | 샘플 검토, 반복 수정 | 5-10분 |
| 5. 인계 | 설정 가능(Smartlead, CSV 등) | 최종 시작 승인 | 1분 |
총 기계 시간: 약 90초 (Step 1이 대부분 — 무료 검색 약 30초 + 약 40명 정보 보강 약 60초) 총 사람 검토 시간: 약 15-20분 일반 Apollo credit 비용: 30-50 credit (후처리 필터 이후 정보 보강한 사람당 1 credit)
다른 신호 컴포지트와의 핵심 차이
자금 조달 및 채용 컴포지트에서는 신호가 회사에 관한 것이며, 이후 연락할 사람을 찾습니다. 임원 인사 변화에서는 신호 자체가 사람입니다. 새 리더가 신호이자 주 연락 대상입니다. 그래서 흐름이 달라집니다.
- 자금 조달/채용: 신호 감지 → 회사 적격 판정 → 사람 찾기 → 이메일 작성
- 임원 인사 변화: 신호 감지(사람) → 관련성 평가(사람-제품 적합도) → 사람 보강 → 이메일 작성
Step 3은 이미 연락할 사람이 정해져 있기 때문에 "사람 찾기"가 아니라 "보강"입니다. 보강의 목적은 깊이 개인화된 이메일을 쓰기에 충분한 컨텍스트를 모으는 것입니다.
팁
- 외부 영입은 내부 승진보다 강한 신호입니다. 외부 영입은 기존 도구에 대한 충성도가 없기 때문에 공급업체 스택을 재평가할 가능성이 더 높습니다.
- 30-60일 창이 가장 좋습니다. 너무 이르면(첫 주) 아직 온보딩 중입니다. 너무 늦으면(90일 이상) 이미 결정을 내렸을 가능성이 큽니다.
- 그들이 LinkedIn에 "새 역할" 게시물을 올렸다면 언급하세요. 숙제를 했다는 신호가 되고, 종종 그들의 명시된 우선순위를 보여줍니다.
- 전임자는 언급하지 마세요. "John을 대체하셨네요"라는 말은 어색할 수 있습니다. 역할과 회사만 언급하세요.
- 큰 전환보다 빠른 성과가 더 잘 먹힙니다. 새 리더는 초기 신뢰가 필요합니다. 제품을 "6개월 구현"이 아니라 "첫 분기의 성과"로 포지셔닝하세요.
- 자사 고객사에서 온 사람이라면 가장 강한 후크입니다. 이 점을 앞세우세요. "[old company]에서 [product]를 쓰셨습니다 — [new company]에도 가져가 보시겠습니까?"
Apollo 관련 팁
- 도메인 필터링에는 항상
q_organization_domains(q_접두어 포함)를 사용하세요. 접두어가 없는organization_domains는 엉뚱한 회사를 반환합니다. person_seniority필터는 절대 사용하지 마세요(예:['vp', 'c_suite']). Apollo는 너무 많은 직함을 이 레벨로 매핑하므로 AE, 채용 담당자, 개인 기여자가 나옵니다. 대신 명시적인person_titles+ 로컬 후처리 필터를 사용하세요.- 이름이 아니라
id로 정보 보강하세요. 무료 검색은 성을 난독화합니다. 무료 검색의id필드가 전체 이름 없이 정보 보강으로 연결하는 유일하게 신뢰할 수 있는 방법입니다. - 여기서는
bulk_enrich_people가 작동하지 않습니다. 매칭에는 first_name + last_name + organization_name이 필요하지만, 무료 검색은 성을 숨깁니다. 대신{"id": person_id}로 개별people/match호출을 사용하세요. - Apollo 시작일은 월 단위입니다(예:
2026-02-14가 아니라2026-02-01). lookback window를 설정할 때 전체 월로 반올림하세요. "최근 15일" 스캔은 현재 월과 이전 월을 확인해야 합니다. - credit은 성공한 정보 보강 매칭에만 사용됩니다. Apollo가 사람을 매칭하지 못해
None을 반환하면 credit이 차감되지 않습니다. - Rate limit 처리: 5번의 정보 보강 호출마다 0.5초 지연을 추가하세요. 429가 나오면
Retry-After헤더를 따르세요(보통 60초).