Research events from Instagram, web aggregators, and Facebook event URLs. Use when scraping event sources, downloading flyer images, or extracting event details.
Research events from Instagram, Facebook, and web aggregators. Use when users ask to find events or paste Facebook event URLs.
/plugin marketplace add aniketpanjwani/local_media_tools/plugin install newsletter-events@local-media-toolsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/event-detection.mdreferences/facebook-scraper-api.mdreferences/firecrawl-api.mdreferences/scrapecreators-api.mdworkflows/research-all.mdworkflows/research-facebook.mdworkflows/research-instagram.mdworkflows/research-web-aggregator.mdworkflows/research-web-extract.mdworkflows/research-web-scrape.md<essential_principles>
This skill gathers raw event data from configured sources. It does NOT write newsletter content - use newsletter-events-write for that.
https://facebook.com/events/123456)Research produces structured data saved to ~/.config/local-media-tools/data/:
data/raw/instagram_<handle>.json - Raw API responsesdata/images/instagram/<handle>/ - Downloaded flyer imagesdata/events.db - SQLite database with profiles, posts, events, venuesImages are critical. Many venues post event details only in flyer images, not captions. Always analyze downloaded images with Claude's vision.
Image Download Requirement: Instagram CDN URLs return 403 when accessed via WebFetch. Images MUST be downloaded using Python's requests library with proper User-Agent headers, then analyzed locally using the Read tool.
</essential_principles>
NEVER use curl or raw API calls. Always use the CLI tools provided:
Instagram:
# Scrape all configured accounts
uv run python scripts/cli_instagram.py scrape --all
# Scrape specific account
uv run python scripts/cli_instagram.py scrape --handle wayside_cider
# List posts from database
uv run python scripts/cli_instagram.py list-posts --handle wayside_cider
# Show database statistics
uv run python scripts/cli_instagram.py show-stats
# Classify posts (single or batch)
uv run python scripts/cli_instagram.py classify --post-id 123 --classification event --reason "Has future date"
uv run python scripts/cli_instagram.py classify --batch-json '[{"post_id": "123", "classification": "event", "reason": "..."}]'
The CLI tools ensure:
handle, not username)~/.config/local-media-tools/data/raw/Do NOT:
curl to call ScrapeCreators API directlyYou can also paste Facebook event URLs directly:
https://facebook.com/events/123456https://facebook.com/events/789012Wait for response before proceeding. </intake>
<routing> | Response | Workflow | |----------|----------| | 1, "instagram", "ig" | `workflows/research-instagram.md` | | 2, "web", "aggregator", "websites" | `workflows/research-web-aggregator.md` | | 3, "all", "both", "full" | `workflows/research-all.md` | | 4, "facebook", contains `facebook.com/events/` | `workflows/research-facebook.md` | </routing><reference_index>
All domain knowledge in references/:
APIs: scrapecreators-api.md, facebook-scraper-api.md, firecrawl-api.md Detection: event-detection.md </reference_index>
<workflows_index>
| Workflow | Purpose |
|---|---|
| research-instagram.md | Scrape Instagram, download images, extract events |
| research-facebook.md | Scrape individual Facebook event URLs |
| research-web-aggregator.md | Dispatcher for web scraping (calls scrape + extract) |
| research-web-scrape.md | Phase 1: Scrape pages, return JSON |
| research-web-extract.md | Phase 2: Extract events from JSON, save via CLI |
| research-all.md | Run all research workflows |
| </workflows_index> |
<success_criteria> Research is complete when:
~/.config/local-media-tools/data/raw/newsletter-events-write skill
</success_criteria>This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.