daily-brief
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
- Google OAuth set up (for Gmail + Calendar scripts)
- Canvas REST API token (for assignment fetching)
- Playwright MCP available (for Twitter bookmarks scraping)
- 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.jsonif it exists - Scrape Twitter bookmarks (see Step 1b)
- Fetch AI/tech news (see Step 1c)
Step 1b: Twitter Bookmarks (via Playwright MCP)
- Navigate to
https://x.com/i/bookmarks - Auto-login if needed (credentials in
references/credentials.md) - Snapshot bookmarks page, scroll once to capture recent ones
- Extract top 5-8 bookmarks: author, content summary, any links
- 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:
- Time-sensitive: Deadlines within 24 hours, interviews today
- High-impact: Recruiter responses, client deliverables, important emails
- 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 |