Skip to content
Automation
Skill

/competitor-radar

Build and weekly-refresh a branded HTML "Competitor Radar" dashboard that tracks a roster of competitors across YouTube, Instagram, LinkedIn, TikTok, community, and SEO. Use when the user wants to track competitors, monitor competitor socials/engagement/subscribers, build a

From plugin
benai-skills
62152 skills17 agents1 hook4 MCP
Install
$ npx -y skills add naveedharri/benai-skills --skill competitor-radar --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/competitor-radar

Context preview

The summary Claude sees to decide when to auto-load this skill.

Build and weekly-refresh a branded HTML "Competitor Radar" dashboard that tracks a roster of competitors across YouTube, Instagram, LinkedIn, TikTok, community, and SEO. Use when the user wants to track competitors, monitor competitor socials/engagement/subscribers, build a

SKILL.md

competitor-radar.SKILL.md
name: competitor-radar
description: Build and weekly-refresh a branded HTML "Competitor Radar" dashboard that tracks a roster of competitors across YouTube, Instagram, LinkedIn, TikTok, community, and SEO. Use when the user wants to track competitors, monitor competitor socials/engagement/subscribers, build a competitor dashboard, or refresh the weekly competitor report. Gathers real data via connectors (YouTube, Apify, Firecrawl), renders a two-tab (Demo/Actual) dashboard in Ben AI branding, deploys it to a stable Vercel URL via git push, and posts the link to Slack.
disable-model-invocation: true

Competitor Radar

Tracks a fixed roster of competitors weekly and renders one branded HTML dashboard: follower counts, posting cadence, median engagement, week-over-week subscriber growth, standout post of the week, and SEO, per platform. Two tabs: **Demo** (a sample niche) and **Actual** (real competitors, with a focus/blur toggle so only "you" shows on camera).

Files

  • `config.json`: the stable roster (who to track, handles per platform, platforms to include, Apify actor ids). Edit to add/remove competitors.
  • `radar_data.js`: the weekly artifact. `WEEK_ENDING`, `AV` (base64 avatars, stable), and `DATA` ({demo, actual}). The refresh step rewrites this.
  • `assets/template.html`: the fixed dashboard shell (CSS, render logic, tabs, focus mode). Never regenerate; carries a single `/*__RADAR_DATA__*/` marker.
  • `scripts/build_dashboard.py`: deterministic build (template + radar_data.js to `index.html`). No network.

Weekly refresh workflow

1. **Read** `config.json` (roster) and the current `radar_data.js` (last week's numbers, needed for week-over-week deltas). 2. **Gather fresh data** for each creator per `references/data-sources.md`. Do NOT fabricate; mark missing as `null`. 3. **Compute deltas** per `references/data-sources.md`. 4. **Rewrite** `radar_data.js` with the new `WEEK_ENDING` and refreshed `DATA`. Handle avatars per `references/data-sources.md`. 5. **Build**: `python3 scripts/build_dashboard.py <skill_dir> ../index.html`. 6. **Deploy and Slack** the live URL per `references/deploy.md`.

Self-improvement

This skill is never finished. Improve it as you use it.

  • When the user corrects how a step was done, update the relevant reference file (`references/data-sources.md`, `references/deploy.md`) or this SKILL.md so the correction sticks. Do not just fix it for this run.
  • When a correction is a hard rule ("always X", "never Y"), add it as a permanent rule here.
  • When the user says an output was genuinely good, save it to `references/examples/` so it becomes a model for future runs.
  • Keep the skill small: when you add something, run the deletion test and cut anything that no longer changes behavior.

Guardrails

  • YouTube numbers are the reliable core; always real. Never invent socials/SEO: set `null` and move on.
  • Never edit the template shell, CSS, or render JS. Only `radar_data.js` (and `config.json` when the roster changes).
  • Ben AI voice, no em dashes.
Read more
Ships withbenai-skills

Expert automation skills for Claude Code, organized by department.

Get the whole plugin

Other skills on benai-skills.