How I Turn Claude Into a Social Media Strategist

How I Turn Claude Into a Social Media Strategist

Read Time: 11 Minutes

Give Claude one competitor’s Instagram handle.

Get back a page with every reel where they beat their own normal, plus the link, hook, format, topic and full script for each one.

This guide is for coaches, consultants, course creators and creators who watch a competitor’s videos and wonder why some take off while others die.

Scrolling shows you their biggest hits. Scrolling won’t show you what those hits share, or which habits drag their numbers down.

This week I ran this process on 2 creators. Each run used between about 110 and 130 credits across 2 data services.

Part 1 finds the winners. Part 2 turns one winner into your next video without copying anyone.

The outlier page from my @askvinh run: every reel at 2x his normal or higher Every reel above the creator’s normal, with the script one click away.

Part 1: Pull and analyze one competitor

What you need

You need 3 paid tools and one small text file. You don’t need to write code.

Claude Code or Codex. This is the agent. You paste the prompt, and the agent writes and runs every script.

Claude Code comes with Claude Pro ($20 a month billed monthly) and Max (from $100 a month). Codex comes with every ChatGPT plan, including Plus at $20 a month.

Start on a $20 plan for your first run. Move up if the tagging step hits your usage limit.

You only need one of the 2 agents.

Scrape Creators. This service pulls a creator’s public Instagram reels with plays, likes, comments, length, caption and publish date. The same service writes transcripts for reels under 2 minutes.

You get 100 free credits to start. After those, $47 buys 25,000 credits, and they don’t expire.

Supadata. This pulls transcripts for reels 2 minutes or longer, and catches any reel where the first transcript comes back empty. The free plan gives you 100 credits a month.

Between the 2 free tiers, you have about enough credits for your first 100-reel run. Prices change, so check Scrape Creators and Supadata before you buy.

A .env file. Make a new folder for the project. Inside, create a plain text file named .env with 2 lines:

SCRAPE_CREATORS_API_KEY=your-key-here
SUPADATA_API_KEY=your-key-here

Paste your real keys after the equals signs. The agent reads the keys from this file, so you never paste them into the chat.

What the prompt does, step by step

Read this once before you run the prompt. You’ll trust the output more when you know where each number comes from.

1. Pull the last 120 reels. The API returns 12 reels per call, so the agent pages through about 10 calls.

Next, duplicates go, along with any reel younger than 7 days, since those plays are still climbing. The newest 100 reels stay.

2. Pull a transcript for every reel. Short reels go through Scrape Creators. Long reels and failures go through Supadata.

The code saves the first spoken sentence of each reel on its own, since the first sentence is the hook.

3. Write a tag list for the niche. Every reel gets one topic, one hook type and one format, each from a closed list. Each reel also gets script tactics, the viewer’s pain point, the promise, and a 1 to 5 guess at hook strength.

The agent shows you the list before tagging, so you fix a bad bucket before 100 reels land in one.

This step gets sharper when you already know your audience. Tell the agent the 3 problems your audience brings to you and the topics you post about.

The topic buckets will then match videos you’d make, and the winners you find later will be easier to remix.

4. Tag every reel without the numbers. The tagger never sees plays.

If a model knows a reel did 3 million plays, the model will call the hook strong. Hiding the numbers keeps the tags honest.

5. Find the creator’s normal. The baseline is the median plays across the 100 reels, the middle reel when you line them up.

Each reel gets a multiple: its plays divided by the baseline. A reel at 3.0x did 3 times their normal.

Every group, like “warning hooks” or “screen demos,” gets the median multiple of its reels.

Groups with fewer than 4 reels get flagged as thin. Treat a thin group as a hunch.

6. Build the 2 outputs. A short findings summary, and an outlier page you open in your browser.

The prompt

Open Claude Code or Codex inside the project folder with your .env file. Paste this whole prompt.

You're my competitor research analyst. Run a full deep-dive on one Instagram creator's last 100 reels. Find which hooks, formats and topics beat this creator's own normal, and which ones fall below their normal. Work in this folder. Write Python scripts for every data step and save every raw API response to disk, so a rerun never pays for the same call twice.

STEP 1. SET UP
1. Ask me 3 things: the creator's Instagram handle, their niche in one sentence, and my niche and audience in one sentence.
2. Check for a .env file in this folder with SCRAPE_CREATORS_API_KEY and SUPADATA_API_KEY. Never print the keys. If either key is missing, stop and tell me how to add the missing key.
3. Before any paid call, tell me the expected spend: about 10 calls to list reels, plus about 1 transcript call per reel. Wait for my OK.

STEP 2. PULL THE REELS
1. Call GET https://api.scrapecreators.com/v1/instagram/user/reels?handle=HANDLE with the header x-api-key set to the Scrape Creators key. Each page returns about 12 reels. Page with paging_info.max_id until you have 120 reels or more_available is false.
2. If the first page returns zero reels, switch to GET https://api.scrapecreators.com/v2/instagram/user/posts?handle=HANDLE, page with next_max_id, and keep only video clips (product_type "clips").
3. If a page comes back empty partway through, wait 10 seconds and retry, up to 4 times. Log every call and the credits charged.
4. For each reel, save the shortcode, the link (https://www.instagram.com/reel/SHORTCODE/), plays, likes, comments, length in seconds, caption, publish date and pinned status.
5. Remove duplicates by shortcode. Drop reels published in the last 7 days, since their plays are still climbing. Keep the newest 100 reels left over. Tell me how many you dropped and why.
6. Don't drop reels for low engagement, or for any other reason, without asking me. If you think a filter is needed, first show me how many reels the filter would remove.

STEP 3. PULL TRANSCRIPTS
1. For reels under 2 minutes, call GET https://api.scrapecreators.com/v2/instagram/media/transcript?url=REEL_LINK with the same header.
2. If the Scrape Creators call fails or returns no text, or the reel is 2 minutes or longer, call GET https://api.supadata.ai/v1/transcript?url=REEL_LINK&text=true&lang=en with the header x-api-key set to the Supadata key. If the response has a jobId instead of content, poll GET https://api.supadata.ai/v1/transcript/JOB_ID every 3 seconds until the status is completed or failed.
3. Run up to 5 transcript calls at a time. Save each transcript to its own file and skip any reel already saved.
4. In code, take the first spoken sentence of each transcript and save the sentence as first_line.
5. Tell me how many reels have speech, how many have none, and how many failed.

STEP 4. WRITE THE TAG LIST
Write a closed tagging list for this creator's niche:
- 8 to 11 topic buckets, each with a one-line definition
- 8 to 11 hook types, judged on the first 1 to 3 spoken sentences (for example: warning or mistake, contrarian claim, result or proof, direct how-to, curiosity gap, question to the viewer, story open, numbered promise)
- 4 to 7 formats (for example: talking head lesson, screen demo, skit or roleplay, wrong way then right way demo, breakdown of someone else's content)
- 10 to 15 script tactics, multi-select (for example: numbered list, named framework, personal story, live demo, exact phrases to copy, comment keyword CTA, other call to action)
End every list with "other". Use my niche so the topic buckets match ideas I'd make. Show me the full list and wait for my OK or edits before you tag anything.

STEP 5. TAG EVERY REEL
Tag each reel from its caption, length, publish date, first_line and full transcript. Never show the tagger plays, likes, comments or any other performance number. For each reel, return JSON with one topic, one hook type, one format, a list of tactics, the viewer's pain point (12 words or fewer), the promise (12 words or fewer), a hook strength guess from 1 to 5 based only on the words, and a one-sentence note. Read every transcript to the end. If you have parallel subagents, give each one about 12 reels. Check for all 100 tags and confirm every value comes from the closed list.

STEP 6. COMPARE EVERYTHING TO THE CREATOR'S NORMAL
1. Baseline: the median plays across the 100 reels. Call the baseline "their normal."
2. Each reel's multiple: its plays divided by the baseline.
3. For every topic, hook type and format, report the number of reels and the median multiple.
4. For every tactic, compare the median multiple of reels with the tactic against reels without the tactic.
5. Test opening patterns in first_line the same way: starts with a number, starts with "you" or "your", asks a question, starts with "most people", plus any repeated opener you notice.
6. Compare length buckets: under 30 seconds, 30 to 59, 60 to 89, 90 and up.
7. Check whether the hook strength guess lines up with plays, using a rank correlation.
8. Flag any group with fewer than 4 reels as THIN. Never call a thin group a pattern.
Save everything to stats.json.

STEP 7. GIVE ME 2 OUTPUTS
A) findings.md: a short summary in plain English. Open with the baseline, the number of reels and the date window. Then write 3 sections (hooks, formats, topics). In each, name what beats their normal and what trails their normal, with the multiple and the number of reels behind every claim. Add a short "also worth knowing" section for tactics and openers with a clear gap. Mark thin groups. Make no claim without a number from stats.json.
B) outliers.html: one self-contained page I open in my browser. Section 1 lists every reel at 2x their normal or higher. Section 2 lists every reel above 1x and below 2x. Sort each section from highest multiple to lowest. For every reel, show the link, plays, multiple, publish date, hook type, format, topic, first line, and the full transcript in a collapsible block. Put the baseline and the run date at the top.

When you finish, tell me the total credits used on each service and open outliers.html.

You’ll get 2 stops: one before any credits get spent, and one for your OK on the tag list. Everything else runs on its own.

What you get back

You get 2 files.

findings.md is the short read. The file names the hooks, formats and topics where this creator beats their normal, plus the ones where they fall below.

Every line carries a multiple and a reel count.

outliers.html is the working file. Section 1 holds every reel at 2x their normal or higher, and Section 2 holds everything above 1x.

Each row has the link, plays, multiple, hook, format, topic, first line and full transcript.

You’ll also find stats.json in the folder. Ask the agent follow-up questions against the file, like “which tactics show up most in the 2x reels?”

If you want a daily feed of outliers across a dozen creators instead of one deep-dive, I walked through the build in Build Your Content Research Assistant With Codex.

The findings file from my @askvinh run The findings file. Every claim has a multiple and a reel count beside the claim.

How to read the results

Start with 1.0x, their normal. Everything else compares a group to their own middle reel.

Read each line as a sentence you’d say out loud:

Reels opening with a mistake warning get 1.8x this creator’s normal, across 9 reels.

Screen demos sit at 0.7x their normal, across 14 reels.

(Those 2 lines show the shape. Your numbers will differ.)

The reel count matters as much as the multiple. 1.8x across 9 reels is a pattern worth testing, while 4.0x across 2 reels is one lucky video and a friend.

Compare a creator only to themselves. A creator with 2 million followers and a creator with 20,000 live on different scales.

The multiple puts both on the same scale, so you’re comparing their habits.

Look at the gaps too. When a tactic shows up in reels at 1.4x and the reels without the tactic sit at 0.9x, you’ve found a habit worth stealing.

When a big topic trails their normal, you’ve found a topic to skip, or one to take from a different angle.

Watch for flat lists. When every format lands between 0.9x and 1.1x, the camera setup isn’t why they win, so look at the tactics inside the video instead.

Check the hook strength guess against real plays. If the reels the model rated 5 don’t beat the reels rated 2, the words alone don’t explain their wins.

Something on screen or in the topic carries those reels.

Then watch their top 10 yourself before you trust any pattern. The tags come from a model reading words, so the model misses anything visual on screen.

If the run breaks

The reels list comes back empty. Some profiles return nothing from the reels endpoint. The prompt already switches to the posts feed and keeps only video clips.

Pages come back empty partway through. The feed is flaky on some accounts, so the prompt retries each page. If a run still stalls, ask the agent to retry with a fresh request and skip the cache.

A filter wipes out most of the account. I once tried an engagement filter to cut brand deals, and the filter would have dropped most of a creator’s reels. Their whole account sat under the bar, which is why the prompt asks before any filter.

A transcript is blank. Some reels have no speech, only music and on-screen text. The tagger still gets the caption, but treat those tags with care.


Part 2: Remix one winner into your own idea

Now you have a page of reels where a competitor beat their normal. Copying one of them is the tempting move.

I follow what I call the Remix Rule instead. Keep the competitor’s winning hooks and formats, and never copy their idea as is.

Make the idea do one of 3 things:

  • Springboard you to a related point they didn’t make.
  • Expand on their point with your own nuance.
  • Disagree with their approach.

One winner turns into 3 different videos. Say a reel at 3x their normal opens like this:

Stop posting every day. Post 3 times a week and spend the saved hours on your hooks.

The hook shape is “Stop X. Do Y instead.” The format is a talking head lesson, and you keep both.

A springboard takes you to a related point:

Stop writing your hook last. Write 10 hooks before you write a single line of the script.

An expansion adds your nuance:

Posting 3 times a week works, but only when you pick the 3 ideas on purpose. Pick the 3 your audience asked about most.

A disagreement takes the other side:

Stop cutting back to 3 posts a week. I posted every day for 2 years while I grew past 700,000 followers.

Each one borrows a proven hook and a proven format. The idea and the proof are yours.

To run this yourself:

  1. Open outliers.html and pick one reel at 2x or higher on a topic your audience cares about.
  2. Write the reel’s hook as a fill-in-the-blank template, and note the format.
  3. Read the full transcript. Write one sentence with your take: springboard, expand, or disagree.
  4. Draft your script with their hook shape and format, plus your idea and proof.

I wrote more about where borrowing ends and copying starts in How to Ethically Steal Content.

I’m building this remix step into Melda OS, the content system I’m making for creators, so one link to a winning video turns into a script in your voice.

Preston

Get more resources from me