Claude Code를 활용해 혼자서 운영하는 GTM 팀 구축 방법

@nifinet
영어4주 전 · 2026년 6월 18일
137K
938
64
83
3.3K

TL;DR

이 가이드는 Claude Code 에이전트를 활용하여 잠재 고객 발굴, 조사, 후속 조치를 자동화하고, 일일 스탠드업 리포트를 통해 한 사람이 전체 파이프라인을 관리할 수 있는 완전 자동화된 GTM 운영 체계 구축 방법을 상세히 설명합니다.

GTM 팀은 마치 발송 작업처럼 보입니다. 하지만 실제 핵심 업무는 판단에 있습니다. 이번 주에 메시지를 보낼 가치가 있는 회사는 어디인지, 당신이 그 회사를 주목했다는 것을 증명하기 위해 무엇을 말할지, 나타나지 않은 잠재 고객 중 누구를 다시 추적할지, 실제로 파이프라인을 움직인 것은 무엇인지.

발송은 항상 쉬운 부분이었습니다. 판단이 바로 예전에는 팀이 필요했던 부분이고, 지금은 한 명의 사람과 Claude Code가 처음부터 끝까지 처리할 수 있는 부분입니다.

그러니 인원 수로 생각하는 것을 멈추고, 업무 단위로 생각하기 시작하세요.

GTM 팀은 업무들의 목록이며, 대부분은 같은 형태를 띱니다: 데이터 더미를 읽고, 판단을 내리고, 무언가를 작성하고, 후속 조치를 하고, 무슨 일이 일어났는지 기억하는 것.

각 업무를 에이전트에 연결하고, 하나의 공유 메모리를 제공하고, 일정에 배치하세요. 사람은 UX를, 소프트웨어는 API를, 에이전트는 명령줄을 가지므로, 전체 팀은 아침 8시의 단 하나의 cron 라인에서 실행됩니다. 매일 아침 보고를 하고, 당신의 업무는 운영 대신 편집으로 바뀝니다.

아래는 각 자리별 구축 방법과 각각에 대해 Claude Code에 붙여넣는 프롬프트입니다.

Nicolas Finet - inline image

명단: 다섯 자리

메시지를 보낼 가치가 있는 사람을 결정하세요

아웃바운드의 어려운 부분은 결코 발송이 아니었습니다. 그 앞에 있는 판단이었습니다. 시장에 있는 모든 회사 중에서 이번 주에 연락할 가치가 있는 회사는 어디이며, 당신이 그 회사를 주목했다는 것을 증명하기 위해 무엇을 말할 것인가.

그 판단이 첫 번째 자리입니다.

네 가지 종류의 움직임을 감시하는데, 10년 간의 마켓플레이스 데이터가 계속해서 목록을 좁혀온 네 가지입니다:

  • 역할이 열리거나, 다시 게시됩니다.
  • 회사가 경쟁사와 계약을 체결하거나, 당신이 해결하는 문제에 대해 게시합니다.
  • 회사가 스택을 출시, 확장 또는 변경합니다.
  • 자금이 라운드 또는 인수를 통해 움직입니다.

각 움직임을 실제로 적합한 회사와 해당 계정에 대해 이미 알고 있는 모든 정보에 대해 평가한 다음, 트리거 자체에서 초안을 작성합니다.

절대 어기지 않는 규칙은 움직인 것을 인용하는 것입니다. "Head of RevOps 역할을 다시 게시하신 것을 보았습니다, 이번 분기 두 번째 운영 채용이네요." 절대 "안녕하세요 {{firstName}}."이 아닙니다. 메시지가 지난 달에 변경 없이 발송될 수 있었다면, 트리거가 건너뛰어진 것이고 계정은 기다립니다.

text
1Write team/prospector.py: run(memory, source, delivery, icp, sequences, weights, offline, dry_run).
2새로운 신호를 감지하여 네 개의 버킷(채용, 소셜, 회사, 자금)으로 분류하고 공유 메모리에 기록합니다.
3계정별로 클러스터링합니다. 각 계정에 대해 ICP 및 전체 기록과 prompts/judge.md(Claude, temperature 0)를 사용하여 판단하고, 약하거나 ICP에 맞지 않는 신호는 건너뛰는 가중 버킷 휴리스틱으로 폴백합니다. 기준을 통과한 계정에 대해서는 가장 강력한 트리거에서 prompts/draft.md로 초안을 작성하고, 초안을 전달(dry-run 기본값)에 넘기고 터치를 기록합니다. 순위가 매겨진 스탠드업 라인을 반환합니다.

모든 통화 전에 브리핑을 준비하세요

첫 통화 전에, 누군가는 보통 20분을 들여 한 페이지짜리 브리핑을 작성했습니다: 이 회사가 무엇인지, 무엇이 움직였는지, 이미 무엇을 보냈는지, 마지막 스레드가 어디에서 식었는지.

그 작업을 두 번째 에이전트에 넘기세요.

프로스펙터가 기록하는 동일한 메모리를 사용하여 예약된 모든 통화에 대한 브리핑을 작성합니다. 통화가 시작될 때쯤이면 페이지는 이미 준비되어 있으며, 그들을 데려온 트리거, 기록, 그리고 시작할 가치가 있는 한 가지가 포함되어 있습니다.

아무도 오전 9시 통화를 위해 오후 11시에 준비하지 않으며, 아무도 정보 없이 통화에 들어가지 않습니다.

text
1Write team/researcher.py: run(memory, calendar, icp, offline).
2오늘 일정에 있는 각 통화에 대해, 공유 메모리에서 계정의 전체 기록을 가져와 prompts/brief.md로 한 페이지 분량의 브리핑을 작성합니다: 무엇이 움직였는지, 이미 무엇을 보냈고 어떻게 반응했는지, 그리고 통화를 시작하기 위한 가장 좋은 한 가지. 모든 줄은 기록에 근거해야 하며, 절대 지어내지 마십시오. API 키가 없을 때는 최신 신호로 만든 일반 템플릿으로 폴백합니다. 통화당 하나의 스탠드업 라인을 반환합니다.

시퀀스가 추적을 하게 하세요

신호는 출발선입니다. 시퀀스는 전환을 만들어내는 부분이며, 사람들이 가장 잘하지 못하는 부분입니다. 후속 조치는 인간이 후속 조치할 것을 기억하는 것에 달려 있기 때문입니다. 우리는 잊어버리고, 망설이고, 한 번 하고는 멈춥니다.

따라서 발송과 추적은 Overloop AI에서 시퀀스로 실행되며, 에이전트가 넘겨주면 자체적으로 실행됩니다. 에이전트가 대상을 결정하고 첫 번째 터치를 작성합니다. Overloop은 이메일과 LinkedIn을 통해 일정에 따라 나머지를 처리하므로, 케이던스는 누군가의 기억에 의존하지 않습니다.

text
1Write team/sequencer.py: run(memory, delivery, sequences, offline, dry_run, min_age_days, max_age_days).
2공유 메모리에서 마지막 터치가 며칠 전이고 답장이나 약속된 회의가 없는 계정을 찾습니다. 진정으로 새로운 관점을 추가하는 가벼운 후속 메시지를 작성하여 follow_up 시퀀스로 보내고 터치를 기록합니다. 최소 기간을 존중하여 최근 터치는 건드리지 않습니다. 계정당 하나의 스탠드업 라인을 반환합니다.

노쇼를 다시 잡아라

노쇼는 일정 충돌이 발생한 자격을 갖춘 리드입니다. 그들이 파이프라인에서 새는 이유는 하나입니다: 수동 복구가 절대 일어나지 않기 때문입니다.

따라서 동일한 엔진이 모든 노쇼에 대해 복구 시퀀스를 실행합니다. 일주일에 걸쳐 네 번의 터치, 두 개의 채널, 그중 어디에도 비난은 없습니다:

  • 노쇼 발생 1시간 후: 두 번 클릭으로 다시 예약할 수 있는 링크.
  • 다음 날: LinkedIn에서 동일한 제안.
  • 3일째: 그들의 업계와 관련된 유용한 내용 하나, 요청 없음.
  • 7일째: 간단한 마지막 연락.

후속 조치에서 감정을 제거하고, 예전에 그냥 사라지던 노쇼의 약 3분의 1을 다시 데려옵니다. 아무도 하나를 보내기 위해 기억할 필요가 없습니다.

text
1Write team/recoverer.py: run(memory, calendar, delivery, sequences, offline, dry_run).
2캘린더에서 최근 각 노쇼에 대해 config/sequences.yaml에 정의된 no_show_recovery 시퀀스에 등록하고(일주일에 네 번 터치, 두 채널, 각 단계에 비난 없음), 터치를 기록하고 스탠드업 라인을 반환합니다. 케이던스는 코드가 아닌 config에 있습니다.

주간 보고서가 스스로 조정되게 하세요

매주 금요일마다 누군가는 회고를 작성했습니다: 무엇이 발송되었는지, 무엇이 예약되었는지, 무엇이 막혔는지, 파이프라인이 어디에 있는지. 마지막 에이전트는 요청 없이 매주 동일한 메모리에서 그것을 작성합니다.

그런 다음 인간 보고서가 절대 하지 않는 일을 합니다.

자신의 플레이를 평가합니다: 계속해서 회의를 예약하는 신호는 더 많은 가중치를 받고, 계속 실패하는 카피는 삭제됩니다. 다음 달의 숏리스트는 1월에 중요하다고 추측한 것이 아니라 시장이 실제로 반응한 것에 따라 정렬됩니다. 보고서는 지난 주의 기록이 아니라 다음 주를 조정하는 도구가 됩니다.

text
1Write team/reporter.py: run(memory, weights, days, offline).
2공유 메모리에서 이번 주 통계를 읽습니다. 회의 수로 시작합니다. 네 가지 신호 버킷의 가중치를 승률에 따라 재조정하고, 답장보다 회의를 더 높게 평가하며, 어떤 버킷도 0으로 떨어지지 않도록 최소값을 설정합니다. 다음 실행을 위한 스탠드업 라인과 새 가중치를 반환합니다. 키가 설정되면 prompts/report.md가 산문 버전을 작성합니다.

매일 아침 실행되는 두 개의 프롬프트

위의 모든 빌드 프롬프트는 한 번 실행됩니다. 이 두 개는 매일 모든 계정에 대해 실행되므로 유지하고 조정해야 하는 프롬프트입니다. 판단과 목소리는 코드에 묻히지 않고 일반 파일에 있습니다.

프로스펙터는 이것으로 판단합니다:

text
1역할: 당신은 프로스펙터의 판단 레이어입니다. 하나의 계정에 대해 구매 신호가 지금 실행할 가치가 있는지, 그리고 어떻게 실행할지 결정합니다.
2입력: { icp, new_signals: [{bucket, summary}], history, days_since_last_touch }
3점수: 80-100 강력한 ICP 적합성 및 높은 의도의 신호(자금 조달 또는 두 개의 클러스터된 신호); 50-79 좋은 적합성, 하나의 확실한 신호; 20-49 약한 적합성 또는 단일 낮은 의도의 신호; 0-19 ICP 부적합 또는 노이즈
4규칙: 마지막 터치 이후 7일 미만이면 육성 또는 건너뛰기를 선호하고, 절대 first_touch를 하지 마십시오. 신호가 약하거나 ICP에 맞지 않으면 낮은 점수를 주고 건너뜁니다. '아니오'라고 말하는 것도 업무의 일부입니다. why_now는 실제 트리거를 인용해야 하며, 담당자가 구매자에게 말할 수 있는 말로 작성합니다.
5출력(JSON만): { "score": 0-100, "why_now": "...", "play": "first_touch|follow_up|nurture|skip", "rationale": "..." }

그리고 이것으로 작성합니다:

text
1역할: 당신은 오프닝 메시지를 작성합니다. 신호는 당신이 연락하는 이유이며, 메시지는 당신이 그것을 알아차렸다는 것을 증명해야 합니다.
2입력: { trigger, bucket, why_now, play, guardrails: {goal, must, never} }
3규칙: 첫 문장은 트리거로 시작하고, 절대 "안녕하세요 {{firstName}}"로 시작하지 마십시오. 트리거를 당신이 해결하는 하나의 문제와 한 문장으로 연결하십시오. 부담 없는 하나의 요청으로 마무리하십시오. 평범한 문장, 혼합된 길이, 가짜 긴박감 없음, 줄표 없음, 유행어 없음. 메시지가 지난 달에 변경 없이 발송될 수 있었다면 트리거를 건너뛴 것입니다. 다시 시작하십시오.
4출력(JSON만): { "subject": "6-9 단어", "body": "3-5 문장" }

다섯 개의 에이전트를 하나의 팀으로 만드는 것

Nicolas Finet - inline image

다섯 개의 에이전트, 하나의 공유 메모리

각자 자신의 메모를 유지하는 다섯 개의 스크립트는 팀이 아닙니다. 그것들을 팀으로 바꾸는 것은 하나의 공유 메모리입니다: 모든 자리가 읽고 쓰는 계정당 하나의 레코드.

프로스펙터가 월요일에 터치를 기록합니다. 시퀀서가 목요일에 그것을 읽고 답장이 없음을 확인하고 다음 단계를 보냅니다. 리포터가 금요일에 그것을 집계하고 버킷의 가중치를 재조정합니다. 동일한 레코드, 하나의 진실 공급원. 그 저장소를 먼저 구축하고, 메서드 이름을 안정적으로 유지하면, 모든 자리가 추측 대신 그것에 의존합니다.

한 사람이 운영하는 방법

Nicolas Finet - inline image

아침 스탠드업

당신은 이것을 운영하지 않습니다. 당신은 편집합니다. 이는 더 작고 완전히 다른 일입니다.

팀은 당신이 깨어나기 전에 cron에서 실행됩니다. 당신이 자리에 앉을 때쯤이면 스탠드업이 Slack에서 기다리고 있습니다: 오늘 연락할 사람과 그 이유, 일정에 있는 모든 통화에 대한 브리핑, 추적 중인 노쇼, 실제로 예약된 내용에 따라 가중치가 재조정된 지난 주의 숫자. 2분: 승인, 편집, 또는 취소.

만들 목록도, 추측할 제목 줄도, 누구에게 전화할지에 대한 월요일 회의도 없습니다. 전체 팀은 토큰에 대해 한 달에 약 $400, 부서의 전체 운영 비용으로 실행됩니다. 남은 것은 편집적인 부분입니다: 팀이 당신 앞에 가져온 것에 대해 안목을 갖고, 대부분에 '아니오'라고 말하는 것.

인간이 여전히 승리하는 곳

Nicolas Finet - inline image

인간이 남아 있는 곳

이것이 GTM(Go-To-Market) 전체를 운영하는 것은 아닙니다. 건너뛰는 부분이 가장 중요한 부분입니다. 에이전트는 연락할 대상을 결정하고 첫 줄을 작성합니다. 그들은 계약을 성사시키지 않으며, 예산이 마침내 확정된 1년 후에 구매자가 당신을 선택하게 만드는 관계를 구축하지 않습니다.

답장에 진짜 질문, 망설임, 조용한 "이것이 우리에게 맞는지 확신이 서지 않습니다"가 올 때, 그것은 인간의 대화이며, 그대로 두어야 합니다. 시스템은 당신을 회의실로 데려가는 데 매우 능숙합니다. 일단 당신이 그 안에 들어가면 할 말이 없습니다.

따라서 당신이 고된 작업에 썼을 사람들은 항상 더 가치가 있었던 곳으로 갑니다: 통화, 신뢰, 계약 성사. 팀은 누가 통화를 받을 자격이 있는지 결정하는 데 사라지던 시간을 되찾아주고, 그 시간을 거래를 결정짓는 대화에 사용합니다.

팀을 가져가세요

전체를 복제하고 실행할 수 있는 저장소로 패키징했습니다: 다섯 자리, 그들이 실행되는 공유 메모리, 판단과 목소리를 담은 프롬프트, 그리고 그것들을 하나로 묶는 스탠드업.

text
1gtm-team/
2 team/ prospector · researcher · sequencer · recoverer · reporter
3 core/ memory · models · adapters · llm
4 prompts/ judge · draft · brief · report
5 config/ icp · sequences · signals · team
6 run.py the morning standup

Sortlist에서 운영하는 내부 스택이 아니라 작동하는 빌드입니다. 프로스펙터 자리는 지난번 드롭의 gtm-brain입니다. 이것이 그 주변의 팀입니다.

TEAM이라고 댓글을 달면 보내드리겠습니다. DM이 전달되도록 팔로우를 해주세요.

직접 연결하는 것보다 실행되기를 원한다면, 그것이 MAX입니다: 같은 아이디어지만 이음새가 숨겨져 있습니다. 당신이 대화하는 에이전트가 신호를 감시하고, 이메일과 LinkedIn에서 시퀀스를 실행하고, 스탠드업을 건네주며, 공개 API에서 가져올 수 없는 10년간의 구매자-판매자 매칭 데이터로 뒷받침됩니다. 방문: yourmax.ai

원클릭 저장

YouMind로 바이럴 글을 AI 심층 읽기

소스를 저장하고, 핵심 질문을 던지고, 주장을 요약해 바이럴 글을 다시 활용할 수 있는 노트로 바꾸세요. 하나의 AI 워크스페이스에서 모두 할 수 있습니다.

YouMind 둘러보기
크리에이터를 위해

당신의 Markdown을 깔끔한 𝕏 글로

직접 쓴 장문을 올릴 때 이미지, 표, 코드 블록을 𝕏에 맞게 정리하는 일은 번거롭습니다. YouMind는 전체 Markdown 초안을 깔끔하고 바로 게시할 수 있는 𝕏 글로 바꿔 줍니다.

Markdown → 𝕏 사용해 보기

분석할 패턴 더 보기

최근 바이럴 아티클

더 많은 바이럴 아티클 보기