mcpField
G
geo-query-finder

geo-query-finder

github.com/openclaudia营销与增长722211 次安装1 周前更新
代码仓库

关于 geo-query-finder

用于测试哪些长尾查询会在 ChatGPT 搜索结果中提及品牌的技能。它可先利用 DataForSEO 的已索引提及作为依据,再通过 OpenAI 网页搜索模型测试其他查询。

主要功能

  1. 01通过 DataForSEO 查找已索引的 AI 提及
  2. 02生成品牌相关长尾查询
  3. 03使用 ChatGPT 网页搜索测试查询
  4. 04检查品牌提及及其上下文
  5. 05汇总查询结果与差距

适用场景

  1. 01评估品牌的 GEO 可见度
  2. 02查找会提及品牌的查询
  3. 03对照已索引提及与查询差距
  4. 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 与品牌匹配的条目会提供准确的引用 URL
  • location_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 条长尾查询:

  1. 特定功能(仅该品牌具备的独特能力)
  2. B2B/决策者(来自买家的查询,而非消费者)
  3. 解决问题(“如何在不使用 Y 的情况下完成 X”)
  4. 比较/替代方案(“[dominant player] 的替代方案”)
  5. 特定用例(品牌表现出色的小众场景)

避免使用通用查询,因为这类查询的胜者始终会是主流竞争对手。

步骤 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