วิธีสร้างทีม GTM บน Claude Code ที่คุณสามารถรันได้ด้วยตัวคนเดียว

@nifinet
อังกฤษ4 สัปดาห์ที่ผ่านมา · 18 มิ.ย. 2569
137K
938
64
83
3.3K

TL;DR

คู่มือนี้จะอธิบายรายละเอียดวิธีการสร้างระบบปฏิบัติการ GTM แบบอัตโนมัติเต็มรูปแบบ โดยใช้ AI agents จาก Claude Code สำหรับการหาลูกค้าเป้าหมาย การวิจัย และการติดตามผล ซึ่งช่วยให้คุณสามารถจัดการไปป์ไลน์ทั้งหมดได้ด้วยตัวคนเดียวผ่านรายงานสรุปประจำวัน

ทีม GTM เหมือนโรงงานส่งของ งานจริงของทีมคือการใช้วิจารณญาณ: บริษัทไหนคุ้มที่จะส่งข้อความถึงสัปดาห์นี้ จะพูดอะไรให้รู้ว่าเราสนใจจริง ใครไม่มาแล้วต้องตาม อะไรที่ขยับ Pipeline ได้จริง

การส่งของเป็นส่วนที่ถูกที่สุดเสมอ ส่วนการใช้วิจารณญาณคือสิ่งที่แต่ก่อนต้องใช้ทีมจัดการ และนี่คือสิ่งที่คนคนเดียวที่ใช้ Claude Code สามารถจัดการได้ตั้งแต่ต้นจนจบ

เพราะฉะนั้น เลิกคิดเรื่องจำนวนคน แล้วเริ่มคิดเรื่องงานที่จะทำดีกว่า

ทีม GTM คือรายการงานเหล่านั้น และส่วนใหญ่มีรูปแบบเดียวกัน: อ่านข้อมูลกองโต ตัดสินใจ เขียนอะไรสักอย่าง ตามผล แล้วจดจำสิ่งที่เกิดขึ้น

เชื่อมงานแต่ละงานเข้ากับ Agent ให้หน่วยความจำร่วมกันหนึ่งชุด แล้วกำหนดตารางเวลา คนมี UX, ซอฟต์แวร์มี API, Agent มี Command Line ทั้งทีมจึงทำงานจาก Cron เดียวตอนแปดโมงเช้า ทุกเช้ามันจะรายงานผล และงานของคุณกลายเป็นการแก้ไขแทนที่จะเป็นการดำเนินการ

ด้านล่างคือโครงสร้าง ทีละตำแหน่ง พร้อม Prompt ที่ฉันวางให้ Claude Code สำหรับแต่ละตำแหน่ง

Nicolas Finet - inline image

รายชื่อทีม: ห้าตำแหน่ง

ตัดสินใจว่าใครคุ้มที่จะส่งข้อความถึง

ส่วนที่ยากของ Outbound ไม่เคยอยู่ที่การส่ง แต่อยู่ที่วิจารณญาณเบื้องหน้า: จากทุกบริษัทในตลาด บริษัทไหนคุ้มที่จะติดต่อถึงสัปดาห์นี้ และจะพูดอะไรให้รู้ว่าเราสนใจจริง

วิจารณญาณนั้นคือตำแหน่งแรก

มันคอยจับความเคลื่อนไหวสี่แบบ ซึ่งเป็นสี่แบบที่ข้อมูลตลาดสิบปีช่วยคัดกรองรายชื่อลงมาเรื่อยๆ:

  • มีตำแหน่งงานเปิด หรือมีการประกาศรับสมัครใหม่
  • บริษัทมีปฏิสัมพันธ์กับคู่แข่ง หรือโพสต์เกี่ยวกับปัญหาที่คุณแก้ได้
  • บริษัทเปิดตัว ขยายธุรกิจ หรือเปลี่ยน Tech Stack
  • มีเงินทุนเคลื่อนผ่านรอบระดมทุนหรือการซื้อกิจการ

มันให้คะแนนแต่ละอย่างเทียบกับผู้ที่เหมาะสมจริงๆ และเทียบกับทุกสิ่งที่คุณรู้อยู่แล้วเกี่ยวกับบัญชีนั้น จากนั้นจึงร่างข้อความจาก Trigger เอง

กฎที่มันไม่เคยแหกคือต้องอ้างอิงสิ่งที่เคลื่อนไหว "เห็นว่าคุณประกาศรับสมัคร Head of RevOps อีกครั้ง นี่คือการจ้างทีมปฏิบัติการครั้งที่สองในไตรมาสนี้" ไม่ใช่ "สวัสดีคุณ{{firstName}}" ถ้าข้อความสามารถส่งออกไปได้เหมือนเดิมตั้งแต่เดือนที่แล้ว แสดงว่า Trigger ถูกข้ามไป และบัญชีนั้นจะต้องรอต่อไป

text
1เขียน team/prospector.py: run(memory, source, delivery, icp, sequences, weights, offline, dry_run)
2ตรวจจับสัญญาณใหม่ใส่ลงในสี่ถัง (job, social, company, funding) และเขียนลงในหน่วยความจำร่วม
3จัดกลุ่มตามบัญชี สำหรับแต่ละบัญชี ประเมินเทียบกับ ICP และประวัติทั้งหมดด้วย
4prompts/judge.md (Claude, temperature 0) โดย fallback ไปใช้ weighted-bucket heuristic ที่ข้ามสัญญาณอ่อน
5และไม่ตรง ICP สำหรับบัญชีที่ผ่านเกณฑ์ ให้ร่างข้อความจาก Trigger ที่แข็งแกร่งที่สุดด้วย prompts/draft.md
6ส่ง Draft ให้ delivery (ค่าเริ่มต้นเป็น dry-run) และบันทึกการติดต่อ คืนค่า ranked standup lines

สรุปทุกการประชุมก่อนเริ่มการโทร

ก่อนการโทรครั้งแรก เคยมีคนใช้เวลายี่สิบนาทีทำเอกสารสรุปหนึ่งหน้า: บริษัทนี้คืออะไร อะไรที่เคลื่อนไหว เราเคยส่งอะไรไปแล้วบ้าง จุดสุดท้ายที่บทสนทนาค้างไว้

ส่งงานนั้นให้ Agent ตัวที่สอง

มันเขียนสรุปสำหรับทุกการประชุมที่ถูกจองไว้ โดยใช้หน่วยความจำเดียวกับที่ Prospector เขียนไว้ เมื่อถึงเวลาประชุม หน้าก็พร้อมแล้ว พร้อม Trigger ที่พาพวกเขาเข้ามา ประวัติ และสิ่งหนึ่งที่คุ้มค่าที่จะเปิดบทสนทนา

ไม่มีใครต้องเตรียมตัวตอนสี่ทุ่มเพื่อประชุมเก้าโมงเช้า และไม่มีใครเดินเข้าประชุมโดยไม่รู้ข้อมูล

text
1เขียน team/researcher.py: run(memory, calendar, icp, offline)
2สำหรับทุกการประชุมในปฏิทินวันนี้ ดึงประวัติทั้งหมดของบัญชีนั้นจากหน่วยความจำร่วม และเขียนสรุป
3หนึ่งหน้าด้วย prompts/brief.md: อะไรที่เคลื่อนไหว เราเคยส่งอะไรไปแล้วบ้างและผลตอบรับเป็นอย่างไร
4และสิ่งที่ดีที่สุดหนึ่งอย่างที่จะใช้เปิดบทสนทนา ยึดทุกบรรทัดจากประวัติ ห้ามแต่งเติม Fallback ไปใช้
5เทมเพลตธรรมดาที่สร้างจากสัญญาณล่าสุดเมื่อไม่มี API key คืนค่า standup line หนึ่งบรรทัดต่อการประชุม

ให้ Sequence จัดการการติดตาม

สัญญาณคือเส้นเริ่มต้น Sequence คือสิ่งที่เปลี่ยนโอกาส และนี่คือส่วนที่คนทำได้แย่ที่สุด เพราะการติดตามผลขึ้นอยู่กับมนุษย์ที่ต้องจำว่าต้องติดตาม เราลืม เราลังเล เราทำครั้งเดียวแล้วหยุด

การส่งและการติดตามจึงทำงานใน Overloop AI เป็น Sequence ที่ทำงานเองเมื่อ Agent ส่งต่องานให้ Agent เป็นคนตัดสินว่าใครและเขียนการติดต่อครั้งแรก Overloop จัดการส่วนที่เหลือตามตารางเวลา ผ่านอีเมลและ LinkedIn เพื่อให้จังหวะการติดต่อไม่ต้องพึ่งพาความจำของใคร

text
1เขียน team/sequencer.py: run(memory, delivery, sequences, offline, dry_run, min_age_days, max_age_days)
2สอบถามหน่วยความจำร่วมสำหรับบัญชีที่มีการติดต่อล่าสุดเมื่อไม่กี่วันก่อน และยังไม่ได้รับการตอบกลับหรือ
3มีการนัดหมาย ร่างข้อความติดตามแบบเบาๆ ที่เพิ่มมุมมองใหม่จริงๆ ส่งเข้า sequence follow_up และบันทึก
4การติดต่อ ปล่อยการติดต่อที่เพิ่งเกิดขึ้นไว้ตามค่า min-age window คืนค่า standup line หนึ่งบรรทัดต่อบัญชี

เรียกคืนลูกค้าที่ไม่มาเข้าประชุม

การไม่มาเข้าประชุมคือลูกค้าที่ผ่านคุณสมบัติแล้วแต่เจอปัญหาวันเวลาที่ตรงกัน พวกเขาหลุดออกจาก Pipeline ด้วยเหตุผลเดียว: การติดตามด้วยตนเองไม่เคยเกิดขึ้น

ดังนั้นเครื่องมือตัวเดียวกันจึงรัน Recovery Sequence สำหรับทุกครั้งที่พลาด สี่การติดต่อในหนึ่งสัปดาห์ สองช่องทาง ไม่มีข้อความตำหนิใดๆ:

  • หนึ่งชั่วโมงหลังจากพลาด: ลิงก์นัดหมายใหม่แบบคลิกสองครั้ง
  • วันถัดไป: ข้อเสนอเดียวกันบน LinkedIn
  • วันที่สาม: เนื้อหามีประโยชน์หนึ่งอย่างที่เกี่ยวข้องกับอุตสาหกรรมของพวกเขา โดยไม่ขออะไร
  • วันที่เจ็ด: ข้อความสุดท้ายธรรมดาๆ

มันดึงอารมณ์ออกจากการติดตามผล และนำลูกค้ากลับมาประมาณหนึ่งในสามของลูกค้าที่ไม่มาเข้าประชุมซึ่งเคยหายไป ไม่มีใครต้องจำต้องส่งข้อความแม้แต่ครั้งเดียว

text
1เขียน team/recoverer.py: run(memory, calendar, delivery, sequences, offline, dry_run)
2สำหรับทุกการไม่มาเข้าประชุมล่าสุดจากปฏิทิน ลงทะเบียนเข้า sequence no_show_recovery ที่กำหนดใน
3config/sequences.yaml (สี่การติดต่อในหนึ่งสัปดาห์ สองช่องทาง ไม่มีข้อความตำหนิในทุกขั้นตอน)
4บันทึกการติดต่อ และคืนค่า standup line จังหวะการติดต่ออยู่ใน config ไม่ใช่ใน code

ให้รายงานประจำสัปดาห์ปรับแต่งตัวเอง

ทุกวันศุกร์ เคยมีคนรวบรวมรายงาน: ส่งอะไรไปบ้าง จองได้อะไรบ้าง ติดอยู่ที่ไหน Pipeline อยู่จุดไหน Agent ตัวสุดท้ายสร้างรายงานจากหน่วยความจำเดียวกัน ทุกสัปดาห์ โดยไม่ต้องขอ

จากนั้นมันก็ทำสิ่งที่รายงานของมนุษย์ไม่เคยทำ

มันให้คะแนนการเล่นของตัวเอง: สัญญาณที่นำไปสู่การนัดหมายได้มากขึ้นจะได้รับน้ำหนักมากขึ้น ข้อความที่ล้มเหลวซ้ำๆ จะถูกตัดออก รายการเป้าหมายเดือนหน้าถูกจัดลำดับตามสิ่งที่ตลาดตอบสนองจริง ไม่ใช่สิ่งที่คุณเดาว่าสำคัญในเดือนมกราคม รายงานหยุดเป็นแค่บันทึกของสัปดาห์ที่แล้ว และกลายเป็นสิ่งที่ปรับแต่งสัปดาห์ถัดไป

text
1เขียน team/reporter.py: run(memory, weights, days, offline)
2อ่านสถิติของสัปดาห์จากหน่วยความจำร่วม เริ่มต้นด้วยจำนวนการนัดหมาย ปรับน้ำหนักของสี่ถังสัญญาณ
3ตามอัตราการชนะ โดยนับการนัดหมายมากกว่าการตอบกลับ โดยมี floor เพื่อไม่ให้ถังใดถังหนึ่งลดลงเป็นศูนย์
4คืนค่า standup lines และน้ำหนักใหม่สำหรับการรันครั้งถัดไป prompts/report.md จะเขียนเวอร์ชันร้อยแก้ว
5เมื่อมีการตั้งค่า key

สอง Prompt ที่ทำงานทุกเช้า

Prompt การสร้างทั้งหมดข้างต้นทำงานครั้งเดียว แต่สองตัวนี้ทำงานกับทุกบัญชี ทุกวัน ดังนั้นนี่คือตัวที่ต้องเก็บไว้และปรับแต่ง วิจารณญาณและน้ำเสียงอยู่ที่นี่ ในไฟล์ธรรมดา ไม่ได้ฝังอยู่ในโค้ด

Prospector ตัดสินด้วย Prompt นี้:

text
1บทบาท คุณคือชั้นการตัดสินของ prospector สำหรับหนึ่งบัญชี ตัดสินใจว่าสัญญาณการซื้อคุ้มค่าที่จะ
2ลงมือทำตอนนี้หรือไม่ และอย่างไร
3อินพุต { icp, new_signals: [{bucket, summary}], history, days_since_last_touch }
4การให้คะแนน 80-100 ตรงกับ ICP แข็งแกร่งและมีสัญญาณเจตนาสูง (funding หรือสองอย่างที่ clustered กัน)
550-79 ตรงดี มีสัญญาณแข็งหนึ่งอย่าง 20-49 ตรงเล็กน้อยหรือสัญญาณเจตนาต่ำเดี่ยวๆ 0-19 ไม่ตรง ICP หรือเป็น noise
6กฎ หากน้อยกว่า 7 วันนับจากการติดต่อครั้งล่าสุด ให้เลือก nurture หรือข้าม ห้ามใช้ first_touch ถ้าสัญญาณ
7อ่อนหรือไม่ตรง ICP ให้คะแนนต่ำและข้าม การปฏิเสธเป็นส่วนหนึ่งของงาน why_now ต้องอ้างอิง trigger จริง
8ด้วยคำพูดที่พนักงานขายสามารถพูดกับผู้ซื้อได้
9เอาต์พุต (JSON เท่านั้น) { "score": 0-100, "why_now": "...", "play": "first_touch|follow_up|nurture|skip", "rationale": "..." }

และมันเขียนด้วย Prompt นี้:

text
1บทบาท คุณเขียนข้อความเปิด สัญญาณคือเหตุผลที่คุณติดต่อ และข้อความต้องพิสูจน์ว่าคุณสังเกตเห็นมัน
2อินพุต { trigger, bucket, why_now, play, guardrails: {goal, must, never} }
3กฎ เปิดประโยคแรกด้วย trigger ห้ามใช้ "สวัสดีคุณ{{firstName}}" เชื่อม trigger กับปัญหาหนึ่งที่คุณแก้
4ได้ ในหนึ่งประโยค ปิดท้ายด้วยคำขอที่เสียดสีต่ำหนึ่งอย่าง ประโยคธรรมดา ความยาวผสม ไม่มีความเร่งด่วน
5ปลอม ไม่มี em dash ไม่มี buzzword ถ้าข้อความสามารถส่งออกไปได้เหมือนเดิมตั้งแต่เดือนที่แล้ว แสดงว่าคุณ
6ข้าม trigger ไป ให้เริ่มใหม่
7เอาต์พุต (JSON เท่านั้น) { "subject": "6-9 คำ", "body": "3-5 ประโยค" }

อะไรที่ทำให้ห้า Agent เป็นทีม

Nicolas Finet - inline image

ห้า Agent หนึ่งหน่วยความจำร่วม

สคริปต์ห้าตัวที่แต่ละตัวจดบันทึกของตัวเองไม่ใช่ทีม สิ่งที่ทำให้พวกเขาเป็นทีมคือหน่วยความจำร่วมชุดเดียว: หนึ่งระเบียนต่อหนึ่งบัญชีที่ทุกตำแหน่งอ่านและเขียน

Prospector บันทึกการติดต่อในวันจันทร์ Sequencer อ่านมันในวันพฤหัส เห็นว่าไม่มีการตอบกลับ และส่งขั้นตอนถัดไป Reporter นับมันในวันศุกร์และปรับน้ำหนักของถัง ระเบียนเดียวกัน แหล่งความจริงเดียว สร้างที่เก็บนี้ก่อน ทำให้ชื่อ method คงที่ และทุกตำแหน่งจะพึ่งพามันแทนการเดา

คนคนเดียวบริหารมันอย่างไร

Nicolas Finet - inline image

การรายงานสถานะตอนเช้า

คุณไม่ได้ดำเนินการมัน คุณแก้ไขมัน ซึ่งเป็นงานที่เล็กกว่าและแตกต่างมาก

ทีมทำงานด้วย cron ก่อนที่คุณจะตื่น เมื่อคุณนั่งลง รายงานสถานะก็รอคุณอยู่ใน Slack แล้ว: ใครที่ต้องติดต่อวันนี้และเพราะอะไร สรุปสำหรับทุกการประชุมในปฏิทินของคุณ การติดตามลูกค้าที่ไม่มาเข้าประชุม ตัวเลขสัปดาห์ที่แล้วที่ถูกถ่วงน้ำหนักใหม่ตามสิ่งที่จองจริงๆ สองนาที: อนุมัติ แก้ไข หรือยกเลิก

ไม่มีรายการต้องสร้าง ไม่มีหัวข้ออีเมลต้องเดา ไม่มีการประชุมวันจันทร์ว่าใครควรโทรหา ทั้งทีมทำงานด้วยค่าใช้จ่ายประมาณ $400 ต่อเดือนสำหรับ tokens ซึ่งเป็นต้นทุนการดำเนินงานทั้งหมดของแผนก สิ่งที่เหลือคืองานบรรณาธิการ: มีรสนิยมเกี่ยวกับสิ่งที่ทีมนำเสนอให้คุณ และปฏิเสธส่วนใหญ่ของมัน

ที่มนุษย์ยังคงเหนือกว่า

Nicolas Finet - inline image

ที่ที่มนุษย์ยังคงอยู่

สิ่งนี้ไม่ได้จัดการ go-to-market ทั้งหมด และส่วนที่มันข้ามไปคือส่วนที่สำคัญที่สุด Agent ตัดสินใจว่าจะติดต่อใครและเขียนบรรทัดแรก พวกเขาไม่ได้ปิดการขาย และพวกเขาไม่ได้สร้างความสัมพันธ์ที่ทำให้ผู้ซื้อเลือกคุณในอีกหนึ่งปีต่อมา เมื่องบประมาณมาถึงในที่สุด

เมื่อมีการตอบกลับกลับมาพร้อมคำถามจริง ความลังเล หรือคำพูดเบาๆ ว่า "เราไม่แน่ใจว่าสิ่งนี้เหมาะกับเรา" นั่นคือบทสนทนาของมนุษย์ และมันควรเป็นอย่างนั้น ระบบเก่งมากในการพาคุณเข้าห้อง แต่ไม่มีอะไรจะพูดเมื่อคุณอยู่ในนั้นแล้ว

ดังนั้น คนที่คุณเคยใช้ไปกับงานจำเจจะไปที่ที่พวกเขามีค่ามากกว่าเสมอ: การโทร ความไว้วางใจ การปิดการขาย ทีมซื้อเวลาคืนที่เคยสูญเสียไปกับการตัดสินใจว่าใครสมควรได้รับการโทร และใช้เวลานั้นกับบทสนทนาที่ตัดสินดีล

รับทีมไปเลย

ฉัน打包ทุกอย่างเป็น repo ที่คุณสามารถ clone และรันได้: ห้าตำแหน่ง หน่วยความจำร่วมที่พวกมันใช้ Prompt ที่นำพาวิจารณญาณและน้ำเสียง และรายงานสถานะที่เชื่อมทุกอย่างเข้าด้วยกัน

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 รายงานสถานะตอนเช้า

มันเป็น build ที่ใช้งานได้ ไม่ใช่โครงสร้างภายในที่เราใช้ที่ Sortlist ตำแหน่ง prospector คือ gtm-brain จาก drop ที่แล้ว นี่คือทีมรอบๆ มัน

พิมพ์ TEAM แล้วฉันจะส่งให้ กดติดตามเพื่อให้ DM ถึงคุณได้

ถ้าคุณอยากให้มันทำงานให้คุณแทนที่จะต้องต่อสายเอง นั่นคือ MAX: แนวคิดเดียวกันแต่ซ่อนรอยต่อไว้ Agent ที่คุณคุยด้วยซึ่งคอยดูสัญญาณ รัน sequence ผ่านอีเมลและ LinkedIn และส่งรายงานสถานะให้คุณ พร้อมข้อมูลการจับคู่ผู้ซื้อ-ผู้ขายสิบปีที่คุณไม่สามารถดึงได้จาก API สาธารณะ เยี่ยมชม: yourmax.ai

บันทึกในคลิกเดียว

อ่านบทความไวรัลเชิงลึกด้วย AI ใน YouMind

บันทึกแหล่งที่มา ถามคำถามที่ตรงประเด็น สรุปข้อโต้แย้ง และเปลี่ยนบทความไวรัลให้เป็นโน้ตที่นำกลับมาใช้ได้ใน AI เวิร์กสเปซเดียว

สำรวจ YouMind
สำหรับครีเอเตอร์

เปลี่ยน Markdown ของคุณให้เป็นบทความ 𝕏 ที่สะอาดตา

เวลาคุณเผยแพร่งานเขียนยาวของตัวเอง การจัดรูปแบบรูปภาพ ตาราง และบล็อกโค้ดให้เข้ากับ 𝕏 นั้นน่าปวดหัว YouMind เปลี่ยนร่าง Markdown ทั้งฉบับให้เป็นบทความ 𝕏 ที่สะอาดตาและพร้อมโพสต์ทันที

ลอง Markdown เป็น 𝕏

แพตเทิร์นให้ถอดรหัสเพิ่มเติม

บทความไวรัลล่าสุด

สำรวจบทความไวรัลเพิ่มเติม