There are two questions, and only the second one is actually useful.
First: does your brand appear in AI answers at all? That is the diagnosis. For most small brands the answer is zero, and then you are stuck.
Second: which pages do the models cite in your category? That is the instruction. Once you know that YouTube, Wikipedia, and Reddit are the sources in your field, you know where you need to show up.
The skill answers both. Data comes through AIsa via its AI Optimization endpoint, which indexes mentions inside AI answers. The skill runs in Claude Code, Cursor, OpenClaw, Hermes, and anything else that reads SKILL.md folders.
Download the zip, then unpack it:
unzip geo-analyse-skill.zip -d ~/.claude/skills/
You need Python 3.10 or newer. Nothing else, no pip install. The client uses the standard library only, so it runs inside any agent session.
The skill pulls its data through AIsa, so you need your own access. Takes two minutes.
Use this link to AIsa and new accounts get 50 percent off their first top-up. Disclosure: I am an AIsa partner and the link is attributed to me. It costs you nothing extra, and if you would rather skip it, the rest of this guide works the same.
Then sign up in the AIsa Console. Three routes: email, Google, or GitHub. With email you verify the address first and set the password afterwards.
New accounts start with 2 US dollars in credit. That covers roughly twenty calls, enough for your first comparison runs. You only need to top up after that, which is exactly what the discount applies to.
Registration drops you straight onto the API Keys page, where a key has already been generated for you. Copy it right away and store it somewhere safe. It is tied to your billing, so it does not belong in client-side code, in a public repo, or in a chat.
An AIsa key starts with sk-aisa-.
This is the step most people skip, and it matters most. On the same page you can give every key a quota, a maximum amount that this specific key is allowed to spend.
That is not the same as your balance. Your balance is the pot, the quota is the brake on one key. Spending is always capped by whichever of the two is lower. If you use the key for an experiment or hand it to someone else, this keeps a runaway loop from burning your whole balance.
Five dollars is a sensible start. Around fifty calls, and you notice immediately if something goes sideways.
Funding happens on the Wallet page in the console, by card via Stripe or by stablecoin. The same page shows what you have spent so far and how many requests are behind it.
Volume discounts start at fifty dollars, documented as five percent up to twenty percent at a thousand. For monitoring a handful of brands per week you will not need them.
Two lines, and the key never touches your shell history:
read -rs "AISA_API_KEY?AIsa key: " && export AISA_API_KEY
python3 ~/.claude/skills/geo-analyse/scripts/install_key.py
read -rs echoes nothing and the shell does not interpret special characters in the key. The second script writes a backup and stores the key in ~/.claude/settings.local.json with file mode 600.
Verify it landed:
python3 ~/.claude/skills/geo-analyse/scripts/doctor.py
The doctor describes the shape of your key without printing it, and tests both API surfaces separately.
python3 ~/.claude/skills/geo-analyse/scripts/geo_analyse.py \
--brand "AI agent" --domain your-domain.com --out ~/geo-analyse
You get an HTML dashboard, the condensed metrics as JSON, and all four raw responses. Inside an agent session a sentence like "run a GEO analysis for my brand" works too, the skill is found through its description.
For the question of which category has any volume at all, there is a second entry point. It needs one API call per target instead of four:
python3 ~/.claude/skills/geo-analyse/scripts/compare.py \
--own-domain your-domain.com \
"AI agent" "AI agency" "AI consulting"
Domains and keywords can be mixed, detection is automatic.
Five categories, German market, measured on 4 August 2026:
| Category | Mentions | AI search volume |
|---|---|---|
| KI Agent | 2,007 | 1,319,940 |
| Claude Code | 809 | 458,510 |
| KI Beratung | 130 | 77,970 |
| KI Agentur | 30 | 22,020 |
| AI Automatisierung | 17 | 9,190 |
Three things in there I did not know before.
YouTube is the most cited source in every single category. For "KI Agent" it accounts for 1,253 of 2,007 mentions, more than half. Wikipedia, Reddit, and GitHub follow. The models cite video and community, not company blogs.
"KI Agentur" and "AI Automatisierung" barely exist. 30 and 17 mentions. Positioning on those terms means positioning on an empty field. "KI Agent" is worth sixty times as much.
My own domain shows up in none of the five. That is uncomfortable, and exactly why I built this thing.
Using your brand name as the target. Small brands return zero, which also leaves the domain and page lists empty. That is not a bug. I checked it against a control: "OpenAI" returns 50,926 mentions on identical settings, my own brand returns zero. Use your category as the target instead, at least then you see who owns the field.
Forgetting market and language. The defaults are Germany and German. For international brands you need --location "United States" --language English, otherwise you are measuring past your target market.
Passing brand and domain as targets together. The API intersects multiple targets, it does not add them up. "KI Agent" alone returns 2,007 hits, together with a third-party domain 290, together with my own domain zero. The skill handles this now: the brand defines the search space, the domain is only located inside the results.
Billing is per call, roughly 0.10 US dollars. A single analysis is four calls, so about 0.40. A comparison across five categories cost me 0.50. Actual cost is printed after every run and shown as a tile in the dashboard, so you never have to take my number for it.
Rejected requests cost nothing. Experimenting is free, only a valid response gets billed.
Your starting credit covers the first twenty calls. When you top up after that, the discount from step 2 applies.
No spam, unsubscribe at any time
