SEO Dataforseo
AgriciDaniel/codex-seo
Live SEO data via DataForSEO MCP server. An agent skill from AgriciDaniel/codex-seo.
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…
$ npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro backlink-gap --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "backlink-gap" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/backlink-gap into .claude/skills/backlink-gap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backlink-gap", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/backlink-gapType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro backlink-gap --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/backlink-gap .agents/skills/backlink-gap && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "backlink-gap" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/backlink-gap into .agents/skills/backlink-gap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backlink-gap", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro backlink-gap --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/backlink-gap .cursor/skills/backlink-gap && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "backlink-gap" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/backlink-gap into .cursor/skills/backlink-gap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backlink-gap", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/indranilbanerjee/digital-marketing-pro.git --path skills/backlink-gap--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro backlink-gap --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/backlink-gap .gemini/skills/backlink-gap && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "backlink-gap" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/backlink-gap into .gemini/skills/backlink-gap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backlink-gap", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install indranilbanerjee/digital-marketing-pro backlink-gapInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/backlink-gap .github/skills/backlink-gap && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "backlink-gap" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/backlink-gap into .github/skills/backlink-gap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backlink-gap", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add indranilbanerjee/digital-marketing-pro --skill backlink-gap -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install indranilbanerjee/digital-marketing-pro backlink-gap --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/backlink-gap .opencode/skills/backlink-gap && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "backlink-gap" agent skill from https://github.com/indranilbanerjee/digital-marketing-pro/tree/main/skills/backlink-gap into .opencode/skills/backlink-gap/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "backlink-gap", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
backlink-gapFind 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. 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.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3343924. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from indranilbanerjee/digital-marketing-pro at commit 3343924, republished under its MIT licence (© indranilbanerjee). 1,146 words, ~2,767 tokens.
.claude/skills/backlink-gap/SKILL.md (or your agent's skills folder).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.
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.
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).
~/.claude-marketing/brands/_active-brand.json for the active slug, then load ~/.claude-marketing/brands/{slug}/profile.jsonskills/context-engine/industry-profiles.md for industry-specific link-quality thresholds (YMYL industries should set higher --min-dr)skills/context-engine/compliance-rules.md to filter out blocked publishers (e.g., PBN-style or paid-link networks the brand has explicitly banned)| Input | Source | Required? |
|---|---|---|
| Our backlinks CSV | Export from connected backlink MCP (Ahrefs / Semrush / SE Ranking / Moz) for the brand's primary domain | yes |
| 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 filter | CLI flag, brand-profile default, or industry standard | optional |
| Top-N count | How many prospects to surface | optional |
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."
All outputs go to ${CLAUDE_PLUGIN_DATA}/{brand}/seo/backlink-gap/{YYYY-MM-DD}/.
00-input.md — capture our domain, competitor list (with rationale: why these N?), filter parameters, run timestamp01-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.02-ours.csv — our backlink export (raw)03-comp-{competitor}.csv — one CSV per competitor (raw)04-gap-run.json — run the script: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.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.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)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.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.PLAN.md — single-page summary: stats + scorecard + top 10 prospects with outreach angle + recommended cadence (3-5 pitches/week for sustainable outreach quality).${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| Gate | What it checks | Why it matters |
|---|---|---|
| data_freshness | All input CSVs have mtime within 90 days | Backlink graphs decay fast — stale data sends you chasing dead links |
| sample_size | Each input has ≥ 50 unique referring domains | Below this, the gap math has too little signal to rank |
| competitor_coverage | ≥ 2 competitor CSVs supplied | The "shared signal" is what separates real prospects from noise |
| link_overlap_signal | ≥ 5 referring domains link to ≥ 2 of the competitors | If 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 = 0.40 × DR_normalised
+ 0.25 × link_count_normalised (how many competitors this domain links to)
+ 0.20 × traffic_normalised
+ 0.15 × topical_relevanceWhy 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.
Ask: "Would you like me to:
/digital-marketing-pro:digital-pr)/digital-marketing-pro:pr-pitch)/digital-marketing-pro:seo-drift)This skill is a producer in a longer chain:
/digital-marketing-pro:competitor-analysis — picks the right competitors/digital-marketing-pro:backlink-gap — this skill/digital-marketing-pro:digital-pr — consumes 06-prospect-shortlist.md + 08-outreach-templates.md/digital-marketing-pro:pr-pitch — drafts individual pitches per prospect/digital-marketing-pro:performance-report — quarterly re-runs of this skill feed the "links gained" KPI07-broken-link-candidates.md list first.--min-dr 40 to filter out low-authority publishers that could damage E-E-A-T.seo-specialist (primary) — interpretation of prospect qualitycompetitive-intel — competitor-set selection rationale (Step 1)pr-outreach — outreach template drafting (Step 8)brand-guardian — banned-publisher filter at Step 6/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 healthscripts/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
Just SKILL.md in skills/backlink-gap of indranilbanerjee/digital-marketing-pro.
Open the folder on GitHubat commit 3343924
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.
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Backlink Gap this skillindranilbanerjee/digital-marketing-pro | 859 | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| SEO DataforseoAgriciDaniel/codex-seo | 797 | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| Backlink CheckRyze-AI-Adgent/open-seo-mcp-skills | 4.6k | — | ~515 | Automated safety check: Pass | MIT | |
| 90 Day SEO SprintBomx/distribb-skill | 197 | — | ~3.6k | Automated safety check: Pass | None | |
| Directory Submissionscoreyhaines31/marketingskills | 54k | 2 repos | ~6.7k | Automated safety check: Pass | MIT | |
| DataForSEO Live SEO DataAgriciDaniel/claude-seo | 19k | — | ~4.4k | Automated safety check: Pass | MIT |
AgriciDaniel/codex-seo
Live SEO data via DataForSEO MCP server. An agent skill from AgriciDaniel/codex-seo.
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.
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.
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.
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.
seranking/seo-skills
SE Ranking API integration architect. An agent skill from seranking/seo-skills.
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…
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…
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)…
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…
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…
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)…
Works with
Categories
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.
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.
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.
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.
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.
Going by SKILL.md and its folder, Backlink Gap needs the command-line tools its instructions call (python). Our summary lists: Python 3.
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.
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.
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.
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.
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.
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.