The problem. As my team lead put it, most product teams have people who are dedicated to managing the conversion funnel and improving the onboarding experience. We didn't, and leadership was paying more and more attention to our numbers. Our data lived in PostHog, but getting a real answer out of it took time and SQL skills that nobody on the product team had to spare. Problems in the funnel tended to surface at the weekly review, days after they started costing us orders.

What I did. I took the gap as a challenge: what could I actually make possible with Claude? I built a small growth team out of five AI agents on Claude Code, each with a role a real growth team would have:

Each agent was equipped with the tools and context to perform functions related to their expertise.

The heart of the build is a knowledge base I maintain:

As we've built variations, custom logic, and addressed issues and enhancements, it has become too much for an agent to understand in a single session. The agents all work from that living shared context, so instead of a generic chatbot guessing, anyone can ask a real question about our product and get a fast, grounded answer. I have no formal SQL background, but with the help of the data engineer agent, I pull insights from our data that PostHog's own interface can't communicate.

Because this is healthcare data, I built the guardrails in from day one. Everything the team saves is aggregate, a check blocks anything that looks like patient information from ever being surfaced in a session or committed, and any write outside the repo (a ticket, a Slack post) waits for a human "yes".

The impact. The team has been running since May, with more than 200 reports on file from daily monitoring and custom-built investigations. This team has fundamentally changed how fast we can see and act on what's happening in the product.

An early-warning system. Every morning, a Claude Code routine checks each step of the funnel against its own history and tracks down anything that drifts. It uses stacked alarm thresholds to ensure that a flagged concern is beyond noise and impactful to Teal's bottom line. That's how we pinned down a payment step that had quietly ballooned to a 22-second load after a routine code change. And when the fix is small, I don't just flag it, I ship it myself, opening a PR against our patient portal for engineering to review and merge, keeping them focused on advancing product initiatives.

A single source of truth. The automated polling's findings publish to a live dashboard that's now where the team goes for the state of the funnel, active experiments, and answering curiosities. Every flagged issue is tracked from first signal to fix to confirming the fix during the weeks following. When someone asks "what happened to conversion last week?", the answer is a link to live data with elaboration in context.

Leveling up the team. The whole setup travels with the repo. When I found my manager getting confident but misleading responses when asking her Claude product questions, I recognized there was an opportunity to make this knowledge base a shared resource. I turned the team into a private git repo that my teammates can now point their own Claude at to get the latest context and findings. It's been great helping level up the team's AI usage. As one teammate put it, "You are crushing it w Claude, makes work fun."