{"slug": "an-outreach-kit-for-solo-founders-whose-drafts-can-t-hallucinate", "title": "An outreach kit for solo founders whose drafts can't hallucinate", "summary": "A solo founder has built a self-hosted outreach kit that enforces factual discipline by blocking generic openers and hallucinated metrics. The system uses five Claude skills, a canonical state file template, and a Python inbox agent that monitors Gmail, GitHub, and dev.to for replies. The kit costs $5 per month and is designed for founders who want institutional sales rigor without the headcount.", "body_md": "Short version: five Claude skills, a canonical state file template, and a Python inbox agent that watches Gmail, GitHub, and dev.to for replies. End-to-end pipeline from discovery through logged sends. Self-hosted. $5/mo subscription.\n\nThe thing that's different about this kit isn't the automation. It's the discipline the automation enforces.\n\nThe drafting skill asks for the personalization detail before it'll write the message. If the detail is vague, it asks again. Generic openers are blocked at the input layer.\n\n```\nRequired inputs:\n- candidate_name\n- product_summary\n- specific_detail  <- the verified hook from the actual source\n- channel\n- send_type (FIRST_CONTACT or CHASE_1)\n```\n\nNo specific_detail → no draft. The skill won't fabricate one.\n\nYou write your allowed claims and forbidden claims patterns at setup. The drafter scans every output against them. The first hallucinated metric flags the whole draft and proposes a fix using only allowed claims.\n\nThis is Claude's hallucination guardrail. The LLM is the author of every draft and could fabricate metrics that sound plausible. The filter prevents that. Drafts can only use facts you've verified.\n\nExample output when the filter trips:\n\n```\n=== BLUFF FILTER REPORT ===\nStatus: FLAGGED\n\nViolation: \"we've seen agents pay $X per query for this kind of data\"\n\nRules triggered:\n  - Forbidden phrase: \"we've seen\" (implies customer data you don't have)\n  - Fabricated price: $X is not in allowed_claims\n  - Fabricated volume: implies a customer base you aren't operating\n\nProposed replacement (uses only allowed claims):\n  \"[your verified price] — volume's still low, but the rails work\"\n```\n\nThe replacement is shorter and weaker-sounding than the bluff. That's the point. A bluff that breaks your credibility costs more than a true claim that lands flat.\n\nThe state file (`validation_state.md`\n\n) is append-only. Structured sections: Sent Log, Active Conversations, Pattern Notes, Closed-loop. Every send, reply, chase, and close-loop is mediated by a script that verifies the file grew the way it should and aborts before writing if anything looks wrong.\n\nBuilt after watching a naive LLM `Edit`\n\nsilently truncate the trailing section of a long markdown file. Never again.\n\nWatches Gmail (via OAuth send), GitHub (via PAT), and dev.to (via API key). Polls each channel on a configurable cadence. New reply comes in → drafts a response → pushes to Telegram with Send/Edit/Skip buttons.\n\nYou tap Send: the reply goes out through the channel's real API.\n\nYou tap Edit: type your version, it sends as-is.\n\nYou tap Skip: nothing happens.\n\nTelegram is the v1 approval surface. The architecture is built to accept other surfaces.\n\nThis is not Apollo. There is no contact database. There is no \"give me 50 founders matching X.\" Discovery runs against live public posts at runtime, not a cached DB.\n\nIt is not marketing automation. It does not blast. It does not \"scale personalization\" by templating someone's first name.\n\nIf you're a solo founder running cold outreach to other founders or operators and you want the discipline of an institutional sales motion without the institutional headcount, this is for you.\n\nIf you want to send 1000 emails a day to a scraped list, this kit will actively work against you.\n\n**$5.00 USD per month.** Founding 100 subscribers are locked at $5/mo for life as long as their subscription stays active.\n\nEach subsequent 100 active subscribers, the price goes up $5/mo for new sign-ups. Next cohort $10, then $15, etc. Founding members keep their lock.\n\n**No refunds.** Once you have access to the code, you have access. We can't un-show it.\n\nFull setup walkthrough lives in the repo's README.\n\nIf you try it and have thoughts, tell me. Especially if there's a feature you'd pay more for — that's the signal I'm watching for in the first 30 days.", "url": "https://wpnews.pro/news/an-outreach-kit-for-solo-founders-whose-drafts-can-t-hallucinate", "canonical_source": "https://dev.to/godspeed2077/an-outreach-kit-for-solo-founders-whose-drafts-cant-hallucinate-d01", "published_at": "2026-05-25 15:53:31+00:00", "updated_at": "2026-05-25 16:03:43.010778+00:00", "lang": "en", "topics": ["ai-tools", "ai-startups", "ai-products", "generative-ai", "large-language-models"], "entities": ["Claude", "Gmail", "GitHub", "dev.to", "Python"], "alternates": {"html": "https://wpnews.pro/news/an-outreach-kit-for-solo-founders-whose-drafts-can-t-hallucinate", "markdown": "https://wpnews.pro/news/an-outreach-kit-for-solo-founders-whose-drafts-can-t-hallucinate.md", "text": "https://wpnews.pro/news/an-outreach-kit-for-solo-founders-whose-drafts-can-t-hallucinate.txt", "jsonld": "https://wpnews.pro/news/an-outreach-kit-for-solo-founders-whose-drafts-can-t-hallucinate.jsonld"}}