Case study · Does AI Know My Business?
Building an AI visibility checker for local businesses
More people ask AI assistants for a roofer or a bakery. I built a free tool that shows a local business owner whether AI recommends them, why a competitor gets named instead, and exactly what to fix.
1. The problem
Local business owners don't know whether AI assistants recommend them. They can't see what the AI searched, what it read, or why someone else showed up first. Most "AI SEO" advice is vague, so I wanted a check that shows its work.
2. How it works
An owner enters their business name, city, and trade. An AI agent then runs four steps that stream onto the screen as they happen:
- Asks AI like a customer. Google Gemini with Google Search grounding answers a question like "Who are the best roofers in Chicago, IL?" The app parses the list, fuzzy-matches the business name, and records its rank, the competitors named, the searches run, and the sources read.
- Fact-checks what AI knows. It asks Gemini for the business's address, phone, website, hours, and reviews, and compares them with the business's own website.
- Inspects the website with plain code, no AI. HTTPS, mobile viewport, title and meta tags, schema.org LocalBusiness markup, robots.txt rules for AI crawlers (GPTBot, Google-Extended, PerplexityBot, ClaudeBot and others), sitemap, response time, and tap-to-call.
- Scores and plans. A 100-point rubric that is shown to the user, a prioritized fix plan, and ready-to-paste LocalBusiness code. One short Gemini call writes the plain-English summary.
3. What I built
- Static HTML, CSS, and vanilla JavaScript with no framework or web fonts, so it loads fast on phones.
- One Vercel Function that streams each step to the browser as it runs.
- Gemini's REST API with the Google Search tool, called directly with no SDK, and a model fallback list.
- An English/Spanish toggle, shareable report links, print-to-PDF, and a clearly labeled example report.
- An optional "email me this report" step that hands the lead to me, with a text-or-email fallback so a follow-up never depends on the database.
- An automated test suite covering the analysis, scoring, website check, sharing, leads, and SEO.
4. Honest lessons
- Make AI show its work. A bare score isn't believable. Streaming the real searches and sources, and showing the rubric, is what makes the result trustworthy.
- Don't use AI where code is better. The website check is plain code. It's cheaper, faster, and gives the same answer every time.
- Free tools need cost limits from day one. Checks are capped per visitor and per day, results are cached for 7 days, and each check makes 3 model calls, which keeps Google Search grounding inside the free 5,000 searches a month.
- Fetching someone else's website is a security risk. The server only fetches public addresses, with size and time limits.
- Plan for missing pieces. Without a database, the app still works in memory, and sharing falls back to putting the report in the link itself.
5. Results so far
10+ AI visibility checks completed, and it has already captured its first lead. It is small and early, and I'm reporting it as it is.