competitor-gap-analysis — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited competitor-gap-analysis (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Put a creator's best content next to 1-3 competitors' best content and answer "what are they winning on that I'm not even showing up for?" — instead of scrolling rivals' feeds and guessing, you measure the overlap.
This skill pairs with the SocialGPT MCP server (https://mcp.gpt.social/mcp). The MCP provides the data; this skill provides the gap analysis and a shareable report. If the SocialGPT tools below aren't available, the user needs to connect the MCP first: https://gpt.social/integrations/mcp
Trigger on requests like: "what are my competitors doing that I'm not?", "find my content gaps", "compare me to @rival", "what should I steal from them?", "where am I getting beaten?", "what topics do they own?"
list_videos and list_creator_videos aren't available, point the user to the connect page above and stop.
list_videos(sort="top", limit=15, include_analysis=true)include_analysis=true is what gives each video its content_themes — the script extracts gaps far more accurately when themes are present (it falls back to caption keywords if they're missing).
user named, call:
list_creator_videos(platform="<tiktok|instagram|youtube>", username="<handle>", sort="top", limit=15, include_analysis=true)If a competitor isn't in the library yet, run analyze_creator(platform, username) first, poll get_analysis_status(job_id) until done, then call list_creator_videos.
shaped like this (the raw tool envelopes are fine — the script unwraps them):
{
"me": <the list_videos result, envelope or bare list>,
"competitors": [
{"name": "@rival_one", "videos": <that creator's list_creator_videos result>},
{"name": "@rival_two", "videos": <...>}
]
} python scripts/analyze.py gap.jsonThe script reads gap.json, builds the gap matrix, prints a Markdown summary to stdout, and writes competitor-gap-report.html.
offer the user the generated competitor-gap-report.html to download / open (on Claude.ai it appears as a downloadable file).
It splits the videos into cohorts — you, each named competitor, and a pooled competitors set — and for each cohort reads a theme distribution plus median views, engagement rate, duration, and sequel/series rate.
content_themes. If themes arelargely missing (e.g. include_analysis was false), it falls back to keyword topics mined from titles and captions (lowercased, tokenized, stopwords dropped, top terms treated as pseudo-themes).
≥2 competitor videos) where you have ~zero coverage.
barely touch.
sequel rate, median engagement, and median views, with the direction of each gap called out.
See references/methodology.md for how themes, coverage shares, and gaps are computed, plus the caveats.
videos. With fewer it tells you what to pull rather than inventing gaps.
include_analysis=true. Keywordfallback finds topic words, but analysis themes are cleaner and the gaps are sharper.
a topic you're absent from — it's the best thing to test next, not proof it'll work for your audience. The report says this explicitly.
split shifts as both catalogs grow.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.