Not in the top 1,000 by GitHub stars

TheMattBerman/seo-kit

AI agent that finds keywords, writes content, monitors rankings, and self-improves. Two OpenClaw skills that chain into a compounding SEO loop.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/seo-agent/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → c57d77d182cf

No earlier version was observed for comparison.

Compare on GitHub

skills/seo-checklist/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → c57d77d182cf

No earlier version was observed for comparison.

Compare on GitHub

skills/seo-forge/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → c57d77d182cf

No earlier version was observed for comparison.

Compare on GitHub

skills/seo-health/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → c57d77d182cf

No earlier version was observed for comparison.

Compare on GitHub

skills/seo-images/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → c57d77d182cf

No earlier version was observed for comparison.

Compare on GitHub

skills/seo-links/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → c57d77d182cf

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit c57d77d182cf3db76cb19cc68c2f7651accc2e9a

git clone --filter=blob:none --no-checkout https://github.com/TheMattBerman/seo-kit.git .hotskills/themattberman-seo-kit && git -C .hotskills/themattberman-seo-kit checkout --detach c57d77d182cf3db76cb19cc68c2f7651accc2e9a # Copy each selected skill directory from .hotskills/themattberman-seo-kit into .agents/skills/<skill-name>/
100GitHub stars
Not availablestars in 7 days
6skills in this repository
0commits in 30 days

Heat

Insufficient history

Not enough history yet to measure heat. It appears after a few days of data.

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Nov 2, 2026Nov 2, 2026100

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

seo-agent

When your agent uses it

Self-improving SEO system. Finds keywords via DataForSEO, writes content that ranks, monitors GSC for what's climbing, then writes MORE content to push winners higher. A feedback loop, not a one-shot tool.

What it loads into context

Frontmatter

113 tokens

Always available to the agent

SKILL.md

1,971 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. The Loop
  2. The Strike Zone
  3. Scripts
  4. Configuration
  5. Setup
  6. Running the Full Loop
  7. How Claude Uses This
  8. DataForSEO Endpoints Used
  9. Output Files
  10. Why This Works

Scripts executed separately

  • scripts/seo-compete.sh
  • scripts/seo-discover.sh
  • scripts/seo-monitor.sh

Files

  • SKILL.mdcore8,099 bytes
  • SKILL.mdcore8,099 bytes
  • SKILL.mdcore8,099 bytes
  • SKILL.mdcore8,099 bytes
  • SKILL.mdcore8,099 bytes
  • SKILL.mdcore8,099 bytes
  • SKILL.mdcore8,099 bytes
  • SKILL.mdcore8,099 bytes
  • SKILL.mdcore8,099 bytes
  • scripts/seo-compete.shruns8,097 bytes
  • scripts/seo-discover.shruns12,088 bytes
  • scripts/seo-monitor.shruns11,629 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • seo-agent
  • seo-checklist
  • seo-forge
  • seo-health
  • seo-images
  • seo-links

Repository facts

License
No license detected
Created
Mar 1, 2026
Last pushed
Mar 8, 2026
Forks
26
Open issues
0
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 34 notes
  • skills/seo-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-agent/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-forge/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-forge/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-health/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-health/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-health/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-health/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-health/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-images/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-images/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-images/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-images/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/seo-images/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 218 signals by file

skills/seo-agent/SKILL.md

  • Network accessline 6
    emoji: "🔄"     user-invocable: true     homepage: https://bigplayers.co
  • Network accessline 7
    user-invocable: true     homepage: https://bigplayers.co     requires:
  • Network accessline 8
    homepage: https://bigplayers.co
  • Network accessline 65
    All scripts live in `~/clawd/skills/seo-agent/scripts/`. All use bash + curl + jq. No Python. No npm.
  • Access to secretsline 150
    [Credential-related source omitted]
  • Network accessline 152
    ### 3. Your Site URL Find your exact property URL in [Search Console](https://search.google.com/search-console). It's either:
  • Network accessline 153
    Find your exact property URL in [Search Console](https://search.google.com/search-console). It's either:
  • Network accessline 154
    - `https://example.com` (URL prefix property)
  • Network accessline 211
    API base: `https://api.dataforseo.com`

skills/seo-agent/scripts/seo-compete.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 14
    DFS_BASE="https://api.dataforseo.com"
  • Network accessline 49
    RAW_SITE=$(grep '^site:' "$CONFIG_FILE" | sed 's/site: *"//' | tr -d '"' | tr -d "'")     SITE=$(echo "$RAW_SITE" | sed 's|sc-domain:||' | sed 's|https://||' | sed 's|/$||')
  • Network accessline 50
    SITE=$(echo "$RAW_SITE" | sed 's|sc-domain:||' | sed 's|https://||' | sed 's|/$||')
  • Network accessline 59
    SITE=$(echo "$SITE" | sed 's|sc-domain:||' | sed 's|https://||' | sed 's|/$||')
  • Network accessline 88
    INTERSECTION=$(curl -s -X POST "$DFS_BASE/v3/dataforseo_labs/google/domain_intersection/live" \
  • Network accessline 140
    COMP_PAGES=$(curl -s -X POST "$DFS_BASE/v3/dataforseo_labs/google/competitors_domain/live" \

skills/seo-agent/scripts/seo-discover.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 16
    SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" GSC_AUTH_SCRIPT="$HOME/clawd/skills/gsc-report/scripts/get-token.sh" DFS_BASE="https://api.dataforseo.com"
  • Network accessline 17
    GSC_AUTH_SCRIPT="$HOME/clawd/skills/gsc-report/scripts/get-token.sh" DFS_BASE="https://api.dataforseo.com" CONFIG_FILE="$HOME/clawd/workspace/seo-agent/config.yaml"
  • Network accessline 18
    DFS_BASE="https://api.dataforseo.com"
  • Access to secretsline 86
    [Credential-related source omitted]
  • Network accessline 100
    [Credential-related source omitted]
  • Access to secretsline 100
    [Credential-related source omitted]
  • Network accessline 101
    "https://searchconsole.googleapis.com/webmasters/v3/sites/${ENCODED_SITE}/searchAnalytics/query" \
  • Access to secretsline 102
    [Credential-related source omitted]
  • Network accessline 159
    DFS_SUGGESTIONS=$(curl -s -X POST "$DFS_BASE/v3/dataforseo_labs/google/keyword_suggestions/live" \
  • Network accessline 181
    DFS_RELATED=$(curl -s -X POST "$DFS_BASE/v3/keywords_data/google_ads/keywords_for_keywords/live" \
  • Network accessline 204
    DFS_VOLUME=$(curl -s -X POST "$DFS_BASE/v3/keywords_data/google_ads/search_volume/live" \

skills/seo-agent/scripts/seo-monitor.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 53
    SITE_SLUG=$(echo "$SITE" | sed 's|sc-domain:||' | sed 's|https://||' | sed 's|/|_|g' | sed 's|\.|_|g')
  • Network accessline 78
    [Credential-related source omitted]
  • Access to secretsline 78
    [Credential-related source omitted]
  • Network accessline 79
    "https://searchconsole.googleapis.com/webmasters/v3/sites/${ENCODED_SITE}/searchAnalytics/query" \
  • Access to secretsline 80
    [Credential-related source omitted]

skills/seo-checklist/CHECKLIST.md

  • Network accessline 23
    <meta property="og:title" content="Your Title" /> <meta property="og:description" content="Your description" /> <meta property="og:image" content="https://yoursite.com/og-image.jpg" />
  • Network accessline 24
    <meta property="og:description" content="Your description" /> <meta property="og:image" content="https://yoursite.com/og-image.jpg" /> <meta property="og:url" content="https://yoursite.com/page" />
  • Network accessline 25
    <meta property="og:image" content="https://yoursite.com/og-image.jpg" />
  • Network accessline 26
    <meta property="og:url" content="https://yoursite.com/page" />
  • Network accessline 34
    <meta name="twitter:title" content="Your Title" /> <meta name="twitter:description" content="Your description" /> <meta name="twitter:image" content="https://yoursite.com/twitter-image.jpg" />
  • Network accessline 36
    <meta name="twitter:image" content="https://yoursite.com/twitter-image.jpg" />
  • Network accessline 47
    {   "@context": "https://schema.org",
  • Network accessline 48
    "@context": "https://schema.org",
  • Network accessline 52
    "@type": "Person",     "name": "Author Name",     "url": "https://yoursite.com/about"
  • Network accessline 53
    "name": "Author Name",     "url": "https://yoursite.com/about"   },
  • Network accessline 54
    "url": "https://yoursite.com/about"
  • Network accessline 61
    "logo": {       "@type": "ImageObject",       "url": "https://yoursite.com/logo.png"
  • Network accessline 62
    "@type": "ImageObject",       "url": "https://yoursite.com/logo.png"     }
  • Network accessline 63
    "url": "https://yoursite.com/logo.png"
  • Network accessline 64
    }   },   "image": "https://yoursite.com/article-image.jpg",
  • Network accessline 65
    },   "image": "https://yoursite.com/article-image.jpg",   "description": "Meta description here"
  • Network accessline 66
    "image": "https://yoursite.com/article-image.jpg",
  • Network accessline 73
    {   "@context": "https://schema.org",
  • Network accessline 74
    "@context": "https://schema.org",
  • Network accessline 91
    {   "@context": "https://schema.org",
  • Network accessline 92
    "@context": "https://schema.org",
  • Network accessline 107
    {   "@context": "https://schema.org",
  • Network accessline 108
    "@context": "https://schema.org",
  • Network accessline 109
    "@type": "Organization",   "name": "Your Brand",   "url": "https://yoursite.com",
  • Network accessline 110
    "name": "Your Brand",   "url": "https://yoursite.com",   "logo": "https://yoursite.com/logo.png",
  • Network accessline 111
    "url": "https://yoursite.com",
  • Network accessline 112
    "logo": "https://yoursite.com/logo.png",
  • Network accessline 113
    "sameAs": [     "https://twitter.com/yourbrand",     "https://linkedin.com/company/yourbrand"
  • Network accessline 114
    "https://twitter.com/yourbrand",
  • Network accessline 115
    "https://linkedin.com/company/yourbrand"
  • Network accessline 140
    ## Key Content - [Topic Guide](https://yoursite.com/guide): Description
  • Network accessline 141
    - [Topic Guide](https://yoursite.com/guide): Description
  • Network accessline 142
    - [Resource](https://yoursite.com/resource): Description
  • Network accessline 144
    ## Contact - Website: https://yoursite.com
  • Network accessline 145
    - Website: https://yoursite.com
  • Network accessline 212
    Disallow: /admin/ Disallow: /api/ Sitemap: https://yoursite.com/sitemap.xml
  • Network accessline 214
    Sitemap: https://yoursite.com/sitemap.xml
  • Network accessline 220
    <link rel="canonical" href="https://yoursite.com/this-page" />

skills/seo-checklist/SKILL.md

  • Network accessline 7
    author: "Matt Berman"     emoji: "✅"     homepage: https://bigplayers.co
  • Network accessline 8
    emoji: "✅"     homepage: https://bigplayers.co     user-invocable: true
  • Network accessline 9
    homepage: https://bigplayers.co

skills/seo-forge/SKILL.md

  • Access to secretsline 667
    [Credential-related source omitted]

skills/seo-forge/scripts/seo-check.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

skills/seo-forge/scripts/seo-interview.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

skills/seo-forge/scripts/seo-research.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 12
    LANG="en" JSON_MODE=false DFS_API="https://api.dataforseo.com/v3"
  • Network accessline 14
    DFS_API="https://api.dataforseo.com/v3"
  • Network accessline 87
    SERP_RESPONSE=$(curl -s \
  • Network accessline 88
    -u "$DATAFORSEO_LOGIN:$DATAFORSEO_PASSWORD" \   -X POST "$DFS_API/serp/google/organic/live/advanced" \   -H "Content-Type: application/json" \
  • Network accessline 89
    -X POST "$DFS_API/serp/google/organic/live/advanced" \
  • Network accessline 103
    VOLUME_RESPONSE=$(curl -s \
  • Network accessline 104
    -u "$DATAFORSEO_LOGIN:$DATAFORSEO_PASSWORD" \   -X POST "$DFS_API/keywords_data/google_ads/search_volume/live" \   -H "Content-Type: application/json" \
  • Network accessline 105
    -X POST "$DFS_API/keywords_data/google_ads/search_volume/live" \
  • Network accessline 119
    RELATED_RESPONSE=$(curl -s \
  • Network accessline 120
    -u "$DATAFORSEO_LOGIN:$DATAFORSEO_PASSWORD" \   -X POST "$DFS_API/keywords_data/google_ads/keywords_for_keywords/live" \   -H "Content-Type: application/json" \
  • Network accessline 121
    -X POST "$DFS_API/keywords_data/google_ads/keywords_for_keywords/live" \

skills/seo-health/SKILL.md

  • Network accessline 7
    author: "Matt Berman"     emoji: "🏥"     homepage: https://bigplayers.co
  • Network accessline 8
    emoji: "🏥"     homepage: https://bigplayers.co     user-invocable: true
  • Network accessline 9
    homepage: https://bigplayers.co
  • Access to secretsline 16
    [Credential-related source omitted]

skills/seo-health/scripts/health-crawl.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 6
    DOMAIN="${1:?Usage: health-crawl.sh <domain> [--sitemap URL] [--limit 50]}" SITEMAP="https://${DOMAIN}/sitemap.xml"
  • Network accessline 7
    SITEMAP="https://${DOMAIN}/sitemap.xml"
  • Network accessline 18
    echo "🕷<U+FE0F> Crawl Health Audit: $DOMAIN" echo "Sitemap: $SITEMAP"
  • Network accessline 19
    echo "Sitemap: $SITEMAP"
  • Network accessline 23
    echo "" echo "📋 robots.txt" ROBOTS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"I "https://${DOMAIN}/robots.txt" -o /dev/null -w "%{http_code}")
  • Network accessline 24
    echo "📋 robots.txt" ROBOTS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"I "https://${DOMAIN}/robots.txt" -o /dev/null -w "%{http_code}") if [[ "$ROBOTS" == "200" ]]; then
  • Network accessline 25
    ROBOTS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"I "https://${DOMAIN}/robots.txt" -o /dev/null -w "%{http_code}")
  • Network accessline 26
    if [[ "$ROBOTS" == "200" ]]; then   echo "  ✅ robots.txt exists"   SITEMAP_IN_ROBOTS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" "https://${DOMAIN}/robots.txt" | grep -i "sitemap" || true)
  • Network accessline 27
    echo "  ✅ robots.txt exists"   SITEMAP_IN_ROBOTS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" "https://${DOMAIN}/robots.txt" | grep -i "sitemap" || true)   if [[ -n "$SITEMAP_IN_ROBOTS" ]]; then
  • Network accessline 28
    SITEMAP_IN_ROBOTS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" "https://${DOMAIN}/robots.txt" | grep -i "sitemap" || true)
  • Network accessline 39
    echo "" echo "🗺<U+FE0F> Sitemap" SITEMAP_STATUS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"I "$SITEMAP" -o /dev/null -w "%{http_code}")
  • Network accessline 40
    echo "🗺<U+FE0F> Sitemap" SITEMAP_STATUS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"I "$SITEMAP" -o /dev/null -w "%{http_code}") if [[ "$SITEMAP_STATUS" == "200" ]]; then
  • Network accessline 41
    SITEMAP_STATUS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"I "$SITEMAP" -o /dev/null -w "%{http_code}")
  • Network accessline 42
    if [[ "$SITEMAP_STATUS" == "200" ]]; then   URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" | grep -oP '<loc>\K[^<]+' | head -"$LIMIT")   URL_COUNT=$(wc -l <<< "$URLS")
  • Network accessline 43
    URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" | grep -oP '<loc>\K[^<]+' | head -"$LIMIT")
  • Network accessline 47
    echo "  ❌ Sitemap not accessible ($SITEMAP_STATUS)"   echo "  Trying sitemap_index..."   URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" | grep -oP '<loc>\K[^<]+' | head -3 | while read -r SUB; do
  • Network accessline 48
    echo "  Trying sitemap_index..."   URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" | grep -oP '<loc>\K[^<]+' | head -3 | while read -r SUB; do     curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SUB" 2>/dev/null | 
  • Network accessline 49
    URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" | grep -oP '<loc>\K[^<]+' | head -3 | while read -r SUB; do
  • Network accessline 50
    curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SUB" 2>/dev/null | grep -oP '<loc>\K[^<]+' | head -20
  • Network accessline 73
    RESPONSE=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L --max-time 10 -w "\n%{http_code}" "$PAGE" 2>/dev/null)
  • Network accessline 77
    SLUG=$(echo "$PAGE" | sed "s|https://${DOMAIN}||")

skills/seo-health/scripts/health-images.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 12
    SITEMAP="https://${DOMAIN}/sitemap.xml" URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" 2>/dev/null | grep -oP '<loc>\K[^<]+' | head -"$PAGES")
  • Network accessline 13
    URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" 2>/dev/null | grep -oP '<loc>\K[^<]+' | head -"$PAGES")
  • Network accessline 15
    [[ -z "$URLS" ]] && { echo "No sitemap found. Checking homepage only."; URLS="https://${DOMAIN}"; }
  • Network accessline 24
    while IFS= read -r PAGE; do   [[ -z "$PAGE" ]] && continue   SLUG=$(echo "$PAGE" | sed "s|https://${DOMAIN}||")
  • Network accessline 25
    [[ -z "$PAGE" ]] && continue   SLUG=$(echo "$PAGE" | sed "s|https://${DOMAIN}||")   [[ -z "$SLUG" ]] && SLUG="/"
  • Network accessline 26
    SLUG=$(echo "$PAGE" | sed "s|https://${DOMAIN}||")
  • Network accessline 29
    BODY=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L --max-time 10 "$PAGE" 2>/dev/null)
  • Network accessline 75
    done <<< "$URLS"

skills/seo-health/scripts/health-speed.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Access to secretsline 7
    [Credential-related source omitted]
  • Network accessline 9
    check_speed() {   local url="$1" strategy="$2"   local api_url="https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${url}&strategy=${strategy}&category=performance&category=seo&category=accessibility"
  • Network accessline 10
    local url="$1" strategy="$2"   local api_url="https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${url}&strategy=${strategy}&category=performance&category=seo&category=accessibility"   [[ -n "$API_KEY" ]] && api_url="${api_url}&
  • Network accessline 11
    local api_url="https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${url}&strategy=${strategy}&category=performance&category=seo&category=accessibility"
  • Access to secretsline 12
    [Credential-related source omitted]
  • Network accessline 14
    echo "📱 Checking ${strategy}..."   local response   response=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" "$api_url")
  • Network accessline 16
    response=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" "$api_url")

skills/seo-images/SKILL.md

  • Broad permissionsline 1
    Bash, Read, Write, WebFetch
  • Network accessline 17
    bins:       - curl       - jq
  • Network accessline 18
    - curl       - jq ---
  • Network accessline 49
    # Get your API token from https://replicate.com/account/api-tokens
  • Access to secretsline 50
    [Credential-related source omitted]
  • Network accessline 60
    # Get your API key from https://aistudio.google.com/apikey
  • Access to secretsline 61
    [Credential-related source omitted]
  • Network accessline 64
    **Model:** `gemini-3.1-flash-image-preview` **Cost:** Free tier available (rate limited), then pay-as-you-go **Endpoint:** `https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent`
  • Network accessline 66
    **Endpoint:** `https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-flash-image-preview:generateContent`
  • Access to secretsline 71
    [Credential-related source omitted]
  • Access to secretsline 175
    [Credential-related source omitted]
  • Network accessline 237
    [Credential-related source omitted]
  • Access to secretsline 237
    [Credential-related source omitted]
  • Access to secretsline 238
    [Credential-related source omitted]
  • Network accessline 242
    "prompt": "your flattened prompt here",       "image_input": ["https://url-to-reference-image.png"],
  • Network accessline 243
    "image_input": ["https://url-to-reference-image.png"],
  • Network accessline 256
    # Create prediction curl -s -X POST "https://api.replicate.com/v1/models/google/nano-banana-2/predictions" \
  • Network accessline 257
    [Credential-related source omitted]
  • Access to secretsline 257
    [Credential-related source omitted]
  • Access to secretsline 258
    [Credential-related source omitted]
  • Network accessline 272
    [Credential-related source omitted]
  • Network accessline 273
    [Credential-related source omitted]
  • Access to secretsline 273
    [Credential-related source omitted]
  • Network accessline 274
    "https://api.replicate.com/v1/predictions/{prediction_id}"
  • Network accessline 291
    [Credential-related source omitted]
  • Access to secretsline 291
    [Credential-related source omitted]
  • Network accessline 292
    [Credential-related source omitted]
  • Access to secretsline 292
    [Credential-related source omitted]

skills/seo-images/scripts/generate.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 269
    [Credential-related source omitted]
  • Access to secretsline 269
    [Credential-related source omitted]
  • Network accessline 270
    echo "ERROR: REPLICATE_API_TOKEN not set"   echo "Get your token at https://replicate.com/account/api-tokens"   exit 1
  • Network accessline 271
    echo "Get your token at https://replicate.com/account/api-tokens"
  • Network accessline 287
    for i in $(seq 1 "$VARIATIONS"); do   RESPONSE=$(curl -s -X POST "https://api.replicate.com/v1/models/google/nano-banana-2/predictions" \
  • Network accessline 288
    [Credential-related source omitted]
  • Access to secretsline 288
    [Credential-related source omitted]
  • Access to secretsline 289
    [Credential-related source omitted]
  • Network accessline 324
    OUT_FILE="$OUTPUT"       fi       curl -s -o "$OUT_FILE" "$IMAGE_URL"
  • Network accessline 325
    fi       curl -s -o "$OUT_FILE" "$IMAGE_URL"       echo "✅ Saved: $OUT_FILE"
  • Network accessline 326
    curl -s -o "$OUT_FILE" "$IMAGE_URL"
  • Network accessline 334
    [Credential-related source omitted]
  • Network accessline 335
    [Credential-related source omitted]
  • Network accessline 336
    [Credential-related source omitted]
  • Access to secretsline 336
    [Credential-related source omitted]
  • Network accessline 337
    "https://api.replicate.com/v1/predictions/$PRED_ID")
  • Network accessline 347
    OUT_FILE="$OUTPUT"         fi         curl -s -o "$OUT_FILE" "$IMAGE_URL"
  • Network accessline 348
    fi         curl -s -o "$OUT_FILE" "$IMAGE_URL"         echo "✅ Saved: $OUT_FILE"
  • Network accessline 349
    curl -s -o "$OUT_FILE" "$IMAGE_URL"
  • Network accessline 358
    [Credential-related source omitted]
  • Network accessline 359
    [Credential-related source omitted]
  • Network accessline 360
    [Credential-related source omitted]
  • Access to secretsline 360
    [Credential-related source omitted]

skills/seo-links/SKILL.md

  • Network accessline 7
    author: "Matt Berman"     emoji: "🔗"     homepage: https://bigplayers.co
  • Network accessline 8
    emoji: "🔗"     homepage: https://bigplayers.co     user-invocable: true
  • Network accessline 9
    homepage: https://bigplayers.co

skills/seo-links/scripts/link-broken.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 12
    RESPONSE=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced" \
  • Network accessline 31
    LINKS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L --max-time 10 "$URL" 2>/dev/null | grep -oP 'href="\K[^"]+' | grep '^http' | sort -u | head -20)
  • Network accessline 32
    for LINK in $LINKS; do       STATUS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"I --max-time 5 -o /dev/null -w "%{http_code}" "$LINK" 2>/dev/null || echo "000")       if [[ "$STATUS" == "404" || "$STATUS" == "410" || "$STATUS" == "00
  • Network accessline 33
    STATUS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"I --max-time 5 -o /dev/null -w "%{http_code}" "$LINK" 2>/dev/null || echo "000")

skills/seo-links/scripts/link-internal.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 5
    DOMAIN="${1:?Usage: link-internal.sh <your-domain> [--sitemap URL]}" SITEMAP="${3:-https://${DOMAIN}/sitemap.xml}"
  • Network accessline 6
    SITEMAP="${3:-https://${DOMAIN}/sitemap.xml}"
  • Network accessline 8
    echo "🕸<U+FE0F> Auditing internal links for: $DOMAIN" echo "Sitemap: $SITEMAP"
  • Network accessline 9
    echo "Sitemap: $SITEMAP"
  • Network accessline 12
    echo "" echo "Fetching sitemap..." URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" 2>/dev/null | grep -oP '<loc>\K[^<]+' | head -50)
  • Network accessline 14
    URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" 2>/dev/null | grep -oP '<loc>\K[^<]+' | head -50)
  • Network accessline 16
    if [[ -z "$URLS" ]]; then   echo "No sitemap found or empty. Trying sitemap_index..."   URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" 2>/dev/null | grep -oP '<loc>\K[^<]+' | head -5 | while read -r SUB; do
  • Network accessline 17
    echo "No sitemap found or empty. Trying sitemap_index..."   URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" 2>/dev/null | grep -oP '<loc>\K[^<]+' | head -5 | while read -r SUB; do     curl -s -A "Mozilla/5.0 (compatible
  • Network accessline 18
    URLS=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SITEMAP" 2>/dev/null | grep -oP '<loc>\K[^<]+' | head -5 | while read -r SUB; do
  • Network accessline 19
    curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L "$SUB" 2>/dev/null | grep -oP '<loc>\K[^<]+' | head -20
  • Network accessline 39
    while IFS= read -r PAGE; do   SLUG=$(echo "$PAGE" | sed "s|https://${DOMAIN}||")
  • Network accessline 40
    SLUG=$(echo "$PAGE" | sed "s|https://${DOMAIN}||")
  • Network accessline 44
    while IFS= read -r PAGE; do   BODY=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L --max-time 10 "$PAGE" 2>/dev/null)
  • Network accessline 45
    BODY=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)"L --max-time 10 "$PAGE" 2>/dev/null)
  • Network accessline 46
    INTERNAL_LINKS=$(echo "$BODY" | grep -oP "href=\"\K[^\"]*" | grep -E "^/|^https://${DOMAIN}" | sed "s|https://${DOMAIN}||" | sort -u)
  • Network accessline 48
    SLUG=$(echo "$PAGE" | sed "s|https://${DOMAIN}||")

skills/seo-links/scripts/link-mentions.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 12
    RESPONSE=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced" \

skills/seo-links/scripts/link-mine.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 22
    RESPONSE=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" -X POST "https://api.dataforseo.com/v3/backlinks/backlinks/live" \

skills/seo-links/scripts/link-prospect.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 20
    echo ""     echo "--- Query: $Q ---"     RESPONSE=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced" \
  • Network accessline 21
    echo "--- Query: $Q ---"     RESPONSE=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced" \       -u "${DATAFORSEO_LOGIN}:${DATAFORSEO_PASSWORD}" \
  • Network accessline 22
    RESPONSE=$(curl -s -A "Mozilla/5.0 (compatible; SEOKit/1.0)" -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced" \

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 218 facts

and 168 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeFrontmatter field user-invocable in skills/seo-images/SKILL.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/seo-agent/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/seo-agent/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/seo-agent/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/seo-agent/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.