tracking-sports-team-fan-sentiment-twitter
Tracks sports team fan sentiment on Twitter using apidojo's Tweet scraper. Triggers when the user asks to: track fan sentiment about a sports team on Twitter, monitor Twitter reactions to sports team news, analyze fan mood after a game result on Twitter, measure public sentiment around a sports team, monitor Twitter buzz around a sports event, analyze fan reactions to player trades or news, or build a sentiment tracker for a sports team's social media presence. Returns sentiment distribution, volume trends, top fan reactions, topic themes, and event-triggered spikes. Ideal for sports marketing teams, brand sponsors, sports analytics firms, and sports media companies.
How do I install this agent skill?
npx skills add https://github.com/apidojo-io/apidojo-skills --skill tracking-sports-team-fan-sentiment-twitterIs this agent skill safe to install?
- Gen Agent Trust Hubwarn
The skill is generally well-structured and follows standard security practices for secret management, utilizing environment variables for API tokens. However, it introduces a dynamic execution surface through a parameter that accepts custom JavaScript functions. It also processes untrusted external data from Twitter, which presents a risk of indirect prompt injection.
- Socketpass
No alerts
- Snykwarn
Risk: MEDIUM · 1 issue
What does this agent skill do?
Tracking Sports Team Fan Sentiment Twitter
Executes tracking sports team fan sentiment twitter using apidojo scrapers. Part of the apidojo intelligence skills library.
Prerequisites
APIFY_TOKENenvironment variable set- Optional: Apify MCP server installed
Inputs
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
searchTerms | array | ✅ | [] | Twitter advanced search queries (e.g. ["#AI lang:en", "from:NASA"]) |
sort | string | Optional | Top | Sort order: Latest, Top, or Latest+Top |
tweetLanguage | string | Optional | — | ISO 639-1 language code (e.g. en) |
maxItems | number | Optional | Unlimited | Maximum tweets to return |
onlyVerifiedUsers | boolean | Optional | false | Only tweets from verified users |
onlyTwitterBlue | boolean | Optional | false | Only Twitter Blue subscribers |
onlyImage | boolean | Optional | false | Only tweets with images |
onlyVideo | boolean | Optional | false | Only tweets with videos |
onlyQuote | boolean | Optional | false | Only quote tweets |
author | string | Optional | — | Filter to a specific author handle |
inReplyTo | string | Optional | — | Tweets replying to a specific handle |
mentioning | string | Optional | — | Tweets mentioning a specific handle |
geotaggedNear | string | Optional | — | Tweets near a location |
withinRadius | string | Optional | — | Radius around geotaggedNear |
geocode | string | Optional | — | Lat/lng + radius string |
placeObjectId | string | Optional | — | Tweets tagged with a place |
minimumRetweets | number | Optional | — | Minimum retweet count |
minimumFavorites | number | Optional | — | Minimum like count |
minimumReplies | number | Optional | — | Minimum reply count |
start | string | Optional | — | Tweets after this date (YYYY-MM-DD) |
end | string | Optional | — | Tweets before this date (YYYY-MM-DD) |
includeSearchTerms | boolean | Optional | false | Add the matched search term to each tweet |
customMapFunction | string | Optional | — | JavaScript function to transform each output object |
Workflow
Progress:
- [ ] Step 1: Define parameters
- [ ] Step 2: Run tweet-scraper
- [ ] Step 3: Filter and classify results
- [ ] Step 4: Score by quality and relevance
- [ ] Step 5: Deliver output
Step 2: Run the Actor
Recommended — run_actor.js (handles waiting, output, and file saving automatically):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKENmust be set in environment or.envfile.
If Apify MCP is available:
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input:
{
"searchTerms": ["[TEAM_NAME]", "#[TeamHashtag]", "[TEAM_NAME] game"],
"maxItems": 100
}
REST API fallback:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["[TEAM_NAME]", "#[TeamHashtag]", "[TEAM_NAME] game"], "maxItems": 100}'
Wait for SUCCEEDED. Fetch dataset:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
Step 3: Classify Results
classification: WIN_BOOST (post-win; sentiment spike > +40%) | LOSS_DROP (post-loss; sentiment drop < -30%) | CONTROVERSY (polarized; > 30% both positive and negative) | BASELINE (normal day)
Step 4: Score Each Result
score = fan_sentiment_score = (positive_count - negative_count) / total_count # range -1 to +1
Step 5: Edge Cases
- Sports sentiment is strongly event-driven (game results) — always note the team's recent game result as context for any sentiment measurement
Additional fallbacks:
- < 20 results: Broaden search terms; remove secondary filters
- No results: Verify the search terms are correct; try alternate phrasings
- Data quality issues: Remove entries with missing key fields; note count in output
Output Format
# Tracking Sports Team Fan Sentiment Twitter
Results: [N] | Date: [DATE]
| # | [Key Field] | [Metric 1] | [Metric 2] | [Classification] | [Score] |
|---|------------|-----------|-----------|-----------------|---------|
| 1 | [value] | [value] | [value] | [type] | [0.XX] |
## Summary
Top result: [description]
Key finding: [insight]
Troubleshooting
Too few results: Broaden the primary search term; remove restrictive filters. Low quality results: Apply minimum score threshold (≥ 0.50) to filter noise. Actor fails to run: Verify API key; check actor status at apify.com/apidojo.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/apidojo-io/apidojo-skills/tracking-sports-team-fan-sentiment-twitter">View tracking-sports-team-fan-sentiment-twitter on skillZs</a>