INVITOVATE
A calm pipeline for outreach. Your own AI finds the right people and drafts in your voice; you send only what you approve. Built solo, end to end, and live.
BRIEFING
Outreach breaks down long before you run out of people to contact. It breaks down when you lose the thread: who you already messaged, who replied, what you said, and which version of a message actually worked. Most people run it out of a spreadsheet and a dozen browser tabs, and the tracking, not the typing, is what quietly eats the day.
Invitovate is the fix I built for myself and turned into a product. It's one pipeline for the whole thing: your own AI finds the right people and drafts each message in your voice, you approve every send, and the tool remembers everything and tells you which approach is landing. It's a real multi-tenant SaaS on Postgres, live at invitovate.com, and I designed and shipped the whole stack solo.
ROLE / METHOD / OUTCOME
HOW IT WORKS
FIND & DRAFT
Your own AI finds the right people and writes each message in your voice, grounded in real details about who you're reaching. Nothing sends on its own, every draft waits for your approval, so the human always holds the send button.
TRACK & LEARN
Every contact moves through one pipeline backed by an append-only status log. Each message is tagged by variant, and accept rates are measured per variant, so you can see what's actually landing and do more of it instead of guessing.
Start fully manual, or hand the machine work to a background runner. Because every operation is a plain REST call, the same pipeline can be driven by the dashboard, by any agent or agentic IDE, or by a packaged app that just runs in the background. One dashboard, three ways to run it.
BUILT TO BE BORING
The interesting engineering here is the part you never notice: a pipeline that can't quietly get your data wrong. That's where the real work went.
- Multi-tenant from day one: per-user row-level security in Postgres, verified with a real second account, so no one ever sees another user's pipeline. Signup is invite-gated.
- A pipeline that can't lie: status lives in an append-only event log, and a database trigger blocks a contact from ever moving backwards in the funnel. The history is the truth, not a mutable cell.
- A quality gate on the words: every drafted message runs an executable lint pass (banned-phrase scan, per-batch quotas and budgets) before a human ever reads it. It's an eval gate for content, not a vibe check.
- Decisions from evidence: the tool measures per channel and per variant, so I retired the email channel on the data (it produced zero replies across 88 sends) instead of on a hunch.
- Tool-agnostic by design: every action is a REST call, so the whole pipeline is drivable by any agent, IDE, or a packaged background app. No lock-in to one client.
- The human holds the send button: the AI finds and drafts; a person approves everything that goes out. That guardrail is the product, not an afterthought.
THE STACK
STACK: Supabase (Postgres + RLS) · Vanilla JS · Vercel · Node runner · REST
Figures reflect the latest verified snapshot; the product is in active daily use.