Cutting LangGraph drafting time from 60s to 15s by fanning out independent nodes

anandbhaskaran1 pts0 comments

Drafted, not sent — how I built the second half of an AI outbound agent

Compounding Curiosity

SubscribeSign in

Drafted, not sent — how I built the second half of an AI outbound agent<br>Research saved 30 minutes per account. Reps still stared at a blinking cursor. So I built the part that actually hurt.

Anand<br>May 28, 2026

Share

A few weeks ago, I wrote about the AI outbound agent I built in two weeks — deep research on the account and the person, delivered as an 80-word brief, inside Outreach, exactly where the rep already was.<br>Then one of the lead BDRs said the thing that made me realise I only built half the product:<br>“Next step: auto-draft the first email. Pre-filled, ready to review and send. Not auto-sent. Just drafted, inside the Outreach task.”

That’s the gap. Research saves you 30 minutes of digging. But the rep still copies the brief into Outreach and writes the email from scratch. The hardest part of outbound — the writing — was still entirely manual.<br>So I built the second half.<br>Thanks for reading Compounding Curiosity! Subscribe for free to receive new posts and support my work.

Subscribe

The five plays

The rep picks a play . The agent does the rest.<br>A play is a sequence prompt — a named strategy that defines the angle, the tone, and how the whole multi-touch arc unfolds. Reps pick whichever fits the prospect in front of them:

The rep’s judgment about which play fits this prospect is the part AI shouldn’t take away. The drafting is the part AI should.

The 10-touch cadence

Every play expands into the same multichannel rhythm across ~20 days:

And below is the System prompt for the Sharp Hook sequence.<br>You are an expert B2B SDR generating a personalised outreach sequence for LumApps.

You have access to account research, person research, and tools including fetch_customer_stories.

Strategy: Sharp Hook — lead with ONE specific, verifiable observation from the research, then ask a binary yes/no question that implies the problem LumApps solves. The observation must be concrete: a funding round, headcount growth, new office, acquisition, leadership change, or public statement. Never invent observations.

For each touchpoint generate:<br>- Email: subject line + body (under 150 words)<br>- Phone: 7 short, personalised talking points the rep can riff on<br>- LinkedIn: connection note (under 300 characters)

Rules:<br>- Day 1 sets the hook. Every subsequent touch references or builds on it — never repeat the same angle.<br>- Do not pitch features. Imply value through the question.<br>- Personalise from research. Use placeholders only when no data is available.<br>- Introduce a customer story (via fetch_customer_stories) no earlier than Day 12.<br>- Email body: 'Hi {first_name},' → hook line → binary question → sign-off ('Best,\n{sdr_name}'). Blank line between each block. No 'hope this finds you well', no exclamations, sentences under 20 words.

Sequence to generate (10 touches):<br>Day 1 [Email] Sharp Hook — Specific observation + binary question. Easy to reply to.<br>Day 2 [Phone] Same-day call — Strike while it's fresh. Reference the email, ask the same question verbally.<br>Day 4 [LinkedIn] Connection request — Short personalised note referencing your email.<br>Day 6 [Email] Insight drop — Add value with a relevant resource. No ask.<br>Day 8 [Phone] Follow-up call — Ask if the resource was useful. One question only.<br>Day 12 [Email] Pain first — Name the pain, agitate, show the solve.<br>Day 14 [Phone] Check-in call — Reference the pain email. Ask if it resonated.<br>Day 17 [Follow-up] Social proof — Share a relevant customer outcome.<br>Day 19 [Phone] Final dial — Last call before breakup. Keep it under 90 seconds.<br>Day 20 [Email] Clean close — Low pressure last touch. Often highest-reply step.

Generate content for every touch above, in order.

Under the hood

The whole thing runs as a LangGraph pipeline with five nodes:

Company research — the deep-research agent from Part 1.

Person research — LinkedIn signals, recent activity, role context from Part 1.

Internal data retrieval — RAG over our own sales assets: the 30-word company pitch, feature one-liners, customer impact stories, positioning framework.

Sequence generation — drafts all 10 touches based on the chosen play.

Human review — the rep approves or edits. On approval, the sequence is pushed into Outreach as drafts inside an existing sequence.

Step 4 was the bottleneck. Drafting all 10 touches sequentially took ~60 seconds — long enough that reps tabbed away and lost the moment.<br>Drafting time dropped from ~60s to ~15s. Same model, same prompts — I just changed the graph shape.<br>Each touch only needs the research output and the chosen play. They don’t depend on each other. So I fanned the node out: the parent orchestrator dispatches one child node per touch, all running in parallel. Each child drafts its own email or call script. The parent stitches the results back into the final sequence.

The design decisions that actually mattered

Drafted, not sent.<br>The single most...

email research sequence from touch built

Related Articles