关于 geo-query-finder
用于测试哪些长尾查询会在 ChatGPT 搜索结果中提及品牌的技能。它可先利用 DataForSEO 的已索引提及作为依据,再通过 OpenAI 网页搜索模型测试其他查询。
主要功能
- 01通过 DataForSEO 查找已索引的 AI 提及
- 02生成品牌相关长尾查询
- 03使用 ChatGPT 网页搜索测试查询
- 04检查品牌提及及其上下文
- 05汇总查询结果与差距
适用场景
- 01评估品牌的 GEO 可见度
- 02查找会提及品牌的查询
- 03对照已索引提及与查询差距
- 04追踪品牌在 ChatGPT 搜索中的出现情况
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openclaudia/ openclaudia-skills --skill geo-query-finder安装后在 Claude Code 中输入/geo-query-finder确认已加载。
详细介绍
GEO 查询查找器
查找哪些 ChatGPT 搜索查询提到了指定品牌。使用启用了网页搜索的 ChatGPT 模型测试长尾查询,并报告哪些查询会显示该品牌。
触发条件
当用户要求“查找 [brand] 的查询”“检查 GEO 可见度”“哪些查询提到 [brand]”“geo query finder”“查找 AI 提及”或“测试 ChatGPT 查询中的 [brand]”时使用。
用法
/geo-query-finder <brand_name> [--industry <industry>] [--features <feature1,feature2,...>] [--queries <custom_query1;custom_query2;...>]
示例:
/geo-query-finder "Acme Corp"— 自动研究品牌并生成查询/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"
工作原理
步骤 0:提取预先索引的 LLM 提及(DataForSEO)——优先执行
生成推测性查询之前,先检查 DataForSEO 是否已为该品牌的域名索引了提及记录。如果有,只需一次调用就能获取带搜索量的真实查询,无需花费 OpenAI 费用猜测。
通过 DATAFORSEO_LOGIN / DATAFORSEO_PASSWORD 环境变量进行身份验证。
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")
重要标志:
"include_subdomains": true— 不加此标志时,顶级域名会返回 0 条结果(www.X 会被视为不同的域名)。- 不填写
location_code可获取全球结果;只有在限定为美国时才添加"location_code": 2840。 platform选项:"google"(AI Overview)、"chat_gpt"。此数据集不支持 Perplexity。
从每个 items[] 中提取:
question— 品牌被引用时对应的真实搜索查询ai_search_volume— 每月 AI 搜索量(用于确定优先级)sources[]—domain与品牌匹配的条目会提供准确的引用 URLlocation_code、language_code、model_name— 用于地理位置/语言区域细分answer— LLM 的回答文本(供参考)
决策规则:
- 如果返回 ≥20 条查询 → 完全跳过步骤 1–4;将这些查询作为真实提及记录报告,并将步骤 5 的重点放在差距分析上(按搜索量排序,找出表现最佳的 URL 版块,例如
/guides/与/tools/)。 - 如果返回 <20 条查询 → 将它们作为步骤 2 的种子输入(针对 DataForSEO 已确认的查询主题生成变体),然后只对差距执行步骤 3–4。
- 如果返回 0 条查询 → 该域名没有 AI 引用;回退到原始步骤 1–5(推测性测试)。
步骤 1:研究品牌
如果未提供 --industry 或 --features,使用网页搜索了解:
- 品牌的业务/所属行业
- 相较于竞争对手的主要差异化优势
- 竞争对手没有的独特功能
步骤 2:生成长尾查询
针对以下类别生成 15–20 条长尾查询:
- 特定功能(仅该品牌具备的独特能力)
- B2B/决策者(来自买家的查询,而非消费者)
- 解决问题(“如何在不使用 Y 的情况下完成 X”)
- 比较/替代方案(“[dominant player] 的替代方案”)
- 特定用例(品牌表现出色的小众场景)
避免使用通用查询,因为这类查询的胜者始终会是主流竞争对手。
步骤 3:通过 OpenAI Search API 查询 ChatGPT
使用启用了网页搜索的 OpenAI gpt-4o-search-preview 模型:
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"]
步骤 4:检查提及
对于每条查询,检查品牌名称(或已知别名)是否出现在 ChatGPT 的回答中:
- 检查不区分大小写的匹配
- 检查不同写法(有无空格、句点、连字符)
- 如果有提及,提取其上下文(提及前后各 200 个字符)
- 记录出现位置(是否为首选推荐?是否与其他品牌一同列出?是否只是顺带提及?)
步骤 5:报告结果
输出汇总表:
## 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
速率限制
- 按顺序逐条运行查询,每条间隔 1–2 秒,以避免触发速率限制
- 每条查询通过 OpenAI API 的费用约为 $0.01
- 默认:每次运行 15–20 条查询(每次约 $0.15–0.20)
说明
- 结果反映了启用网页搜索的 ChatGPT(基于实时网页搜索结果)
- 由于搜索结果的时效性,不同运行的结果可能略有差异
- 此测试专门针对 ChatGPT,Gemini 和 Copilot 的结果可能有所不同
- 如需持续监控,可考虑定期运行,以跟踪可见度变化
评论
支持 Markdown