CASE STUDYEnzo.bike: Building an AI Coach That Can't Hurt You
How we solved the trust problem in AI personalization — by proving the AI is never in charge of safety.
DOMAINHealth & Fitness
ROLEProduct Strategy, UX, AI Architecture, Full Stack Development
STATUSLive with 200+ users and generating revenue
ARCHITECTUREGlass Box (Hybrid AI)
The Problem: AI That Could Get Someone Hurt
Personalized AI coaching is a compelling idea, until you realize the AI might tell someone to do something dangerous. In health and fitness, bad advice isn't just inconvenient. It can cause real physical injury.
We set out to answer a question that matters far beyond cycling: Can you build an AI system that delivers genuinely personalized guidance in a high-stakes domain — without creating liability?
The answer required us to confront two fundamental problems that plague most AI personalization. First, the Cold Start Problem: a new user walks in and the system knows nothing about them, so it defaults to generic advice. Second, and more critically, Domain Drift: left to its own devices, the AI hallucinates. In our early prototypes, the language model would prescribe exclusively high-intensity interval sessions or impose recovery windows that didn't match the athlete's actual fitness level. For a deconditioned rider, blindly following that kind of output is a trip to the emergency room.
The Turning Point
We realized the solution wasn't to make the AI smarter. It was to make the AI less powerful — to strip away its ability to make safety-critical decisions entirely, and hand that responsibility to deterministic logic that can be audited, tested, and proven.
Why this matters for your organizationThis architecture isn't specific to cycling. The same pattern (deterministic safety logic bracketing a generative AI layer) applies anywhere AI output carries risk: financial advice, medical guidance, legal document generation, compliance workflows, and education.
The training balance and why this workout cards, showing the data the AI is referencing to create the user's workoutThe Solution: A "Glass Box" Architecture
Most AI products treat the language model as the brain of the system. We treat it as the voice. The actual decisions about what's safe for a given user are made by rule-based logic that the AI never touches and can never override.
We call this a Glass Box architecture — not because the AI is transparent (it isn't; no LLM is), but because the safety logic around it is. You can open the box, read the rules, and verify they work. The AI is sandwiched between layers of deterministic constraints that act as guardrails before it generates a single word, and an audit layer that checks its output after.
Solving Cold Start: Personalization From Second One
Most AI products ask you to fill out a questionnaire or chat with a bot so the system can "get to know you." We bypassed that entirely.
Enzo connects directly to Strava's API and ingests years of a rider's historical activity data the moment they sign up. From that dataset, the system calculates a Resilience Score — a composite measure of training consistency, volume history, and recovery patterns. A rider with 15 years of consistent data is treated fundamentally differently than someone who started riding six months ago. The experienced rider gets tighter intensity targets and shorter recovery buffers; the newer rider gets wider safety margins.
The result: users receive genuinely personalized coaching within seconds of connecting their account. No onboarding quiz. No "the AI is learning about you" waiting period. Immediate value.
A personalized workout, created by Enzo, based on the user's fatigue state and stated goals.The Dual-Agent Feedback Loop
Generating a training plan is only half the problem. The other half is accountability — did the athlete actually do what was prescribed, and what should change next?
We separated this into two distinct AI agents. Agent A (The Coach) generates the workout plan based on the constraints from the safety gate. Agent B (The Auditor) waits for the athlete to complete the ride and upload their data, then strictly compares the prescribed workout (as structured JSON) against the actual ride telemetry. The result is an automated compliance engine: objective, immediate feedback on whether the athlete hit the physiological targets, without any human intervention required.
Empathetic Accountability: Reading the Room
In user testing, we discovered something critical: raw performance data is discouraging. When a user fails a hard interval session, showing them a graph of their failure increases churn. They don't need a metric telling them they failed. They need a coach telling them what to do next.
So we built a Sentiment Classification Layer into the feedback agent. Before the AI writes a single word, it classifies the user's performance into one of four states: Crushed It (celebratory), Solid (affirming), Building (process-focused), or Tough Day (supportive).
When the system detects a "Tough Day" — missed targets, a ride cut short — it triggers specific constraints on the AI's output. Technical corrections and "try harder" rhetoric are suppressed. Instead, the AI is directed toward consistency-focused messaging: acknowledging the effort of showing up, reinforcing that rest is part of the process, and setting up the next session as a fresh start.
This separation of Performance Data (the math) from Coaching Feedback (the relationship) is what transforms a bad workout from a reason to quit into a reason to come back tomorrow.
Enzo slider UI, the only control users interact with.The UX: Simplicity Over Complexity
The architecture behind Enzo is complex. The interface is not. We replaced all prompt engineering and configuration with a single input: a time slider. The user tells Enzo how many minutes they have. Everything else — intensity selection, zone allocation, recovery logic, template selection — happens behind the scenes.
After each ride, an automated email delivers a teaser of the feedback analysis, driving the user back to the platform to see the full breakdown. This creates a retention loop based on genuine insight rather than empty notifications.
Enzo.bike service blueprint. Click to view.25%
Landing page to account creation conversion — roughly 5–10× the typical SaaS benchmark90%
Landing page to account creation conversion — roughly 5–10× the typical SaaS benchmark0 sec
Time to first personalized workout — immediate upon Strava sync, no onboarding requiredWhat This Means for Your Organization
We built Enzo as a proving ground and a way to put our Glass Box architecture into production in a domain where the consequences of failure are immediate and physical. The same approach that prevents a dangerous workout prescription can prevent a hallucinated financial recommendation, an inaccurate medical summary, or a compliance violation in an automated workflow.
If your organization is exploring AI but concerned about trust, liability, or the "black box" problem, this is the architecture pattern that solves it — not by making the AI more trustworthy, but by making the system around it provably safe.