llmopt
AI visibility intelligence platform (like SEO, but for AI: analyze and optimize how LLMs and AI search engines perceive, cite, and recommend brands. Generative Engine Optimization (GEO).
Install / Use
claude mcp add jonradoff -- npx -y github:jonradoff/llmoptIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AI & Machine LearningSupported Platforms
Skill content
View source on GitHubLLM Optimizer
LLM Optimizer is an AI visibility intelligence platform. It analyzes how large language models and AI search engines perceive, cite, and recommend brands — then provides research-backed optimization strategies to improve that visibility.
ChatGPT, Claude, Gemini, Perplexity, and Google AI Overviews are replacing traditional search for millions of people. The signals that determine whether an AI recommends your brand are fundamentally different from traditional SEO: earned media coverage, transcript quality, content structure, training data frequency, and citation network dynamics matter more than backlinks and keyword density. LLM Optimizer measures these signals across five analysis dimensions and produces a composite AI Visibility Score (0-100) with prioritized, actionable recommendations.
What It Analyzes
LLM Optimizer performs six types of analysis, each grounded in peer-reviewed research:
Answer Engine Optimization — Analyzes your website's content against the optimization strategies validated by the GEO (Generative Engine Optimization) research. Scores pages on quotation density (+41% visibility), statistical evidence (+33%), source citations (+28%), fluency, structural optimization, and machine readability. Produces per-question optimization scores with specific rewrite recommendations.
Video Authority Analysis — Two-phase analysis of YouTube presence. Phase 1 uses a fast model to assess individual videos for transcript quality, keyword alignment, and caption availability. Phase 2 feeds compact assessments into a reasoning model for four-pillar scoring: Transcript Authority, Topical Dominance, Citation Network, and Brand Narrative. Based on research showing YouTube is now the #1 social citation source for LLMs, appearing in 16% of AI answers.
Reddit Authority Analysis — Scrapes Reddit discussions mentioning your brand and analyzes community sentiment, competitive positioning, and training data signal strength. Uses Reddit's public .json endpoints with Cloudflare WARP proxy fallback. Scores four pillars: Presence, Sentiment, Competitive Position, and Training Signal.
Search Visibility Analysis — Evaluates your site's visibility across both Google AI Overviews and standalone LLMs. Checks robots.txt AI crawler policies, structured data, content freshness, brand search momentum, and earned media signals. Based on research showing only 12% overlap between Google top-10 results and ChatGPT/Perplexity citations.
LLM Knowledge Testing — Directly queries multiple LLM providers (Anthropic, OpenAI, Gemini, Grok) with your brand's target queries and analyzes how each model responds. Compares your brand's presence, accuracy, and recommendation likelihood across providers. Supports head-to-head competitor comparison.
Brand Intelligence — Aggregates all analysis dimensions into a composite AI Visibility Score weighted across Optimization (30%), Video Authority (20%), Reddit Authority (20%), Search Visibility (15%), and LLM Test (15%). Generates prioritized action items that track through to completion.
Research Foundation
The analysis methodology is grounded in published research. Key findings that inform the scoring:
- Content optimization: Embedding authoritative quotations improves AI citation visibility by +41%; adding statistics by +33%; keyword stuffing reduces visibility by -9% (GEO, Princeton/KDD 2024).
- Training data frequency: Answer accuracy more than doubles from rare (1-5 documents) to high-frequency (51+ documents) in training data. Being in training data AND being retrievable provides a compounding advantage (NanoKnow, 2026).
- Source preferences: AI search engines cite earned media 72-92% of the time vs. 18-27% for brand-owned content. Only 15-50% overlap with traditional Google results (GEO, Toronto 2025).
- Video transcripts: A 7B-parameter model trained on YouTube transcripts surpassed 72B models in commentary quality. Transcript quality is the dominant signal for video LLM influence — not production value or view counts (LiveCC, CVPR 2025).
- Citation concentration: Top 20 news sources capture 28-67% of all AI citations depending on provider. Different AI providers cite substantially different sources (cross-family similarity: 0.11-0.58) (AI Search Arena, 2025).
- Content freshness: AI assistants cite content 25.7% newer than traditional search. Freshness signals can shift ranking by up to 95 positions (Ahrefs, 2025).
For the complete research synthesis with methodology details, scoring frameworks, and prompt architecture, see research.md.
Architecture
┌─────────────────────────────────────────────────────────┐
│ Caddy (port 8080) │
│ TLS + reverse proxy │
└──────────┬────────────────────────────┬─────────────────┘
│ │
/api/auth, /api/users, Everything else
/api/tenants, /api/billing,
/api/admin, /api/bootstrap
│ │
▼ ▼
┌─────────────────────┐ ┌──────────────────────────────┐
│ LastSaaS Backend │ │ LLM Optimizer Backend │
│ (port 8091) │ │ (port 8090) │
│ │ │ │
│ - Authentication │ │ - Site analysis engine │
│ - OAuth / SSO │ │ - Video analysis (2-phase) │
│ - Billing (Stripe) │ │ - Reddit analysis │
│ - Tenant management│ │ - Search visibility │
│ - API key mgmt │ │ - LLM knowledge testing │
│ - User management │ │ - Brand intelligence │
│ │ │ - MCP server (OAuth 2.1) │
│ │ │ - REST API (v1) │
│ │ │ - PDF report generation │
│ │ │ - Health monitoring │
│ │ │ - Cloudflare WARP proxy │
└─────────────────────┘ └──────────────────────────────┘
│ │
└────────────┬───────────────┘
▼
┌───────────────────┐
│ MongoDB Atlas │
│ │
│ - analyses │
│ - brand_profiles │
│ - video_analyses │
│ - reddit_cache │
│ - health_checks │
│ - tenants / users│
└───────────────────┘
Backend — Go 1.24, standard library net/http with gorilla/mux-style routing. No web framework. LLM provider abstraction supports Anthropic, OpenAI, Gemini, and Grok with streaming SSE responses. Each provider implements a common interface for Call, Stream, VerifyKey, and BuildStreamBody.
Frontend — React 19 + TypeScript + Vite + Tailwind CSS. Single-page application with SSE streaming for real-time analysis progress. The SaaS deployment uses a frontend overlay system that extends the base LastSaaS frontend with product-specific pages.
Multi-tenant SaaS — Built on LastSaaS, an open-source SaaS framework that provides authentication, billing (Stripe), tenant isolation, and user management. LLM Optimizer runs as a dependent application — LastSaaS handles the auth/billing plane while LLM Optimizer handles the product plane.
MCP Server — Model Context Protocol server using Streamable HTTP transport with OAuth 2.1 (PKCE + Dynamic Client Registration). Lets AI assistants like Claude access analysis data, visibility scores, and action items programmatically.
Cloudflare WARP — Integrated as a SOCKS5 proxy for Reddit scraping fallback (handles 429/403 rate limits).
Prerequisites
- Go 1.24+
- Node.js 20+ and npm
- MongoDB (Atlas recommended, local works for development)
- Anthropic API key (required — used for site analysis, optimization scoring, and brand intelligence)
- LastSaaS (required for SaaS mode with auth/billing; optional for standalone mode)
Optional API keys for additional providers and features:
- OpenAI API key — LLM knowledge testing with GPT models
- Google Gemini API key — LLM knowledge testing with Gemini models
- xAI Grok API key — LLM knowledge testing with Grok models
- YouTube Data API key — Video authority analysis
Setup
Standalone Mode (single user, no auth)
-
Clone the repository:
git clone https://github.com/jonradoff/llmopt.git cd llmopt -
Copy the example environment file and fill in your values:
cp .env.dev.example .envRequired variables:
ANTHROPIC_API_KEY=sk-ant-api03-your-key-here MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net/?appName=Cluster0 PORT=8080 -
Build and run the backend:
cd backend go build -o llmopt . ./llmopt -
Build and run the frontend (in a separate terminal):
cd frontend npm install npm run dev -
Open
http://localhost:5173in your browser.
SaaS Mode (multi-tenant with auth and billing)
SaaS mode requires LastSaaS as a dependency. LastSaaS provides authentication (OAuth/SSO), Stripe billing, tenant management, and the admin interface.
-
Clone with the LastSaaS dependency:
git clone https://github.com/jonradoff/llmopt.git cd llmopt git clone https://github.com/jonradoff/lastsaas.git lastsaas -
Configure environment variables:
cp .env.prod.example .envAdditional variables required for SaaS mode:
LLMOPT_SAAS_ENABLED=true LLMOPT_ENCRYPTION_KEY=<32-byte-hex-key-for-tenant-api-key-encryption> LLMOPT_JWT_ACCESS_SECRET=<random-secret-for-jwt-signing>See the LastSaaS README for the full set of auth/billing environment variables (Google OAuth, Stripe keys, etc.).
-
For local development, use the start script:
./start-saas.sh -
For production deployment on Fly.io:
fly deploy -c fly.saas.tomlSee deploy.md for the full deployment guide.
Build Verification
cd backend && go build ./...
cd ../frontend && npx tsc --noEmit
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| ANTHROPIC_API_KEY | Yes | Anthropic API key for analysis engine |
| MONGODB_URI | Yes | MongoDB connection string |
| PORT | No | Server port (default: 8080) |
| DATABASE_NAME | No | MongoDB database name (default: llmopt) |
| LLMOPT_SAAS_ENABLED | SaaS only | Enable multi-tenant SaaS mode |
| LLMOPT_ENCRYPTION_KEY | SaaS only | AES key for encrypting tenant API keys |
| LLMOPT_JWT_ACCESS_SECRET | SaaS only | HMAC secret for JWT signing |
| MCP_JWT_SECRET | No | MCP OAuth to
Truncated for display — read the full file on GitHub.
Related Skills
caveman
107.2k🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.
claude-mem
94.4kPersistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Agent-Reach
84.4kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Understand-Anything
83.6kGraphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
