Instructions
How the AI-visibility platform works, how to refresh this dashboard, and what every metric means.
What this is
This platform makes appomate.com.au accurately discoverable to AI systems (ChatGPT, Claude, Perplexity, Gemini, and AI browsing agents). A CLI generates AI-consumable formats from one canonical knowledge base, measures which AI crawlers hit the site, and scores how completely each page reflects the source of truth. This dashboard visualises those reports.
Everything reads from one source — the Appomate Brain knowledge base — so the published formats never drift from each other.
Refresh the dashboard — the pipeline
run in apps/cliSync the knowledge base
visibility syncPublish AI-consumable formats
visibility publishAnalyse crawler traffic
visibility analytics --log /path/to/access.logScore page gaps
visibility gap --url https://www.appomate.com.au/adidas/Prioritise fixes
visibility prioritize --analytics out/reports/analytics.json --gaps out/reports/gap-*.jsonPush to Supabase
SUPABASE_URL=… SUPABASE_SERVICE_ROLE_KEY=… \
visibility push --label "weekly"Deploy the artifacts to WordPress
The site is WordPress (LiteSpeed, custom theme). Deployment is static files + template snippets:
- Upload
llms.txtandllms-full.txtto the web root, served astext/plain; charset=utf-8. - Paste each JSON-LD snippet (the
.htmlfiles) into the matching page template: Organization site-wide, Reviews on the testimonials page, each Service on its service page. - Purge the LiteSpeed cache and verify with Google’s Rich Results Test.
The Published Artifacts tab shows exactly what will be deployed for the selected run.
Glossary
- Training crawl
- A broad, steady sweep across many pages over a long window (e.g. GPTBot, ClaudeBot, CCBot). The content is being scraped for model training — not necessarily surfaced to a user right now.
- Retrieval fetch
- A bursty request concentrated on a few pages in a short window (e.g. ChatGPT-User, Claude-User, PerplexityBot). This is the signal that an AI system is reading the page live to answer a user — i.e. we are being cited or considered, not just archived.
- Burst fraction
- The share of a bot’s hits that fall inside the densest 5-minute window. High = bursty = retrieval-leaning.
- Path concentration
- How focused a bot’s hits are on a few URLs (1 − normalised entropy over paths). High = concentrated on a handful of pages = retrieval-leaning.
- Inferred class
- The final training-vs-retrieval call, combining the bot’s known type (a prior), burst fraction, and path concentration into a score; ≥ 0.5 is retrieval.
- Completeness score
- A 0–100 judgement (by the Anthropic API) of how fully a page reflects the knowledge base — missing fields and thin sections pull it down.
- Priority score
- Retrieval hits × incompleteness (retrieval hits × (100 − completeness) / 100). A page fetched live but scoring low ranks highest — fix those first.