SuperAPI AI Directory

gt

Marketing & growth

View repository

Updated 10-16 13:07

About this skill

gt — Google Trends queries + keyword difficulty estimation + SEO keyword selection workflow

Three layers of capability:Basic queries(five subcommands),Workflows(stringing queries into decisions),KD difficulty estimation(competition-side wrap-up).

Installation and updates

Source:Skills.sh

# 首次全局安装,或更新失败时重新安装
npx skills add yan-labs/yan-skills --skill gt -g -y

# 将已安装的全局 Skill 更新到最新版
npx skills update gt -g -y

If using project-level installation, remove from the install command the -g; for project-level updates use npx skills update gt -p -y。

Two layers of capability:Basic queries(four subcommands) andWorkflows(stringing queries into decisions). When the user asks a single-point question, go with basic queries; when the user gives a vague direction and wants keyword and market selection, go with workflows.

Core concepts

The complete keyword selection formula is Potential value = demand × (1 - competition):

  • Demand side(Google Trends): who is searching, how much they search, trend up or down, which countries are hot → compare / region / related / hot
  • Competition side(KD difficulty estimation): how hard it is to rank, who is in the top ten, how many backlinks are needed → kd

Only after checking both sides can you conclude whether it is "worth doing."

Basic queries

The user wants Subcommand Data source
Popularity comparison / trend curves / "which is hotter, XX or YY" compare pytrends
Regional distribution / "which country searches more" region pytrends
Related terms / rising queries / "what else do people search when they search XX" related pytrends
Today's trending searches / "what is the US searching for right now" hot opencli
Keyword difficulty / SERP landscape / "can this word rank" kd Web.Cafe KD API

Trends queries (compare / region / related / hot)

The script is located in this skill's directory under scripts/gt.py(in the examples below $GT is used as a stand-in; when actually executing, replace it with the skill's base directory + /scripts/gt.py):

python3 $GT <子命令> [关键词...] [选项]

# 热度对比(默认全球、近 12 个月,>30 行自动按月聚合)
python3 $GT compare ChatGPT Claude Gemini
python3 $GT compare "wireless charger" --geo US --time 5y
python3 $GT compare sunscreen --time 2024-01-01:2025-12-31 --geo AU

# 地区分布(不带 --geo 按国家列,带 --geo 按州/省列)
python3 $GT region "remove background" --top 15

# 相关查询(单关键词;rising=飙升词,top=高频词)
python3 $GT related Claude --geo US

# 每日热搜榜(走 opencli,未安装 opencli 则此命令不可用,其余三个不受影响)
python3 $GT hot --region JP --limit 10

Quick option reference:--geo(US/JP/ID..., blank = global, any ISO country code works),--time(1m/3m/12m/5y/all or start:end dates),--raw(compare does not aggregate),--top N、--region/--limit(hot only).

KD difficulty estimation

The script is located at scripts/kd.py(referred to below as $KD ):

python3 $KD <keyword> [--gl US] [--force] [--format markdown|json|raw]

# 默认输出:本地渲染的 markdown 报告
python3 $KD "ai photo editor"
python3 $KD "remove background" --gl JP

# JSON 原始数据(适合程序化处理)
python3 $KD "pdf to excel" --format json

# API 原始 markdown(自包含报告,适合存档)
python3 $KD "ai logo maker" --format raw

# 跳过 7 天缓存强制重算
python3 $KD "ai photo editor" --force

KD output includes:

  • Difficulty score (0-100) + Chinese level (extremely easy/easy/medium/hard/extremely hard)
  • Monthly search volume(absolute value, not the relative value from Trends)
  • Brand keyword/generic keyword automatic identification
  • Reason for judgment(a breakdown of plus/minus points for each signal, in Chinese)
  • Link budget(how many referring domains are needed to enter the top ten, dual-track for quality type/directory type)
  • Top ten landscape(for each site: DR, traffic, age, whether it is specially operated, main keyword hits)
  • New site signal(A new domain under 18 months old already ranking in the top ten = the niche is friendly to new sites)
  • Rising-phase signal(trend ratio ≥ 1 = growing rapidly)

KD output also automatically calculates:

  • KDROI (return on investment):(日搜索量 × $0.1 × 365 / 外链成本 - 1) × 100%
    • Backlink cost uses tiered pricing: first 10 links $100 each, links 11-50 +1% each, links 51-200 +1.5%, links 200+ +2%
    • Assume $0.1 revenue per click, assume you can get all clicks (optimistic estimate, used for horizontal comparison when choosing keywords)
    • KDROI > 100% = high return, 0-100% = positive return but marginal, < 0 = not worth it

Interpretation of key KD fields:

  • score 58 + new site signal = medium difficulty but new sites can enter, worth doing
  • score 75+ and no new site signal = red ocean, don't touch it unless you have big-site-level resources
  • score 30- = blue ocean, but check whether search volume is too low
  • KDROI > 100% = high-return keyword, prioritize it
  • linkBudget.quality.mid = median value for quality backlinks, this is the target for backlink building
  • details in dedicated=true high density = a keyword being contested head-on (not one that big sites rank for incidentally)
  • keywordTrend.ratio ≥ 1 = a site is growing rapidly on this keyword, the timing window is in

KD model methodology (refer to this when interpreting scores)

Every score comes with a complete Chinese explanation of the reasoning. The model doesn't just count backlinks—it answers: does a new site focused on this keyword have a structural opportunity?

Base strength: site strength = 0.6×DR + 0.4×traffic score (log-normalized). Ordinary inner pages are discounted to 45%, dedicated business pages to 65%, homepages at full value, aggregated with position weighting. A giant putting up an inner page vs. a small site staking its homepage are completely different threats, and the model can tell them apart.

Signal correction(more than ten categories): weak site/weak homepage appearing (direct evidence that new sites can enter), dedicated business density (everyone customizing = head-on red ocean competition), strong homepage density and crowding, Top3 blockade, volume prior, rising-phase trend (a single site's keyword traffic exceeding the annual average search volume = rapid rising phase), SERP experience fragility (median dwell/bounce), new domain signal (under 18 months old and already ranking), domain migration identification (young but high DR with low search share = DR passed on via 301 from an old domain).

Brand keyword identification: triple fingerprint of same-name official domain + expanded Sitelinks + platform-type result density. After identification, the brand itself and platform ecosystem pages (fixed positions) are excluded, and only contestable positions are scored, answering "how hard is it to enter this SERP with derivative content".

Link budget: interpolated from Ahrefs' official KD→referring domains curve, distinguishing dual tracks of quality editorial / directory listing types, and back-calculating the target DR magnitude.

Experience score: the relative ranking (0-100) of dwell time, bounce rate, and pages per person within this SERP. Platform-type domains such as YouTube/app stores do not participate in the comparison.

Key constraints

Trends side

  • values are relative values normalized to 0-100, 100 = the peak within the selected range. A small country's 100 ≠ high search volume, it only means "a high proportion of that country's total searches". For absolute volume, use KD's keywordVolume to close it out.
  • Keyword language must match the region: use German words for Germany, Japanese words for Japan. If the user gives a Chinese word but is querying an English-speaking region, translate it first before querying.
  • compare supports at most 5 keywords at a time; more than 5 clusters need to be checked, and only within the same cluster can they be directly compared.
  • hot does not support CN(no mainland feed), recommend TW/HK, or switch to agent-reach to check Weibo/Baidu hot searches.
  • 429 rate limiting: consecutive queries that are too fast will be rejected; in a workflow, leave a few seconds between each call, and if rate-limited, wait 1-2 minutes.
  • Terms that are too obscure will return empty data in small countries - this itself is a signal (insufficient demand).
  • On first run, compare/region/related will automatically create a venv (~/.cache/gt-skill/venv), about 30 seconds.

KD side

  • Daily quota 100 times(Web.Cafe logged-in users), shared across web/MCP/API, VIP 500 times.
  • ≤10 times per minutefuse, batch query interval ≥6 seconds.
  • 7-day cache: repeated queries for the same term return instantly but still count against the quota; to force recalculation use --force。
  • only supports English keywords(the API analyzes Google English SERP); to check non-English markets use --gl to switch countries but the terms are still English.
  • The results are keyword selection references, not ranking guarantees。
  • The token is stored in the script defaults, and can also be overridden via --token or KD_TOKEN environment variables. Token acquisition/reset: https://seo.web.cafe/kd

Workflow

W1 · Competitiveness detection for small-language/small-country markets

Input: one product keyword. Output: a list of markets worth doing + content language decision + difficulty assessment for each market.

  1. Global scan:region <词> --time 12m --top 15 → circle the over-index countries (relatively high interest = users in that country care especially about this need).
  2. Trend health: for each candidate country compare <词> --geo <国> --time 5y → keep only rising or stable markets, eliminate declining ones; also record seasonality along the way.
  3. Language decision: within the same country compare "本地语词" "英语词" --geo <国> → whichever wins, create content in that language. Do not assume - in actual testing, Indonesian users searching "remove background" (English) actually beat "hapus background" (local language).
  4. Dig into local search methods:related <词> --geo <国> → rising terms are often the real local long tail, backfill them into the candidate keyword list.
  5. Competition-side narrowing: for the surviving candidate terms kd <词> --gl <国> → check difficulty score + search volume + SERP landscape. Focus on:
    • score < 40 and keywordVolume > 1000 = high-value blue ocean
    • There are new-site signals (new domains under 18 months ranking in the top ten) = the niche is friendly to new sites
    • linkBudget.quality.mid determines the backlink building budget

W2 · Vague keyword → SEO terms that can support a site (keyword expansion → validation → narrowing)

Input: the user gives only a vague term or product direction (such as "image processing"). Output: an executable keyword selection decision table.

Step 1: Multi-angle keyword expansion (divergence). Call the following skills, each producing candidate terms from a different angle, and combine them into 3-6 keyword clusters (each cluster ≤5 terms, exactly one compare batch):

  • brainstorming → first clarify: what problem the product actually solves and who the target users are. Keyword expansion comes first to prevent going off direction.
  • marketing-psychology → terms from the buyer psychology angle: pain-point terms ("photo too blurry"), comparison terms ("X vs Y", "X alternative"), decision terms ("best X", "X free").
  • marketing-ideas → Words from the use-case/audience angle: search approaches for different professions, different platforms, different use cases.
  • ai-seo → Question-form queries and query forms that AI search engines prefer to cite ("how to X without Y").

Step 2: Use Trends to validate trends (converge the demand side).

  1. For each cluster, compare ... --time 5y: eliminate long-term declining words, flag rising words.
  2. For surviving words, related: the rising list often contains better variants than the original word; if you find one, backfill the word cluster and compare for another round.
  3. For the final surviving words, region: flag each word's opportunity market (can connect to W1 for deeper digging).

Step 3: Use KD to validate difficulty (converge the competition side).

For each word that passes the trend filter, kd <词>(note the rate limit of ≤10 times per minute, interval ≥6 seconds):

  1. Eliminate score > 70 words with no new-site signal (red ocean, personal sites/small teams stay away).
  2. Flag words with a new-site signal (even if the score is high, new sites have proven entry is possible).
  3. Compare the keywordVolumeof words in the same cluster, and choose the optimal combination of search volume and difficulty.
  4. Record linkBudget as the quantitative target for link building.

Step 4: Deliver the decision table.

Word cluster Representative word Trend (5y) Monthly search volume KD difficulty KDROI New-site signal Link budget Recommendation

Decision logic for the Recommendation column (look at it comprehensively, don't mechanically apply a single metric):

  • ✅ Do: KDROI > 100% and KD < 60 (or has a new-site signal)
  • ⚠️ Can do: KDROI is positive but KD is relatively high, or KDROI is high but the competitive landscape is uncertain
  • ❌ Don't do: KDROI < 0, or KD > 70 with no new-site signal, or monthly search volume < 500

After selecting words, the site-building stage → seo-geo(on-page optimization, schema, traditional + AI search) and ai-seo(content strategy for being cited by LLMs) take over.

When these skills are unavailable (e.g., you've switched environments), just step in and do the keyword expansion yourself; the angles stay the same: the four directions of pain point/comparison/scenario/question.

W3 · Emerging trend capture

  • related 's rising list is the strongest signal source: words at +several-thousand-% = demand that is taking off.
  • Suspected new word compare <新词> <类目老词> --time 12m → determine whether it's a flash in the pan or continuously climbing (only counts if it rises for 3 or more consecutive months).
  • For words confirmed to be rising, kd <词> → if keywordTrend.ratio ≥ 1 and score < 50, this is the best timing window.
  • hot Used only for time-sensitive topics, not as a basis for word selection.

Output handling

The script outputs a markdown table that can be cited directly. When answering the user:

  1. Give the conclusion first (who is more popular, trend direction, which market has opportunity, whether the difficulty is acceptable), then paste the data table.
  2. compare points out the peak and inflection point (the peak row is already given at the end of the script); when interpreting, remind that the values are relative.
  3. Focus the KD result interpretation on: difficulty level + new-site signal + link budget + who the weakest competitor is (the user's anchor).
  4. For workflow outputs, prioritize the W2 decision table format so the user can act directly.
  5. When the user wants a chart, draw it using existing output data; do not repeat the query.