A ten-owner group was building a 43,000 square foot indoor sports complex in a midwestern US metro. They had held one 48-minute intro call. There was no website, no contact list, no analytics, and a follow-up meeting already on the calendar. One working day later, the material for that meeting existed: an audit deck where every line traces to evidence, a nine-sheet buyer research workbook, and 23 fully editable Figma email designs wearing the company's own crest. This is the engagement that produced it, including the four failed iterations it took to get the designs right.
At a glance
- Client: A ten-owner group building a 43,000 square foot indoor sports complex in a midwestern US metro, months from opening, with no website, no contact list, and no tooling in place.
- Challenge: Turn one call transcript and a one-page qualification document into meeting-ready evidence, strategy, and finished mockups before a follow-up call in the same week.
- Approach: An agent pipeline built on Claude, deterministic Python fill scripts with hard validation gates, image generation, and a scripted native Figma builder.
- Result: A 10-slide sourced audit deck, a 9-sheet workbook specifying 23 sends across 7 automated flows, and 23 editable Figma designs, delivered in one working day.
The context
I run an agent pipeline that turns discovery material into client-ready deliverables: an audit engine that fills a fixed deck template under strict validation, and a design engine that builds emails natively in Figma. In July 2026 I pointed both at the hardest input the pipeline had seen: a company that did not exist online yet.
The prospect was a partnership of five local families constructing an indoor sports facility, a 195 by 135 foot turf field, six batting cages, a pitching lab, a weight room, and two golf simulators under one roof. Their only digital asset was a parked domain. My role was to walk into the follow-up meeting with their reality on the slides, not a generic capability deck. The window was days, so the practical budget was one working day.
The problem and constraints
The problem was asymmetric: real demand, zero capture. A local newspaper had covered the groundbreaking, area organizations were approaching the owners directly, and none of that interest landed anywhere because there was no signup path, no list, and no follow-up system. In their market, indoor training time for the cold months books out by fall, so the reservation window was closing while nothing recorded who wanted in.
The constraints shaped the whole build. Standard audit tooling starts by crawling a website, and there was no website; every finding had to come from the transcript, the qualification document, live DNS and web checks, or third-party research with resolving sources. The room would hold up to ten owners who know their business cold, so any invented number would be caught in seconds. And the only visual asset was a low-resolution crest image posted on social media.
What was in place before, and why it fell short
On the prospect's side, nothing was in place, which is exactly the finding: interest arrived by word of mouth and evaporated unrecorded. On my side, the standard alternative was the one most service firms bring to a second call: a templated deck, stock examples, and promises about what would be built after signing. That approach survives because producing real evidence, a specified program, and finished mockups usually takes a strategist, a designer, and an email developer several weeks. The engagement tested whether a pipeline could compress that into a day without inventing anything.
What I built
The pipeline runs as a chain of gates, each producing a file the next gate consumes, with deterministic scripts doing everything a model should not be trusted to do.
Evidence before claims
The transcript and qualification document were parsed into a typed evidence file: 21 entries, each tagged with its source and confidence. Absence claims carry their observation basis, so the deck can say what does not exist and prove how that was checked. Third-party grounding came from research with resolving sources, including the Aspen Institute's survey of family spending on youth sports, which found families spend an average of $1,016 a year on a child's primary sport, up 46% in five years, and a PlayMetrics study of 507 club-sport parents in which 82% hold high expectations for booking and communication technology while only 44% are very satisfied with it. Those two numbers alone justified the core recommendation: capture demand now, book online from day one.
A deck that refuses to lie
The audit deck is a fixed template whose entire variable surface is 23 tokens. A manifest check compares template and contract before any fill and halts on drift. The fill script, built on python-pptx, rejects any line without a source tag and any line over its character budget, which is measured from the template's real geometry: finding bullets cap at 52 characters, the executive summary at 45 words. The run ends with a leftover-token scan; anything unfilled is a hard failure. The final deck shipped with 23 of 23 tokens filled and zero leftovers.
A workbook that specifies, not gestures
A nine-sheet workbook, built with openpyxl, carries the strategy: an owner lens plus three buyer personas, five-stage journeys per persona, and 7 automated flows containing 19 sends, each specified down to trigger, day offset, subject line, preview text, body brief, and call to action, plus 4 monthly newsletter editions and a bank of 27 subject lines. This file later became a binding contract for the design stage, which mattered more than I expected.
A visual identity from one low-resolution image
The crest on social media defined the palette: deep navy, red, white. Fifty images were generated with OpenAI's image API in one graded look, dark navy with a single red rim light, so every design lives in one color world. The crest itself was recreated by the image model from a precise description, then cut to transparency programmatically with sharp using an edge flood fill, so the interior white lettering survived. The result verified pixel-clean at full zoom on the navy ground.
Native Figma designs, not screenshots
Each email was assembled through the Figma plugin API as real auto-layout frames: editable text layers, buttons as objects, images as fills, every module a named layer. Every send follows a fixed anatomy: a core section with the message and call to action layered directly over imagery, then two value blocks, each carrying a different piece of substance from the discovery material with its own button. Copy was injected verbatim from the workbook, with each frame's subject line and preview text pinned above it for review.
What was tricky, and what did not work
It took four full design iterations, 107 built frames, to land 23 validated designs. Each failure became a permanent gate.
- Thin defaults. Left alone, the model produced one-image-one-button layouts, the template every inbox ignores. Fix: a minimum anatomy contract, core section plus two value blocks, enforced before any build.
- Dead composition. The second pass stacked text panels above empty image bands, wasting a full screen per email. Fix: imagery is a layer, and the message is written on top of it, with a gradient veil guaranteeing legibility.
- Copy drift. The third pass regenerated copy from memory instead of using the specified program, so different sends started saying the same thing. Fix: the workbook became a verbatim copy contract; the model assembles, it does not rewrite.
- Validation that cannot see. Thumbnail-scale screenshots passed a visibly broken logo lockup. Fix: element-level checks at high zoom joined the batch composites, and a first attempt to hand-draw the crest as vectors was abandoned for the image-model recreation described above.
The honest ratio is worth stating: roughly four frames built for every one shipped. The gates are what make the next run cheap, because each one now fails fast instead of failing in front of a reviewer.
The outcome
The program has not sent yet, the facility is still under construction, so no performance figures exist and none are claimed. What the day produced is meeting-readiness, and that is measurable:
| Input | Output, one working day |
|---|---|
| One 48-minute call transcript | 10-slide audit deck, all 23 variable tokens filled and source-tagged, zero leftovers |
| One-page qualification document | 9-sheet workbook: 3 personas, journeys, 7 flows, 23 sends fully specified, 27 subject lines |
| One low-resolution crest image | Recreated transparent logo plus 50 generated images in one graded color world |
| No website, no list, no tooling | 23 editable native Figma designs, every layer a real object a designer can change |
The difference walking into that follow-up meeting is the difference between claiming capability and demonstrating it. The owners see their winter booking window quantified from third-party data, their buyers described more precisely than they have described them themselves, and their own crest on finished designs they can edit. Work that conventionally spans three roles and several weeks compressed into a day, with every claim traceable and nothing fabricated. That is the pipeline's actual product: evidence, specification, and proof, ready before the second conversation.