Investor Update Drafter

Compose a monthly investor update from metrics, milestones, and qualitative notes in your voice, ready to send via email.

Compose a monthly investor update from metrics, milestones, and qualitative notes in your voice, ready to send via email. Investor updates take a Sunday afternoon and get skipped if late. This produces a draft in 5 minutes that sounds like you wrote it.

This is the whole blueprint, nothing held back: the model, the tools, the exact prompt, the source on disk, and the setup. Everything you need to run Investor Update Drafter yourself is on this page, and it deploys in an afternoon.

What it does

Investor Update Drafter handles the work end to end:

  • Pull period metrics from Stripe, warehouse, or a spreadsheet
  • Convert founder shorthand on wins, lows, and asks into a structured update
  • Draft TL;DR + Metrics + Wins + Lows + Asks + Forward in 5 minutes
  • Match the founder's voice from past updates so it doesn't read as templated

The anatomy

An agent is a composition, not a prompt: a model, the tools it is allowed to call, the integrations that give those tools reach, and the rules that keep it honest. Here is Investor Update Drafter on one card.

Investor Update Drafterblueprint
Model
claude-sonnet-4-6
Tools
ingest_metricsgather_qualitativedraft_updatematch_voice
Integrations
Zod
Guardrails
lead with tl;dr in 3 bullets max. investors skim.; never sandbag bad metrics. state the number, then the why, then the action

The instructions

Every run is governed by this prompt. It is short on purpose: enough to make Investor Update Drafter reliable, not so much that it can misread itself. Copy it as a starting point for any agent you build.

Investor Update Drafter
You are a founder's chief of staff. You ghostwrite investor updates that sound like the founder, not a template. WORKFLOW: 1. Call ingest_metrics from the user's revenue, growth, and ops dashboards. 2. Call gather_qualitative for wins, lows, and asks the founder typed in plain English. 3. Call draft_update structured as: TL;DR · Metrics · Wins · Lows · Asks · Forward. 4. Call match_voice against past updates to keep tone consistent. RULES: - Lead with TL;DR in 3 bullets max. Investors skim. - Never sandbag bad metrics. State the number, then the why, then the action. - Asks must be specific (intro to X, hire role Y, advice on Z) — never "any thoughts welcome". - Match founder voice: if they swear in past updates, swear; if not, don't.

The source, on disk

Three files carry the whole agent: the definition with its tools, the environment it expects, and the setup. Walk them.

investor-update-drafter/investor-update-drafter.ts1.3 KB
1import { agent, tool } from "@agent-sdk"
2import { z } from "zod"
3
4const metricsInput = z.object({
5 period: z.string(),
6 source: z.enum(["stripe", "warehouse", "spreadsheet"]).default("stripe"),
7})
8
9export default agent({
10 model: "claude-sonnet-4-6",
11 permissionMode: "bypassPermissions",
12 maxTurns: 14,
13 systemPrompt: `...`, // see System Prompt section above
14 tools: {
15 ingest_metrics: tool({
16 description: "Pull metrics for the period",
17 inputSchema: metricsInput,
18 execute: async ({ period, source }) => { /* dashboard pull */ },
19 }),
20 gather_qualitative: tool({
21 description: "Read founder's plain-language notes for wins/lows/asks",
22 inputSchema: z.object({ notes: z.string() }),
23 execute: async ({ notes }) => { /* parsed */ },
24 }),
25 draft_update: tool({
26 description: "Assemble update with TL;DR, metrics, wins, lows, asks, forward",
27 inputSchema: z.object({ metrics: z.any(), notes: z.any() }),
28 execute: async ({ metrics, notes }) => { /* markdown email */ },
29 }),
30 match_voice: tool({
31 description: "Calibrate tone against past updates",
32 inputSchema: z.object({ draft: z.string(), pastUpdates: z.array(z.string()) }),
33 execute: async ({ draft, pastUpdates }) => { /* tuned draft */ },
34 }),
35 },
36})

The business case

If you run an agency, Investor Update Drafter is also a product. It sells into funded founders, vcs, chiefs of staff, and the numbers work at very small scale.

$2,000

setup you can charge

$300/mo

monthly retainer

4

jobs off your plate

Ship it

The whole install is a handful of commands and the keys from the env file. Run the list, then point Investor Update Drafter at real work.

Deploy checklist

0 of 4

That is the entire blueprint: one model, 4 tools, and a prompt. Built by hand it costs you an afternoon. Inside Ultron it costs you a sentence, because you can build this exact agent in the workforce and watch it run before you commit to anything.

Build Investor Update Drafter in Ultron

1
Describe what you want

Start from this blueprint or your own words. Ultron reads the intent and picks the tools.

2
It builds the agent

The model, the tools, the prompt, the console. Assembled in front of you, nothing to wire.

3
Watch it run

Test it live in the chat, then put it to work. You review what it does, it does the rest.

Keep reading