一键导入
topic-researcher
Find outlier content ideas for short-form video. Multi-angle research, dedup, scored topic cards with approval workflow. Works for any niche.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Find outlier content ideas for short-form video. Multi-angle research, dedup, scored topic cards with approval workflow. Works for any niche.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
The 1-Prompt Meta Ads Engine. End-to-end Meta ad generation + paused campaign creation workflow. Asks 4 discovery questions, then runs the full pipeline: competitor intel (claude-ads /ads competitor), brand-site scraping for context, bulk image generation (kie.ai gpt-image-2), ad copy (claude-ads /ads creative), and paused Meta campaign creation (Meta Ads MCP). Dynamic Product Ad principles (brand compliance + variant matrix) are applied inline. Saves brand profiles for one-command re-runs. Trigger phrases (auto-fire on any of these in user prompt): - "/ad-engine" or "/ad engine" - "run the ad engine" - "launch ads for [brand]" / "build ads for [brand]" / "generate ads for [brand]" - "build a Meta campaign for [brand]" / "build the campaign for [brand]" - "20 ads for [brand]" / "20 Meta ads for [brand]" - "automate Meta ads" / "automate my Meta ads" - "one prompt ads" / "one-prompt ads" - "fresh ad batch" / "generate a fresh ad batch"
Use when creating Instagram carousels from a reel script, handout, PDF, article, or rough idea. Triggers on "carousel", "Instagram carousel", "IG carousel", "turn this script into slides", "build a carousel", "make slides for IG", "anchor slide", "visual brief". Runs the reference-first workflow (copy → brief → 3 anchor variants → locked anchor → matched slides one at a time → consistency check) and generates real images via the kie.ai gpt-image-2 MCP. Skip for plain captions or non-designed multi-slide posts.
Generate a hand raiser PDF lead magnet (1-5 pages) for any script or standalone topic. Renders a professional guide/cheatsheet/checklist, uploads to Google Drive, and links in Notion.
One-prompt digital footprint removal. Finds where a person's personal data (home address, phone, email, relatives) is exposed across data brokers and people-search sites, checks for breaches, ranks everything by risk, and auto-writes every CCPA/GDPR opt-out and deletion request filled and ready to send, then saves it all as a personal removal kit. Removes the manual searching and letter-writing. Triggers on: "/wipe-footprint", "wipe my footprint", "wipe my digital footprint", "erase me from the internet", "delete my data", "remove my data from data brokers", "stop the spam calls", "opt me out of data brokers".
Use when running inside Claude Design specifically. Produces a valid, brand-accurate HyperFrames video draft using pre-valid skeletons. For Claude Code / Cursor / Codex, use the `hyperframes` skill instead.
Hourly Instagram analytics pipeline that pulls per-post and account-level insights from the Meta Graph API into Supabase, mirrors live values into a Notion dashboard, and runs a daily Claude routine that classifies each post into Outlier/Average/Underperformer tiers with a 2-3 sentence "why" note. Built for content creators who want feedback that compounds, not a vanity follower counter. Triggers on "ig analytics", "instagram analytics", "performance dashboard", "content analytics pipeline", "instagram graph api", "outlier post detection", "tier classification", "creator analytics".
| name | topic-researcher |
| description | Find outlier content ideas for short-form video. Multi-angle research, dedup, scored topic cards with approval workflow. Works for any niche. |
Find scored, deduplicated topic ideas for short-form video content. Multi-angle research surfaces outlier ideas for review before any scripts get written.
Every topic MUST pass this filter before being included. No exceptions.
YOUR NICHE: YOUR_NICHE_DESCRIPTION
Only surface topics that fit within your configured niche above. If no niche is configured, ask the user what their content niche is before proceeding.
Every topic must be:
When invoked with no arguments or just /topic-researcher:
What kind of topics are you looking for?
I can:
- Find topics — outlier content ideas scored for viral potential
- Industry-specific — topics for specific verticals or audiences
- Trending tools — what's blowing up on Product Hunt, X, Reddit right now
Just say "find me 10 topics" or "topics about [your niche]" to get started.
If $ARGUMENTS is provided, parse it for:
Skip the greeting and start researching immediately.
Run 6 research angles to surface diverse topic ideas. Don't just search one query — cast a wide net.
| # | Angle | What to Search |
|---|---|---|
| 1 | Pain Points | Common tasks in the niche that are manual, time-consuming, or frustrating |
| 2 | Builds / Demos | Things people are building, creating, or demonstrating in this space |
| 3 | Case Studies / ROI | Real results, time saved, money saved, before/after transformations |
| 4 | Experiments | "I tried X" posts — experiments and tests with real outcomes |
| 5 | Competitor Creators | Other creators making content in this niche — what's getting engagement |
| 6 | Industry-Specific | Niche-specific workflows, tools, or use cases (rotate sub-niches) |
Batch 1 — last30days.py broad sweep (angles 1-3):
python3 ~/.claude/skills/last30days/scripts/last30days.py "{NICHE KEYWORDS}" --emit=compact 2>&1
Batch 2 — Targeted WebSearch (angles 4-6):
Run 3 WebSearch calls:
"{niche keywords}" results OR "I tried" OR experiment workflow (blocked_domains: reddit.com, x.com, twitter.com)"{niche keywords}" creator content viral tips (blocked_domains: reddit.com, x.com, twitter.com)"{niche keywords}" {INDUSTRY OR sub-niche} use case workflow (blocked_domains: reddit.com, x.com, twitter.com)If the user specifies an industry filter, weight angle 6 heavily — run 2 industry-specific searches instead of 1.
After gathering raw results, apply the Content Filter (above) to every potential topic. Discard anything that doesn't fit the configured niche. Reframe surviving topics through the niche lens where possible.
For each potential topic, extract:
Before scoring, check both Notion databases to flag topics already covered.
Read ~/.config/notion-content/config.json to get script_library_db_id. If present:
Use notion-search with:
data_source_url: collection://{script_library_db_id}If config missing, skip silently.
Read ~/.config/notion-content/config.json to get inspiration_data_source_id. If present:
Use notion-search with:
data_source_url: collection://{inspiration_data_source_id}If config missing, skip silently.
Compare each discovered topic against both databases:
COVEREDScore each topic on 5 dimensions (1-5 stars each). Only present topics scoring 3+ stars overall.
| Dimension | Weight | 5-star = | 1-star = |
|---|---|---|---|
| Engagement | 30% | Multiple high-engagement posts (Reddit 100+, X 500+) | Single low-engagement mention |
| Specificity | 25% | Named tool + named use case + specific numbers | Generic vague topic |
| Freshness | 15% | Trending in last 7 days | 30+ days old, widely covered |
| Proof Availability | 15% | Screenshot-ready demo, specific stats, before/after | Abstract, no visual proof |
| Competition Gap | 15% | No major creators covering this angle | Already saturated |
Weighted Score = (Engagement x 0.30) + (Specificity x 0.25) + (Freshness x 0.15) + (Proof x 0.15) + (Competition Gap x 0.15)
Round to one decimal. Convert to star display (e.g., 4.2 = four filled stars + partial).
This step runs automatically after scoring. For every topic that scores 3+ stars, run deep research to surface 5 distinct script angles. This makes each topic card significantly richer and gives the user real options for how to approach the script.
One topic can become 5 completely different videos depending on the angle. Deep research finds the best angle by looking at what's actually resonating online for each topic.
For each topic that passed scoring, run 2 targeted WebSearch calls:
"{topic keywords}" script OR video OR content angle approach 2026 (blocked_domains: reddit.com, x.com, twitter.com)"{tool from topic}" results OR "saved me" OR "before and after" OR case study (blocked_domains: reddit.com, x.com, twitter.com)To keep speed reasonable: Run searches for all topics in parallel (not sequentially). If there are 10 topics, that's 20 WebSearch calls — run them all at once.
For each topic, generate exactly 5 angles using this framework. Not every angle will be strong for every topic — that's fine. Rate each angle 1-3 strength dots (three dots = strongest) so the user can see which ones have the most potential.
| Angle | What It Is | Best When |
|---|---|---|
| 1. Proof-First | Lead with the result/number. Show the outcome before explaining how. | Strong stats, dollar amounts, or time-saved numbers exist in research |
| 2. Step-by-Step Tutorial | Walk through the build/workflow on camera. | The workflow is clearly definable and can be demoed in under 60 seconds |
| 3. Challenge / Experiment | Frame it as a test with an unknown outcome. | There's a bold claim to test, or a common assumption to challenge |
| 4. Myth-Buster / Contrarian | Challenge the conventional wisdom. | There's a popular belief that the research contradicts |
| 5. Industry / Niche Remix | Narrow the audience to a specific sub-niche. | The topic can be applied to a specific industry with tailored examples |
For each topic, append the 5 angles below the Script Preview:
Angles:
1. ●●● PROOF-FIRST: "I replaced my $3K/mo agency with a free tool — here are the results"
→ Key proof: [specific stat]. Screen: [what you'd show]. Why strong: [1 sentence].
2. ●● TUTORIAL: "How to set up your own audit in 4 minutes"
→ Steps: [3-step summary]. Screen: [what you'd show]. Why strong: [1 sentence].
3. ●●● CHALLENGE: "I gave this tool 7 days to outperform my agency. Here's who won."
→ Setup: [the challenge framing]. Payoff: [what the result reveals]. Why strong: [1 sentence].
4. ● MYTH-BUSTER: "Your agency doesn't want you to see this free tool"
→ Myth: [the assumption]. Reality: [what research shows]. Why strong: [1 sentence].
5. ●● NICHE REMIX: "If you run a restaurant, this tool was made for you"
→ Niche: [industry]. Tailored proof: [industry-specific stat]. Why strong: [1 sentence].
Use the WebSearch results to fill in each angle with real data:
If deep research surfaces a new angle that doesn't fit the 5-framework but is clearly strong (e.g., a trending meme format, a news hook, a celebrity endorsement), add it as a Bonus Angle with a note on why it's worth considering.
Present topics as ranked cards, highest score first.
TOPIC #1 ★★★★★ (4.8)
Title: [one-line video title idea]
Angle: [proof-first / pain point / tutorial / experiment / case study]
Tool: [specific tool if applicable]
Workflow: [1-2 sentence step-by-step — what you'd build or do on camera]
Pain: [problem it solves]
Proof: [specific number/stat from research]
Source: [Reddit thread, X post, etc.]
Why it works: [1 sentence]
Status: NEW or COVERED
Script Preview:
- [Beat 1: Hook — what you'd say/show in the first 3 seconds]
- [Beat 2: Problem — the pain point you're calling out]
- [Beat 3: Solution — what you build or demo on screen]
- [Beat 4: Proof — the specific result or number that lands]
- [Beat 5: CTA — what you tell them to do next]
The Script Preview gives a quick feel for what the final video would actually be. Each bullet is a "beat" — roughly one scene or moment in the video. This helps the user decide whether the topic has enough substance to become a full script before approving it.
Immediately after presenting topic cards, push ALL topics to the Script Library as Ideas/Topics if Notion is configured. Do not wait for approval — push them right away so they appear on the board.
Read ~/.config/notion-content/config.json to get script_library_db_id. If present:
Use notion-create-pages with:
data_source_id: value of script_library_db_id from configIdeas/TopicsScore: {score} | Angle: {angle} | Tool: {tool} | Workflow: {workflow}If config missing, skip silently and just present the cards.
Track the Notion page URL returned for each topic — you'll need it for approval/rejection.
After pushing to Notion (or if Notion not configured), show the cards and summary:
{N} topics found. {M} new, {K} overlap with existing scripts.
All {N} topics pushed to Script Library → Ideas/Topics column.
What next?
- "approve 1, 3, 5" — keep these, remove the rest
- "approve all" — keep everything
- "reject 2, 4" — remove specific topics
- "modify 2" — adjust angle/framing before deciding
- "more topics" — run another research pass
- "save" — save these results to a file
When user says "approve 1, 3, 5" (or similar):
notion-update-page or the Notion API to archive/delete the pages for any topic NOT in the approved list~/.claude/content-system/approved-topics.md (create if it doesn't exist). Format:
## Approved {date}
- **{Title}** — {Angle} | {Tool} | {Pain} | Score: {score}
This file builds a pattern of what the user gravitates toward, reinforcing future topic generation.When user says "approve all":
When user says "reject 2, 4" (or similar):
When user says "modify 2" (or similar):
When user says "more topics":
When user says "save":
~/ai-content-system/output/topic-research-{YYYY-MM-DD}.mdThe file ~/.claude/content-system/approved-topics.md acts as a reinforcement layer.
Before scoring topics, read ~/.claude/content-system/approved-topics.md if it exists. Use the patterns to:
This makes each research pass smarter than the last.
When user says "write scripts" after approving topics:
Format approved topics as pain points:
Read ~/.claude/skills/content-scripting/skill.md
Start at Step 3 (Outlier Checklist) with:
Follow content-scripting from Step 3 onward — the research is already done.
Track throughout the conversation:
RESEARCH_STATUS: [not started | in progress | complete]
TOPICS_FOUND: [count]
TOPICS_APPROVED: [list of approved topic numbers]
TOPICS_REJECTED: [list of rejected topic numbers]
TOPICS_COVERED: [list of covered topic numbers]
INDUSTRY_FILTER: [if specified]
NOTION_PAGES: [map of topic number → Notion page ID/URL — needed for deletion]
CRITICAL: Always track the Notion page URL/ID returned when creating pages. Without this, you cannot delete rejected topics.