Find referring domains that link to your competitors but not to you, ranked by an outreach-priority score (0.40 DR + 0.25 link-overlap + 0.20 traffic + 0.15 topical relevance) — outputs a four-gate…

MITAuto-check passedMarketing & SEO

Install Backlink Gap

skills CLI
$ npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install indranilbanerjee/digital-marketing-pro backlink-gap --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/backlink-gap .claude/skills/backlink-gap && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
backlink-gap
GitHub stars
859
Used in
1 other repo
Token cost
~2.8k tokens
SKILL.md length
1,146 words
Files
1
Skills in repo
162
Repo updated
First seen
Licence
MIT

At a glance

Find referring domains that link to your competitors but not to you, ranked by an outreach-priority score (0.40 DR + 0.25 link-overlap + 0.20 traffic + 0.15 topical relevance) — outputs a four-gate…

  • Works in 4 steps: Read… → If no brand exists: ask "Set up a brand… → Apply… → …
  • /digital-marketing-pro:backlink-gap
  • SKILL.md covers Purpose, Context efficiency, When to Use and Brand context (auto-applied), plus 10 more sections
  • Calls python

What it does

Backlink Gap is an agent skill from indranilbanerjee/digital-marketing-pro. Find referring domains that link to your competitors but not to you, ranked by an outreach-priority score (0.40 DR + 0.25 link-overlap + 0.20 traffic + 0.15 topical relevance) — outputs a four-gate quality scorecard, a 30-prospect outreach shortlist, broken-link candidates, and pre-filled outreach templates. Triggers on "/digital-marketing-pro:backlink-gap", "where are competitors getting links we aren't", "plan a link-building campaign", "quarterly backlink audit", "first 50 link targets for a new client"…

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Marketing & SEO, covering Link building. It works with Model Context Protocol. The repository describes itself as: An open-source AI marketing operating system for strategy, SEO, AEO/GEO, paid media, content, CRM, and analytics - grounded in brand context, human approval, and verifiable… The licence is MIT.

When your agent uses it

  • /digital-marketing-pro:backlink-gap
  • Where are competitors getting links we arent
  • Plan a link-building campaign
  • Quarterly backlink audit

Example prompts

  • “/digital-marketing-pro:backlink-gap”
  • “where are competitors getting links we aren”
  • “plan a link-building campaign”
  • “/backlink-gap”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Read ~/.claude-marketing/brands/_active-brand.json for the active slug, then load ~/.claude-marketing/brands/{slug}/profile.json
  2. If no brand exists: ask "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults
  3. Apply skills/context-engine/industry-profiles.md for industry-specific link-quality thresholds (YMYL industries should set higher --min-dr)
  4. Apply skills/context-engine/compliance-rules.md to filter out blocked publishers (e.g., PBN-style or paid-link networks the brand has…

What it can do on your machine

Read from SKILL.md and the folder at commit 3343924. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Backlink Gap loads about 2.8k tokens when it runs. Until then it costs about 192 tokens; SKILL.md has 1,146 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~192
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from indranilbanerjee/digital-marketing-pro at commit 3343924, republished under its MIT licence (© indranilbanerjee). 1,146 words, ~2,767 tokens.

Download SKILL.mdSave it as .claude/skills/backlink-gap/SKILL.md (or your agent's skills folder).
name
backlink-gap
description
Find referring domains that link to your competitors but not to you, ranked by an outreach-priority score (0.40 DR + 0.25 link-overlap + 0.20 traffic + 0.15 topical relevance) — outputs a four-gate quality scorecard, a 30-prospect outreach shortlist, broken-link candidates, and pre-filled outreach templates. Triggers on "/digital-marketing-pro:backlink-gap", "where are competitors getting links we aren't", "plan a link-building campaign", "quarterly backlink audit", "first 50 link targets for a new client". Consumes backlink CSV exports from the brand's connected backlink MCP, runs scripts/backlink_gap.py, reads the brand profile for DR thresholds and voice, and hands off to /digital-marketing-pro:digital-pr and /digital-marketing-pro:pr-pitch.
argument-hint
<your-domain> <competitor-1> [competitor-2 ...]
user-invocable
true

Purpose

Identify the highest-leverage backlink prospects — domains that link to multiple competitors but not to you — and rank them by an opinionated priority score that combines authority, link-overlap signal, downstream traffic, and topical relevance. Produces a numbered output bundle ready for outreach handoff.

Context efficiency

Heavy skill. Grep before Read any referenced file, then Read only matched ranges with offset + limit. List ${CLAUDE_PLUGIN_DATA}/<brand>/ before opening files. On re-invocation mid-session, skip files already in context.

When to Use

  • Quarterly backlink audit — "where did our competitors grow links this quarter and we didn't?"
  • Pre-launch link-building plan for a new product or content hub
  • Digital PR qualification — separating "would-link-to-anyone" prospects from "high-confidence-will-link-to-our-space"
  • Competitive recovery — a competitor displaced you and you want to know which links moved
  • Onboarding a new client and need a "first 50 link targets" backlog

Don't use when you just need backlink quantity numbers (use the brand's connected backlink MCP directly) or when you need anchor-text analysis of your own profile (that's a separate audit — covered in seo-audit).

Brand context (auto-applied)

  1. Read ~/.claude-marketing/brands/_active-brand.json for the active slug, then load ~/.claude-marketing/brands/{slug}/profile.json
  2. If no brand exists: ask "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults
  3. Apply skills/context-engine/industry-profiles.md for industry-specific link-quality thresholds (YMYL industries should set higher --min-dr)
  4. Apply skills/context-engine/compliance-rules.md to filter out blocked publishers (e.g., PBN-style or paid-link networks the brand has explicitly banned)

Inputs

InputSourceRequired?
Our backlinks CSVExport from connected backlink MCP (Ahrefs / Semrush / SE Ranking / Moz) for the brand's primary domainyes
Competitor backlinks CSVs (2+)Same exporter, one per competitor (2 minimum for the link-overlap signal; 3-5 is the sweet spot)yes
Min DR / DA filterCLI flag, brand-profile default, or industry standardoptional
Top-N countHow many prospects to surfaceoptional

One competitor is allowed (the script warns rather than errors) but the resulting "shared signal" is noise — single-competitor gap analysis is really just "who links to them" rather than "who consistently links in our space."

Process (10 steps, numbered-file output)

All outputs go to ${CLAUDE_PLUGIN_DATA}/{brand}/seo/backlink-gap/{YYYY-MM-DD}/.

  1. 00-input.md — capture our domain, competitor list (with rationale: why these N?), filter parameters, run timestamp
  2. 01-data-pull.md — pull backlinks for {brand}.tld and each competitor via brand's connected backlink MCP. Budget guard: if the MCP exposes credit cost, sum estimated cost and ask "Continue? (y/N — default N)" before fetching when total > 200 credits.
  3. 02-ours.csv — our backlink export (raw)
  4. 03-comp-{competitor}.csv — one CSV per competitor (raw)
  5. 04-gap-run.json — run the script:
    bash
    python "${CLAUDE_PLUGIN_ROOT}/scripts/backlink_gap.py" \
        --ours "${CLAUDE_PLUGIN_DATA}/{brand}/seo/backlink-gap/{date}/02-ours.csv" \
        --competitors \
          "${CLAUDE_PLUGIN_DATA}/{brand}/seo/backlink-gap/{date}/03-comp-competitor1.csv" \
          "${CLAUDE_PLUGIN_DATA}/{brand}/seo/backlink-gap/{date}/03-comp-competitor2.csv" \
        --min-dr {brand.profile.min_link_dr or 20} \
        --top 100 \
        --out "${CLAUDE_PLUGIN_DATA}/{brand}/seo/backlink-gap/{date}/04-gap-run.json"
    --competitors takes an explicit space-separated list of CSV paths (nargs="+") — enumerate each 03-comp-*.csv file; the script does not expand a * glob, so a quoted 03-comp-*.csv would fail with FileNotFoundError. List one path per competitor.
  6. 05-quality-scorecard.md — read quality_scorecard from 04-gap-run.json. If status: needs_review, diagnose:
    • data_freshness: fail → input CSV(s) older than 90 days. Re-pull data; backlink graphs decay fast.
    • sample_size: fail → any input < 50 unique referring domains. Either the domain is too new or the export was truncated. Re-export with no row limit.
    • competitor_coverage: warn → only 1 competitor. Add at least 1 more for genuine overlap signal.
    • link_overlap_signal: fail → fewer than 5 referring domains link to ≥2 competitors. Either competitors are poorly chosen (they don't share a content space with each other) or the data is incomplete. Re-choose competitors.
  7. 06-prospect-shortlist.md — top 30 prospects, formatted for outreach handoff: domain, DR, link count across competitors, suggested outreach angle (guest post, broken-link, resource-page mention)
  8. 07-broken-link-candidates.md — subset where one or more competitor links return 4xx (run a quick HTTP HEAD pass on competitor backlink URLs — use the brand's connected web-fetch MCP). These are "easy wins" — pitch your URL as the replacement.
  9. 08-outreach-templates.md — three template variants: (a) cold-pitch resource-page, (b) broken-link replacement, (c) competitor mention. Each pre-filled with brand voice from the brand profile's voice fields + skills/context-engine/guidelines-framework.md.
  10. PLAN.md — single-page summary: stats + scorecard + top 10 prospects with outreach angle + recommended cadence (3-5 pitches/week for sustainable outreach quality).

Output format

${CLAUDE_PLUGIN_DATA}/{brand}/seo/backlink-gap/2026-06-04/
├── 00-input.md
├── 01-data-pull.md
├── 02-ours.csv
├── 03-comp-{competitor1}.csv
├── 03-comp-{competitor2}.csv
├── ...
├── 04-gap-run.json
├── 05-quality-scorecard.md
├── 06-prospect-shortlist.md
├── 07-broken-link-candidates.md
├── 08-outreach-templates.md
└── PLAN.md
Show full SKILL.md (501 more words)Show less

Quality scorecard (the four gates)

GateWhat it checksWhy it matters
data_freshnessAll input CSVs have mtime within 90 daysBacklink graphs decay fast — stale data sends you chasing dead links
sample_sizeEach input has ≥ 50 unique referring domainsBelow this, the gap math has too little signal to rank
competitor_coverage≥ 2 competitor CSVs suppliedThe "shared signal" is what separates real prospects from noise
link_overlap_signal≥ 5 referring domains link to ≥ 2 of the competitorsIf no domains shared, your competitors aren't actually competing in the same content space

status: ready requires all four gates pass (competitor_coverage: warn does not block — it's a soft signal).

Priority score (0–1, displayed in 04-gap-run.json)

priority = 0.40 × DR_normalised
         + 0.25 × link_count_normalised  (how many competitors this domain links to)
         + 0.20 × traffic_normalised
         + 0.15 × topical_relevance

Why link_count is weighted higher than traffic: a domain that links to 3/3 competitors is unambiguously in your space and willing to link. A high-traffic domain that only links to 1 might just be a tier-1 publisher who happens to have covered one of you in passing.

After the audit

Ask: "Would you like me to:

  • Send the top 10 prospects to a digital PR workflow? (/digital-marketing-pro:digital-pr)
  • Draft pitches for the top 5 broken-link replacements? (/digital-marketing-pro:pr-pitch)
  • Schedule quarterly re-runs to track gains? (/digital-marketing-pro:seo-drift)
  • Open the prospect shortlist for review?"

Chain handoffs

This skill is a producer in a longer chain:

  1. /digital-marketing-pro:competitor-analysis — picks the right competitors
  2. /digital-marketing-pro:backlink-gap — this skill
  3. /digital-marketing-pro:digital-pr — consumes 06-prospect-shortlist.md + 08-outreach-templates.md
  4. /digital-marketing-pro:pr-pitch — drafts individual pitches per prospect
  5. /digital-marketing-pro:performance-report — quarterly re-runs of this skill feed the "links gained" KPI

Tips & caveats

  • More competitors ≠ better. Three to five focused competitors beats ten random ones. The "shared signal" gate works best when all competitors are in the same content space.
  • DR/DA from different exporters aren't comparable. Don't mix an Ahrefs export with a Moz export — the script doesn't know to normalise across exporters. Pick one provider per audit.
  • Topical relevance is the weakest signal in most exports because few exporters provide it well. The script defaults to 0.5 if absent, which is the right neutral. Override only if you have a curated topical-relevance score.
  • Don't outreach 100 prospects in one week. The output is a backlog, not a queue. Sustainable cadence: 3-5 highly personalised pitches per week per outreach lead.
  • Broken-link candidates tend to have the highest hit rate (broken-link replacement pitches typically out-reply cold pitches by a wide margin — the "30-60% vs 5-15%" figures are an illustrative rule of thumb, not measured; validate against your own outreach data) — always work the 07-broken-link-candidates.md list first.
  • Re-run quarterly, not monthly. Backlink data moves slowly enough that monthly runs mostly produce noise.
  • YMYL industries (health, finance, legal) should set --min-dr 40 to filter out low-authority publishers that could damage E-E-A-T.

Agents used

  • seo-specialist (primary) — interpretation of prospect quality
  • competitive-intel — competitor-set selection rationale (Step 1)
  • pr-outreach — outreach template drafting (Step 8)
  • brand-guardian — banned-publisher filter at Step 6

See also

  • /digital-marketing-pro:competitor-analysis — pick the competitors for this audit
  • /digital-marketing-pro:digital-pr — runs the actual outreach
  • /digital-marketing-pro:seo-drift — re-run quarterly to track delta
  • /digital-marketing-pro:seo-audit — broader site-level audit including own-profile health
  • scripts/backlink_gap.py — the underlying gap engine

© indranilbanerjee, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/backlink-gap of indranilbanerjee/digital-marketing-pro.

Open the folder on GitHubat commit 3343924

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in indranilbanerjee/digital-marketing-pro, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Backlink Gap next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Backlink Gap compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Backlink Gap this skillindranilbanerjee/digital-marketing-pro8591 repos~2.8kAutomated safety check: PassMIT
SEO DataforseoAgriciDaniel/codex-seo7972 repos~4.6kAutomated safety check: PassMIT
Backlink CheckRyze-AI-Adgent/open-seo-mcp-skills4.6k—~515Automated safety check: PassMIT
90 Day SEO SprintBomx/distribb-skill197—~3.6kAutomated safety check: PassNone
Directory Submissionscoreyhaines31/marketingskills54k2 repos~6.7kAutomated safety check: PassMIT
DataForSEO Live SEO DataAgriciDaniel/claude-seo19k—~4.4kAutomated safety check: PassMIT

Similar skills

  • SEO Dataforseo

    AgriciDaniel/codex-seo

    Live SEO data via DataForSEO MCP server. An agent skill from AgriciDaniel/codex-seo.

    797 GitHub starsUsed in 2 repos~4.6k tokens
    Marketing & SEOAuto-check passed
  • Backlink Check

    Ryze-AI-Adgent/open-seo-mcp-skills

    Backlink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor.

    4.6k GitHub stars~515 tokensUpdated 15 days ago
    Marketing & SEOAuto-check passed
  • 90 Day SEO Sprint

    Bomx/distribb-skill

    Run the Distribb 90-Day SEO Sprint - a founder-built 13-week playbook for shipping pre-launch SEO, core pages, a content engine, and a backlink starter stack on the way to compounding organic traffic.

    197 GitHub stars~3.6k tokensUpdated 8 days ago
    Marketing & SEOAuto-check passed
  • Directory Submissions

    coreyhaines31/marketingskills

    When the user wants to submit their product to startup, SaaS, AI, agent, MCP, no-code, or review directories for backlinks, domain rating, and discovery.

    54k GitHub starsUsed in 2 repos~6.7k tokens
    Marketing & SEOAuto-check passed
  • DataForSEO Live SEO Data

    AgriciDaniel/claude-seo

    Pulls live SERP results, keyword metrics, backlink profiles and AI visibility data through the DataForSEO MCP server, with a cost check before each call.

    19k GitHub stars~4.4k tokensUpdated 4 days ago
    Marketing & SEOAuto-check passed
  • SEO API

    seranking/seo-skills

    SE Ranking API integration architect. An agent skill from seranking/seo-skills.

    160 GitHub stars~4.1k tokensUpdated 3 mo ago
    Marketing & SEOAuto-check passed

More from indranilbanerjee/digital-marketing-pro

All 162 skills in this repo
  • Ab Test Plan

    indranilbanerjee/digital-marketing-pro

    Design a statistically rigorous A/B or multivariate test plan — If/Then/Because hypothesis, control and variant specs, required sample size per variant (absolute vs relative MDE via…

    859 GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Aeo Audit

    indranilbanerjee/digital-marketing-pro

    Audit how a brand appears across the 6 canonical AI answer surfaces — ChatGPT, Perplexity, Google AI Mode, AI Overviews, Gemini, Copilot — probing 10-25 queries into a numbered output bundle with…

    859 GitHub starsUsed in 1 repo~2.6k tokens
    Auto-check passed
  • Agent Readiness Audit

    indranilbanerjee/digital-marketing-pro

    Audit whether AI agents and AI crawlers can actually use a site — robots.txt rules per AI crawler token (OpenAI, Anthropic and Perplexity bots, Google-Extended, Applebot-Extended)…

    859 GitHub starsUsed in 1 repo~3.9k tokens
    Auto-check passed
  • C2pa Metadata

    indranilbanerjee/digital-marketing-pro

    Embed a C2PA provenance manifest into an AI-generated marketing asset (PNG, JPG, WebP, GIF, TIFF, MP4, MOV, WebM, MP3, WAV, PDF) via scripts/embed-c2pa.py — produces a signed copy of the file…

    859 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Campaign Audit

    indranilbanerjee/digital-marketing-pro

    Inventory and score everything currently running for a brand across paid search, paid social, email, organic, SEO, AEO/GEO, CRM, and analytics — produces a dated audit document with a 4-tier triage…

    859 GitHub starsUsed in 1 repo~4.1k tokens
    Auto-check: notes
  • Check

    indranilbanerjee/digital-marketing-pro

    Run the unified pre-publish quality gate on marketing content — wraps scripts/eval-runner.py to score hallucination risk, claim substantiation (with --evidence), brand-voice fit (with --brand)…

    859 GitHub starsUsed in 1 repo~4.4k tokens
    Auto-check: notes

Categories

Questions about Backlink Gap

What does Backlink Gap do?

Find referring domains that link to your competitors but not to you, ranked by an outreach-priority score (0.40 DR + 0.25 link-overlap + 0.20 traffic + 0.15 topical relevance) — outputs a four-gate…. Backlink Gap is an agent skill from indranilbanerjee/digital-marketing-pro.15 topical relevance) — outputs a four-gate quality scorecard, a 30-prospect outreach shortlist, broken-link candidates, and pre-filled outreach templates.

When should I use Backlink Gap?

Backlink Gap fits situations like: /digital-marketing-pro:backlink-gap; where are competitors getting links we arent; plan a link-building campaign; quarterly backlink audit.

How do I install Backlink Gap in Claude Code?

Run `npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a claude-code`. Or copy the skill folder (skills/backlink-gap in indranilbanerjee/digital-marketing-pro) into .claude/skills/backlink-gap in your project. Claude Code loads it when a task matches its description.

How do I install Backlink Gap in Codex?

Run `npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a codex`. Or copy the skill folder (skills/backlink-gap in indranilbanerjee/digital-marketing-pro) into .agents/skills/backlink-gap in your project. Codex loads it when a task matches its description.

Can I use Backlink Gap in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/backlink-gap, .gemini/skills/backlink-gap, .github/skills/backlink-gap and .opencode/skills/backlink-gap in your project.

What does Backlink Gap need to run?

Going by SKILL.md and its folder, Backlink Gap needs the command-line tools its instructions call (python). Our summary lists: Python 3.

Does Backlink Gap access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Backlink Gap safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Backlink Gap use?

Backlink Gap is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Backlink Gap use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Backlink Gap?

Skills that share tags, products or a category with Backlink Gap: SEO Dataforseo (AgriciDaniel/codex-seo, 797 stars), Backlink Check (Ryze-AI-Adgent/open-seo-mcp-skills, 4.6k stars), 90 Day SEO Sprint (Bomx/distribb-skill, 197 stars) and Directory Submissions (coreyhaines31/marketingskills, 54k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Backlink Gap?

indranilbanerjee (a GitHub user) maintains it in indranilbanerjee/digital-marketing-pro, which has 859 GitHub stars. The repository holds 162 skills in this directory. The repository was last updated on October 4, 2026.

Source: indranilbanerjee/digital-marketing-pro on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.