Skip to content
Automation
Skill

/market-intelligence-report

Produce a Market Intelligence Report — YouTube competitive research, channel analysis, content gap discovery, idea generation, daily scanning, and AI trend scouting — then render it as a BenAI-branded HTML dashboard in the instant-ui design language.

From plugin
benai-skills
62152 skills17 agents1 hook4 MCP
Install
$ npx -y skills add naveedharri/benai-skills --skill market-intelligence-report --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/market-intelligence-report

Context preview

The summary Claude sees to decide when to auto-load this skill.

Produce a Market Intelligence Report — YouTube competitive research, channel analysis, content gap discovery, idea generation, daily scanning, and AI trend scouting — then render it as a BenAI-branded HTML dashboard in the instant-ui design language.

SKILL.md

market-intelligence-report.SKILL.md
name: market-intelligence-report
description: Produce a Market Intelligence Report — YouTube competitive research, channel analysis, content gap discovery, idea generation, daily scanning, and AI trend scouting — then render it as a BenAI-branded HTML dashboard in the instant-ui design language.
  Use this skill whenever the user says "market intelligence report", "market intel", "intelligence report", "research channels", "analyze competitors",
  "find trending topics", "niche analysis", "competitive research", "scrape YouTube channels", "generate ideas", "brainstorm videos",
  "video ideas", "content ideas", "ideation", "daily scan", "morning scan", "what's new today", "scan for updates",
  "trend scout", "what's trending on twitter", "twitter scan", "X scan", "viral topics", "what's viral",
  "build a dashboard", or wants to understand the YouTube competitive landscape and come up with video concepts.
disable-model-invocation: true
allowed-tools: Read, Write, Edit, Bash, Grep, Glob, Task, AskUserQuestion, Skill

Market Intelligence Report

This skill conducts YouTube + Twitter/X competitive intelligence — analyzing channels, discovering content gaps, generating video ideas, and scanning for daily opportunities — and then packages the findings into a **BenAI-branded instant-ui HTML dashboard** the user can open, screenshot, or share.

Every run has two halves: 1. **Gather + synthesize** the intelligence (Standard Workflows below). 2. **Render the dashboard** from the bundled template in the instant-ui design language (see "Dashboard Output").

Connectors

`youtube` connector (Primary for all YouTube data)

The `@kirbah/mcp-youtube` connector is the **primary data source** for YouTube search, video details, channel stats, and transcripts. It uses the YouTube Data API v3 (free tier: 10,000 units/day).

| Tool | What it does | API Cost (units) | |------|-------------|-----------------| | `searchVideos` | Search videos/channels by keyword with `recency` filter (`pastHour`, `pastDay`, `pastWeek`, `pastMonth`, `pastQuarter`, `pastYear`) | **100 per call** | | `getVideoDetails` | Video metadata, stats, duration, category | **~1 per video** | | `getChannelStatistics` | Subscriber count, view count, video count | **~1 per channel** | | `getChannelTopVideos` | Top/recent videos for a channel | **~3 per call** | | `getVideoComments` | Video comments | **~1 per call** | | `getVideoCategories` | List video categories | **~1 per call** | | `getTrendingVideos` | Trending videos by region/category | **~1 per call** | | `getTranscripts` | Video transcripts (captions) | **Free (0 cost)** |

**Quota budget:** 10,000 units/day. `searchVideos` is the most expensive at 100 units — use it intentionally (~50-80 searches/day max). All other tools cost ~1 unit each. Transcripts are always free.

`apify` connector (Fallback for YouTube search + primary for Twitter/X)

Use Apify as a **fallback** if the YouTube connector hits quota limits, or as the **primary** source for Twitter/X data.

YouTube fallback via `automation-lab/youtube-scraper`

Uses YouTube's InnerTube API (direct HTTP, no browser) — no API key needed, no quota limits.

| Capability | How | Cost | |-----------|-----|------| | Search videos by keyword | `searchQueries` array | $0.005/run + $0.003/video | | Get video details | Pass video URLs via `startUrls` | $0.005/run + $0.003/video | | Get channel data | Pass channel URLs via `startUrls` | $0.005/run + $0.003/channel |

Can combine search queries + video URLs + channel URLs in a **single run**.

**Input examples:**

// Search by keyword
{ "searchQueries": ["Claude AI tutorial"], "maxResults": 20 }

// Scrape specific channel
{ "startUrls": [{"url": "https://www.youtube.com/@channelname"}], "maxResults": 50 }

// Combined: search + channel + video in one run
{ "searchQueries": ["Claude AI tutorial"], "startUrls": [{"url": "https://www.youtube.com/@channelname"}], "maxResults": 20 }

Twitter/X scraping via `apidojo/twitter-scraper-lite` (Primary)

`apidojo/twitter-scraper-lite` (Twitter Scraper Unlimited) is the primary Twitter actor. Use this for all Twitter/X calls.

| Parameter | Type | What it does | |-----------|------|-------------| | `searchTerms` | string[] | Keyword search. Supports Twitter advanced syntax (`"from:handle"`, `"to:handle"`) | | `twitterHandles` | string[] | Direct handle scraping — preferred for watchlist batch scanning | | `author` | string | Single author filter | | `start` / `end` | string | Date range filter (ISO 8601). Use for 48-hour lookback windows | | `minimumFavorites` | int | Engagement floor — only return tweets with N+ likes | | `minimumRetweets` | int | Only return tweets with N+ retweets | | `sort` | enum | `"Top"`, `"Latest"`, or `"Latest + Top"` | | `maxItems` | int | Max tweets to return per call | | `tweetLanguage` | string | ISO 639-1 language code (e.g., `"en"`) |

**Watchlist scan example:**

{ "twitterHandles": ["AnthropicAI", "claudeai", "trq212"], "maxItems": 50, "start": "2026-04-13T06:00:00Z", "sort": "Latest" }

**Keyword scan example:**

{ "searchTerms": ["Claude Cowork", "Anthropic launch"], "maxItems": 30, "sort": "Top", "minimumFavorites": 100 }

Twitter/X fallback chain (IMPORTANT)

When a Twitter call fails or returns empty (`noResults: true`), follow this **exact order**:

1. **Switch actor first** — retry the same request with `apidojo/tweet-scraper` using identical input params. Do NOT relax filters on the primary actor. The most likely cause of empty results is the actor being down, not the filters being too strict. 2. **Only if both actors fail** — then relax filters (remove date range, lower `minimumFavorites`, broaden `searchTerms`). 3. **Only if both actors fail with relaxed filters** — report the failure to the user and continue with other data sources.

**Never** relax filters or remove date ranges as a first response to empty results. Switch actor first.

`vi

Read more
Ships withbenai-skills

Expert automation skills for Claude Code, organized by department.

Get the whole plugin

Other skills on benai-skills.