$ show zubair-trabzada/geo-seo-claude
This repository is a Claude Code skill bundle for Generative Engine Optimization (GEO) and SEO auditing, distributed as an installable plugin. The core deliverable is a composite GEO Score (0-100) computed from six weighted categories: AI citability, brand authority, content E-E-A-T, technical health, structured data, and platform optimization. Users invoke slash commands such as /geo audit, /geo quick, /geo citability, /geo llmstxt, and /geo report, which orchestrate a set of skill definitions, agent prompts, and Python helper scripts to crawl external websites, analyze AI crawler accessibility, extract JSON-LD, generate llms.txt files, score content passages, and produce client-ready reports and proposals. It also includes a small Flask + HTMX CRM webapp for managing prospects and a white-label configuration system for agencies. The architecture is primarily a composition of markdown-based skills and agents with Python scripts as deterministic helpers. The main entry points are geo/SKILL.md (orchestrator), the scripts under scripts/, and the webapp at scripts/webapp/app.py. The system behaves as a productized agency service: it runs audits against arbitrary client domains, produces quantitative scores, generates branded PDF reports, pricing proposals, and monthly delta comparisons. Some research-oriented artifacts exist - cited market studies, scoring methodology documentation, and heuristic rubrics - but the dominant character is an application toolkit for practitioners rather than a data pipeline. Strengths include a clear JSON-to-stdout contract between scripts and skills, deterministic scoring modules such as citability_scorer.py and llmstxt_generator.py, reusable JSON-LD schema templates, and a sensible separation between deterministic checks and LLM-judged scoring. Weaknesses include documentation drift (inconsistent skill counts and command references), duplicated scoring rubrics in agent vs skill versions, a legacy ReportLab PDF pipeline documented alongside the newer pandoc/Chrome approach, and only narrow test coverage focused on fetch_page.py.
The LLM identified 4 files worth highlighting for reuse:
Standalone, dependency-light web fetcher that parses page content, extracts JSON-LD with @graph flattening, detects server-side rendering heuristically, checks robots.txt AI crawler status for major crawlers, detects Cloudflare-managed robots, and checks for llms.txt. It accepts a URL and returns structured JSON, making it directly reusable in any web auditing or AI-crawler monitoring tool without internal coupling.
Deterministic passage-level content scoring engine that evaluates answer block quality, self-containment, structural readability, statistical density, and uniqueness with documented weights, producing grades A-F. It is self-contained and reusable for any AI-citation/content-quality scoring task, and demonstrates a clean separation between rule-based scoring and LLM judgment.
Validates and generates llms.txt files with URL categorization and structured output. The logic is isolated and domain-agnostic enough to be adapted into other AI-search optimization or site-summary tooling, and it provides a useful deterministic complement to the LLM-judged scoring modules.
Implements a deep-merge configuration pattern that overlays a brand.json file on top of default brand values, enabling agencies to rebrand reports and proposals without forking the codebase. This is a simple, reusable config-override pattern that can be extracted into any project that needs layered, extensible branding or theme defaults.