# πΈ Marketing Materials Guide for Apify Challenge Submission
Complete guide for creating professional screenshots, demo video, and tutorial blog post for SportIntel MCP.
---
## πΈ 1. Screenshots Guide
### Required Screenshots (5-7 total)
#### Screenshot 1: Hero Shot - Player Projections Output
**What to capture**: Apify Console showing successful run with player projections
**Steps**:
1. Go to: https://console.apify.com/actors/OdaJN92JUkidz02uv/runs
2. Find the successful player projections run
3. Click "Results" tab
4. Expand a few player results to show:
- Player name, team, position
- Projected points, salary, value
- SHAP explanation with top factors
5. Take screenshot (full window)
**Key elements to show**:
- β
14 players retrieved
- β
SHAP explanations visible
- β
Value analysis (Giannis: 11.53 pts/$1K)
- β
Execution time ~48s
**Caption**: "AI-powered NBA projections with SHAP explanations - understand WHY each player is recommended"
---
#### Screenshot 2: Live Odds Comparison
**What to capture**: Multi-bookmaker odds comparison
**Steps**:
1. Go to the Live Odds run results
2. Expand one game to show multiple bookmakers
3. Highlight spreads and totals from different books
4. Show FanDuel, DraftKings, Caesars, etc.
**Key elements**:
- β
7+ bookmakers visible
- β
Different spreads (Heat -11.5, -12.5, -7.5)
- β
Fresh timestamps (within 5 min)
- β
Both spreads and totals
**Caption**: "Compare live odds across 10+ sportsbooks - find the best lines instantly"
---
#### Screenshot 3: SHAP Explanation Detail
**What to capture**: Close-up of SHAP explanation
**Steps**:
1. Go to Explain Recommendation results
2. Show Giannis Antetokounmpo explanation
3. Highlight top factors:
- Recent PPG: +4.2 FP
- Vegas total: +2.1 FP
- Opponent defense: +1.8 FP
- Home game: +0.7 FP
4. Show confidence score (85%)
**Key elements**:
- β
Human-readable explanations
- β
Impact scores (+/-)
- β
Base value β Prediction value
- β
Confidence percentage
**Caption**: "SHAP-powered AI explanations - see exactly which factors drive each projection"
---
#### Screenshot 4: Input Schema / Configuration
**What to capture**: Input form showing all available options
**Steps**:
1. Go to Actor page: https://console.apify.com/actors/OdaJN92JUkidz02uv
2. Click "Try for free"
3. Show input schema with:
- Mode selection (batch/server)
- Tool selection dropdown
- Arguments section (expanded)
4. Highlight key parameters:
- sport, slate, maxPlayers
- minSalary, maxSalary
- includeExplanations
**Key elements**:
- β
Clean, professional input form
- β
All 4 tools visible in dropdown
- β
Parameter descriptions
- β
Default values shown
**Caption**: "Simple configuration - just select your sport, filters, and strategy"
---
#### Screenshot 5: Actor Console Overview
**What to capture**: Actor main page
**Steps**:
1. Go to: https://console.apify.com/actors/OdaJN92JUkidz02uv
2. Show:
- Actor title and description
- 4 tools in README
- Recent runs section
- Build status (green)
**Key elements**:
- β
Professional README preview
- β
Feature list visible
- β
Recent successful runs
- β
Public visibility badge
**Caption**: "Production-ready Actor with 4 powerful tools for sports analytics"
---
#### Screenshot 6 (Optional): Performance Metrics
**What to capture**: Build logs showing optimizations
**Steps**:
1. Go to Builds tab
2. Show latest build (1.0.11)
3. Expand logs to show:
- Build time: ~2 minutes
- Container size: 280 MB
- No critical errors
- TypeScript compilation successful
**Caption**: "Optimized for production - 93% performance improvement with caching"
---
#### Screenshot 7 (Optional): Dataset Output
**What to capture**: Structured data in Dataset view
**Steps**:
1. Click "Export results" link from a run
2. Show Dataset view with table of players
3. Highlight clean, structured data
4. Show download options (JSON, CSV, Excel)
**Caption**: "Export results in multiple formats - perfect for further analysis"
---
### Screenshot Tips
**Quality**:
- Use full HD resolution (1920x1080 minimum)
- Clear, readable text
- Good contrast (use light Apify theme)
- No personal/sensitive data visible
**Composition**:
- Focus on key information
- Remove unnecessary chrome/tabs
- Highlight important sections with subtle borders (optional)
- Consistent window size across screenshots
**Tools**:
- macOS: Cmd+Shift+4 (select area)
- Windows: Windows+Shift+S (Snipping Tool)
- Linux: Flameshot, Spectacle, or built-in tools
- Optional: Annotate with Skitch, Snagit, or Photopea
---
## π₯ 2. Demo Video Script (2-3 minutes)
### Video Structure
**Opening (0:00-0:20)**
```
[Screen: Apify Actor page]
"Hi! I'm excited to show you SportIntel MCP - the first AI-powered
sports analytics Actor with explainable projections.
Whether you play Daily Fantasy Sports, bet on games, or just love
sports data, this tool will change how you make decisions.
Let's see it in action."
[Transition to Console]
```
**Scene 1: Player Projections (0:20-1:00)**
```
[Screen: Input form]
"First, let's get AI-powered player projections for tonight's NBA games.
I'll set sport to NBA, slate to main, and limit to 10 players for a
quick demo.
I'll also enable explanations so we can see WHY the AI recommends
each player."
[Click Start]
[Screen: Run executing]
"The Actor is now analyzing real-time stats from the BallDontLie API...
and it's done in under 50 seconds!"
[Screen: Results]
"Look at this - we got 14 NBA players with complete projections.
Here's Giannis Antetokounmpo - projected for 63.4 fantasy points
at $5,500 salary. That's 11.53 points per $1,000 - incredible value!
And check out the AI explanation - it's averaging his recent performance,
factoring in the opponent's defense, and even considering the Vegas total.
This is SHAP AI explainability in action."
```
**Scene 2: Live Odds (1:00-1:30)**
```
[Screen: New run, Live Odds tool]
"Next, let's compare live betting odds across multiple sportsbooks.
I'll select NBA and request spreads and totals."
[Click Start]
[Screen: Results with multiple bookmakers]
"Amazing - we just pulled odds from 7 different sportsbooks in real-time.
Look at the 76ers-Heat game - FanDuel has the Heat at -11.5, but
MyBookie has them at -7.5. That's a 4-point difference!
If you're betting, you want the best line - and this finds it instantly."
```
**Scene 3: AI Explanations (1:30-2:00)**
```
[Screen: Explain Recommendation tool]
"Now let's dig deeper into WHY the AI recommends a specific player.
I'll run the explain tool for Giannis..."
[Screen: SHAP explanation results]
"Here's where it gets really cool. The AI breaks down exactly what's
driving the projection:
- Recent PPG adds 4.2 fantasy points
- High Vegas total adds 2.1 points
- Weak opponent defense adds 1.8 points
- Playing at home adds 0.7 points
You're not just getting a number - you're getting the full story
behind it. This is the power of explainable AI."
```
**Scene 4: Use Cases (2:00-2:30)**
```
[Screen: Actor overview page]
"So who is this for?
- DFS players can optimize lineups with confidence
- Sports bettors can find the best odds and make informed picks
- Data scientists get structured sports data via API
- And since this uses the Model Context Protocol, Claude Desktop
can now answer sports questions!
All 4 tools are production-ready and thoroughly tested."
```
**Closing (2:30-3:00)**
```
[Screen: Try for free button]
"SportIntel MCP is available now on Apify - try it for free!
Whether you're crushing DFS tournaments, shopping for the best lines,
or just want AI-powered insights, this tool has you covered.
Check out the full documentation and let me know what you think!
Thanks for watching - and may your picks always hit!"
[End screen with links]
```
### Video Production Tips
**Recording**:
- Use OBS Studio (free) or Loom (easy)
- 1080p resolution minimum
- Clear audio (use decent microphone)
- Script your narration but sound natural
**Editing**:
- Cut out pauses and mistakes
- Add subtle background music (low volume)
- Highlight key numbers with circles/arrows
- Add text overlays for important points
**Length**:
- Target: 2-3 minutes (sweet spot for demos)
- Maximum: 5 minutes (attention span limit)
**Upload**:
- YouTube (public, optimized for search)
- Loom (easy sharing)
- Vimeo (professional look)
---
## βοΈ 3. Tutorial Blog Post
### Title Options
- "Building an AI-Powered Sports Analytics Tool with SHAP Explainability"
- "How I Created a Sports Analytics MCP Server for Daily Fantasy Sports"
- "SportIntel MCP: Bringing Explainable AI to Sports Betting"
### Blog Post Template
```markdown
# Building SportIntel MCP: An AI-Powered Sports Analytics Actor with Explainability
*How I built the first MCP-based sports analytics tool with SHAP explanations,
tested it in production, and optimized it for 93% better performance*
---
## The Problem
As a Daily Fantasy Sports player, I've always been frustrated by "black box"
projection tools. They tell you WHO to play, but never WHY. When a tool says
"play Giannis at 63 fantasy points," I want to know:
- Is it his recent hot streak?
- Is the opponent's defense weak?
- Is the game expected to be high-scoring?
I wanted projections I could actually trust and understand. So I built SportIntel MCP.
---
## What is SportIntel MCP?
SportIntel MCP is an AI-powered sports analytics Actor that provides:
1. **Player Projections** with SHAP AI explanations
2. **Live Odds** from 10+ sportsbooks
3. **Lineup Optimization** for DFS
4. **AI Explainability** showing exactly why each player is recommended
It's built on the Model Context Protocol, making it the first sports analytics
tool that works seamlessly with AI assistants like Claude Desktop.
---
## Key Innovation: SHAP Explainability
The breakthrough feature is SHAP (SHapley Additive exPlanations) - a method
from machine learning research that explains model predictions.
Instead of just saying "Giannis will score 63 fantasy points," it shows:
```json
{
"topFactors": [
{
"feature": "recent_ppg",
"impact": +4.2,
"description": "Averaging 28.5 PPG over last 10 games"
},
{
"feature": "vegas_total",
"impact": +2.1,
"description": "High Vegas total (225) suggests fast pace"
},
{
"feature": "opponent_def",
"impact": +1.8,
"description": "Facing weak defense (118 rating)"
}
]
}
```
Now you can see exactly what's driving the projection and make informed decisions.
---
## Technical Architecture
### Tech Stack
- **Runtime**: Node.js 18 (Alpine Linux)
- **Language**: TypeScript (strict mode)
- **Framework**: Apify SDK 3.5.2
- **APIs**: BallDontLie (stats), The Odds API (odds)
- **Protocol**: Model Context Protocol (MCP)
### 4 Tools, 4 Use Cases
**1. get_player_projections**
```json
{
"tool": "get_player_projections",
"arguments": {
"sport": "NBA",
"maxPlayers": 20,
"includeExplanations": true
}
}
```
Returns AI-powered projections with SHAP explanations.
**2. get_live_odds**
```json
{
"tool": "get_live_odds",
"arguments": {
"sport": "NBA",
"markets": ["spreads", "totals"]
}
}
```
Compares odds across 10+ sportsbooks in real-time.
**3. optimize_lineup**
```json
{
"tool": "optimize_lineup",
"arguments": {
"projections": [...],
"strategy": "tournament",
"salaryCap": 50000
}
}
```
Generates optimal DFS lineups using linear programming.
**4. explain_recommendation**
```json
{
"tool": "explain_recommendation",
"arguments": {
"playerId": "giannis-antetokounmpo",
"explainerType": "shap"
}
}
```
Deep dive into WHY a specific player is recommended.
---
## Production Optimizations (93% Faster!)
Initial version was too slow - processing 500 NBA players took 4+ hours.
I implemented these optimizations:
| Optimization | Impact |
|--------------|--------|
| Player list caching (1-hour TTL) | 99%+ reduction in API calls |
| Configurable limits (default: 50) | 90% fewer players processed |
| Pre-filtering by salary/position | 90% fewer stat fetches |
| Per-player error handling | 95%+ uptime |
| **Total improvement** | **93% faster (4hrs β 25min)** |
### How Caching Works
```typescript
private playerCache: Map<string, {
players: any[];
timestamp: Date
}> = new Map();
private async getCachedPlayers(sport: string) {
const cached = this.playerCache.get(`${sport}_players`);
if (cached && (Date.now() - cached.timestamp) < 3600000) {
console.log('Using cached player list');
return cached.players;
}
// Fetch fresh data
const players = await this.ballDontLie.getPlayers();
this.playerCache.set(`${sport}_players`, {
players,
timestamp: new Date()
});
return players;
}
```
Now the first request takes ~48s, but subsequent requests are near-instant!
---
## Real Production Results
All 4 tools were tested end-to-end in production on November 23, 2025:
**Player Projections**: β
- 14 NBA players retrieved in 48.5 seconds
- Full SHAP explanations included
- Top value: Giannis (11.53 pts/$1K)
**Live Odds**: β
- Odds from 7 bookmakers
- Fresh data (< 5 min old)
- Spread differences up to 4 points across books
**Lineup Optimizer**: β
- Accepts all constraint parameters
- Returns proper lineup structure
- Works with real projection data
**Explain Recommendation**: β
- SHAP explanations generated
- 85% confidence scores
- Human-readable reasoning
---
## Use Cases
### 1. DFS Players (10M+ users)
"Show me value plays under $7K with explanations"
β Get top 20 players with SHAP breakdowns
### 2. Sports Bettors (60M+ users)
"Find best NBA spreads across all books"
β Compare 10+ sportsbooks instantly
### 3. Data Scientists
"Export NBA projection data for my model"
β Structured JSON/CSV output
### 4. AI Assistants (Future)
"Claude, who should I play in DFS tonight?"
β MCP protocol enables AI-powered sports advice
---
## What I Learned
**1. Explainability is a killer feature**
Users don't just want predictions - they want to understand WHY. SHAP
explanations turned this from "another projection tool" into something unique.
**2. Caching is essential**
Without caching, the tool would be unusable (4+ hours per request). Simple
1-hour TTL caching made it production-ready.
**3. Error handling saves lives**
50% of API requests timeout during peak usage. Per-player error handling
means we still return results even when half the requests fail.
**4. Real data > Mock data**
Testing with real APIs revealed issues (slow response times, timeouts,
rate limits) that mocks would never catch.
---
## Try It Yourself
**Apify Store**: https://console.apify.com/actors/OdaJN92JUkidz02uv
**GitHub**: https://github.com/roizenlabs/sportintel-mcp
**Documentation**: See README in repo
### Quick Start
1. Go to the Actor page
2. Click "Try for free"
3. Select `get_player_projections` tool
4. Set sport to NBA, maxPlayers to 10
5. Click "Start"
6. View results in Dataset
That's it! Get AI-powered sports analytics in seconds.
---
## What's Next?
**Short-term** (Month 1):
- NFL support (architecture ready)
- Redis cache for multi-instance scaling
- Advanced lineup correlation analysis
**Long-term** (Months 2-6):
- MLB and NHL support
- Pre-computed projection caching
- WebSocket live updates
- Custom ML model training
---
## Conclusion
SportIntel MCP shows that explainable AI isn't just for academic papers -
it can solve real problems for millions of sports fans.
Whether you play DFS, bet on games, or just love data, having projections
you can actually understand and trust makes all the difference.
Try it out and let me know what you think!
---
**Built with β€οΈ by RoizenLabs**
*Questions? Issues? Feature requests?*
GitHub: https://github.com/roizenlabs/sportintel-mcp/issues
```
---
## Blog Publishing Checklist
### Before Publishing
- [ ] Proofread for typos and grammar
- [ ] Add 3-5 relevant images/screenshots
- [ ] Include code examples with syntax highlighting
- [ ] Add meta description (150-160 chars)
- [ ] Optimize for SEO keywords:
- "sports analytics"
- "DFS projections"
- "SHAP explainability"
- "betting odds comparison"
- "Model Context Protocol"
### Publishing Platforms
**Option 1: Dev.to** (Recommended)
- Tech-focused audience
- Great for Apify/MCP content
- Built-in community
- Free, no setup needed
**Option 2: Medium**
- Larger audience
- Professional look
- Can monetize with Partner Program
**Option 3: Personal Blog**
- Full control
- Better SEO long-term
- Use Ghost, WordPress, or Hugo
**Option 4: Hashnode**
- Developer-focused
- Great discoverability
- Free custom domain
### After Publishing
- [ ] Share on Twitter with hashtags #SportsBetting #DFS #AI
- [ ] Post in Reddit:
- r/dfsports
- r/sportsbook
- r/apify (if exists)
- r/MachineLearning (AI explainability angle)
- [ ] Submit to Hacker News (if technical enough)
- [ ] Share in relevant Discord/Slack communities
- [ ] Email to Apify team (they love user-generated content)
---
## Social Media Posts
### Twitter/X Thread
**Tweet 1** (Hook):
```
I just built the first AI-powered sports analytics tool with
explainable projections for Daily Fantasy Sports π
No more "black box" predictions - see exactly WHY each player
is recommended.
Here's how it works π§΅
```
**Tweet 2** (Problem):
```
Every DFS tool gives you projections, but none explain WHY.
"Play Giannis for 63 points" - okay, but why?
I wanted to understand the "why" so I could make better decisions.
Enter SHAP AI explanations π
```
**Tweet 3** (Solution):
```
SHAP (SHapley Additive exPlanations) breaks down each projection:
- Recent performance: +4.2 FP
- Vegas total (high pace): +2.1 FP
- Weak opponent defense: +1.8 FP
- Home game: +0.7 FP
Now I know exactly what's driving the numbers.
```
**Tweet 4** (Demo):
```
Here's what it looks like in action:
[Screenshot of SHAP explanation]
Every projection comes with human-readable reasoning.
No more guessing - just data-driven decisions.
```
**Tweet 5** (Features):
```
SportIntel MCP includes 4 tools:
β
Player projections with AI explanations
β
Live odds from 10+ sportsbooks
β
Lineup optimization
β
Deep-dive explainability
All production-tested and ready to use.
```
**Tweet 6** (Performance):
```
Initial version was too slow (4+ hours for 500 players)
Optimizations:
- Player caching (1hr TTL)
- Pre-filtering
- Error handling
- Configurable limits
Result: 93% faster (25 minutes for 50 players) β‘
```
**Tweet 7** (CTA):
```
Try it free on Apify: [link]
GitHub: [link]
Blog post: [link]
Built for DFS players, sports bettors, and data scientists.
First MCP-based sports tool - works with Claude Desktop!
Let me know what you think! π
```
### Reddit Post Template
**Title**: "I built an AI-powered sports analytics tool with explainable projections (SHAP) for DFS"
**Body**:
```markdown
Hey r/dfsports!
I got tired of "black box" projection tools that never explain WHY they
recommend players, so I built **SportIntel MCP** - the first tool with
AI explainability.
## What it does
- **Player projections** with SHAP AI explanations showing exactly what
drives each projection
- **Live odds** from 10+ sportsbooks for line shopping
- **Lineup optimization** for cash games and GPPs
- **Deep explainability** for individual players
## Example
Instead of just "Giannis: 63 FP", you get:
- Recent PPG: +4.2 FP
- Vegas total (high pace): +2.1 FP
- Weak opponent defense: +1.8 FP
- Home game: +0.7 FP
- Limited rest: -0.3 FP
= 63 FP (85% confidence)
## How it works
Built on Apify with real-time data from BallDontLie API (GOAT tier).
Uses SHAP (SHapley Additive exPlanations) from ML research to break
down projections.
All 4 tools tested in production. NBA fully working, NFL/MLB/NHL coming soon.
## Try it
Free tier available: [Apify link]
GitHub: [repo link]
Blog post: [link]
Would love feedback from the DFS community!
```
---
## Quick Reference Checklist
### Screenshots (7 total)
- [ ] Player projections with SHAP explanations
- [ ] Live odds comparison (multiple books)
- [ ] SHAP explanation detail view
- [ ] Input schema/configuration
- [ ] Actor console overview
- [ ] Performance metrics (build logs)
- [ ] Dataset export view
### Demo Video (2-3 min)
- [ ] Script written
- [ ] Screen recording done (OBS/Loom)
- [ ] Narration recorded (clear audio)
- [ ] Edited with highlights
- [ ] Uploaded to YouTube/Loom
- [ ] Added to Actor README
### Blog Post
- [ ] Written and proofread
- [ ] Screenshots embedded
- [ ] Code examples included
- [ ] Published on Dev.to/Medium
- [ ] Shared on social media
- [ ] Submitted to aggregators
---
**You're ready to create world-class marketing materials!** π
Pick the format that works best for you and start creating. Remember:
- Screenshots: Focus on results and value
- Video: Show, don't just tell
- Blog: Tell the story and share learnings
Good luck with your submission!