Product Architecture Agentic AI Human-in-the-Loop

Track
Intel

An agentic AI pipeline that transforms a dense horse racing program into a clean expert pick sheet, delivered in three languages.

7
Steps
3
Languages
1
Human Gate
Daily Racing Form - Raw Data
Track Intel
★ Race 6 — Best Bet
5½ Furlongs · Alw 5000s
$14,500
2
Thirsty John
TR: J. Poole — JK: A. Bracho
5/2
10
Boudin
TR: J. Bernardini — JK: Y. Aviles
12/1
6
Poseidon's Son
TR: J. Bernardini — JK: E. Barbaran
9/2
4
Tidal Current
TR: J. Bernardini — JK: L. Negron
8/1
Brad's read
Thirsty John is 5 for 7 at Mountaineer. This is his living room. Posted a 95 Beyer here two starts ago. Wire to wire.
Project Context

From domain insight
to working system

My client came to me wanting a one sheet for bettors. When we mapped out every step from raw racing data to finished picks, it became clear this was a distribution system, not a design job. The pipeline pulls structured data from a dense racing PDF, formats it into clean, plain-language picks, and stages it for delivery. The single human step exists because race conditions change on the day, and nothing goes out without approval. His credibility is on the line every race day. That gate isn't a workaround. It's the product.

Role
Lead AI Product Designer
Product architecture, system design, UX, visual design
Stack
Python · Anthropic · DeepL
GitHub Actions · Railway · SendGrid
Model
Agentic Pipeline
PDF ingest to multilingual delivery with one human gate
Domain
Horse Racing · International Markets
ET · BRT · CET distribution windows
Problem

The data is
the barrier

A raw racing data PDF is a masterpiece of compression. Decades of convention packed into columns of abbreviations, numbers, and codes that mean something specific to someone who spent years learning to read them. For everyone else, it’s noise.

The horse racing audience has migrated online and gone international. A significant following in Latin America and Europe wants to participate, but the information infrastructure still assumes an American expert in the grandstand. The problem isn’t that the analysis is hard. It’s that the starting point requires fluency most bettors don’t have and can’t easily acquire.

The document
Expert-coded. Built for insiders.
Daily Racing Form PDFs assume literacy in speed figures, class ratings, trainer codes, and form cycles. Years of convention with no on-ramp for casual or international bettors.
The audience
Online, international, underserved.
US casual bettors, Latin American fans with growing digital access, European markets: all willing to pay, none able to parse the source document.
The expert
Can read it. Can’t scale distribution.
The expert has the picks and the voice. What he doesn’t have is infrastructure to reach an international audience with a polished, timely product every racing day.
Reframe

Not a data problem.
A translation problem.

The racing form has the right information. The pipeline doesn’t need to create insight. It needs to surface it. That reframe changes everything about how the system is designed.

Before
What most tools do
Reproduce the raw data in a different format
Assume the user can interpret what they’re shown
Deliver in one language, one timezone
Require the expert to build the output manually
Fully automate or fully manual. No middle path
Track Intel
What this system does
Delivers track intelligence, not raw data
Delivers a decision, not a dataset
Three languages, three timezone-targeted sends per day
Expert approves; the system builds, translates, and sends
One deliberate human gate before any distribution
System Design

Seven steps.
One deliberate pause.

Designed and built in Python, the pipeline is fully agentic from ingest through staging. The single non-automated step isn’t an oversight; it’s the most important design decision in the system.

01
PDF Ingest
Python · pdfplumberStructured extraction
02
Parse & Rank
AI agentExpert logic encoded
03
Generate Layout
Template engineConfidence tiering
04
Expert Review & Release
The expert receives a formatted preview. The expert can approve, flag a change, or hold. Nothing sends without his release. This step costs him almost nothing on a clean day but catches everything that would cost him credibility if it went out wrong.
Human-in-the-loop: by design
Human gate ✦
05
Translation
Spanish · Portuguese · EnglishDomain-aware NLP
06
Timezone Scheduling
ET · BRT · CETMarket-timed delivery
07
Distribution
Email deliveryCo-brandedSegmented
Key Decisions

Why each choice
was deliberate

Decision 01
Human gate over full automation
Full automation was technically feasible. It wasn’t right. The expert’s value is his judgment. A fully automated sheet is a product without an author. The one-click approval preserves his voice and catches a scratch before it becomes an embarrassment. The gate isn’t a bottleneck; it’s a feature.
Decision 02
One pipeline, three languages
The picks are the same. The analysis is the same. What changes is language and delivery time. One pipeline, three outputs. The insight scales; the labor doesn’t.
Decision 03
Layout as decision, not education
The racing form educates. Track Intel orients. The layout strips everything that isn’t a decision: race number, pick, plain-language rationale. The expert’s judgment surfaces as signal, not data.

“Good agentic design isn’t about automating everything. It’s about knowing exactly which step deserves a human, and making that human’s job as effortless as possible.”

Output Design

Confidence in
under two minutes

The Track Intel sheet is designed around one constraint: a subscriber should be able to open it, scan it, and feel oriented before coffee goes cold. Every element either earns its place or gets cut.

Before and after: Daily Racing Form complexity transformed into Track Intel clarity
Outcome & Opportunity

A product that
didn’t exist.

The pipeline architecture doesn’t care which racetrack it’s producing for. Any track with a racing form and an expert willing to put their name on the picks can run this system. Track Intel is a product. It’s also a platform.

The design work was in knowing where not to automate. That’s the whole job.