auto-outbound: The AI Sales Stack That Researches Before It Writes

How Vercel Labs turns prospect research, workflow durability, and structured prompting into a pipeline for personalized outbound that behaves more like software than copy generation.

8 min read • View on GitHub • More from vercel-labs

A wide editorial scene shows a messy pile of web artifacts, search snippets, company pages, and profile cards funneling through a narrow quality gate into a neat row of three email drafts. The image explains that outbound here begins with evidence, then passes through a verification step before any message is written.
Research first, copy second. The system treats personalization like a filtering problem before it becomes a writing problem.
Key Takeaways

Most AI outbound tools start with a prompt and hope the model does the rest. auto-outbound flips that order. It starts by collecting evidence, verifying what matters, and only then drafting a sequence that can be pushed into a real sales system. That shift sounds small. It changes the whole category.

The shortest path from web evidence to an outbound sequence

The core loop is simple to describe and unusually hard to do well. A contactId enters the workflow, the system loads context, researches the company and the person, summarizes the evidence, generates a three-email sequence, and syncs the result into Outreach. If any stage breaks, the workflow can resume from the last successful checkpoint instead of starting over.

The workflow is doing more than orchestration. It turns a brittle chain of AI and API calls into a resumable pipeline with checkpoints.

Why this is a workflow problem, not a prompt problem

The center of gravity is workflows/process-contact.ts. It does not just call models in sequence. It coordinates phases, writes state along the way, and makes third-party failure a local problem instead of a total reset. That is the difference between a demo and a system.

DimensionManual SDR workGeneric AI outboundauto-outbound
Research qualityHuman-led and slowOften thin or guessedEvidence-first and verified
Failure recoveryManual recoveryUsually noneResumable checkpoints
Personalization depthStrong but expensiveVariable and brittleStructured and source-backed
Output structureDepends on the repOften freeformThree-email sequence with schema
Integration readinessCopy-paste into CRMUsually disconnectedBuilt for Outreach handoff

That table is the point. The repo is not trying to win on flashy autonomy. It is trying to make the process trustworthy enough that automation can survive contact with real sales operations.

A close-up control panel shows four lit compartments labeled Research, Summarize, Write, and Sync. A cracked wire interrupts the flow between two stages, but the earlier compartments remain locked and active. The image explains durable execution, where a failure can be repaired without restarting the entire pipeline.
Durable execution is the real product feature. Once each stage has written state, the system can recover without redoing already completed work.

The anti-hallucination research loop

The smartest part of the repo is that company and person research are treated as separate problems. The company branch uses semantic search to find real artifacts, like engineering blogs and product pages. The person branch checks whether the search results actually belong to the right human before the model writes a line that could embarrass the sender.

That extra confidence check matters. A lot of outbound tools fail in a very specific way: they are personalized to the wrong person, or to a thin signal that never should have been used in the first place. Here, research is not decoration. It is the guardrail.

Prompting the email like a layout engine

The generation layer, especially lib/email/generation.ts, reads less like copywriting and more like design constraints. It pushes the model toward an F-shaped reading pattern, short paragraphs, and box-style follow-ups. It also bans marketing speak, which is a useful signal that the system is optimizing for scanability and deliverability, not brand flourishes.

// Conceptual shape of the email generator
// The prompt constrains structure, spacing, and tone.

const systemPrompt = `Write for fast scanning.
Use short paragraphs.
Lead with the most relevant point.
Avoid marketing language.
Return HTML that renders cleanly in Outreach.`;

const output = {
  subject: string,
  emails: [first, followUp1, followUp2]
};

That is the quiet insight here. The prompt is not just controlling voice. It is controlling layout behavior, because the email has to survive inside a real outbound composer and still be readable on a quick pass.

Why Outreach integration is the final proof

The Outreach layer makes the whole thing real. Generated content is mapped into specific prospect fields, including hardcoded custom field IDs in the current implementation. That is a little rough around the edges, but it also proves the system is meant to operate inside a living sales workflow, not stop at a JSON response.

Integration layerWhat it doesWhy it matters
Generated sequenceCreates subject and follow-upsKeeps the output structured enough to reuse
Custom field mappingWrites into Outreach prospect fieldsLets SDRs pull the result into existing templates
OAuth and API wrappersHandles sync to the CRMTurns draft text into an operational artifact

This is where a prototype starts to look like infrastructure. The outbound system is opinionated, specific, and a bit brittle in places. That is often what early useful software looks like.

How it compares to generic AI outbound tools

Compared with a plain LLM workflow, auto-outbound is narrower and much more disciplined. Compared with a generalized agent platform like OpenClaw, it gives up breadth in exchange for reliability inside one sales motion. It is not trying to be a universal agent. It is trying to be a trustworthy outbound machine.

ApproachStrengthWeakness
Manual SDR workflowStrong judgment and nuanceSlow and hard to scale
Generic AI generatorFast and cheapWeak verification and fragile outputs
General agent platformBroad task coverageLess opinionated about outbound quality
auto-outboundEvidence-first, durable, and structuredNarrower scope and more operational assumptions

That tradeoff is the story. The repo is not a moonshot on general intelligence. It is a focused bet that sales automation becomes useful when the system is designed to protect factuality, not just produce text.

What this repo says about the next generation of sales tooling

The future is probably not a fully autonomous SDR that handles everything end to end. It is a set of systems that can safely compress research, drafting, and CRM operations into one repeatable pipeline. That is more mundane than sci-fi, and much more likely to ship.

If outbound is going to be automated at scale, the winning products will look less like chatbots and more like durable workflows with strong evidence gates. auto-outbound gets that part right.