Competitor radar
Skill naveedharri/benai-skills/plugins/benai-marketing/skills/competitor-radar
npx -y skills add naveedharri/benai-skills --skill competitor-radarAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
3.0 KB, as published. Nobody here has run it
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), andDATA({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 toindex.html). No network.
Weekly refresh workflow
- Read
config.json(roster) and the currentradar_data.js(last week's numbers, needed for week-over-week deltas). - Gather fresh data for each creator per
references/data-sources.md. Do NOT fabricate; mark missing asnull. - Compute deltas per
references/data-sources.md. - Rewrite
radar_data.jswith the newWEEK_ENDINGand refreshedDATA. Handle avatars perreferences/data-sources.md. - Build:
python3 scripts/build_dashboard.py <skill_dir> ../index.html. - 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
nulland move on. - Never edit the template shell, CSS, or render JS. Only
radar_data.js(andconfig.jsonwhen the roster changes). - Ben AI voice, no em dashes.