Agent skill
blog-researcher
Monitor competitor blogs and industry publications to surface content opportunities
Filed under Content and SEO.
From ekatasingh1107/b2b-gtm-skills · 99 skills · 2 · pushed 2026-04-11
What it does when it runs
Monitor competitor blogs and industry publications to surface content opportunities
Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- network
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/ekatasingh1107/b2b-gtm-skills.git /tmp/b2b-gtm-skills git -C /tmp/b2b-gtm-skills sparse-checkout set "skills/capabilities/blog-researcher" mkdir -p ~/.claude/skills/blog-researcher cp -R "/tmp/b2b-gtm-skills/skills/capabilities/blog-researcher/." ~/.claude/skills/blog-researcher/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from ekatasingh1107/b2b-gtm-skills/blob/eae8dd0bb98da1c8e84abd297066a87015dd860f/skills/capabilities/blog-researcher/SKILL.md, which is licensed MIT (repository). 1,176 words, 10 headings.
Blog Researcher
Monitors competitor blogs, industry publications, and content hubs to extract insights, identify trending topics, and surface content gaps the agency can exploit. Uses WebSearch to scan the landscape systematically. Outputs a content opportunities matrix ranking topics by relevance, competition, and alignment with agency expertise.
Prerequisites
agency.config.jsonat repo root withservices,icp,case_studies, andagencysections- WebSearch tool available
- Optional: list of specific competitor domains to monitor
- Optional: list of industry publications to track
Phase 0: Intake
- Read
agency.config.jsonfrom the project root. - Extract:
agency.name-- for context on the agency's brandservices[].nameandservices[].keywords-- defines expertise areas and content lanesicp.segments[]-- the audience whose problems the content should addressicp.primary_keywords-- topics the agency should ownicp.secondary_keywords-- adjacent topics worth coveringcase_studies[]-- proof points that can anchor content pieces
- Accept parameters:
competitors-- (optional) array of competitor domains or brand names to monitorpublications-- (optional) array of industry publication domains to scantopic_focus-- (optional) narrow the scan to a specific topic area (e.g., "Shopify CRO", "D2C performance marketing")lookback_days-- how far back to scan. Default: 30max_results-- maximum number of opportunities to return. Default: 20
Phase 1: Competitor Discovery
If competitors are not provided, discover them:
Search queries for competitor identification:
"{{service_keyword}}" agency blogfor each service keyword"{{primary_keyword}}" tips site:*.com/blogbest {{service_name}} agencies {{current_year}}"shopify agency" blog content marketing
For each discovered competitor:
- Domain and blog URL
- Content frequency (posts per month estimate)
- Primary topics covered
- Content quality tier: basic (recycled advice), moderate (original angles), advanced (data/research-backed)
- Social engagement indicators (shares, comments visible on articles)
Build a competitor content map:
COMPETITOR BLOG MAP:
---
1. [competitor.com/blog] -- Posts: ~[X]/month -- Topics: [list] -- Quality: [tier]
2. [competitor.com/blog] -- Posts: ~[X]/month -- Topics: [list] -- Quality: [tier]
3. [competitor.com/blog] -- Posts: ~[X]/month -- Topics: [list] -- Quality: [tier]
Aim for 5-10 competitor blogs.
Phase 2: Content Landscape Scan
For each competitor blog and industry publication, scan recent content:
WebSearch queries:
site:{{competitor_domain}} blog {{current_year}}site:{{competitor_domain}} {{primary_keyword}}site:{{publication_domain}} {{service_keyword}} {{current_year}}
For each article found (aim for 30-50 across all sources):
- Title and URL
- Publication date
- Topic category (map to agency service areas)
- Content type: how-to, listicle, case study, opinion, data report, comparison, guide
- Estimated word count
- Key angle or unique hook
- Engagement signals (comments, shares if visible)
- Keywords targeted (from title, URL slug, H1)
Phase 3: Trend Analysis
Aggregate findings to identify patterns:
Topic frequency analysis:
- Count how many articles cover each topic across all sources
- Rank topics by frequency: what is everyone writing about?
- Identify velocity: which topics are accelerating (more articles in recent weeks)?
Format analysis:
- Which content types perform best (based on engagement signals)?
- What lengths dominate (short-form, mid-form, long-form)?
- Are competitors using multimedia (videos, infographics, interactive tools)?
Keyword gap analysis:
- Cross-reference competitor topics against
services[].keywords - Identify agency keywords that NO competitor is covering well
- Identify agency keywords where competitors have weak or outdated content
Trending topic detection via broader search:
{{industry}} trends {{current_year}}{{primary_keyword}} news this week{{icp_industry}} challenges {{current_year}}- Reddit and community searches:
{{primary_keyword}} site:reddit.com - Identify emerging topics not yet covered by competitor blogs
Phase 4: Content Gap Identification
Map the gaps between what exists and what the agency can uniquely cover:
Gap types:
- Topic gaps: subjects nobody is covering that the agency has expertise in
- Depth gaps: topics covered superficially everywhere, agency can go deeper with case study data
- Recency gaps: important topics where all existing content is 12+ months old
- Format gaps: topics only covered as blog posts but ripe for guides, tools, or interactive content
- Perspective gaps: topics covered generically but not from the agency's unique angle (e.g., India D2C market, sports brand CRO)
- Data gaps: topics where everyone offers opinions but nobody has real numbers (agency has case study data)
For each gap, assess:
- Relevance to ICP (1-10)
- Agency expertise level (1-10)
- Competition level (low/medium/high)
- Content effort required (small/medium/large)
- Potential to drive inbound leads (1-10)
Phase 5: Opportunity Scoring
Score each content opportunity using a weighted formula:
| Factor | Weight | Scale |
|---|---|---|
| ICP relevance | 30% | 1-10 |
| Agency expertise | 25% | 1-10 |
| Competition level | 20% | Low=10, Med=5, High=2 |
| Inbound lead potential | 15% | 1-10 |
| Effort efficiency | 10% | Small=10, Med=6, Large=3 |
Score = (ICP * 0.30) + (Expertise * 0.25) + (Competition * 0.20) + (Lead Potential * 0.15) + (Effort * 0.10)
Rank all opportunities by score. Flag the top 5 as "priority topics."
Phase 6: Output
Return structured JSON:
{
"scan_metadata": {
"competitors_scanned": 8,
"publications_scanned": 4,
"articles_analyzed": 47,
"lookback_days": 30,
"scan_date": "2026-03-12"
},
"competitor_map": [
{
"domain": "competitor.com",
"blog_url": "competitor.com/blog",
"posts_per_month": 6,
"primary_topics": ["Shopify development", "CRO", "D2C marketing"],
"quality_tier": "moderate",
"notable_articles": [
{"title": "Article title", "url": "https://...", "date": "2026-02-15", "topic": "CRO"}
]
}
],
"trending_topics": [
{"topic": "AI-powered product recommendations", "velocity": "accelerating", "article_count": 12},
{"topic": "Shopify Markets expansion", "velocity": "stable", "article_count": 8}
],
"content_gaps": [
{
"gap_type": "depth",
"topic": "CRO for sports D2C brands",
"description": "Multiple articles cover generic CRO, none specific to sports category with real data",
"agency_advantage": "Kibi Sports case study with measurable conversion uplift"
}
],
"opportunities": [
{
"rank": 1,
"topic": "CRO audit checklist for D2C brands on Shopify",
"gap_type": "depth",
"suggested_format": "guide",
"suggested_word_count": 3000,
"icp_relevance": 9,
"expertise_score": 10,
"competition": "medium",
"lead_potential": 9,
"effort": "medium",
"total_score": 8.65,
"unique_angle": "Backed by real audit data from Kibi Sports, not generic advice",
"target_keywords": ["shopify CRO audit", "CRO checklist D2C", "ecommerce conversion audit"],
"suggested_cta": "Book a free CRO audit for your store"
}
],
"quick_wins": [
{
"topic": "Topic with low competition and small effort",
"reason": "No recent content exists, agency has expertise, can publish in 1-2 days"
}
],
"recommended_content_calendar": {
"week_1": {"topic": "Priority topic 1", "format": "blog", "target_keywords": ["..."]},
"week_2": {"topic": "Priority topic 2", "format": "guide", "target_keywords": ["..."]},
"week_3": {"topic": "Priority topic 3", "format": "case-study", "target_keywords": ["..."]},
"week_4": {"topic": "Priority topic 4", "format": "comparison", "target_keywords": ["..."]}
}
}
Example Usage
Trigger phrases:
- "Research what competitors are blogging about"
- "Find content gaps in our niche"
- "What topics should we write about?"
- "Scan competitor blogs for opportunities"
- "What's trending in Shopify/D2C content?"
- "Build a content calendar based on competitor research"
User: Research what our competitors are blogging about and find gaps we can exploit
Assistant: [reads config, discovers competitor blogs, scans 50+ articles, identifies gaps, scores opportunities, returns ranked matrix with content calendar]
User: What should our next 4 blog posts be about?
Assistant: [scans landscape, identifies top 4 opportunities by score, returns with suggested formats, keywords, and unique angles]
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- write-blog by OpenClaudia · 677
- blog-cover-generator by Varnan-Tech · 626
- cook-the-blog by Varnan-Tech · 626
- tweet-thread-from-blog by Varnan-Tech · 626
- blog-writing-specialist by manojbajaj95 · 95
- blog-post-writer by markster-public · 62
- prospect-researcher by JJenglert1 · 55
- marketing-content-blog-post by b2bforce · 2
Need help setting it up?
This page tells you what blog-researcher does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.