Un equipo de GTM opera como una máquina de envíos. Pero la mayor parte de su trabajo real es criterio: qué empresa merece un mensaje esta semana, qué decir que demuestre que te diste cuenta, a qué ausente perseguir, qué movió realmente el pipeline.
El envío siempre fue la parte barata. El criterio es lo que antes requería un equipo, y es exactamente lo que una persona con Claude Code puede gestionar de principio a fin.
Así que deja de pensar en cabezas y empieza a pensar en tareas.
Un equipo de GTM es una lista de ellas, y la mayoría tienen la misma forma: leer un montón de datos, tomar una decisión, escribir algo, hacer seguimiento y recordar lo que pasó.
Conecta cada tarea a un agente, dales una memoria compartida y ponlos en un horario. Las personas obtienen una interfaz de usuario, el software una API, el agente una línea de comandos, así que todo el equipo se ejecuta desde una línea de cron a las ocho de la mañana. Cada mañana reporta, y tu trabajo se convierte en editar en lugar de operar.
A continuación, la construcción, asiento por asiento, con el prompt que pego en Claude Code para cada uno.

La plantilla: cinco puestos
Decidir quién merece un mensaje
La parte difícil del outbound nunca fue el envío. Fue el criterio previo: de todas las empresas del mercado, ¿cuál merece que le escribas esta semana, y qué dices que demuestre que te diste cuenta?
Ese criterio es el primer puesto.
Observa cuatro tipos de movimiento, los cuatro que una década de datos de mercado sigue reduciendo:
- Se abre un puesto, o se vuelve a publicar.
- Una empresa interactúa con un competidor, o publica sobre el problema que resuelves.
- Una empresa lanza, se expande o cambia su stack tecnológico.
- El dinero se mueve a través de una ronda de financiación o una adquisición.
Evalúa cada uno contra quién encaja realmente y contra todo lo que ya sabes de esa cuenta, luego redacta a partir del propio desencadenante.
La regla que nunca rompe es citar lo que se movió. "Vi que volviste a publicar el puesto de Head of RevOps, segunda contratación de operaciones este trimestre." Nunca "Hola {{firstName}}." Si el mensaje podría haber salido igual el mes pasado, el desencadenante se saltó y la cuenta espera.
1Escribe team/prospector.py: run(memory, source, delivery, icp, sequences, weights, offline, dry_run).2Detecta nuevas señales en los cuatro buckets (job, social, company, funding) y escríbelas en la memoria3compartida. Agrúpalas por cuenta. Para cada cuenta, evalúala contra el ICP y el historial completo con4prompts/judge.md (Claude, temperatura 0), con un fallback a una heurística ponderada que salta señales5débiles o fuera del ICP. Para las que superan el umbral, redacta a partir del desencadenante más fuerte6con prompts/draft.md, entrega el borrador a delivery (dry-run por defecto) y registra el contacto.7Devuelve líneas de standup ordenadas.
Informar cada llamada antes de que empiece
Antes de una primera llamada, alguien solía pasar veinte minutos armando un resumen de una página: qué es esta empresa, qué se movió, qué le has enviado ya, dónde se enfrió el último hilo.
Pásale eso al segundo agente.
Escribe el resumen de cada llamada agendada a partir de la misma memoria en la que escribe el prospector. Cuando la llamada empieza, la página ya está ahí, con el desencadenante que los trajo, el historial y la única cosa por la que vale la pena abrir.
Nadie prepara a las 11 p. m. para una llamada a las 9 a. m., y nadie entra en frío.
1Escribe team/researcher.py: run(memory, calendar, icp, offline).2Para cada llamada en el calendario de hoy, extrae el historial completo de la cuenta de la memoria3compartida y escribe un resumen de una página con prompts/brief.md: qué se movió, qué enviamos ya y cómo4se recibió, y la mejor manera de abrir la llamada. Apoya cada línea en el historial, nunca inventes.5Usa como fallback una plantilla simple basada en la última señal cuando no haya clave API. Devuelve una6línea de standup por llamada.
Deja que la secuencia haga la persecución
Una señal es la línea de salida. La secuencia es lo que convierte, y es la parte en la que la gente falla más, porque el seguimiento depende de que un humano recuerde hacerlo. Olvidamos, dudamos, lo hacemos una vez y paramos.
Por eso el envío y la persecución corren en Overloop AI como secuencias que se activan solas una vez que el agente las entrega. El agente decide quién y escribe el primer contacto. Overloop continúa el resto en un horario, a través de correo electrónico y LinkedIn, para que la cadencia nunca dependa de la memoria de nadie.
1Escribe team/sequencer.py: run(memory, delivery, sequences, offline, dry_run, min_age_days, max_age_days).2Pregunta a la memoria compartida por cuentas cuyo último contacto tenga unos días de antigüedad y que no3tengan respuesta ni reunión agendada. Redacta un seguimiento ligero que añada un ángulo genuinamente4nuevo, envíalo a la secuencia follow_up y registra el contacto. Deja intactos los contactos recientes5respetando la ventana de min_age. Devuelve una línea de standup por cuenta.
Recuperar a los que no se presentaron
Un no-show es un lead calificado que tuvo un conflicto de calendario. Se filtran del pipeline por una razón: la recuperación manual nunca ocurre.
Así que el mismo motor ejecuta una secuencia de recuperación para cada ausencia. Cuatro contactos en una semana, dos canales, sin culpa en ninguno:
- Una hora después de la falta: un enlace de reagendado en dos clics.
- Al día siguiente: la misma oferta en LinkedIn.
- Día tres: algo útil relacionado con su industria, sin pedir nada.
- Día siete: un último aviso simple.
Elimina la emoción del seguimiento y recupera aproximadamente un tercio de los no-shows que solían desaparecer. Nadie tiene que recordar enviar ni uno solo.
1Escribe team/recoverer.py: run(memory, calendar, delivery, sequences, offline, dry_run).2Para cada no-show reciente del calendario, inscríbelo en la secuencia no_show_recovery definida en3config/sequences.yaml (cuatro contactos en una semana, dos canales, sin culpa en ningún paso), registra4el contacto y devuelve una línea de standup. La cadencia vive en config, no en el código.
Hacer que el informe semanal se ajuste solo
Cada viernes alguien solía armar la retrospectiva: qué salió, qué se agendó, qué está atascado, cómo está el pipeline. El último agente la construye desde la misma memoria, cada semana, sin que se lo pidan.
Luego hace algo que un informe humano nunca hace.
Evalúa sus propias jugadas: las señales que siguen agendando reuniones reciben más peso, el copy que sigue fallando se elimina. La lista de prioridades del próximo mes se ordena por lo que el mercado realmente respondió, no por lo que supusiste que importaba en enero. El informe deja de ser un registro de la semana pasada y se convierte en lo que ajusta la siguiente.
1Escribe team/reporter.py: run(memory, weights, days, offline).2Lee las estadísticas de la semana de la memoria compartida. Empieza con el número de reuniones.3Re-pondera los cuatro buckets de señales por tasa de éxito, contando más una reunión que una respuesta,4con un piso para que ningún bucket caiga a cero. Devuelve las líneas de standup y los nuevos pesos para5la siguiente ejecución. prompts/report.md escribe la versión en prosa cuando hay una clave configurada.
Los dos prompts que se ejecutan cada mañana
Cada prompt de construcción anterior se ejecuta una vez. Estos dos se ejecutan en cada cuenta, cada día, así que son los que debes conservar y ajustar. El criterio y la voz viven aquí, en archivos simples, no enterrados en código.
El prospector juzga con esto:
1ROL Eres la capa de criterio del prospector. Para una cuenta, decide si vale la pena actuar sobre una2señal de compra ahora mismo, y cómo.3ENTRADA { icp, new_signals: [{bucket, summary}], history, days_since_last_touch }4PUNTUACIÓN 80-100 ajuste fuerte al ICP y señal de alta intención (financiación, o dos agrupadas);550-79 buen ajuste, una señal sólida; 20-49 ajuste débil o una señal solitaria de baja intención;60-19 fuera del ICP o ruido7REGLAS Si han pasado menos de 7 días desde el último contacto, prefiere nurture o salta, nunca8first_touch. Si la señal es débil o fuera del ICP, puntúa bajo y salta; decir que no es parte del9trabajo. why_now debe citar el desencadenante real, en palabras que un representante podría decirle al10comprador.11SALIDA (solo JSON) { "score": 0-100, "why_now": "...", "play": "first_touch|follow_up|nurture|skip", "rationale": "..." }
Y escribe con esto:
1ROL Escribes el mensaje de apertura. La señal es la razón por la que contactas, y el mensaje debe2demostrar que te diste cuenta.3ENTRADA { trigger, bucket, why_now, play, guardrails: {goal, must, never} }4REGLAS Abre la primera frase con el desencadenante, nunca "Hola {{firstName}}". Conecta el5desencadenante con un problema que resuelves, en una sola frase. Cierra con una petición de baja6fricción. Frases simples, longitud variada, sin urgencia falsa, sin guiones largos, sin palabras de7moda. Si el mensaje podría haber salido igual el mes pasado, te saltaste el desencadenante; empieza de8nuevo.9SALIDA (solo JSON) { "subject": "6-9 palabras", "body": "3-5 oraciones" }
Qué hace que cinco agentes sean un equipo

Cinco agentes, una memoria compartida
Cinco scripts que guardan sus propias notas no son un equipo. Lo que los convierte en uno es una única memoria compartida: un registro por cuenta que cada puesto lee y escribe.
El prospector registra un contacto el lunes. El sequencer lo lee el jueves, ve que no hay respuesta y envía el siguiente paso. El reporter lo cuenta el viernes y re-pondera los buckets. Mismo registro, una única fuente de verdad. Construye ese almacén primero, mantén estables los nombres de sus métodos, y cada puesto se apoyará en él en lugar de adivinar.
Cómo lo gestiona una persona

El standup matutino
No operas esto. Lo editas, que es un trabajo más pequeño y muy diferente.
El equipo se ejecuta con cron antes de que te despiertes. Cuando te sientas, el standup ya te espera en Slack: a quién contactar hoy y por qué, un resumen para cada llamada en tu calendario, los no-shows siendo perseguidos, los números de la semana re-ponderados por lo que realmente se agendó. Dos minutos: aprueba, edita o elimina.
Sin lista que construir, sin asuntos que adivinar, sin reunión del lunes sobre a quién llamar. Todo el equipo funciona por unos $400 al mes en tokens, el costo operativo total del departamento. Lo que queda es editorial: tener criterio sobre lo que el equipo pone frente a ti, y decir que no a la mayor parte.
Donde los humanos aún ganan

Donde se quedan los humanos
Esto no gestiona todo el go-to-market, y las partes que omite son las que más importan. Los agentes deciden a quién contactar y escriben la primera línea. No cierran, y no construyen la relación que hace que un comprador te elija un año después, cuando el presupuesto finalmente llega.
Cuando llega una respuesta con una pregunta real, una duda, un tranquilo "no estamos seguros de que esto sea para nosotros", esa es una conversación humana, y debe seguir siéndolo. El sistema es muy bueno para hacerte entrar en la sala. No tiene nada que decir una vez que estás dentro.
Así que las personas que habrías gastado en la rutina van a donde siempre valieron más: la llamada, la confianza, el cierre. El equipo recupera las horas que solían perderse decidiendo quién merecía una llamada, y las gasta en las conversaciones que deciden los tratos.
Lleva el equipo
Empaqueté todo en un repositorio que puedes clonar y ejecutar: los cinco puestos, la memoria compartida en la que se ejecutan, los prompts que llevan el criterio y la voz, y el standup que los une.
1gtm-team/2 team/ prospector · researcher · sequencer · recoverer · reporter3 core/ memory · models · adapters · llm4 prompts/ judge · draft · brief · report5 config/ icp · sequences · signals · team6 run.py the morning standup
Es una construcción funcional, no el stack interno que ejecutamos en Sortlist. El puesto de prospector es el gtm-brain de la última entrega. Este es el equipo que lo rodea.
Comenta TEAM y te lo enviaré. Asegúrate de seguirme para que el mensaje directo llegue.
Si prefieres que lo ejecuten por ti en lugar de cablearlo tú mismo, eso es MAX: la misma idea con las costuras ocultas. Un agente con el que hablas que vigila las señales, ejecuta las secuencias a través de correo electrónico y LinkedIn, y te entrega el standup, respaldado por diez años de datos de coincidencia comprador-vendedor que no puedes obtener de una API pública. Visita: yourmax.ai





