comp-scout-notify
Send beautifully formatted HTML digest emails summarizing open competitions, their status, and strategy. Supports dark mode, closing soon highlights, and multiple recipients.
When & Why to Use This Skill
The Competition Digest Notifier is a powerful Claude skill designed to automate the creation and delivery of professional HTML email reports. It extracts competition data, strategies, and entry statuses from GitHub issues and transforms them into beautifully formatted, dark-mode-ready digests. This tool is ideal for users who need to stay informed about deadlines and strategic insights without manual tracking, ensuring that critical opportunities are never missed.
Use Cases
- Automated Deadline Monitoring: Highlight competitions closing within three days with high-visibility alerts to ensure timely submissions.
- Team Strategic Alignment: Distribute weekly digests to multiple recipients containing recommended tones, themes, and angles for upcoming entries.
- Workflow Integration: Seamlessly connect with scraping and analysis tools to provide a final, polished communication layer for end-to-end competition management.
- Mobile-Friendly Reporting: Generate responsive HTML emails that allow users to review competition prompts and draft entries on any device.
| name | comp-scout-notify |
|---|---|
| description | Send beautifully formatted HTML digest emails summarizing open competitions, their status, and strategy. Supports dark mode, closing soon highlights, and multiple recipients. |
Competition Digest Notifier
Send beautifully formatted HTML email digests summarizing open competitions.
What This Skill Does
- Queries GitHub issues for open competitions
- Extracts competition details, strategy, and draft entries
- Formats as HTML email with dark mode support
- Highlights competitions closing soon
- Sends via SMTP to configured recipients
Prerequisites
ghCLI authenticated- Target repository with competition issues
- SMTP credentials configured (for sending)
Configuration
Set environment variables or add to .env:
# SMTP Settings
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USERNAME=your@email.com
SMTP_PASSWORD=app-specific-password
# Recipients (comma-separated)
EMAIL_TO=recipient1@email.com,recipient2@email.com
EMAIL_FROM=Competition Scout <your@email.com>
# Target repository (optional, uses config or default)
TARGET_REPO=discreteds/competition-data
Gmail Setup
For Gmail, create an App Password:
- Go to Google Account → Security → 2-Step Verification
- At bottom, click "App passwords"
- Generate password for "Mail"
- Use this as
SMTP_PASSWORD
Workflow
Step 1: Build Digest
Query GitHub issues and build digest data:
python skills/comp-scout-notify/notifier.py json
This queries:
- All open issues with
competitionlabel - Comments on each issue (for strategy/entries)
Step 2: Send Email
Send the digest to configured recipients:
python skills/comp-scout-notify/notifier.py send
Step 3: Preview (Optional)
Save HTML/TXT/JSON to /tmp for preview:
python skills/comp-scout-notify/notifier.py preview
# Then open /tmp/competition-digest.html in browser
Email Features
Dark Mode Support
Email automatically adapts to recipient's dark/light mode preference.
Quick Summary Table
| Competition | Prize | Closes | Status |
|---|---|---|---|
| Win $500 Gift Card | $500 | 15 Dec | Drafted |
| Win Trip to Bali | $5,000 | 20 Dec | Analyzed |
Status shows: New → Analyzed → Drafted → Submitted
Closing Soon Section
Competitions closing within 3 days are highlighted in red with special section.
Competition Cards
Each competition shows:
- Title with closing date badge
- Prize summary
- Prompt with word limit
- Strategy (if analyzed): recommended tone, themes, angles
- Draft entries (if composed)
- "Enter Competition" button
Plain Text Fallback
For email clients that don't support HTML, a plain text version is included.
CLI Commands
# Send digest email
python skills/comp-scout-notify/notifier.py send
# Preview (save to /tmp)
python skills/comp-scout-notify/notifier.py preview
# Output JSON digest
python skills/comp-scout-notify/notifier.py json
Example Session
User: Send me a competition digest
Claude: I'll build and send the competition digest.
[Runs: python skills/comp-scout-notify/notifier.py send]
Building digest from discreteds/competition-data...
Found 12 competitions (3 closing soon)
Connecting to smtp.gmail.com:587...
Email sent to 2 recipient(s)
✅ Digest sent!
**Summary:**
- 12 total competitions
- 3 closing soon (highlighted)
- 8 with strategy
- 5 with draft entries
Recipients: user@email.com, other@email.com
Integration
With comp-scout-daily (End-to-End Workflow)
The notify skill is called automatically at the end of the daily workflow:
1. Scrape competitions
2. Analyze new ones
3. Compose entries
4. Send digest email ← comp-scout-notify
Standalone Usage
Can also be invoked directly:
- "Send me a competition digest"
- "Email me the competition summary"
- "Send digest to user@email.com"
Data Extraction
From Issue Body
- Title, URL, Brand
- Prize summary
- Closing date, Draw date
- Winners notification
- Prompt (from blockquote)
From Issue Comments
- Strategy Analysis:
- Sponsor category
- Recommended tone
- Themes, Words, Angles
- Things to avoid
- Entry Drafts:
- Option text
- Word count
From Issue Labels
entry-drafted→ Has draft entriesentry-submitted→ Already submittedclosing-soon→ Closing within 3 days
Email Template Structure
┌─────────────────────────────────────┐
│ Competition Scout │
│ Monday, 9 December 2024 │
├─────────────────────────────────────┤
│ ┌────────┐ ┌────────┐ │
│ │ 12 │ │ 3 │ │
│ │ Total │ │ New │ │
│ └────────┘ └────────┘ │
├─────────────────────────────────────┤
│ Quick Summary Table │
│ ┌───────────────────────────────┐ │
│ │ Competition │ Prize │ Closes │ │
│ ├───────────────────────────────┤ │
│ │ Win $500... │ $500 │ 15 Dec │ │
│ └───────────────────────────────┘ │
├─────────────────────────────────────┤
│ ⚡ Closing Soon (red section) │
│ ┌───────────────────────────────┐ │
│ │ Competition Card │ │
│ │ - Title + badges │ │
│ │ - Prize │ │
│ │ - Prompt │ │
│ │ - Strategy │ │
│ │ - [Enter Competition] │ │
│ └───────────────────────────────┘ │
├─────────────────────────────────────┤
│ All Competitions │
│ [Competition cards...] │
├─────────────────────────────────────┤
│ Generated by Competition Scout │
└─────────────────────────────────────┘
Troubleshooting
"SMTP credentials not configured"
Set SMTP_USERNAME and SMTP_PASSWORD environment variables.
"No recipients configured"
Set EMAIL_TO environment variable (comma-separated for multiple).
"Authentication failed" (Gmail)
- Enable 2-Step Verification
- Generate App Password (not your regular password)
- Ensure "Less secure apps" is not the issue (use App Password instead)
Empty digest
- Check
TARGET_REPOpoints to correct repository - Verify issues have
competitionlabel - Run
gh issue list -R REPO --label competitionto verify