v0.1.0 — first public release
The first tagged release of open-geo — an MIT-licensed GEO (Generative Engine Optimization) visibility tracker that runs as a Claude Code skill and reads AI answers the way a logged-in human sees them: in a real browser, from the rendered page.
Highlights
- Five capture engines, each driven by a natural-language playbook (
engines/<engine>.md), not CSS selectors: Google AI Overview, ChatGPT search, Claude search, Gemini, and Yandex Alice/Neuro — all with a grounded-answer gate so an ungrounded reply never inflates the numbers. - An honest visibility funnel —
cited ⊆ in sources ⊆ answered— six auditable metrics per lens (general / branded / comparative), qualitative per-lens sentiment, and a top-domains leaderboard of who actually owns the answer space. No composite index by design. - Question harvesting (opt-in) — recon subagents gather real, signal-grounded user queries (autocomplete, PAA, forums, reviews) and an adversarial skeptic prunes them; every shipped query carries provenance. Bring-your-own CSV stays first-class.
- Durable pipeline — Pydantic v2 contract, SQLite (WAL) multi-brand time series, idempotent incremental ingest, crash-safe run resume.
- Deliverables — a FastAPI + React dashboard and a dark-themed PDF report, both localized (EN/RU/ZH/AR, RTL-aware PDF with bundled fonts).
Notable fixes in this release
normalize_domainno longer mis-parses URLs with@in the path (Medium/YouTube handle pages) — the funnel and leaderboard credit the right domains.QueryCapturenow also enforces "a cited target is a source" at validation time.- Missing-table guards no longer swallow unrelated database errors.
Full contract and formulas: pipeline/INTERFACES.md. Sample PDF: assets/sample-report-example.pdf.
🤖 Generated with Claude Code