A Claude Code Skill by @tenfoldmarc
Generate ready-to-record video scripts that sound like YOU — not like AI. Script Skill analyzes your real videos, studies your competitors' top performers, builds a hooks database, and writes scripts calibrated to your actual voice.
Your scripts get better every time you use it. Your hooks database grows every week.
- Analyzes your Instagram videos to learn how you actually talk
- Scrapes your competitors' top-performing videos for hooks and patterns
- Builds a personal hooks database from competitor outliers
- Generates scripts in YOUR voice with hooks proven to stop the scroll
- Runs a De-AI checklist + humanizer pass so nothing sounds robotic
- Optionally auto-refreshes your competitor data every 7 days
- A Mac or Linux computer
- Claude Code installed
- An Apify account (free tier works — pay-per-scrape)
- An Instagram account with posted videos (so the skill can study your voice)
- 5–10 competitor Instagram handles in your niche
That's it. The skill installs everything else for you.
Mac: Press Command + Space, type Terminal, hit Enter.
git clone https://github.com/tenfoldmarc/script-skill ~/.claude/skills/script-skillIf you don't already have Apify connected to Claude Code:
- Create a free account at apify.com
- Go to Settings → Integrations and copy your API token
- Open
~/.claude.jsonin any text editor and add this under"mcpServers":
{
"apify": {
"command": "npx",
"args": ["-y", "@anthropic-ai/apify-mcp-server@latest"],
"env": {
"APIFY_TOKEN": "your_token_here"
}
}
}If you already have other MCP servers in that file, just add the "apify" block alongside them.
Close Claude Code completely and reopen it.
/script
The first time you run it, Script Skill walks you through the full setup (takes about 10–15 minutes). After that, every /script goes straight to writing.
The setup runs automatically on your first /script. Here's what happens:
Script Skill checks for yt-dlp, whisper, and ffmpeg. If anything is missing, it installs it for you (with your permission).
Four quick questions: your Instagram handle, your niche, your ideal viewer, and your on-camera vibe.
Downloads your 5 most recent videos plus any recent outliers (videos with 2x+ your average views). Transcribes them all and analyzes how you actually talk — your vocabulary, rhythm, energy, filler words, hook patterns, and content types.
You give it 5–10 competitor handles (8–10 recommended). It pulls their last 25 videos each, finds the outliers, downloads and transcribes them. Every outlier hook gets saved to your database.
All competitor outlier hooks are extracted, categorized by type, and saved to a searchable database. Full outlier transcripts are saved too.
Set up a cron job that automatically scrapes for new outlier videos every 7 days. Your hooks database grows on autopilot.
Every time you type /script, Claude:
- Loads your voice profile, hooks database, transcripts, and competitor data
- Asks what the video is about
- Asks which content type (based on YOUR actual video patterns)
- Generates 10 hook options using proven patterns from your database
- You pick a hook
- Writes the full script in your voice
- Runs your custom De-AI checklist
- Runs a humanizer pass
- Delivers one clean, ready-to-record script
See a reel with a fire hook? Save it:
/hooks https://www.instagram.com/reel/XXXXX/
Claude downloads, transcribes, extracts the hook, and adds it to your database.
~/Documents/script-skill/
├── config.json ← your settings and competitor list
├── brand-voice.md ← your voice profile
├── hooks-database.md ← hook swipe file
├── scripts-database.md ← full competitor outlier transcripts
├── competitor-analysis.md ← what's working for competitors
├── my-transcripts/ ← your own video transcripts
├── competitor-transcripts/ ← competitor video transcripts
└── refresh-log.md ← auto-refresh activity log
These files live on your machine. They never get overwritten by git updates.
If you set up the optional cron job during setup:
Check logs:
node ~/perma-cron/manage.js logs script-skill-refreshStop it:
node ~/perma-cron/manage.js stop script-skill-refreshRemove it completely:
node ~/perma-cron/manage.js remove script-skill-refreshRe-enable it: Ask Claude: "Set up the script-skill cron job"
"git: command not found"
xcode-select --installA popup will appear — click Install. Then try again.
"yt-dlp: command not found" after install Try running the install with the full Python path:
python3 -m pip install yt-dlpThen restart your terminal.
"whisper fails to install" Whisper needs Python 3.8+ and about 1GB of disk space for the model. Try:
pip3 install git+https://github.com/openai/whisper.git"Apify scraper returns no results" Make sure the Instagram profile is public. Private profiles can't be scraped.
"Videos won't download" Some reels are restricted. yt-dlp can't download every video. The skill skips failures and continues with what it can get.
Claude doesn't recognize /script Make sure you fully closed and reopened Claude Code after installing.
"I want to re-run setup"
Delete ~/Documents/script-skill/config.json and run /script again. It will start fresh.
"I want to add more competitors later"
Open ~/Documents/script-skill/config.json, add handles to the competitors array, and ask Claude to "refresh my script-skill competitor data."
- Every
/hooks [url]adds to your database - Every auto-refresh cycle finds new outliers
- The more hooks you collect, the better your hook options get
- Your voice profile can be refined — just ask Claude to "re-analyze my videos"
Script Skill uses Apify's pay-per-use pricing. Typical costs:
- Scraping one Instagram profile (25 posts): ~$0.05
- Full initial setup (your profile + 10 competitors): ~$0.60
- Weekly auto-refresh (11 profiles): ~$0.55/week
No subscriptions. You only pay for what you scrape.
Built by @tenfoldmarc — follow for Claude Code automations and AI agency content.