Back to Home

GEO platform: visibility monitoring in 9 AI with Claude

Developer built a GEO platform for monitoring brand visibility in 9 neural networks using Claude Code. The system uses a daily pipeline on Trigger.dev, processes LLM responses to calculate SoV and other metrics. Full architecture with Agent Team and MCP.

Creating a GEO platform for 9 neural networks with one dev + Claude
Advertisement 728x90

Building a GEO Platform to Optimize Brand Visibility in Generative AI with Claude Code

A developer has built a comprehensive GEO (Generative Engine Optimization) platform to analyze and enhance brand visibility in responses from 9 AI models. The system collects data daily, processes LLM responses, calculates competitive metrics, and generates recommendations. The entire development was conducted through Claude Code sessions using Agent Team and MCP tools.

The platform automates brand visibility monitoring, identifies gaps compared to competitors, and produces weekly reports with change dynamics. The cost for 4 months of development on the Max plan for Claude was $800, with API expenses of $128 plus 4800 rubles for YandexGPT.

Development Pipeline with Claude Code

Development follows a cycle: RESEARCH β†’ PLAN β†’ IMPLEMENT β†’ MANUAL REVIEW β†’ CODE REVIEW. The main session involves multiple parallel Claude Code tabs. If issues arise, iteration returns to implementation.

Google AdInline article slot

Agent Team replaced manual sub-agent orchestration. For example, a QA agent tests, a UI fixer corrects, and they iterate until achieving acceptable results.

Key MCP tools for infrastructure access:

  • Supabase MCP: migrations, data processing, verification of AI model responses.
  • Trigger.dev MCP: launching background tasks, checking completion.
  • Next.js DevTools MCP: updates to Next.js 16.
  • Exa MCP: searching documentation and standards.
  • Sentry MCP: fixing real errors.
MAIN SESSION (multiple tabs)
    β”‚
    β–Ό
RESEARCH ──► PLAN ──► IMPLEMENT ──► MANUAL REVIEW ──► CODE REVIEW
                          β–²              β–Ό                 β”‚
                          └──── issues found β—„β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Ecosystem Architecture

                      User
                      β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”
                      β”‚         β”‚
               β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
               β”‚  Dashboard  β”‚  β”‚  Telegram   β”‚
               β”‚  Next.js 16 β”‚  β”‚  Bot grammY β”‚
               β””β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜
                  β”‚      β”‚             β”‚
      task launch β”‚  β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”
                  β”‚  β”‚  Self-hosted        β”‚
                  β”‚  β”‚  Supabase           β”‚
                  β”‚  β””β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚      β”‚         β”‚
            β”Œβ”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β” β”Œβ”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β”‚  Trigger.dev  β”œβ”€β–Ί Mastra           β”‚
            β”‚  background   β”‚ β”‚ reports + briefs +β”‚
            β”‚  tasks        β”‚ β”‚ article generationβ”‚
            β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                   β”‚
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚  9 AI Providers      β”‚
          β”‚  ChatGPT Β· Claude Β·  β”‚
          β”‚  Gemini Β· Grok Β·     β”‚
          β”‚  Perplexity Β·        β”‚
          β”‚  DeepSeek Β·          β”‚
          β”‚  Google AI Mode Β·    β”‚
          β”‚  Google AI Overview Β·β”‚
          β”‚  YandexGPT           β”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Frontend on Next.js 16 with shadcn, metrics calculated via PostgreSQL functions using Supabase SDK, caching with TanStack Query. Deployment via Dokploy with GitHub.

Google AdInline article slot

Monitoring and Data Processing Pipeline

During onboarding, clusters (4–6 thematic sets) and prompts (4–7 per cluster) are generated. Daily, Trigger.dev sends prompts to 9 providers and processes responses.

Provider specifics:

  • DeepSeek: no web search API.
  • Google AI Mode/Overview: scraping only.
  • Google AI Overview: may not respond.

Response processing involves LLM post-processing: extracting brands, sentiment (positive/neutral/negative), recommendation, position, link presence. GEO score (0–100) aggregates points.

Google AdInline article slot

Key GEO Metrics

  • Answer coverage: % of responses mentioning the brand.
  • Share of Voice (SoV): brand_mentions / (brand_mentions + competitors) Γ— 100.
  • Domain citation: % of responses with the brand's domain.
  • Share of Citation: SoV for domains.

Visualization: coverage charts, visibility funnels, top competitors by SoV, Head-to-Head comparisons, competitive gaps, source analysis.

Cost per response processing: $0.0016, YandexGPT β€” 5β‚½/call.

Dashboard Sections

  • Competitive intelligence: top by SoV, Head-to-Head.
  • Competitive gaps: prompts where the brand falls behind.
  • Sources: tabs with citation source data.

The command center generates recommendations based on gaps and assesses impact.

Key takeaways:

  • The GEO platform monitors 9 AI providers, calculating SoV and other metrics for brands.
  • Development with Claude Code, Agent Team, and MCP reduced costs to $800 over 4 months.
  • Daily pipeline: prompt generation, scraping/API, LLM response processing.
  • Metrics on PostgreSQL, frontend Next.js 16 + shadcn, cache TanStack Query.
  • Recommendations and reports automated via Mastra.

β€” Editorial Team

Advertisement 728x90

Read Next