From openclaudia-openclaudia-skills
Tests long-tail ChatGPT search queries against web-search-enabled model to find which mention a given brand, prioritizing DataForSEO indexed LLM citations.
npx claudepluginhub joshuarweaver/cascade-communication --plugin openclaudia-openclaudia-skillsThis skill uses the workspace's default tool permissions.
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.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
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.
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]".
/geo-query-finder <brand_name> [--industry <industry>] [--features <feature1,feature2,...>] [--queries <custom_query1;custom_query2;...>]
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"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.
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":"<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).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 citedai_search_volume — monthly AI search volume (use to prioritize)sources[] — entries with domain matching the brand have the exact cited URLlocation_code, language_code, model_name — for geo/locale breakdownanswer — the LLM answer text (for context)Decision rule:
/guides/ vs /tools/).If no --industry or --features provided, use web search to understand:
Generate 15-20 long-tail queries across these categories:
Avoid generic queries where dominant players will always win.
Use OpenAI's gpt-4o-search-preview model with web search enabled:
OPENAI_API_KEY from environment variable
import json, os, urllib.request, ssl
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"]
data = json.dumps({
"model": "gpt-4o-search-preview",
"web_search_options": {"search_context_size": "medium"},
"messages": [{"role": "user", "content": "<query>"}],
"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"]
For each query, check if the brand name (or known aliases) appears in ChatGPT's response:
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