daily-brief

SKILL.md

Daily Brief

Fast aggregation skill that pulls from Calendar, Gmail, Canvas, job tracker, Twitter bookmarks, and AI/tech news to build a prioritized daily overview. Outputs a structured text summary in the terminal and optionally emails it. No infographic generation - keeps it fast and lightweight.

Prerequisites

  1. Google OAuth set up (for Gmail + Calendar scripts)
  2. Canvas REST API token (for assignment fetching)
  3. Playwright MCP available (for Twitter bookmarks scraping)
  4. Job tracker file at ~/job-applier-agent/data/applications.json (optional)

Execution Workflow

Step 1: Gather Data (run in parallel)

Batch 1 - Scripts (parallel):

python3 ~/.claude/skills/gcal/scripts/list_events.py --date today
python3 ~/.claude/skills/gmail/scripts/read_emails.py --since today --unread --max 15
python3 ~/.claude/skills/canvas-sync/scripts/sync_assignments.py --list

Batch 2 - Also in parallel with scripts:

  • Read ~/job-applier-agent/data/applications.json if it exists
  • Scrape Twitter bookmarks (see Step 1b)
  • Fetch AI/tech news (see Step 1c)

Step 1b: Twitter Bookmarks (via Playwright MCP)

  1. Navigate to https://x.com/i/bookmarks
  2. Auto-login if needed (credentials in references/credentials.md)
  3. Snapshot bookmarks page, scroll once to capture recent ones
  4. Extract top 5-8 bookmarks: author, content summary, any links
  5. Categorize: AI/ML, Dev Tools, Career/Jobs, Other

Step 1c: AI & Tech News (via Web Search)

Use WebSearch to grab today's top stories. Run 2-3 searches:

WebSearch: "AI news today [current date]"
WebSearch: "tech news software engineering [current date]"

Extract top 5-7 headlines that match user interests:

  • AI/ML breakthroughs, new models, agent frameworks
  • Developer tools, open source releases
  • Startup/tech industry news
  • CS/software engineering trends

Step 2: Compile & Show Text Brief in Terminal

Display the full summary immediately. Format:

## Daily Brief - [Day], [Date]

### Schedule ([N] events)
| Time | Event | Location |
|------|-------|----------|
| 10:00 AM | CS 301 Lecture | Room 204 |

### Inbox ([N] unread)
**Action needed:** [recruiter responses, professor emails, anything requiring a reply]
**FYI:** [notifications, newsletters, automated emails]

### Upcoming Deadlines
| Assignment | Course | Due | Points |
|-----------|--------|-----|--------|
| Lab 5 | COSC320 | Thu 11:59 PM | 100 |

### Job Search
- [N] applications | [N] interviews | [N] pending

### Twitter Bookmarks (Recent)
- **AI/ML**: [bookmark summaries - what was saved and why it's interesting]
- **Dev Tools**: [bookmark summaries]
- **Other**: [bookmark summaries]
(Saved [N] bookmarks since last check)

### AI & Tech News
- [Headline 1] - [1-line summary]
- [Headline 2] - [1-line summary]
- [Headline 3] - [1-line summary]
- [Headline 4] - [1-line summary]
- [Headline 5] - [1-line summary]

### Top 3 Priorities
1. [Most urgent - deadlines within 24h, interviews today]
2. [High-impact - recruiter responses, deliverables]
3. [Quick win - easy tasks to clear the plate]

Step 3: Email the Summary

Send a clean, structured email with the full brief:

python3 ~/.claude/skills/gmail/scripts/send_email.py \
  --to "<your-email>" \
  --subject "Daily Brief - [Date]" \
  --body "[full structured text summary from Step 2]"

The email body should be the same structured summary shown in terminal - clean, scannable, no fluff.

Priority Logic

Determine top 3 priorities based on:

  1. Time-sensitive: Deadlines within 24 hours, interviews today
  2. High-impact: Recruiter responses, client deliverables, important emails
  3. Quick wins: Easy tasks that clear the plate

News Interest Profile

The user is interested in:

  • AI/ML: new models, agent frameworks, LLM updates, AI startups
  • Developer tools: new languages, frameworks, open source
  • Software engineering: best practices, industry trends
  • Startups and tech business news
  • CS education and career development

Filter out: crypto/blockchain hype, generic business news, celebrity tech gossip

Fallback Behavior

If any data source is unavailable:

  • Skip that section with "(unavailable)" note
  • Don't fail the entire brief
  • Still show and email whatever data is available

If Twitter login fails:

  • Skip bookmarks section, note "(Twitter unavailable - check login)"
  • Continue with everything else

If web search fails:

  • Skip news section, note "(news unavailable)"
  • Continue with everything else

Error Handling

Error Solution
Gmail/Calendar not set up Skip section, suggest running setup
Canvas API fails Skip section, note "Canvas unavailable"
Job tracker file not found Skip section
Twitter login fails Skip bookmarks, suggest checking credentials
Web search returns nothing Skip news section
All sources fail Report what's available, suggest setup steps
Weekly Installs
2
First Seen
Feb 27, 2026
Installed on
mcpjam2
claude-code2
replit2
junie2
windsurf2
zencoder2