mcpbeat

Newsletter Monitor

gooseworks-ai/newsletter-monitor

> Scan an AgentMail inbox for newsletter signals using configurable keyword campaigns. Extracts matched keywords, context snippets, and company mentions from incoming emails. Use for monitoring accounting industry newsletters for buying signals like acquisitions, migrations, and staffing news.

5k tokens
context cost
the whole folder, loaded on every use
4
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
1086
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/gooseworks-ai/goose-skills --skill newsletter-monitor

What comes with it

16 070 bytes besides the instruction
config/campaigns.json
scripts/scan_newsletters.py
skill.meta.json

The instruction itself

9 sections, as written by the author

Newsletter Monitor

Scan an AgentMail inbox for newsletter signals using configurable keyword campaigns. Designed for monitoring accounting industry newsletters for buying signals like acquisitions, Sage Intacct migrations, staffing challenges, and technology adoption.

Quick Start

# Set your API key
export AGENTMAIL_API_KEY="your_key_here"

# Scan inbox with all campaigns (summary view)
python3 skills/newsletter-monitor/scripts/scan_newsletters.py --output summary

# Scan specific campaign, last 7 days
python3 skills/newsletter-monitor/scripts/scan_newsletters.py --campaign acquisitions --days 7 --output summary

# JSON output for downstream processing
python3 skills/newsletter-monitor/scripts/scan_newsletters.py --output json --limit 50

Dependencies

pip3 install agentmail python-dotenv

Configuration

Keyword campaigns are defined in config/campaigns.json. Each campaign has a description and a list of keywords for case-insensitive substring matching.

Built-in campaigns:

  • acquisitions - CPA firm M&A activity
  • sage_intacct - Sage Intacct migration and implementation signals
  • staffing - Accounting talent and staffing challenges
  • technology - Accounting technology adoption

CLI Options

| Flag | Description | Default |

|------|-------------|---------|

| --campaign NAME | Run only a specific campaign | All campaigns |

| --days N | Only scan emails from last N days | No limit |

| --keywords "a,b,c" | Custom keywords (overrides campaigns) | Use campaigns.json |

| --output json\|summary | Output format | json |

| --inbox ADDRESS | Override inbox address | AGENTMAIL_INBOX env or [email protected] |

| --limit N | Max messages to fetch | 100 |

Output

JSON mode (default)

Returns an array of matched messages with:

  • message_id, from, subject, date
  • matched_campaigns - which campaigns triggered
  • matched_keywords - specific keywords found
  • context_snippets - 200-char window around each match
  • companies_mentioned - capitalized multi-word phrases near matches

Summary mode

Human-readable report showing matched emails grouped by campaign with snippets and detected companies.

Downstream Skills

When newsletter signals are found, chain to:

  • company-contact-finder - look up contacts at mentioned companies
  • accounting-news-monitor - combine with direct news monitoring for fuller signal coverage

How to use it

Copy the folder

Take gooseworks-ai/newsletter-monitor from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference pip. Without those the skill loads but fails at the first command.