GEO Audit

Integrate GEO Audit

Add AI search visibility audits to your development workflow. Install the Claude Code skill, use curl, or plug into your CI/CD pipeline.

Claude Code Skill

Run /geo-audit example.com from any project in Claude Code. Three steps:

Step 1 — Create the skill directory

mkdir -p .claude/skills/geo-audit

Step 2 — Save the skill file

Copy this into .claude/skills/geo-audit/SKILL.md:

---
name: geo-audit
description: Run a GEO audit on a URL to check AI search visibility
user-invocable: true
allowed-tools: Bash
---

Run a GEO (Generative Engine Optimisation) audit using the GEO Audit API at geoaudit.co.uk.

## Accepting a URL

If the user provides a URL or domain as an argument (e.g. `/geo-audit example.com`), use that.

If no argument is given, try to detect the project's domain by checking (in order):
1. `package.json` → `homepage` field
2. `CNAME` file in the repo root
3. Common config files (`astro.config.*`, `next.config.*`, `netlify.toml`, `vercel.json`) for site URL
4. Ask the user

## Running the audit

Use curl to call the GEO Audit API with `wait=true` (holds the connection until the audit completes — no polling needed):

```bash
URL="<the domain>"
curl -s "https://geoaudit.co.uk/report?url=$URL&wait=true"
```

## Presenting results

From the Markdown report, extract and present:
- **Score** and **grade** (e.g. "72/100 — Good")
- **Category breakdown** — Technical, Content, Authority scores
- **Top priorities** — the highest-impact recommendations

## Offering to help

If you are currently working on the audited site's codebase, offer to implement the top recommendations. For example:
- Adding missing structured data
- Creating an llms.txt file
- Fixing robots.txt AI crawler rules
- Improving heading hierarchy or meta descriptions

Step 3 — Use it

/geo-audit example.com

Claude will call the GEO Audit API, poll for results, and present your score, category breakdown, and top priorities. If you're working on the audited site, it'll offer to implement the recommendations.

curl / CI/CD

Quick one-liner

curl -s "https://geoaudit.co.uk/report?url=example.com"

Returns the full Markdown report. If the audit isn't ready yet, you'll get a 202 — retry after the Retry-After header.

Polling script for pipelines

#!/bin/bash
URL="${1:?Usage: geo-audit.sh example.com}"
ENDPOINT="https://geoaudit.co.uk/report?url=$URL"

while true; do
  HTTP_CODE=$(curl -s -o /tmp/geo-report.md -w "%{http_code}" "$ENDPOINT")
  if [ "$HTTP_CODE" = "200" ]; then
    cat /tmp/geo-report.md
    exit 0
  elif [ "$HTTP_CODE" = "202" ]; then
    echo "Audit in progress, retrying..." >&2
    sleep 15
  else
    echo "Error: HTTP $HTTP_CODE" >&2
    exit 1
  fi
done

Polls until the audit completes. Use in GitHub Actions, GitLab CI, or any pipeline.

How it works

The /report?url= endpoint accepts any domain or URL and returns a full GEO audit as Markdown.

  • wait=true — Hold the connection open until the audit completes (up to ~280s). No polling needed — ideal for AI agents and single-request tools.
  • 202 — Audit started or in progress (without wait=true). Check Retry-After header (20s for new, 10s for in-progress).
  • 200 — Audit complete. Response body is the full Markdown report.
  • fresh=true — Force a new scan even if a recent result exists.

Send Accept: application/json for JSON output. Full API documentation: /llms.txt

Run a Free Audit