# Geo Query Finder

> >

- **Type:** Skill
- **Install:** `agentstack add skill-openclaudia-openclaudia-skills-geo-query-finder`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [OpenClaudia](https://agentstack.voostack.com/s/openclaudia)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [OpenClaudia](https://github.com/OpenClaudia)
- **Source:** https://github.com/OpenClaudia/openclaudia-skills/tree/main/skills/geo-query-finder
- **Website:** https://openclaudia.com

## Install

```sh
agentstack add skill-openclaudia-openclaudia-skills-geo-query-finder
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# GEO Query Finder

Find which ChatGPT search queries mention a given brand. Tests long-tail queries against ChatGPT's web-search-enabled model and reports which ones surface the brand.

## Trigger

Use when the user asks to "find queries for [brand]", "check GEO visibility", "which queries mention [brand]", "geo query finder", "find AI mentions", or "test ChatGPT queries for [brand]".

## Usage

```
/geo-query-finder  [--industry ] [--features ] [--queries ]
```

**Examples:**
- `/geo-query-finder "Acme Corp"` — auto-researches the brand and generates queries
- `/geo-query-finder "Acme Corp" --industry "smart TV OS" --features "white-label,voice-control,OEM licensing"`
- `/geo-query-finder "Acme Corp" --queries "best regulatory AI;eCTD validation tool;pharma compliance software"`

## How It Works

### Step 0: Pull pre-indexed LLM mentions (DataForSEO) — do this FIRST

Before generating speculative queries, check if DataForSEO already has indexed mentions for the brand's domain. If it does, you get ground-truth queries with search volume in one call instead of burning OpenAI dollars guessing.

Auth via `DATAFORSEO_LOGIN` / `DATAFORSEO_PASSWORD` environment variables.

```bash
AUTH=$(printf '%s' "$DATAFORSEO_LOGIN:$DATAFORSEO_PASSWORD" | base64)
# Google AI Overview citations
curl -s -X POST "https://api.dataforseo.com/v3/ai_optimization/llm_mentions/search/live" \
  -H "Authorization: Basic $AUTH" -H "Content-Type: application/json" \
  -d '[{"target":[{"domain":"","search_filter":"include","include_subdomains":true}],"platform":"google","limit":700}]'
# ChatGPT citations (substitute "platform":"chat_gpt")
```

**Critical flags:**
- `"include_subdomains": true` — without it, apex domains return 0 results (www.X treated as a different domain).
- Omit `location_code` to get global results; add `"location_code": 2840` only to scope to US.
- `platform` options: `"google"` (AI Overview), `"chat_gpt"`. Perplexity is NOT supported via this dataset.

**Extract from each `items[]`:**
- `question` — the real search query where the brand was cited
- `ai_search_volume` — monthly AI search volume (use to prioritize)
- `sources[]` — entries with `domain` matching the brand have the exact cited URL
- `location_code`, `language_code`, `model_name` — for geo/locale breakdown
- `answer` — the LLM answer text (for context)

**Decision rule:**
- If ≥20 queries returned → skip Steps 1–4 entirely; report these as ground-truth mentions and focus Step 5 on gap analysis (sort by volume, find URL-section winners like `/guides/` vs `/tools/`).
- If "}],
    "max_tokens": 1000
}).encode()

req = urllib.request.Request(
    "https://api.openai.com/v1/chat/completions",
    data=data,
    headers={
        "Authorization": f"Bearer {OPENAI_API_KEY}",
        "Content-Type": "application/json"
    }
)

resp = urllib.request.urlopen(req, context=ssl.create_default_context(), timeout=45)
result = json.loads(resp.read())
answer = result["choices"][0]["message"]["content"]
```

### Step 4: Check Mentions

For each query, check if the brand name (or known aliases) appears in ChatGPT's response:
- Check case-insensitive match
- Check variations (with/without spaces, dots, hyphens)
- If mentioned, extract the surrounding context (200 chars around the mention)
- Note the position (is it #1 recommended? listed among many? mentioned in passing?)

### Step 5: Report Results

Output a summary table:

```
## GEO Query Finder Results: [Brand Name]

### Mentioned (X/N queries)
| Query | Position | Context |
|-------|----------|---------|
| ... | #1 | "Brand is the leading..." |

### Not Mentioned (Y/N queries)
| Query | What ChatGPT Recommended Instead |
|-------|----------------------------------|
| ... | Competitor A, Competitor B |

### Recommendations
- Queries where brand is ALREADY mentioned: create more authoritative content to maintain/improve position
- Queries where brand is NOT mentioned but SHOULD be: these are content gaps — create targeted pages
- Queries to AVOID: too generic, dominated by big players, not worth the effort
```

## Rate Limiting

- Run queries sequentially with 1-2 second delays to avoid rate limits
- Each query costs ~$0.01 via OpenAI API
- Default: 15-20 queries per run (~$0.15-0.20 per run)

## Notes

- Results reflect ChatGPT with web search enabled (grounded in real-time web results)
- Results may vary slightly between runs due to search freshness
- This tests ChatGPT specifically — Gemini and Copilot may give different results
- For ongoing monitoring, consider scheduling periodic runs to track visibility changes over time

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [OpenClaudia](https://github.com/OpenClaudia)
- **Source:** [OpenClaudia/openclaudia-skills](https://github.com/OpenClaudia/openclaudia-skills)
- **License:** MIT
- **Homepage:** https://openclaudia.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-openclaudia-openclaudia-skills-geo-query-finder
- Seller: https://agentstack.voostack.com/s/openclaudia
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
