Goose-skills twitter-mention-tracker
install
source · Clone the upstream repo
git clone https://github.com/gooseworks-ai/goose-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/gooseworks-ai/goose-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/capabilities/twitter-mention-tracker" ~/.claude/skills/gooseworks-ai-goose-skills-twitter-mention-tracker && rm -rf "$T"
manifest:
skills/capabilities/twitter-mention-tracker/SKILL.mdsource content
Twitter Mention Tracker
Search Twitter/X posts using the Apify
apidojo/tweet-scraper actor.
Quick Start
Requires
APIFY_API_TOKEN env var (or --token flag).
# Search with date range (recommended -- uses Twitter native since:/until: operators) python3 skills/twitter-mention-tracker/scripts/search_twitter.py \ --query "YourCompany" --since 2026-02-15 --until 2026-02-23 # Quick summary of recent mentions python3 skills/twitter-mention-tracker/scripts/search_twitter.py \ --query "@yourhandle" --max-tweets 20 --output summary # Search without date filtering python3 skills/twitter-mention-tracker/scripts/search_twitter.py \ --query "AI content marketing" --max-tweets 50
Date Filtering
Important: The
apidojo/tweet-scraper actor's built-in date parameters are unreliable.
This script embeds since:YYYY-MM-DD and until:YYYY-MM-DD directly into the search query
string, using Twitter's native advanced search syntax. This ensures date filtering works
correctly server-side.
How the Script Works
- Builds a search term with the query quoted and date operators appended
- Calls the Apify
actor via REST APIapidojo/tweet-scraper - Polls until the run completes, then fetches the dataset
- Deduplicates by tweet ID/URL
- Applies optional keyword filtering (client-side)
- Sorts by likes (descending) and outputs JSON or summary
CLI Reference
| Flag | Default | Description |
|---|---|---|
| required | Search query (quoted in Twitter search) |
| none | Start date YYYY-MM-DD (inclusive) |
| none | End date YYYY-MM-DD (exclusive) |
| 50 | Max tweets to scrape |
| none | Additional filter keywords (comma-separated, OR logic) |
| json | Output format: or |
| env var | Apify token (prefer env var) |
| 300 | Max seconds to wait for the Apify run |
Direct API Usage
{ "searchTerms": ["\"YourCompany\" since:2026-02-15 until:2026-02-22"], "maxTweets": 50, "searchMode": "live" }
Output Format
Tweets are returned as JSON array sorted by likes. Each tweet has:
{ "id": "...", "text": "Tweet text...", "fullText": "Full tweet text...", "likeCount": 42, "retweetCount": 5, "replyCount": 3, "viewCount": 1200, "createdAt": "2026-02-18T12:00:00.000Z", "author": {"userName": "handle", "name": "Display Name", ...}, "twitterUrl": "https://twitter.com/..." }
Common Workflows
Competitor Monitoring
python3 skills/twitter-mention-tracker/scripts/search_twitter.py \ --query "CompetitorName" --since 2026-02-15 --until 2026-02-23 --output summary
Brand Mention Tracking
python3 skills/twitter-mention-tracker/scripts/search_twitter.py \ --query "@YourHandle OR \"YourBrand\"" --max-tweets 100