Industry scanner

Daily industry intelligence scanner.

How to use it

  1. Hit Copy the whole skill.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/competitive-intel/composites/industry-scanner#main ~/.claude/skills/industry-scanner

For one project only, change the path to .claude/skills/industry-scanner.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text369 lines
industry-scanner/SKILL.md369 lines14.0 KBpushed 96d agoRawView on GitHub

Industry Scanner

Daily deep-research agent that scans the internet for everything relevant to a client's industry, then generates strategic GTM opportunities based on what it finds.

Quick Start

Run an industry scan for <client>. Use the config at clients/<client>/config/industry-scanner.json.

Or for a weekly deeper scan:

Run a weekly industry scan for <client> with --lookback 7.

Inputs

  • Client name — determines which config and context files to load
  • Lookback period (optional) — 1 for daily (default), 7 for weekly deep scan
  • Focus area (optional) — limit scan to specific categories (e.g., "competitors only", "events only")

Step-by-Step Process

Phase 1: Load Configuration

  1. Read clients/<client>/config/industry-scanner.json — this contains all the keywords, sources, competitors, and URLs to scan
  2. Read clients/<client>/context.md — need the ICP, value props, and positioning to generate relevant strategies
  3. Set the lookback period: use 1 day for daily scans, 7 for weekly, or whatever the user specifies
  4. Note today's date for the output filename

If no client config exists, ask the user for the key inputs and offer to create one from the example at skills/industry-scanner/config/example-config.json.

Phase 2: Data Collection

Run these data sources in parallel where possible. Skip any source that isn't configured. For each source, use the existing skill's CLI or tool as documented.

IMPORTANT: Run as many of these bash commands in parallel as possible to minimize total scan time. Sources are independent of each other.

2A. Web Search (built-in WebSearch tool)

Run 5-8 web searches combining the configured web_search_queries with time-sensitive modifiers. Examples:

  • "<industry keyword> news this week"
  • "<competitor name> shutdown OR closing OR acquired 2026"
  • "<industry> conference 2026 speaker applications"
  • "<industry keyword> new regulation OR policy change"
  • "<competitor name> layoffs OR pivot OR rebrand"

Also search for each competitor name directly to catch any recent news.

2B. Industry Blogs & Publications

python3 skills/blog-feed-monitor/scripts/scrape_blogs.py \
  --urls "<comma-separated blog_urls from config>" \
  --days <lookback> --output json

Read skills/blog-feed-monitor/SKILL.md for full CLI reference.

2C. Reddit

For each configured subreddit, run:

python3 skills/reddit-post-finder/scripts/search_reddit.py \
  --subreddit "<comma-separated subreddits from config>" \
  --keywords "<comma-separated reddit_keywords from config>" \
  --days <lookback> --sort hot --output json

Also run a separate search with --sort top --time week to catch high-engagement posts.

Read skills/reddit-post-finder/SKILL.md for full CLI reference.

2D. Twitter/X

For each configured Twitter query:

python3 skills/twitter-mention-tracker/scripts/search_twitter.py \
  --query "<twitter_query>" \
  --since <yesterday-YYYY-MM-DD> --until <today-YYYY-MM-DD> \
  --max-tweets 30 --output json

Read skills/twitter-mention-tracker/SKILL.md for full CLI reference.

2E. LinkedIn

Search each configured LinkedIn keyword via the linkedin-post-research skill.

Delegate to the linkedin-post-research skill (uses the apimaestro~linkedin-posts-search-scraper-no-cookies Apify actor). Search each keyword with date_posted: "past-day" (or "past-week" for weekly scans).

Read skills/linkedin-post-research/SKILL.md for the full Apify workflow.

2F. Hacker News

python3 skills/hacker-news-scraper/scripts/search_hn.py \
  --query "<hn_query>" --days <lookback> --output json

Run once per configured hn_queries entry. Read skills/hacker-news-scraper/SKILL.md for full CLI reference.

2G. RSS News Feeds

If the client has an accounting-news-monitor (or similar) configured:

python3 skills/accounting-news-monitor/scripts/monitor_news.py \
  --new-only --days <lookback> --output json

Read skills/accounting-news-monitor/SKILL.md for full CLI reference.

2H. Newsletter Inbox

If the client has newsletter monitoring configured:

python3 skills/newsletter-monitor/scripts/scan_newsletters.py \
  --days <lookback> --output json

Read skills/newsletter-monitor/SKILL.md for full CLI reference.

2I. Review Sites

For each configured review URL:

python3 skills/review-site-scraper/scripts/scrape_reviews.py \
  --platform <platform> --url "<review_url>" \
  --days <lookback> --max-reviews 20 --output json

Read skills/review-site-scraper/SKILL.md for full CLI reference.

Phase 3: Consolidate & Categorize

After all data collection completes, consolidate the results:

  1. Deduplicate — items appearing across multiple sources (e.g., a news story on both a blog and Reddit). Keep the richest version but note multi-source appearance (higher signal).

  2. Categorize each item into one of these types:

Category What to Look For
Competitor News Shutdowns, launches, funding, pivots, negative reviews, leadership changes, pricing changes
Industry Events Upcoming conferences, webinars, meetups, speaker slots, CFPs, award nominations
Market Trends Viral discussions, hot topics, emerging themes, sentiment shifts, adoption data
Regulatory / Policy New regulations, compliance changes, government actions, standards updates
People Moves Key hires, departures, promotions at competitors or target companies
Technology New product launches, integrations, platform changes, deprecations
Funding / M&A Acquisitions, mergers, funding rounds, PE investments, IPO signals
Pain Points People publicly complaining about problems the client solves
Content Opportunities Trending content, viral posts, gaps in existing coverage, unanswered questions
  1. Rate relevance — High / Medium / Low based on how directly it relates to the client's ICP and value props.

  2. Filter out noise — Drop items rated Low relevance unless they're genuinely noteworthy. The goal is signal, not volume.

Phase 4: Generate Strategic Opportunities

Review the consolidated intelligence and identify items (or clusters of related items) that present genuine GTM opportunities.

CRITICAL: Do NOT force-fit a strategy for every item. Many items are just "good to know" — that's fine, they go in the intelligence briefing. Only generate strategy ideas where there is a real, actionable opportunity that could meaningfully impact growth.

For each genuine opportunity, produce:

Field Description
Trigger What happened — the intelligence item(s) that sparked this idea
Strategy What to do about it — specific and actionable, not vague
Tactics 2-4 concrete next steps with skill references where applicable
Urgency Immediate (do this today/this week), Soon (next 2 weeks), or Evergreen
Effort Low (1-2 hours), Medium (half day), High (multi-day project)
Expected Impact Why this could matter — who it reaches, what it could generate

Strategy Patterns to Draw From

Use these as inspiration, not as a checklist. Match the pattern to the trigger:

Competitor in trouble (shutdown, bad reviews, layoffs, pivot):

  • Publish a migration/comparison guide targeting their customers
  • Find their customers via review sites, LinkedIn posts mentioning them → outreach
  • Engage on social posts where people discuss the shutdown/issues
  • Create "alternative to X" content for SEO capture
  • Skills: web-archive-scraper (recover their customer list), review-site-scraper (find reviewers), linkedin-post-research (find posts about them), cold-email-outreach

Industry event coming up:

  • Apply to speak (if speaker slots are open)
  • Plan pre-event outreach to attendees (skill: luma-event-attendees or conference-speaker-scraper)
  • Create event-specific content (e.g., "What We're Watching at [Event]")
  • Plan on-site presence and follow-up campaign

Viral post or trending discussion:

  • Engage thoughtfully on the thread (LinkedIn comment, Reddit reply, tweet)
  • Create response content (blog post, LinkedIn post) with the client's expert take
  • If the poster is ICP, follow up directly
  • Skills: linkedin-post-research, company-contact-finder

Acquisition or merger announced:

  • Reach out to the acquired company's clients (they're in transition, open to alternatives)
  • Create content about what the acquisition means for the industry
  • Skills: web-archive-scraper (find client lists), company-contact-finder

New regulation or policy change:

  • Create educational content positioning the client as an expert
  • Direct outreach to companies affected by the change
  • Host a webinar or publish a guide about compliance

Pain point surfaced (Reddit complaint, negative review, LinkedIn vent):

  • Engage helpfully on the post (don't pitch — add value first)
  • If the poster is ICP, follow up with a direct message/email
  • Create content addressing the specific pain point
  • Skills: company-contact-finder

Trending topic or content gap:

  • Publish thought leadership content while the topic is hot
  • CEO/founder LinkedIn post with a unique take
  • Podcast or webinar on the trending topic

Funding round announced at target company:

  • Outreach to the company (post-raise = budget for new tools)
  • Skills: company-contact-finder, cold-email-outreach

Phase 5: Generate Output

Save the report to the current working directory as industry-scan-<YYYY-MM-DD>.md (or user-specified path) using this structure:


# Industry Intelligence Briefing — <Client Name>
**Date:** <YYYY-MM-DD>
**Scan type:** Daily / Weekly
**Sources scanned:** <list of sources that returned results>

---

## Executive Summary

<2-3 sentence overview of the most important findings. What should the client pay attention to today?>

---

## Intelligence Briefing

### Competitor News
| Item | Source | Link | Relevance |
|------|--------|------|-----------|
| ... | ... | ... | High/Med |

### Industry Events
| Item | Source | Link | Date | Relevance |
|------|--------|------|------|-----------|

### Market Trends
| Item | Source | Link | Engagement | Relevance |
|------|--------|------|------------|-----------|

### Funding / M&A
| Item | Source | Link | Relevance |
|------|--------|------|-----------|

### Regulatory / Policy
| Item | Source | Link | Relevance |
|------|--------|------|-----------|

### Technology
| Item | Source | Link | Relevance |
|------|--------|------|-----------|

### People Moves
| Item | Source | Link | Relevance |
|------|--------|------|-----------|

### Pain Points & Complaints
| Item | Source | Link | Engagement | Relevance |
|------|--------|------|------------|-----------|

### Content Opportunities
| Item | Source | Link | Why | Relevance |
|------|--------|------|-----|-----------|

*(Only include sections that have items. Skip empty categories.)*

---

## Strategic Growth Opportunities

*(Only include opportunities where there's a genuine, actionable strategy with meaningful potential impact. It is completely fine to have zero opportunities on a quiet day.)*

### Opportunity 1: <Short title>

**Trigger:** <What happened>

**Strategy:** <What to do about it>

**Tactics:**
1. <Specific action> *(skill: <skill-name> if applicable)*
2. <Specific action>
3. <Specific action>

**Urgency:** Immediate / Soon / Evergreen
**Effort:** Low / Medium / High
**Expected Impact:** <Why this matters>

---

### Opportunity 2: ...

---

## Scan Statistics

- **Total items found:** X
- **By category:** Competitor News (X), Events (X), Trends (X), ...
- **Opportunities identified:** X
- **Sources that returned results:** X of Y configured

Configuration

Each client needs a config file at clients/<client>/config/industry-scanner.json. See skills/industry-scanner/config/example-config.json for the full schema.

Key fields:

  • web_search_queries — broad industry search terms
  • competitors — competitor names to monitor
  • subreddits + reddit_keywords — Reddit monitoring config
  • twitter_queries — Twitter/X search terms
  • linkedin_keywords — LinkedIn post search terms
  • blog_urls — industry publication URLs (for RSS scraping)
  • hn_queries — Hacker News search terms
  • review_urls — competitor review page URLs (G2, Capterra, Trustpilot)
  • event_keywords — conference and event search terms

Tips

  • Daily vs Weekly: Daily scans (--lookback 1) are fast but may miss slower-developing stories. Run a weekly deep scan (--lookback 7) every Monday for comprehensive coverage.
  • Noisy sources: If a source consistently returns irrelevant results, tune the keywords in the config rather than dropping the source entirely.
  • Multi-source signals: Items that appear across multiple sources (e.g., on both Reddit and Twitter) are higher-signal. Flag these in the briefing.
  • Strategy quality > quantity: A day with zero strategic opportunities is better than a day with five forced ones. The intelligence briefing has standalone value even without opportunities.
  • Follow up: When an opportunity references a downstream skill (e.g., company-contact-finder), the user can chain directly into that skill to take action.

Dependencies

No additional dependencies beyond what the sub-skills require:

  • requests (Python) — for blog-feed-monitor, reddit-post-finder, twitter-mention-tracker, hn-scraper, review-site-scraper, news-monitor
  • APIFY_API_TOKEN env var — for Reddit, Twitter, and review scraping
  • agentmail + python-dotenv — for newsletter-monitor (if configured)
  • APIFY_API_TOKEN — LinkedIn post search goes through the linkedin-post-research skill (Apify-based)
1---
2name: industry-scanner
3description: >
4 Daily industry intelligence scanner. Scans web, social media, news, blogs,
5 and communities for industry-relevant events, trends, and signals. Produces
6 a comprehensive intelligence briefing plus strategic GTM opportunity ideas.
7 Orchestrates existing scraping skills — does not reimplement data collection.
8---
9 
10# Industry Scanner
11 
12Daily deep-research agent that scans the internet for everything relevant to a client's industry, then generates strategic GTM opportunities based on what it finds.
13 
14## Quick Start
15 
16```
17Run an industry scan for <client>. Use the config at clients/<client>/config/industry-scanner.json.
18```
19 
20Or for a weekly deeper scan:
21 
22```
23Run a weekly industry scan for <client> with --lookback 7.
24```
25 
26## Inputs
27 
28- **Client name** — determines which config and context files to load
29- **Lookback period** (optional) — `1` for daily (default), `7` for weekly deep scan
30- **Focus area** (optional) — limit scan to specific categories (e.g., "competitors only", "events only")
31 
32---
33 
34## Step-by-Step Process
35 
36### Phase 1: Load Configuration
37 
381. Read `clients/<client>/config/industry-scanner.json` — this contains all the keywords, sources, competitors, and URLs to scan
392. Read `clients/<client>/context.md` — need the ICP, value props, and positioning to generate relevant strategies
403. Set the lookback period: use `1` day for daily scans, `7` for weekly, or whatever the user specifies
414. Note today's date for the output filename
42 
43If no client config exists, ask the user for the key inputs and offer to create one from the example at `skills/industry-scanner/config/example-config.json`.
44 
45### Phase 2: Data Collection
46 
47Run these data sources in parallel where possible. Skip any source that isn't configured. For each source, use the existing skill's CLI or tool as documented.
48 
49**IMPORTANT:** Run as many of these bash commands in parallel as possible to minimize total scan time. Sources are independent of each other.
50 
51#### 2A. Web Search (built-in WebSearch tool)
52 
53Run 5-8 web searches combining the configured `web_search_queries` with time-sensitive modifiers. Examples:
54 
55- `"<industry keyword> news this week"`
56- `"<competitor name> shutdown OR closing OR acquired 2026"`
57- `"<industry> conference 2026 speaker applications"`
58- `"<industry keyword> new regulation OR policy change"`
59- `"<competitor name> layoffs OR pivot OR rebrand"`
60 
61Also search for each competitor name directly to catch any recent news.
62 
63#### 2B. Industry Blogs & Publications
64 
65```bash
66python3 skills/blog-feed-monitor/scripts/scrape_blogs.py \
67 --urls "<comma-separated blog_urls from config>" \
68 --days <lookback> --output json
69```
70 
71Read `skills/blog-feed-monitor/SKILL.md` for full CLI reference.
72 
73#### 2C. Reddit
74 
75For each configured subreddit, run:
76 
77```bash
78python3 skills/reddit-post-finder/scripts/search_reddit.py \
79 --subreddit "<comma-separated subreddits from config>" \
80 --keywords "<comma-separated reddit_keywords from config>" \
81 --days <lookback> --sort hot --output json
82```
83 
84Also run a separate search with `--sort top --time week` to catch high-engagement posts.
85 
86Read `skills/reddit-post-finder/SKILL.md` for full CLI reference.
87 
88#### 2D. Twitter/X
89 
90For each configured Twitter query:
91 
92```bash
93python3 skills/twitter-mention-tracker/scripts/search_twitter.py \
94 --query "<twitter_query>" \
95 --since <yesterday-YYYY-MM-DD> --until <today-YYYY-MM-DD> \
96 --max-tweets 30 --output json
97```
98 
99Read `skills/twitter-mention-tracker/SKILL.md` for full CLI reference.
100 
101#### 2E. LinkedIn
102 
103Search each configured LinkedIn keyword via the linkedin-post-research skill.
104 
105Delegate to the `linkedin-post-research` skill (uses the `apimaestro~linkedin-posts-search-scraper-no-cookies` Apify actor). Search each keyword with `date_posted: "past-day"` (or `"past-week"` for weekly scans).
106 
107Read `skills/linkedin-post-research/SKILL.md` for the full Apify workflow.
108 
109#### 2F. Hacker News
110 
111```bash
112python3 skills/hacker-news-scraper/scripts/search_hn.py \
113 --query "<hn_query>" --days <lookback> --output json
114```
115 
116Run once per configured `hn_queries` entry. Read `skills/hacker-news-scraper/SKILL.md` for full CLI reference.
117 
118#### 2G. RSS News Feeds
119 
120If the client has an accounting-news-monitor (or similar) configured:
121 
122```bash
123python3 skills/accounting-news-monitor/scripts/monitor_news.py \
124 --new-only --days <lookback> --output json
125```
126 
127Read `skills/accounting-news-monitor/SKILL.md` for full CLI reference.
128 
129#### 2H. Newsletter Inbox
130 
131If the client has newsletter monitoring configured:
132 
133```bash
134python3 skills/newsletter-monitor/scripts/scan_newsletters.py \
135 --days <lookback> --output json
136```
137 
138Read `skills/newsletter-monitor/SKILL.md` for full CLI reference.
139 
140#### 2I. Review Sites
141 
142For each configured review URL:
143 
144```bash
145python3 skills/review-site-scraper/scripts/scrape_reviews.py \
146 --platform <platform> --url "<review_url>" \
147 --days <lookback> --max-reviews 20 --output json
148```
149 
150Read `skills/review-site-scraper/SKILL.md` for full CLI reference.
151 
152### Phase 3: Consolidate & Categorize
153 
154After all data collection completes, consolidate the results:
155 
1561. **Deduplicate** — items appearing across multiple sources (e.g., a news story on both a blog and Reddit). Keep the richest version but note multi-source appearance (higher signal).
157 
1582. **Categorize** each item into one of these types:
159 
160| Category | What to Look For |
161|----------|-----------------|
162| **Competitor News** | Shutdowns, launches, funding, pivots, negative reviews, leadership changes, pricing changes |
163| **Industry Events** | Upcoming conferences, webinars, meetups, speaker slots, CFPs, award nominations |
164| **Market Trends** | Viral discussions, hot topics, emerging themes, sentiment shifts, adoption data |
165| **Regulatory / Policy** | New regulations, compliance changes, government actions, standards updates |
166| **People Moves** | Key hires, departures, promotions at competitors or target companies |
167| **Technology** | New product launches, integrations, platform changes, deprecations |
168| **Funding / M&A** | Acquisitions, mergers, funding rounds, PE investments, IPO signals |
169| **Pain Points** | People publicly complaining about problems the client solves |
170| **Content Opportunities** | Trending content, viral posts, gaps in existing coverage, unanswered questions |
171 
1723. **Rate relevance** — High / Medium / Low based on how directly it relates to the client's ICP and value props.
173 
1744. **Filter out noise** — Drop items rated Low relevance unless they're genuinely noteworthy. The goal is signal, not volume.
175 
176### Phase 4: Generate Strategic Opportunities
177 
178Review the consolidated intelligence and identify items (or clusters of related items) that present genuine GTM opportunities.
179 
180**CRITICAL: Do NOT force-fit a strategy for every item.** Many items are just "good to know" — that's fine, they go in the intelligence briefing. Only generate strategy ideas where there is a real, actionable opportunity that could meaningfully impact growth.
181 
182For each genuine opportunity, produce:
183 
184| Field | Description |
185|-------|-------------|
186| **Trigger** | What happened — the intelligence item(s) that sparked this idea |
187| **Strategy** | What to do about it — specific and actionable, not vague |
188| **Tactics** | 2-4 concrete next steps with skill references where applicable |
189| **Urgency** | `Immediate` (do this today/this week), `Soon` (next 2 weeks), or `Evergreen` |
190| **Effort** | `Low` (1-2 hours), `Medium` (half day), `High` (multi-day project) |
191| **Expected Impact** | Why this could matter — who it reaches, what it could generate |
192 
193#### Strategy Patterns to Draw From
194 
195Use these as inspiration, not as a checklist. Match the pattern to the trigger:
196 
197**Competitor in trouble (shutdown, bad reviews, layoffs, pivot):**
198- Publish a migration/comparison guide targeting their customers
199- Find their customers via review sites, LinkedIn posts mentioning them → outreach
200- Engage on social posts where people discuss the shutdown/issues
201- Create "alternative to X" content for SEO capture
202- Skills: `web-archive-scraper` (recover their customer list), `review-site-scraper` (find reviewers), `linkedin-post-research` (find posts about them), `cold-email-outreach`
203 
204**Industry event coming up:**
205- Apply to speak (if speaker slots are open)
206- Plan pre-event outreach to attendees (skill: `luma-event-attendees` or `conference-speaker-scraper`)
207- Create event-specific content (e.g., "What We're Watching at [Event]")
208- Plan on-site presence and follow-up campaign
209 
210**Viral post or trending discussion:**
211- Engage thoughtfully on the thread (LinkedIn comment, Reddit reply, tweet)
212- Create response content (blog post, LinkedIn post) with the client's expert take
213- If the poster is ICP, follow up directly
214- Skills: `linkedin-post-research`, `company-contact-finder`
215 
216**Acquisition or merger announced:**
217- Reach out to the acquired company's clients (they're in transition, open to alternatives)
218- Create content about what the acquisition means for the industry
219- Skills: `web-archive-scraper` (find client lists), `company-contact-finder`
220 
221**New regulation or policy change:**
222- Create educational content positioning the client as an expert
223- Direct outreach to companies affected by the change
224- Host a webinar or publish a guide about compliance
225 
226**Pain point surfaced (Reddit complaint, negative review, LinkedIn vent):**
227- Engage helpfully on the post (don't pitch — add value first)
228- If the poster is ICP, follow up with a direct message/email
229- Create content addressing the specific pain point
230- Skills: `company-contact-finder`
231 
232**Trending topic or content gap:**
233- Publish thought leadership content while the topic is hot
234- CEO/founder LinkedIn post with a unique take
235- Podcast or webinar on the trending topic
236 
237**Funding round announced at target company:**
238- Outreach to the company (post-raise = budget for new tools)
239- Skills: `company-contact-finder`, `cold-email-outreach`
240 
241### Phase 5: Generate Output
242 
243Save the report to the current working directory as `industry-scan-<YYYY-MM-DD>.md` (or user-specified path) using this structure:
244 
245---
246 
247```markdown
248# Industry Intelligence Briefing — <Client Name>
249**Date:** <YYYY-MM-DD>
250**Scan type:** Daily / Weekly
251**Sources scanned:** <list of sources that returned results>
252 
253---
254 
255## Executive Summary
256 
257<2-3 sentence overview of the most important findings. What should the client pay attention to today?>
258 
259---
260 
261## Intelligence Briefing
262 
263### Competitor News
264| Item | Source | Link | Relevance |
265|------|--------|------|-----------|
266| ... | ... | ... | High/Med |
267 
268### Industry Events
269| Item | Source | Link | Date | Relevance |
270|------|--------|------|------|-----------|
271 
272### Market Trends
273| Item | Source | Link | Engagement | Relevance |
274|------|--------|------|------------|-----------|
275 
276### Funding / M&A
277| Item | Source | Link | Relevance |
278|------|--------|------|-----------|
279 
280### Regulatory / Policy
281| Item | Source | Link | Relevance |
282|------|--------|------|-----------|
283 
284### Technology
285| Item | Source | Link | Relevance |
286|------|--------|------|-----------|
287 
288### People Moves
289| Item | Source | Link | Relevance |
290|------|--------|------|-----------|
291 
292### Pain Points & Complaints
293| Item | Source | Link | Engagement | Relevance |
294|------|--------|------|------------|-----------|
295 
296### Content Opportunities
297| Item | Source | Link | Why | Relevance |
298|------|--------|------|-----|-----------|
299 
300*(Only include sections that have items. Skip empty categories.)*
301 
302---
303 
304## Strategic Growth Opportunities
305 
306*(Only include opportunities where there's a genuine, actionable strategy with meaningful potential impact. It is completely fine to have zero opportunities on a quiet day.)*
307 
308### Opportunity 1: <Short title>
309 
310**Trigger:** <What happened>
311 
312**Strategy:** <What to do about it>
313 
314**Tactics:**
3151. <Specific action> *(skill: <skill-name> if applicable)*
3162. <Specific action>
3173. <Specific action>
318 
319**Urgency:** Immediate / Soon / Evergreen
320**Effort:** Low / Medium / High
321**Expected Impact:** <Why this matters>
322 
323---
324 
325### Opportunity 2: ...
326 
327---
328 
329## Scan Statistics
330 
331- **Total items found:** X
332- **By category:** Competitor News (X), Events (X), Trends (X), ...
333- **Opportunities identified:** X
334- **Sources that returned results:** X of Y configured
335```
336 
337---
338 
339## Configuration
340 
341Each client needs a config file at `clients/<client>/config/industry-scanner.json`. See `skills/industry-scanner/config/example-config.json` for the full schema.
342 
343Key fields:
344- `web_search_queries` — broad industry search terms
345- `competitors` — competitor names to monitor
346- `subreddits` + `reddit_keywords` — Reddit monitoring config
347- `twitter_queries` — Twitter/X search terms
348- `linkedin_keywords` — LinkedIn post search terms
349- `blog_urls` — industry publication URLs (for RSS scraping)
350- `hn_queries` — Hacker News search terms
351- `review_urls` — competitor review page URLs (G2, Capterra, Trustpilot)
352- `event_keywords` — conference and event search terms
353 
354## Tips
355 
356- **Daily vs Weekly:** Daily scans (`--lookback 1`) are fast but may miss slower-developing stories. Run a weekly deep scan (`--lookback 7`) every Monday for comprehensive coverage.
357- **Noisy sources:** If a source consistently returns irrelevant results, tune the keywords in the config rather than dropping the source entirely.
358- **Multi-source signals:** Items that appear across multiple sources (e.g., on both Reddit and Twitter) are higher-signal. Flag these in the briefing.
359- **Strategy quality > quantity:** A day with zero strategic opportunities is better than a day with five forced ones. The intelligence briefing has standalone value even without opportunities.
360- **Follow up:** When an opportunity references a downstream skill (e.g., `company-contact-finder`), the user can chain directly into that skill to take action.
361 
362## Dependencies
363 
364No additional dependencies beyond what the sub-skills require:
365- `requests` (Python) — for blog-feed-monitor, reddit-post-finder, twitter-mention-tracker, hn-scraper, review-site-scraper, news-monitor
366- `APIFY_API_TOKEN` env var — for Reddit, Twitter, and review scraping
367- `agentmail` + `python-dotenv` — for newsletter-monitor (if configured)
368- `APIFY_API_TOKEN` — LinkedIn post search goes through the `linkedin-post-research` skill (Apify-based)
369 

Discussion

Alternatives

Also in Buying signals