Baldwin
Lead generation, site generation, and a hosted sales console — one system, run by one operator.
Finds local businesses with strong reviews and weak or missing websites, builds each one a personalized demo site with a fact-gated local LLM, and puts the whole board behind a CRM / dialer console with payment in-page. About 10,100 demo sites across 78 counties, built end-to-end in about five weeks.
Coverage

The problem
Small local businesses with excellent reviews often have a weak or nonexistent web presence. Reaching them is a volume problem: find the right ones, show each a concrete, personalized result rather than a pitch, and let a single person work the list by phone without drowning in tooling.
The system had to do the expensive part (generating a site per business) only where the cheap parts (does this lead have both site-pain and demand?) said it was worth it, and it had to run unattended so the operator's time went to conversations, not production.
What I built
- One system, three stages: lead generation, per-business site generation, and a hosted sales console where the operator works the board, takes notes, runs the call flow, captures intake, and takes payment in-page.
- Staged pipeline where cheap checks protect expensive work. A lead must score on both site-pain and demand before any site is generated; failing either gate stops the pipeline early.
- A local open-weight LLM acts as design director: it reads the harvested facts about a business and writes the headline and hook. Anything it produces that is not grounded in those facts falls back to a template. Hallucination is controlled by a fact gate, not by prompt hope. No paid API required.
- Edge-hosted console: CRM, notes, call flow, and intake in one place, with Stripe live for in-page payment. The console is not public: it carries live phone lines and the lead board.
- Outreach runs on voice and email. Business texting now requires carrier registration with biometric identity verification for the sender, so texting was designed out rather than bolted on.
- About 10,100 demo sites across 78 counties, more inventory than one operator can work by phone. Generation stopped there by decision; the bottleneck moved to sales, where it belongs.
- Built end-to-end in about five weeks, solo.
Architecture
- 1Ingest — harvest and normalize business facts
- 2Rank — a lead must score on both site-pain and demand; cheap gates first
- 3Fact-gated generate — local LLM writes headline / hook from harvested facts; ungrounded output falls back to a template
- 4Human console + payment — edge-hosted CRM, notes, call flow, intake, Stripe in-page
The fact gate
Every generated site is personalized, and personalization is exactly where a language model will invent things. The design director is only allowed to work from facts the pipeline already harvested about that business. Its output is checked against those facts; anything it cannot ground is discarded and a template takes over for that slot.
That turns hallucination from a prompt-quality problem into a system-design problem with a measurable failure mode: how often the gate fires, and what the fallback looks like when it does.
Decisions under constraint
Cost: no paid model API in the loop. Generation runs on local hardware, and the pipeline is resumable across long batch runs.
Capacity: the binding constraint is the operator, not the pipeline. At about 10,100 sites the inventory outran what one person can work by phone, so generation stopped and the effort moved to selling.
Channel: business texting now requires carrier registration with biometric identity verification for the sender. Rather than build outreach on a channel with that gate, Baldwin runs on voice and email.
What it demonstrates
Applied AI as a system rather than a model call: ingest, rank, generate under constraints, and hand the result to a human in a console that runs without the builder present.
The judgment calls are the point: where to gate, what to fall back to, when to stop building, and which channel to build on.
Stack
In production

More work