How We Built Ezeo: The Tool We Wished Existed
We needed a way to track how brands appear in AI search results. Nothing existed, so we built it. Here's the story of Ezeo, from a hacky script to a platform tracking 10 projects across 6 AI engines.


How We Built Ezeo: The Tool We Wished Existed
In late 2025, we had a problem. A client asked us a simple question: "Are we showing up when people ask ChatGPT about our products?"
We had no idea.
We could tell them their Google rankings. We could show them their organic traffic trends. We could break down their conversion rates by page. But we couldn't answer the most basic question about AI search visibility.
So we opened a terminal and started writing code.
The Problem Nobody Was Solving
The shift was obvious to anyone paying attention. AI search was growing fast. ChatGPT had hundreds of millions of users. Perplexity was gaining traction with power users. Google was rolling out AI Overviews on more and more queries. Bing had Copilot. Claude had search capabilities.
But the tooling hadn't caught up. Google Search Console doesn't track AI citations. Ahrefs and SEMrush are built for traditional search. There was no equivalent of "check your rankings" for AI search.
Some tools were starting to appear, but they tracked one platform at a time, or they were enterprise-priced and built for big brands. Nothing existed for the Shopify store owner doing $50K-$500K in monthly revenue who wanted to know: "Is ChatGPT recommending my products?"
That was our market.
Version 1: A Python Script
The first version of Ezeo was a Python script that did one thing: it queried ChatGPT, Perplexity, and Claude with a list of keywords, then checked if our client's domain appeared in the response.
It ran on a cron job. It dumped results into a CSV. It was ugly. It worked.
Within a week, we knew this was valuable. We could see that our clients' competitors were getting cited by AI search engines while our clients were invisible. We could also see exactly why: the competitors had better structured data, more specific content, and stronger third-party signals.
The Stack Decision
We needed to turn this script into something our team and clients could use. The stack was straightforward:
- Frontend: React with TypeScript and Vite (we later added i18n for EN/ES)
- Backend: Supabase (PostgreSQL, Edge Functions, Auth)
- Data: DataForSEO for traditional SEO metrics, custom scrapers for AI visibility
- Hosting: Vercel for the frontend, Supabase for everything else
We picked Supabase because we were already using it for other projects and because it gave us a real PostgreSQL database (not a NoSQL document store) with row-level security baked in. For a data-heavy analytics platform, that matters.
TypeScript was non-negotiable. When you're dealing with analytics data from six different AI platforms, each with its own response format, type safety isn't a luxury.
What Ezeo Tracks Today
Ezeo has evolved from that Python script into a platform with 76 edge functions, 10,500+ tests, and 10 active client projects. Here's what it does:
AI Visibility Monitoring
We check brand citations across six platforms: ChatGPT, Perplexity, Claude, Google AI Overviews, Bing Copilot, and Gemini. For each keyword, we track whether the client's domain is cited, the citation position, what competitors are cited, and what content gets referenced.
Traditional SEO Tracking
Google Search Console integration for rankings, impressions, clicks. Google Analytics 4 for traffic. DataForSEO for keyword data and backlink monitoring. PageSpeed Insights for performance.
Reporting Engine
Monthly reports generated in our Maxxus v5 template format. Navy, cyan, and lime design system. Charts are SVGs, not screenshots. Every number traced to a source API.
CRO Auto-Audit
Automated CRO audits using Microsoft Clarity data (rage clicks, scroll depth, dead clicks) combined with Google Analytics conversion data. This is what caught the 786 rage clicks/day on our client's site.
Content Intelligence
We analyze which content types get the highest AI citation rates and recommend content strategies based on actual data. Blog posts with specific data points and comparison tables consistently outperform generic content.
What We Learned Building It
Ship Fast, Iterate Faster
The first version went to production in 3 days. It was rough. The dashboard was basic. But it worked, and clients loved it because nothing else existed.
We shipped improvements weekly. Some weeks we pushed 10+ PRs. We maintained a strict rule: feature branches only, CI must be green, no direct commits to main.
Test Everything
At 10,500+ tests and 70%+ coverage, our test suite catches bugs before they reach production. We learned this the hard way when an untested edge function corrupted data for three clients. After that, every edge function gets tests. Every API route gets tests. Every component gets tests.
Data Integrity Is Everything
The worst thing an analytics platform can do is show wrong numbers. We caught issues early: GA4 overcounting sessions due to a date range bug, GSC misattributing queries to wrong pages. We built verification scripts that cross-check API data before it enters the database.
We have a rule: never aggregate from Supabase for client reports. Always pull fresh from the source API. The database is for the dashboard. Reports use verified data.
Two Design Systems
Ezeo has two distinct visual identities. The in-app dashboard uses our Ezeo brand (yellow and black). Client-facing reports use the Maxxus v5 template (navy, cyan, lime). Mixing them up confused users. Keeping them separate made both better.
The Road Ahead
Ezeo started as an internal tool. It's becoming a product.
Our roadmap includes:
- Shopify App Store submission (OAuth flow is built, pending review)
- Conversational agent powered by Kimi K2.5 (ask questions about your data in natural language)
- Automated recommendations (the system tells you what to fix, not just what's broken)
- Multi-language support (EN/ES is live, more coming)
The vision is simple: every Shopify store owner should be able to check their AI visibility as easily as they check their Google rankings. Not just big brands. Not just agencies. Everyone.
Why We're Sharing This
We're sharing our story because we believe transparency builds trust. We're not a VC-backed startup with a marketing budget. We're a small team in Monterrey, Mexico that saw a problem and built something to solve it.
If you're running a Shopify store and want to check your AI visibility, try Ezeo. If you're an agency that wants to add GEO services, reach out. If you're a developer who wants to build something similar, we hope this story helps.
The tools that matter are the ones built by people who actually need them.
Jose Antonio Mijares is the founder of JAMAK AI and Ezeo. JAMAK is an AI-powered digital marketing agency. Ezeo tracks brand visibility across ChatGPT, Perplexity, Claude, Google AI Overviews, Bing Copilot, and Gemini.