Skip to main content

Solo Founder OS agent #3 — draft personalized cold emails to investors (vc mode) or paying customers (customer mode), HITL queue + SMTP sender. Merged customer-outreach-agent in v0.9.0.

Project description

vc-outreach-agent

English | 中文

Solo Founder OS agent #3 — finds investors, drafts personalized cold emails per (investor, project) pair via Claude, manages replies via a markdown HITL queue. Never auto-sends. Always your edit, your hit-send.

License PyPI Python Model

Built by Alex Ji — solo founder shipping Orallexa and VibeXForge. Born from this thought:

I have 50 investor names in a spreadsheet. Hand-writing 50 personalized cold emails takes 10 hours. Sending the same templated email 50 times gets 0 replies. There has to be a better default.

What it does

investors.csv  +  project.yml
                  ↓
              Claude (Sonnet 4.6, prompt enforces no-bullshit constraints)
                  ↓
              queue/pending/<timestamp>-<project>-to-<investor>.md
                  ↓
        ┌────────────────────────────────┐
        │  Human review in Obsidian      │
        │  (edit / approve / reject)      │
        └────────────────────────────────┘
                  ↓
              queue/approved/  →  v0.2 SMTP sender
              queue/rejected/  →  archived, no send

The drafter prompt enforces these rules — anything else gets parsed-and-fallback to a template:

  1. Open with ONE specific line tying the investor's thesis to the project. No "I follow your work" filler.
  2. Sentences 2-3 lead with traction, not vision. One number, one shipped artifact, one demand signal.
  3. Sentence 4: ONE specific ask. "15-min call this week" — never "any thoughts you have".
  4. Body under 110 words. Subject under 8 words.
  5. Banned vocabulary (hard fail): synergy, disrupting, passionate, leverage, innovative, cutting-edge, revolutionize, "I'd love to", "circle back", "touch base", "thought leader", "in the AI space", "exciting opportunity".
  6. Tone: peer-to-peer, terse, no exclamation marks, no emojis.

Install

git clone https://github.com/alex-jb/vc-outreach-agent.git
cd vc-outreach-agent
pip install -e .
cp .env.example .env  # fill in ANTHROPIC_API_KEY

Usage

# 1. Describe your project once
cat > orallexa.yml <<EOF
name: Orallexa
one_liner: AI-powered quant trading agent
stage: pre-seed
raise_amount: \$500k
deck_url: https://orallexa.com/deck.pdf
founder_name: Alex Ji
founder_email: alex@orallexa.com
why_now: LLMs commoditize signal — execution is the moat now.
traction:
  - Sharpe 1.41 over 698 backtests
  - DSPy pipeline shipped 2026-04
EOF

# 2. List investors in a CSV (columns: name,email,firm,role,thesis_hint,linkedin,twitter,notes)
# (the thesis_hint column is the key one — that's what makes each email feel personalized)

# 3. Fan-draft into the queue
vc-outreach-agent draft --project orallexa.yml --investors investors.csv

# 4. Review at ~/.vc-outreach-agent/queue/pending/
#    Open each .md in Obsidian, edit if needed, then move to:
#      ../approved/  to send
#      ../rejected/  to skip

Why HITL is non-negotiable for cold outreach

Auto-send for cold investor emails is a category error. Two reasons:

  1. One bad email burns the relationship. Investors talk to each other. A rude or off-base auto-sent email kills not just this round but next round too.
  2. The 1% of personalization that actually matters comes from your context, not Claude's. "Hey, I noticed you led the Round at X — I'm going to need exactly that playbook." Claude can't know which investors you've met IRL.

v0.1 is queue-only. v0.2 will add SMTP send for approved drafts (still requires you to move the file). v0.5 may add auto-send for low-stakes follow-ups, but cold first emails always go through HITL.

Roadmap

  • v0.1 — Drafter (LLM + template fallback) · markdown HITL queue · CSV/YAML input · 14 tests
  • v0.2 — SMTP sender for queue/approved/ (Gmail/Postmark/Resend/Sendgrid) · dry-run mode · 25 tests
  • v0.3 — Investor enrichment (Twitter / LinkedIn pull) — auto-build thesis_hint
  • v0.4 — Multi-touch follow-ups (T+5d, T+12d) with declining conviction
  • v0.5 — Pipeline analytics: open rate / reply rate / meeting rate by thesis_hint pattern

MCP server (Claude Desktop / Cursor / Zed)

Draft an investor email inline from your AI assistant.

pip install 'vc-outreach-agent[mcp]'
{
  "mcpServers": {
    "vc-outreach": {
      "command": "vc-outreach-mcp",
      "env": { "ANTHROPIC_API_KEY": "..." }
    }
  }
}

Tools: draft_email(...) · list_pending() · list_approved()

License

MIT.

🧩 Part of the Solo Founder OS stack

A growing collection of MIT-licensed agents that share solo-founder-os as their base — cron, eval, reflexion, AnthropicClient, HITL queue, notifiers. Each agent is independently useful; together they cover the full one-person company workflow.

🌐 The whole stack is live in production at vibexforge.com.

Agent What it does
solo-founder-os The shared base lib (cron · eval · reflexion · skill library · DGM-lite). Every other agent depends on it.
build-quality-agent Pre-push Claude diff reviewer + local build runner — catches CI-killing changes before they ship.
customer-discovery-agent Reddit pain-point scraper + Claude clustering for product validation.
funnel-analytics-agent Daily founder brief + real-time PH-day alerts across 9 sources.
orallexa-marketing-agent AI marketing agent — submit project once, get platform-native posts for X / Reddit / HN / Dev.to / 小红书 + 7 more. Powers vibexforge.com.
cost-audit-agent Monthly bill audit across 6 providers (Vercel / Anthropic / OpenPanel / HyperDX / Supabase / GitHub Actions) with dollar-tagged waste findings.
bilingual-content-sync-agent EN ⇄ 中文 i18n diff + Claude translate + HITL apply. Batch API path @ 50% off.
customer-support-agent Triage user messages → auto-draft replies → HITL queue. Closes the L5 customer-support layer.
payments-agent Overdue-invoice reminder drafter. Stripe-shaped types + MockProvider fallback + hard money-safety prompt rules.

Each agent's own row is omitted from its README. Install whichever solve real problems for you — pip install <agent-name>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vc_outreach_agent-0.9.0.tar.gz (36.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vc_outreach_agent-0.9.0-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

Details for the file vc_outreach_agent-0.9.0.tar.gz.

File metadata

  • Download URL: vc_outreach_agent-0.9.0.tar.gz
  • Upload date:
  • Size: 36.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vc_outreach_agent-0.9.0.tar.gz
Algorithm Hash digest
SHA256 dc8c60264ff57589961597735c4bbe4cc22d1f1779bb3c17cae4683375d0dc3e
MD5 cc045037a542cf5e089226aebd6eb498
BLAKE2b-256 c168831bfdc3daf78aa7262d71d5255f0dbf0aa391b9d809bf437257f4db51ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for vc_outreach_agent-0.9.0.tar.gz:

Publisher: release.yml on alex-jb/vc-outreach-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vc_outreach_agent-0.9.0-py3-none-any.whl.

File metadata

File hashes

Hashes for vc_outreach_agent-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b0ada2bf9c5981b6ec6df6741b88d82eae0d5d3091b4aa60e4bde68aec6d8d18
MD5 3b912de4fa8a815532d95bf8aed669a9
BLAKE2b-256 e3b469a55835dcfd149fd0d2c5e7e8b05cfc931440f690f4a6792e63ea9dc2f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for vc_outreach_agent-0.9.0-py3-none-any.whl:

Publisher: release.yml on alex-jb/vc-outreach-agent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page