skills/content-ideation/SKILL.md
Scans trend sources via Perplexity API, generates topic ideas, scores them, and pushes to the Notion Topic Bank and Social Media Calendar. Runs on Wednesday 9am cron or manual invocation. Use when the user says "find topics," "content ideation," "what should I post about," "scan for trending topics," "fill the topic bank," or wants fresh content ideas for the week.
npx skillsauth add demtomi/social-media-agent-toolkit content-ideationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You scan trend sources, score topics, and fill the Notion Topic Bank with the best ideas for the week. You also promote top topics to Calendar entries so the content-writer skill picks them up on Thursday.
You do NOT write copy, generate images, or schedule posts.
Use the Perplexity API to scan for trending and evergreen topics across multiple sources.
Endpoint: https://api.perplexity.ai/chat/completions
Auth: Bearer token from .env as PERPLEXITY_API_KEY
Model: sonar-pro (~$0.03/query, better research results)
Launch parallel API calls for each source category:
Query 1: Reddit trends
What are the most discussed [YOUR_NICHE] topics on Reddit this week? Check [YOUR_SUBREDDITS]. Return: topic title, subreddit, upvotes/engagement level, key discussion points. Focus on: new tool launches, surprising use cases, controversies, beginner questions with high engagement.
Query 2: X/Twitter trends
What [YOUR_NICHE] topics are trending on X/Twitter this week? Focus on: tool announcements, viral demos, industry debates, founder stories. Return: topic, approximate engagement, key angles.
Query 3: Product Hunt launches
What notable [YOUR_NICHE] tools launched on Product Hunt in the past 7 days? Focus on: tools relevant to [YOUR_TARGET_AUDIENCE]. Return: product name, what it does, why it matters.
Query 4: Newsletter roundup
Summarize the top [YOUR_NICHE] stories from [YOUR_NEWSLETTER_SOURCES] from the past week. Focus on: stories most relevant to [YOUR_TARGET_AUDIENCE]. Return: story title, source, one-line summary, relevance score.
Also scan recent git commits for work that could become content:
git log --oneline --since="7 days ago" -- [YOUR_PROJECT_DIR]
Look for:
For each topic found, score across these dimensions:
| Dimension | Weight | Scoring | |---|---|---| | Timeliness | 30% | Trending (post this week) = 10, Evergreen = 5 | | Pillar fit | 20% | Strong fit to one of your pillars = 10, Weak fit = 3 | | Format versatility | 20% | Works across 3+ platforms = 10, Single platform = 3 | | Audience relevance | 20% | Direct pain point for target avatar = 10, Tangential = 3 | | Uniqueness | 10% | "I built this" angle available = 10, Generic take = 3 |
Define your pillars in ./voice/context-packet-template.md. Example:
Before finalizing, query the existing Topic Bank to avoid duplicates:
Pick 8-12 topics for the week:
Topic Bank DB: YOUR_TOPIC_BANK_DB_ID
For each selected topic, create an entry with:
| Property | Value | |---|---| | Topic | Clear topic title | | Pillar | One of your defined pillars | | Source | Reddit / X / Product Hunt / Newsletter / Client Work / Manual | | Source URL | Link to original discussion/article (if available) | | Timeliness | Trending or Evergreen | | Format Fit | Which formats work: "LinkedIn + IG Carousel + Video" | | Hook Angle | Suggested hook framework (from the 10 frameworks in hooks-library.md) | | Body Direction | 1-2 sentence note on what the post should cover | | CTA Direction | What the reader should do after (follow, visit site, comment, etc.) | | Status | "Ready to Write" |
For the top-scoring topics, create Calendar entries to fill the week.
Calendar DB: YOUR_CALENDAR_DB_ID
| Platform | Posts/Day | Days | Weekly Total | |---|---|---|---| | LinkedIn | 2 | Mon-Fri | 10 | | Instagram (image) | 1 | 7 days | 7 | | Instagram (Reel) | 2 | 7 days | 14 | | TikTok | 2 | 7 days | 14 | | YouTube Shorts | 2 | 7 days | 14 |
Unique content to produce: ~32/week. Cross-posting reduces this.
Use the same slot table and conflict-checking logic as the content-writer skill:
datetime.weekday() <= 4 to verify. If the next open slot falls on Saturday or Sunday, skip to Monday. Instagram, TikTok, and YouTube Shorts are 7 days/week.| Property | Value | |---|---| | Post Title | Topic title | | Platform | LinkedIn / Instagram / TikTok / YouTube | | Format | Single Image / Multi-Image / Carousel / Short-Form Video | | Publish Date | Assigned date | | Scheduled Time | Assigned time slot | | Pillar | Content pillar | | Status | "Needs Copy" |
Send a summary (email or in-chat report):
When invoked manually:
| Database | ID |
|---|---|
| Topic Bank | YOUR_TOPIC_BANK_DB_ID |
| Social Media Calendar | YOUR_CALENDAR_DB_ID |
content-writer -- writes copy for Calendar entries at "Needs Copy" (runs Thu 9am, after this skill)content-designer -- generates images (runs Thu 3pm)content-distributor -- schedules posts (runs Fri)content-analytics -- measures performance and feeds back into topic scoring (runs Mon)testing
Automated content writer. Takes topics from the Notion Topic Bank or Calendar and generates platform-specific copy for LinkedIn, Instagram, TikTok, and YouTube using parallel subagents. Handles slot assignment, conflict checking, and Notion status management. Runs on Thursday 9am cron or manual invocation. Use when the user says "write content," "draft posts," "content writer," "write this week's posts," or wants copy generated for social media calendar entries.
development
Schedules social media posts via Blotato API and verifies publishing. Processes posts at "Can Be Scheduled" status only. Handles post creation, status polling, and publish verification. Runs on Friday 9am cron or manual invocation. Use when the user says "schedule posts," "publish posts," "content distributor," "process scheduled," "verify published," or wants posts sent to Blotato for scheduling.
development
Generates images for approved social media posts using Gemini API, uploads to Blotato media hosting, stores URLs in Notion, and sets status to Ready. Processes posts at "Approved" status only. Runs on Thursday 3pm cron or manual invocation. Use when the user says "generate images," "process approved posts," "content designer," "create visuals," or wants images generated for approved calendar entries.
development
Weekly performance analytics. Pulls metrics for published posts, tags top and bottom performers, updates the Topic Bank with success data, and generates an HTML dashboard email. Runs on Monday 9am cron or manual invocation. Use when the user says "content analytics," "weekly report," "how did posts perform," "check analytics," "tag top posts," or wants a performance review of recent social media content.