| name | notebooklm |
| description | Generate NFL content packages for NotebookLM — weekly rankings summaries from projection data. Produces markdown files suitable for upload to Google NotebookLM for audio overview generation. Use when the user wants to create podcast content, rankings summaries, or content packages from projection data. |
| argument-hint | [type] [season] [week] [scoring] |
| allowed-tools | Bash, Read, Grep |
NotebookLM Content Generator
Generate NFL fantasy football content from projection data, formatted as markdown for upload to Google NotebookLM audio overviews.
Arguments
$ARGUMENTS — parsed as: [type] [season] [week] [scoring]
- type:
rankings (working), weekly (requires in-season data), matchup (requires in-season data)
- Defaults: type=rankings, season=2026, week=1, scoring=half_ppr
Current state
!cd /Users/georgesmith/repos/nfl_data_engineering && ls output/notebooklm/ 2>/dev/null && echo "---" && ls scripts/generate_notebooklm_content.py 2>/dev/null
Workflows
1. Rankings Summary (WORKING — preseason + in-season)
Generate a full rankings overview by position from existing projections:
source venv/bin/activate
python scripts/generate_notebooklm_content.py --type rankings --scoring half_ppr
Output: output/notebooklm/rankings_SEASON_SCORING.md
This uses data from output/projections/ — ensure projections exist first:
python scripts/generate_projections.py --preseason --season 2026 --scoring half_ppr
2. Weekly Podcast Content (REQUIRES IN-SEASON DATA)
Generate a weekly NFL fantasy podcast script. Requires weekly projections for the given week:
source venv/bin/activate
python scripts/generate_notebooklm_content.py --type weekly --week WEEK --season SEASON --scoring SCORING
Output: output/notebooklm/weekly_wWEEK_SEASON.md containing:
- Top risers and fallers from projection changes
- Key matchup breakdowns (offense vs defense advantages)
- Start/sit recommendations with reasoning
- Injury impact analysis
- Waiver wire targets
3. Matchup Deep Dive (REQUIRES IN-SEASON DATA)
Generate a single-game matchup analysis:
python scripts/generate_notebooklm_content.py --type matchup --teams "KC vs BUF" --week WEEK
4. Upload to NotebookLM (Manual)
After generating markdown:
- Go to https://notebooklm.google.com
- Create a new notebook (name it e.g. "NFL Week 1 - 2026 Rankings")
- Upload the generated markdown file as a source
- Click "Generate" on Audio Overview
- Download the MP3
- Optionally upload to
web/frontend/public/podcasts/ for the website
NFL Content Guidelines
When generating content, follow these patterns:
- Player names: Always use full name (e.g., "Patrick Mahomes", not "Mahomes")
- Stats format: "12.4 projected pts (floor: 6.2, ceiling: 22.1) in Half-PPR"
- Position tiers: Group into Tier 1 (elite), Tier 2 (solid starters), Tier 3 (flex plays), Tier 4 (streamers)
- Injury notes: Always mention injury status when not Active
- Matchup context: Reference team defensive rankings where available
Anti-Patterns
- Do NOT reference
notebooklm-py Python package — it requires Python 3.10+ and is not installed in this project's venv (Python 3.9)
- Do NOT attempt automated NotebookLM API calls — use the manual upload workflow
- Do NOT generate content without first verifying projection data exists in
output/projections/
- Do NOT hardcode player names or stats — always read from projection data files
Testability
Verify the skill works by checking:
output/notebooklm/ directory contains the expected markdown file
- The markdown file has > 100 lines of content
- Player names in the output match those in the source projection CSV
- All position groups (QB, RB, WR, TE) are covered in rankings output
Integration
- Input: Reads from
output/projections/ (generated by scripts/generate_projections.py)
- Output: Writes to
output/notebooklm/ as markdown
- Website: Generated audio can be placed in
web/frontend/public/podcasts/
- Related skills: Use
/weekly-pipeline first to ensure fresh projection data exists