Case file 006Competitor intelligence
The problem
“I spend hours scrolling competitors’ reels. I see individual videos, not patterns.”
Solved
- For
- Content creators who study their niche
- Built
- NicheLens: scraper + transcriber + analyzer + SaaS dashboard
- Stack
- Python (Apify, Groq) · Next.js · Hono · Inngest · Neon
- Runs for
- About $5 a month
01 · The pain
Eight reels. One reel at a time.
You open competitor accounts and scroll. One reel, then another. Notes in your phone. Did this one have hook-first delivery or demo-first? Was it a contrarian claim or a data shock? You don't have a system, so you don't know if you're seeing the pattern or just the algorithm that day.
Reels logged
0 / 8
Time spent
0min
Patterns found
—
02 · The fix
One command. A dashboard of patterns.
A live lab with sample reels: import, score, break into hooks and beats, filter by relevance. This is what the real dashboard shows — every time you run the scraper, a fresh snapshot of what’s working in your niche.
03 · How it works
Three stages, and bilingual analysis that holds meaning.
Scrape the competitor accounts
Apify walks the Instagram reels from 3–7 competitors you choose. For each reel it saves the URL, caption, view count, and a link to the video.
Transcribe with Groq
Each video is sent to Groq's Whisper API for transcription. If a reel is music-only, the caption alone becomes the 'transcript' — nothing is dropped.
Claude scores and breaks down
In one session, Claude reads every transcript and scores it 1–10 for relevance to your niche. Keepers (≥7) are split into Hook, Beats, and CTA with bilingual notes (English + Roman Urdu).
The hard part
Understanding what works, in two languages.
A reel’s hook, beats, and CTA are structural. “Problem-promise” means something: name the pain, promise the fix. That meaning has to survive translation to Roman Urdu without losing the idea. If the original is in Hindi or Urdu, the reverse: meaning must survive translation to English.
So every reel gets two texts: one clear English (verbatim if source is English, faithful translation if not) and one in Roman Urdu (romanized meaning if source is Urdu, natural translation if source is English). The bilingual treatment is what lets the dashboard speak to creators in their own language.
English reel
Hook: “Most people quit because they’re impatient.”Roman Urdu
Hook: “Zyada tar log isiliye chor dete hain kyun ke impatience unkay ander hoti hai.”Urdu reel
Beat: “کتنی دفعہ غلطی سے سیکھو”English
Beat: “Learn by failing, again and again.”04 · What changed
Scroll time → research time. Pattern spotting replaced guessing.
- Reels tracked per run
- —
- Analysis time
- —
- Weeks of manual scroll
- —
Metric to confirm · typically 3–5 per account
Metric to confirm · per-session Claude, zero extra cost
Metric to confirm · condensed into one dashboard
Hook styles tracked: problem-promise · contrarian-claim · list-tease · demo-first · story-frame · data-shock · identity-call · other
