geo-monitorlisted
Install: claude install-skill Jasper0122/agent-seo-kit
# GEO monitor
Sibling to `seo-intake`, same repo, same demand gate.
The reason this pipeline exists: **losing in an AI answer is invisible.** In
search, a lost customer still leaves an impression with no click. In an answer
they leave nothing at all: no click, no referrer, no log line. The only way to
know it happened is to ask the questions yourself and write down what came
back.
## The cycle
```bash
node scripts/run-geo.mjs --dry-run # see the questions, spend nothing
node scripts/run-geo.mjs # registry -> engine -> answers + detection
node scripts/geo-dictionary.mjs --min 2 # harvest who was actually named (DRAFT only)
node scripts/redetect.mjs # re-read stored answers with a new dictionary, free
node scripts/geo-opportunities.mjs # three gap types, counted separately
node scripts/geo-ledger.mjs # merge into the persistent, idempotent ledger
```
`run-geo` takes `--limit N` and `--cohort <name>`. It is single threaded with a
gap between calls and a backoff on failure, because **a throttled row and a
genuine absence look identical once they are written down**, and one of them is
a lie. Failures are recorded as errors and excluded from every denominator.
## The three signals, and which one you can actually move
| Signal | How it is read | How fast content moves it |
|---|---|---|
| `mentioned` | your brand name in the answer text | slow, depends on what the model knows |
| `recommended` | **heur