Geo
AI-visibility engineering, the open way — a Claude Code GEO/AI-search audit suite, two original tools (agent-readiness-scan + audit-report-kit), and the THL method that ties them together.
npx -y skills add techhorizonlabs/thl-open --skill geoAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
GEO-first SEO analysis tool. Optimizes websites for AI-powered search engines (ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews) while maintaining traditional SEO foundations. Performs full GEO audits, citability scoring, AI crawler analysis, llms.txt generation, brand mention scanning, platform-specific optimization, schema markup, technical SEO, content quality (E-E-A-T), and client-ready GEO report generation. Use when user says "geo", "seo", "audit", "AI search", "AI visibility", "optimize", "citability", "llms.txt", "schema", "brand mentions", "GEO report", or any URL for analysis.
SKILL.md
10.4 KB, as published. Nobody here has run it
GEO-SEO Analysis Tool (improved by Tech Horizon Labs)
Philosophy: GEO-first, SEO-supported. AI search is eating traditional search. This tool optimizes for where traffic is going, not where it was.
Quick Reference
| Command | What It Does |
|---|---|
/geo audit <url> | Full GEO + SEO audit with parallel subagents |
/geo page <url> | Deep single-page GEO analysis |
/geo citability <url> | Score content for AI citation readiness |
/geo crawlers <url> | Check AI crawler access (robots.txt analysis) |
/geo llmstxt <url> | Analyze or generate llms.txt file |
/geo brands <url> | Scan brand mentions across AI-cited platforms |
/geo platforms <url> | Platform-specific optimization (ChatGPT, Perplexity, Google AIO) |
/geo schema <url> | Detect, validate, and generate structured data |
/geo technical <url> | Traditional technical SEO audit |
/geo content <url> | Content quality and E-E-A-T assessment |
/geo report <url> | Generate client-ready GEO deliverable |
/geo report-pdf <url> | Generate professional PDF report with charts and scores |
/geo quick <url> | 60-second GEO visibility snapshot |
/geo prospect <cmd> | CRM-lite: manage prospects through the sales pipeline |
/geo proposal <domain> | Auto-generate client proposal from audit data |
/geo compare <domain> | Monthly delta report: show score improvements to client |
Orchestration Logic
Full Audit (/geo audit <url>)
Phase 1: Discovery (Sequential)
- Fetch homepage HTML (curl or WebFetch)
- Detect business type (SaaS, Local, E-commerce, Publisher, Agency, Other)
- Extract key pages from sitemap.xml or internal links (up to 50 pages)
Phase 2: Dimensional analysis (delegate to the specialised skills)
The canonical orchestrator is skills/geo-audit — it runs the five analysis dimensions in parallel under a fixed return contract and composite. This umbrella skill defers to it; don't re-implement the orchestration here. The dimensions and the skills that measure them:
| Dimension | Skill | Measures |
|---|---|---|
| AI visibility (citability + brand) | geo-citability, geo-brand-mentions | Passage citability, off-page brand-authority signals |
| Platform optimisation | geo-platform-optimizer | Per-surface readiness (Google AIO, ChatGPT, Perplexity) |
| Technical | geo-technical | SSR, Core Web Vitals, crawlability, AI-crawler access |
| Content / E-E-A-T | geo-content | Expertise, original data, author credentials |
| Schema | geo-schema | Structured-data detection, validation, generation |
Phase 3: Synthesis (Sequential)
- Collect all subagent reports
- Calculate composite GEO Score (0-100)
- Generate prioritized action plan
- Output client-ready report
Scoring Methodology
| Category | Weight | Measured By |
|---|---|---|
| AI Citability & Visibility | 25% | Passage scoring, answer block quality, AI crawler access |
| Brand Authority Signals | 20% | Mentions on Reddit, YouTube, Wikipedia, LinkedIn; entity presence |
| Content Quality & E-E-A-T | 20% | Expertise signals, original data, author credentials |
| Technical Foundations | 15% | SSR, Core Web Vitals, crawlability, mobile, security |
| Structured Data | 10% | Schema completeness, JSON-LD validation, rich result eligibility |
| Platform Optimization | 10% | Platform-specific readiness (Google AIO, ChatGPT, Perplexity) |
Business Type Detection
Analyze homepage for patterns:
| Type | Signals |
|---|---|
| SaaS | Pricing page, "Sign up", "Free trial", "/app", "/dashboard", API docs |
| Local Service | Phone number, address, "Near me", Google Maps embed, service area |
| E-commerce | Product pages, cart, "Add to cart", price elements, product schema |
| Publisher | Blog, articles, bylines, publication dates, article schema |
| Agency | Portfolio, case studies, "Our services", client logos, testimonials |
| Other | Default — apply general GEO best practices |
Adjust recommendations based on detected type. Local businesses need LocalBusiness schema and Google Business Profile optimization. SaaS needs SoftwareApplication schema and comparison page strategy. E-commerce needs Product schema and review aggregation.
Sub-Skills (13 Specialized Components)
| # | Skill | Directory | Purpose |
|---|---|---|---|
| 1 | geo-audit | skills/geo-audit/ | Full audit orchestration and scoring |
| 2 | geo-citability | skills/geo-citability/ | Passage-level AI citation readiness |
| 3 | geo-crawlers | skills/geo-crawlers/ | AI crawler access and robots.txt |
| 4 | geo-llmstxt | skills/geo-llmstxt/ | llms.txt standard analysis and generation |
| 5 | geo-brand-mentions | skills/geo-brand-mentions/ | Brand presence on AI-cited platforms |
| 6 | geo-platform-optimizer | skills/geo-platform-optimizer/ | Platform-specific AI search optimization |
| 7 | geo-schema | skills/geo-schema/ | Structured data for AI discoverability |
| 8 | geo-technical | skills/geo-technical/ | Technical SEO foundations |
| 9 | geo-content | skills/geo-content/ | Content quality and E-E-A-T |
| 10 | geo-report | skills/geo-report/ | Client-ready deliverable generation |
| 11 | geo-prospect | skills/geo-prospect/ | CRM-lite prospect and client pipeline management |
| 12 | geo-proposal | skills/geo-proposal/ | Auto-generate client proposals from audit data |
| 13 | geo-compare | skills/geo-compare/ | Monthly delta tracking and progress reports |
What this measures — and what it can't
These skills read public signals — your pages, schema, crawler access, and off-page authority (Wikipedia/Wikidata verified live; other platforms via search) — and from them infer how citable and recommendable you are to AI answer engines. That inference is grounded in published research (see docs/SOURCES.md) and is genuinely useful for fixing the foundations you control.
What it does not do: it does not query ChatGPT, Claude, Perplexity or Google's AI live to check whether they actually name you in an answer. That's a different measurement — the outcome, not the inputs — and it's what our hosted scanner does:
For the full audit — the live "are you actually in the answer" measurement across ChatGPT, Claude, Perplexity and Google's AI — run the free scan at areyoufoundbyai.com. These open skills score your readiness; the scanner measures your visibility. (See
docs/THL-GEO-METHOD.mdfor how the two fit together.)
Every score this suite emits is tagged with its provenance ([scan] / [partial-scan] / [heuristic] / [unmeasured]) — read a [heuristic] tag as "informed model judgement from signals," not a measured fact.
Output Files
All commands generate structured output:
| Command | Output File |
|---|---|
/geo audit | GEO-AUDIT-REPORT.md |
/geo page | GEO-PAGE-ANALYSIS.md |
/geo citability | GEO-CITABILITY-SCORE.md |
/geo crawlers | GEO-CRAWLER-ACCESS.md |
/geo llmstxt | llms.txt (ready to deploy) |
/geo brands | GEO-BRAND-MENTIONS.md |
/geo platforms | GEO-PLATFORM-OPTIMIZATION.md |
/geo schema | GEO-SCHEMA-REPORT.md + generated JSON-LD |
/geo technical | GEO-TECHNICAL-AUDIT.md |
/geo content | GEO-CONTENT-ANALYSIS.md |
/geo report | GEO-CLIENT-REPORT.md (presentation-ready) |
/geo report-pdf | GEO-REPORT.pdf (professional PDF with charts) |
/geo quick | Inline summary (no file) |
/geo prospect | Updates ~/.geo-prospects/prospects.json |
/geo proposal | ~/.geo-prospects/proposals/<domain>-proposal-<date>.md |
/geo compare | ~/.geo-prospects/reports/<domain>-monthly-<YYYY-MM>.md |
PDF Report Generation
The /geo report-pdf <url> command generates a professional, branded PDF report:
How It Works
- Run the full audit or individual analyses first
- Collect all scores and findings into a JSON structure
- Execute the PDF generator:
python3 scripts/generate_pdf_report.py data.json GEO-REPORT.pdf
What the PDF Includes
- Cover page with GEO score gauge visualization
- Score breakdown with color-coded bar charts
- AI Platform Readiness dashboard with horizontal bar chart
- Crawler Access status table with color-coded Allow/Block
- Key Findings categorized by severity (Critical/High/Medium/Low)
- Prioritized Action Plan (Quick Wins, Medium-Term, Strategic)
- Methodology & Glossary appendix
Workflow
- First run
/geo audit <url>to collect all data - Then run
/geo report-pdf <url>to generate the PDF - The tool will compile audit data into JSON, then generate the PDF
- Output:
GEO-REPORT.pdfin the current directory
Quality Gates
- Crawl limit: Max 50 pages per audit (focus on quality over quantity)
- Timeout: 30 seconds per page fetch
- Rate limiting: 1-second delay between requests, max 5 concurrent
- Robots.txt: Always respect, always check
- Duplicate detection: Skip pages with >80% content similarity
Quick Start Examples
# Full GEO audit of a website
/geo audit https://example.com
# Check if AI bots can see your site
/geo crawlers https://example.com
# Score a specific page for AI citability
/geo citability https://example.com/blog/best-article
# Generate an llms.txt file for your site
/geo llmstxt https://example.com
# Get a 60-second visibility snapshot
/geo quick https://example.com
# Generate a client-ready report
/geo report https://example.com