mcpbeat

Blog Feed Monitor

gooseworks-ai/blog-feed-monitor

> Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites. Use when you need to monitor competitor blogs, track industry content, or aggregate blog posts by keyword.

4k tokens
context cost
the whole folder, loaded on every use
3
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 blog-feed-monitor

What comes with it

15 577 bytes besides the instruction
scripts/scrape_blogs.py
skill.meta.json

The instruction itself

8 sections, as written by the author

Blog Feed Monitor

Scrape blog posts via RSS/Atom feeds (free) with optional Apify fallback for JS-heavy sites.

Quick Start

No API key needed for RSS mode.

# Scrape a blog's RSS feed
python3 skills/blog-feed-monitor/scripts/scrape_blogs.py \
  --urls "https://example.com/blog" --days 30

# Multiple blogs with keyword filter
python3 skills/blog-feed-monitor/scripts/scrape_blogs.py \
  --urls "https://blog1.com,https://blog2.com" --keywords "AI,marketing" --output summary

# Force Apify for JS-heavy sites
python3 skills/blog-feed-monitor/scripts/scrape_blogs.py \
  --urls "https://example.com" --mode apify

How It Works

Auto Mode (default)

  • For each URL, tries to discover an RSS/Atom feed:
  • Checks HTML <link rel="alternate"> tags
  • Probes common paths: /feed, /rss, /atom.xml, /feed.xml, /rss.xml, /blog/feed, /index.xml
  • Parses discovered feeds (supports RSS 2.0 and Atom)
  • If any URLs fail, falls back to Apify jupri/rss-xml-scraper (if token available)
  • Applies date and keyword filtering client-side

> Note: The Apify fallback actor jupri/rss-xml-scraper may need updating -- it has not been verified recently. RSS mode works reliably without it.

RSS Mode

Only tries RSS feeds, no Apify fallback.

Apify Mode

Uses Apify actor directly, skipping RSS discovery.

CLI Reference

| Flag | Default | Description |

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

| --urls | *required* | Blog URL(s), comma-separated |

| --keywords | none | Keywords to filter (comma-separated, OR logic) |

| --days | 30 | Only include posts from last N days |

| --max-posts | 50 | Max posts to return |

| --mode | auto | auto (RSS + fallback), rss (RSS only), apify (Apify only) |

| --output | json | Output format: json or summary |

| --token | env var | Apify token (only needed for Apify mode/fallback) |

| --timeout | 300 | Max seconds for Apify run |

Cost

  • RSS mode: Free (no API, no tokens)
  • Apify mode: Uses jupri/rss-xml-scraper -- minimal Apify credits

How to use it

Copy the folder

Take gooseworks-ai/blog-feed-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.