Back to Library
Stage 03 / 4D build

Stale Lead Follow-Up.

Opportunities untouched for 14 days get a draft check-in email tailored to the last real conversation. Claude reads your inbox through the Gmail connector, pulls the thread that matters, writes the draft in your voice, and parks it in your Gmail Drafts folder. You read, edit, and send. Nothing leaves your computer without you.

What you'll have
  • A standing follow-up loop for the leads you keep meaning to chase. Run it once a week and your pipeline stops leaking through the cracks between meetings.
  • Drafts that sound like you because Claude reads your CLAUDE.md voice notes and the actual last reply in the thread before it writes. No generic 'just checking in' copy.
  • A safe automation pattern Claude drafts, never sends. Every message lands in your Drafts folder. You approve each one. The same Gmail connector pattern transfers to every later email build.
4D
Build time ~45 min
Track 4D required, no 8D extensions
Touches Gmail MCP · CLAUDE.md voice · Claude Code prompt
Source guides/04-mcp-servers.md + guides/08-connecting-your-world.md
One-click start

Build this with Claude.

Paste the prompt below into Claude Code in your workshop folder. Claude reads the relevant guides, confirms your Gmail connector is wired, then walks you through the build one step at a time.

How this fits in the OS.

Depends on

Your CLAUDE.md from Stage 01 (so the drafts sound like you), the Gmail MCP wired in Stage 02 (Claude Desktop calls these connectors), and a clear sense in your own head of which threads count as leads versus everything else in your inbox.

Uses

One Gmail connector. One Claude Code prompt. Your existing voice notes. No new accounts, no extra services, no credentials beyond what you already wired in Stage 02.

Unlocks

A reusable email pattern. Once you've shipped one draft-generation loop, the same Gmail connector pattern transfers to reply queues, weekly check-ins, post-meeting follow-ups, anywhere a draft beats a blank cursor.

Watch for the shape.

The shape is small and worth feeling once. Claude searches your Gmail inbox (Claude Desktop calls these connectors) for threads where you sent the last reply and nothing has come back in 14 or more days. For each one, Claude pulls the last real exchange, reads your CLAUDE.md voice notes, and writes a short check-in email that references something specific from the conversation. The draft lands in your Gmail Drafts folder. You open it, read it, edit it, send it.

The agent does the search and the writing. You do the sending. That split is the whole safety story. Claude is fast at scanning a hundred threads. You are the one who decides which ones deserve a nudge today.

Why drafts, not auto-send

Outbound email is a one-way door. Once a message leaves your account it has touched another person, and you cannot pull it back. Drafts give you the speed of automation with the brake of a human read. Every later email build in this workshop uses the same rule.

What changes for you.

The draft is the easy part. The bigger thing is what shifts when you stop carrying the follow-up list in your head. Three changes, in the order you'll feel them:

  • You stop forgetting people. The leads that used to slip through the cracks because life got busy now get a weekly sweep. The agent doesn't get tired of looking at the same names.
  • You stop writing follow-ups from scratch. A blank cursor on a check-in email is friction. A draft that already references the last conversation is a five second edit. The activation energy drops.
  • You start trusting drafts as a layer of your inbox. Not as a finished email. As a starting point that's already 80% of the way there. The agent does the boring half, you do the human half.

Before you start.

Three things specific to this build

  • Your Gmail connector (Claude Desktop calls these connectors) is wired from Stage 02. Confirm by running /mcp in Claude Code. Gmail should show green.
  • Your CLAUDE.md has at least a short voice section. Something like "I write short. I lead with the ask. I never say 'just checking in.'" If you skipped the voice pass during Stage 01, do five minutes of that first, otherwise the drafts will sound generic.
  • A clear sense of which threads in your inbox count as leads. A Gmail label, a specific sender list, a folder, or just a mental model you can describe to Claude. The agent needs a concrete filter before it can scan.
Cost

The Gmail connector is free. The Claude Code session costs whatever your plan already covers. There are no new services to sign up for.

The build.

Six steps. The first three confirm the foundation. The last three do the work. Each step has a recovery line if something doesn't land. Run the whole sequence inside one Claude Code session in your workshop folder.

Step 01

Confirm Gmail is alive

2 min

Open Claude Code in your workshop folder. Run the connector check:

Paste into Claude Code /mcp

Gmail (Claude Desktop calls these connectors) should show green. If it shows red, the build will fail at the first search and waste your time. Five seconds here saves an hour later.

Gmail shows red or missing? Jump back to Stage 02 and re-run the connector flow for Gmail. Once it goes green, come back here.
Step 02

Confirm your CLAUDE.md has a voice section

5 min

Open CLAUDE.md at the root of your workshop folder. Look for a section that tells Claude how you write. If it isn't there, add one now. Three or four lines is enough.

Paste into Claude Code

Open my CLAUDE.md and read the section that describes how I write. If there isn't one, propose a four-line voice section based on whatever signals you have from our previous conversations, and show it to me before adding it. I want to confirm the voice description matches how I actually write before any drafts get generated.

The agent does this for you. Claude reads your CLAUDE.md, finds or proposes the voice section, and waits for your sign-off. The drafts you generate later inherit whatever this section says, so it's worth getting right once.

CLAUDE.md is empty or vague? The drafts will sound like a generic assistant wrote them. Do five minutes on the voice pass from Stage 01 first. It compounds across every later build.
Step 03

Define what counts as a lead

5 min

The agent needs a filter. "Threads that look like leads" is not a filter Gmail can execute on. Pick one of these three concrete shapes:

  • A Gmail label you already use (for example, Leads or Prospects).
  • A sender domain or list of domains where the people you're tracking write from.
  • A specific Gmail folder or category you've been dropping these threads into.

Write the filter down in plain English. A freelancer might say "anyone who emailed me from a non-gmail.com address asking about my services." A coach might say "every thread in my Prospects label." A small business owner might say "every reply chain with the word quote or estimate in the subject line." Specific beats clever.

You don't have a label or pattern yet? Set one up before you keep going. The follow-up agent only works if the filter is real. Five minutes labeling 20 threads beats an hour debugging a vague search later.
Step 04

Run the stale-lead search

10 min

Now Claude scans. Paste this in, replacing the filter description with whatever you defined in Step 03:

Paste into Claude Code

Using the Gmail connector, search my inbox for lead threads that have gone stale. A lead thread is: [paste your filter description from Step 03]. A stale thread is one where I sent the last message and no reply has come back in 14 or more days. Return a numbered list of matching threads with: the other person's name, the date of the last reply from them, the date I sent the last message, and a one-sentence summary of what the thread is about. Do not draft anything yet. I want to see the list first and confirm the filter is finding the right shape of thread.

The agent does this for you. Claude composes the Gmail search, runs it, and reports back the matches. You read the list and confirm whether the filter is finding leads or just noise.

The list returns zero threads? Either your filter is too narrow or your inbox is in better shape than you thought. Try widening the filter (drop the domain restriction, or extend the window to 21 days). If you still get nothing, congratulations, your follow-ups are caught up. Run this card again in two weeks.
The list returns 80 threads? Filter is too broad. Narrow it. The point of the first run is to find five to fifteen real leads, not flood your Drafts folder.
Step 05

Generate the drafts

15 min

Once the list looks right, hand it back to Claude with the draft instruction:

Paste into Claude Code

Good. For each of the threads in that list, do the following. First, pull the last real back-and-forth exchange (their last reply to me plus my last message to them). Use that as the context. Second, read my CLAUDE.md voice section so the drafts sound like me. Third, write a short check-in email per thread. The email should reference something specific from the last conversation, suggest a concrete next step, and stay under 100 words. No "just checking in" copy. No generic openers. Save each one as a Gmail draft. Do not send anything. After you finish, report back with a list of which threads got drafts and which were skipped, with a one-line reason for any skip.

The agent does this for you. Claude pulls the thread context per lead, reads your voice section, and writes a tailored draft. Every draft lands in your Gmail Drafts folder, ready for your review.

A draft looks generic? The thread probably didn't have a real conversation to pull from (a one-line cold reply, an auto-responder). Tell Claude to skip those and only draft for threads with at least one substantive exchange. Better to skip five and write ten good drafts than to draft fifteen and edit them all.
Claude offers to send the drafts for you? Say no. This is a draft-only workflow. The send button is yours, every time, no exceptions.
Step 06

Review the Drafts folder

8 min

Open Gmail in your browser. Click Drafts in the left sidebar. You should see the new drafts at the top, one per lead Claude wrote for. Open each one. Read it. Edit any line that sounds off. Hit send when it's right. Delete the draft if a follow-up isn't actually the move.

This is the human part. The agent is fast at composing. You are the one who knows whether sending today is the right call for this person.

If you sent three or four drafts that you wouldn't have written from scratch this week, the agent paid for itself. Run this card again in seven days. The pattern compounds.

Safety: drafts never auto-send.

If Claude ever offers to send the messages for you, say no. The whole point of this build is that the human read happens between draft and send. There are no exceptions to that rule.

Outbound email is a one-way door. Once a message reaches another person's inbox you cannot recall the read, the reaction, or the reply they didn't write. Drafts give you the speed of automation with the brake of a human review. Every later email build in the workshop inherits this rule.

If you ever build a version of this that sends without review, do it on a throwaway inbox first, watch it run for a month, and only then consider letting it touch your real inbox. The default for any new send-capable workflow is drafts only.

When it works.

You'll know the agent is real when four things land:

  1. The search returns a list of real leads. Five to fifteen threads, all of them ones you recognize as people you meant to follow up with.
  2. The drafts reference the last conversation. Each one mentions something specific from the actual exchange, not a generic opener.
  3. The voice sounds like you. Not perfectly. But close enough that a five-second edit gets it the rest of the way.
  4. Your Drafts folder fills up. Your Sent folder does not. Until you send. That gap is the safety story working as designed.

If all four show up, run the card again in seven days. Once a week is the rhythm that compounds. More often and you'll be drafting against the same threads twice. Less often and your pipeline keeps leaking.

If you get stuck.

Common failure modes, ranked by how often they show up the first time:

  • The Gmail search returns zero threads. Filter is too narrow or your follow-ups are caught up. Widen the filter or come back in two weeks.
  • The Gmail search returns 80 threads. Filter is too broad. Narrow to a label, a sender domain, or a subject pattern. The first run should produce five to fifteen drafts, not a flood.
  • The drafts sound generic. Your CLAUDE.md voice section is missing or vague. Stop, do five minutes on the voice pass, and re-run Step 05 only. The thread search from Step 04 doesn't need to repeat.
  • A draft references the wrong conversation. Claude pulled context from the wrong thread or an auto-responder. Tell Claude to skip any thread where the last reply was a calendar invite, an out-of-office, or a one-line acknowledgement. Re-run Step 05 for the affected threads only.
  • The Gmail connector loses authorization mid-run. Refresh the connector from Claude Desktop (Claude Desktop calls these connectors). Re-run /mcp to confirm green. Then resume from the step that failed.
  • Claude offers to send the drafts. Say no, every time. This build is draft-only. If the offer keeps coming up, add a line to your CLAUDE.md: "Email automations always produce drafts. Never offer to send mail directly."

Still stuck? Post the prompt you ran, what came back, and what you expected. Someone in the workshop has hit the same thing.

Where to go next.

You've shipped one Gmail-connector loop with a draft-only safety pattern. Three natural next moves on the shelf:

Back to the Library