## Inspiration

iCo Dental Group is a real dental lab in New Jersey serving 500+ practices. Their sales reps visit dentist offices every day, leaving brochures and price quotes. But here's what they don't know: after the sales rep leaves, the dentist picks up their phone and asks AI — "Is iCo Dental Group any good?" — and AI responds: "I don't have specific information about iCo Dental Group."

Trust destroyed in 10 seconds. Brochure goes in the trash. Five years of marketing, invisible to AI.

This is the GEO (Generative Engine Optimization) problem — the next evolution of SEO. 24+ companies have raised $200M+ globally to solve it. We built The AI Shelf to make this invisible crisis visible.

## What it does

Think of AI as a store shelf. When someone asks ChatGPT "best dental lab in NJ", the brands it mentions are on that shelf. If you're not mentioned — you don't exist.

The AI Shelf runs a 6-step analysis pipeline:

  1. Query Generation — Claude generates 6 high-intent queries (3 discovery + 3 verification) with intent analysis
  2. AI Responses — Claude answers each query; JS string matching detects brand mentions, sentiment, and competitors
  3. Web Reality Check — Tavily searches the same queries to compare AI answers vs real web data
  4. Scoring — Calculates Discovery Score (can AI find you?) + Trust Score (can AI vouch for you?) + 5-dimension radar
  5. Gap Analysis — Tavily searches brand + competitor web presence; Claude identifies specific gaps with evidence
  6. Action Plan — Claude generates prioritized actions with auto-generated content (Schema.org code, Wikipedia drafts)

Live result for iCo Dental Group: 34/100 (Niche Player) — 0% Discovery Score, 67% Trust Score. AI knows them but won't recommend them.

## How we built it

  • Frontend: Next.js 15 App Router + TypeScript + Tailwind CSS + shadcn/ui + Recharts
  • Backend: Single SSE streaming API route (/api/analyze) orchestrating all 6 steps
  • AI: Claude Haiku 4.5 via Vercel AI SDK (generateText + generateObject with Zod schemas)
  • Search: Tavily API for web reality checks and brand presence analysis (12 calls per analysis)
  • Deployment: Vercel (Node.js runtime, 60s max duration)
  • Architecture: Steps 2+3 run in parallel for speed; SSE streams results to frontend as each step completes

## Challenges we faced

  • Balancing cost vs quality: Used JS string matching for brand mention analysis instead of extra Claude calls — saves ~$0.03 per analysis and 10+ seconds of latency
  • 60-second timeout: The full 6-step pipeline with 6 Claude calls + 12 Tavily calls had to fit within Vercel's serverless function limit. Parallel execution of Steps 2+3 was critical
  • Dual-scenario design: Most GEO tools only measure discovery ("best X in Y"). We added verification queries ("Is brand X good?") because that's where real sales conversions are lost — a unique insight from working with iCo's actual sales team

## What we learned

  • Discovery Score 0% but Trust Score 67% — AI knows iCo exists but never recommends them proactively. This gap is the core insight that makes GEO different from SEO
  • Brand name disambiguation matters: "iCo" matches unrelated entities (ICO, ICOI), confusing AI systems
  • Structured data (Schema.org) and Wikipedia presence are disproportionately important for AI visibility
  • SSE streaming dramatically improves UX for multi-step AI pipelines — users see progress instead of waiting 30 seconds for a blank page

## What's next

  • Multi-LLM comparison (OpenAI, Gemini, Perplexity) — Cross-Model Disagreement Map
  • Time-series tracking — run weekly, measure improvement over time
  • Industry templates — pre-built query sets for dental, legal, SaaS, restaurants
  • Auto-execution — not just recommendations, but actually generating and publishing the content

Built With

  • claude-api
  • next.js
  • recharts
  • shadcn/ui
  • tailwind-css
  • tavily-api
  • typescript
  • vercel-ai-sdk
  • zod
Share this project:

Updates