---
name: raisekit-follow-up-sweep
description: Sweeps the founder's RaiseKit pipeline for investors who are overdue or have gone quiet, checks the last touch and email thread for each, and drafts a short, specific follow-up per investor (as a Gmail draft when Gmail is connected, otherwise a RaiseKit draft) without sending anything. Then sets the next action and due date in RaiseKit. Use when the founder asks to "follow up with investors", "chase my pipeline", "who have I not replied to", "nudge stale VCs" or "draft follow-ups".
---

# RaiseKit follow-up sweep

Find who needs a nudge, draft one good follow-up each, and leave the founder a short list to approve.

## Requirements

- RaiseKit connector (https://raisekit.co/mcp). If a RaiseKit tool reports a sign-in or subscription problem, call `auth_whoami` and tell the founder exactly what it says.
- Optional: Gmail connector. If it is not connected, say "Gmail is not connected, so drafts will be created in RaiseKit for your approval" and use `conversation_draft_message`.

## Steps

1. **Find who needs a follow-up.** Call `pipeline_overview` with `stale_days: 7` and `due_within_days: 3`. Combine `due` (overdue first) and `stale`, drop passed and ghosted, and dedupe by opportunity. Cap at 10, ordered by stage (later stages first) then by how overdue they are. Tell the founder how many were skipped by the cap.
2. **Get context for each.** Call `pipeline_get_dossier` with the `opportunity_id`. Note the primary contact and email, stage, last touch (date, channel, summary), next action and blocker.
   - If Gmail is connected, read the latest thread with that contact (use the dossier's thread id or search `from:<email> OR to:<email>`). Check who spoke last.
   - If the investor replied and the founder has not answered, this is a reply, not a nudge: say so in the table.
   - Without Gmail, use `conversation_inbox` with `person_id` to read the RaiseKit thread.
3. **Draft one follow-up per investor.** 3 to 5 sentences, plain text:
   - Reference the last real touch ("Thanks again for the call on <date>").
   - Add one new, true piece of information the founder has given you in this conversation (a milestone, a new commitment, a product update). If you have none, ask the founder for one before drafting, or leave "[one line of news]".
   - One clear ask matched to the stage (for example a partner meeting after a first call, a decision timeline after IC).
   - No guilt, no "just checking in", no invented urgency or invented round details.
4. **Save drafts, never send.**
   - Gmail connected: create a Gmail draft as a reply in the existing thread (or a new message to the contact's email).
   - Otherwise: call `conversation_draft_message` with `target_person_ids`, `subject`, `body` and `opportunity_id`. The founder approves it by email before anything goes out.
5. **Set the next action.** For each drafted follow-up, call `pipeline_update_opportunity` with `opportunity_id`, `next_action` ("Follow-up drafted: review and send") and `due_at` (today). After the founder confirms they sent it, offer to log it with `pipeline_log_interaction` (`channel: "email"`, `direction: "out"`, with `gmail_thread_id` and `gmail_message_id` when available) and to push `due_at` out 5 to 7 days.

## Output format

```
## Follow-up sweep: <date>
<n> investors need a follow-up (<m> more skipped by the cap)

| Investor | Firm | Stage | Why | Last touch | Draft |
|---|---|---|---|---|---|
| ... | ... | ... | Overdue: <next action> / Stale 12d / Replied, awaiting you | <date, channel> | Gmail draft / RaiseKit draft / Skipped: <reason> |
```

Then show each draft body under the investor's name so the founder can edit before sending.

## Guardrails

- Never send email or approve a RaiseKit draft on the founder's behalf.
- Never invent traction, commitments, other investors' interest or deadlines in a draft.
- Only list investors the tools return. If an opportunity has no contact email, mark it "Skipped: no contact email" and suggest adding one.
- If the founder says an investor has passed, offer `pipeline_update_opportunity` with `passed_reason` instead of drafting.
