newsletter-digest

Installation
SKILL.md

ABOUTME: Process unread newsletters into Second Brain entries via Gmail and Obsidian

ABOUTME: Batch extraction of actionable content from Substack, Beehiiv, and other platforms

Newsletter Digest Skill

Process unread newsletters, extract actionable content for Second Brain, archive processed emails.

Gmail: See ../_GMAIL.md | Obsidian CLI: See ../_OBSIDIAN.md | Integration: See ../_SECOND_BRAIN.md

Newsletter Sources

All newsletters are processed - categorize by content, not by sender.

Common Platforms

# Search for unread newsletters from common platforms
gog gmail search "is:unread (from:substack.com OR from:beehiiv.com OR from:convertkit.com OR from:mailchimp.com OR from:buttondown.email)" --account=maroffo@gmail.com --json --max=20

Known Newsletter Labels

Label Description
📰Newsletter/🔴 Substack Substack newsletters
📰Newsletter General newsletters
👨🏻‍💻work-related Work-related content (higher priority)

Key Newsletters by Category

Newsletter Author Category
ByteByteGo Alex Xu AI/Development
Turing Post - AI/Open Source
Artificial Ignorance Charlie Guo AI/Management
The Beautiful Mess John Cutler Engineering Management
Tidy First? Kent Beck Engineering/Design
Javarevisited - Development
[mini]marketing Gianluca Diegoli Marketing
Paul Krugman Paul Krugman Politics/Economics
Appunti Stefano Feltri Politics (IT)
270 by Youtrend Youtrend Politics (IT)
Il Mattinale Europeo David Carretta EU Politics
Il Post - News (IT)
Semafor - News (International)
Roberta Villa Roberta Villa Health/Science
Ellissi - Media/Culture
Sillabe Elena Tosato Literature

Processing Workflow

Step 1: Find Unread Newsletters

gog gmail search "is:unread (from:substack.com OR from:beehiiv.com OR from:convertkit.com)" --account=maroffo@gmail.com --json --max=20

Step 2: Extract & Triage

For each newsletter, extract content and run automated triage:

# Extract email text
gog gmail thread get <threadId> --account=maroffo@gmail.com --json \
  | python3 ~/.claude/skills/newsletter-digest/extract_email.py --meta --max-chars 4000

# Classify with optimized prompt (needs ANTHROPIC_API_KEY)
echo '{"from": "<sender>", "subject": "<subject>", "content": "<body>"}' \
  | uv run --project ~/.claude/skills/autoresearch-prompt -- autoresearch-prompt classify

The classifier returns JSON: {"action": "extract"|"skip", "category": "...", "content": "...", "reason": "..."}.

  • action=skip: Archive immediately, no Second Brain entry
  • action=extract: Process content into Second Brain using the returned category and content

For batch triage, classify all newsletters first, then process only the extract results. This avoids spending time analyzing content that should be skipped.

Step 3: Process Extracted Newsletters

For each newsletter where classifier returned action=extract:

  1. Use the classifier's category to route to the correct Second Brain file
  2. Refine the summary if needed (the classifier provides a 2-3 sentence content field as starting point)
  3. Categorize per ../_SECOND_BRAIN.md routing table (classifier categories match these)
  4. Extract & integrate via Obsidian CLI:
obsidian append file="Second Brain - <Topic>" content="<extracted>"
  1. Update Timeline:
obsidian append file="Second Brain - Timeline" content="- **YYYY-MM-DD** | [Topic] | Source: Newsletter | -> Second Brain - <File>.md"

Step 4: Archive All

Archive all processed newsletters (both extracted and skipped). See ../_GMAIL.md for archive command.

Output Format

After processing batch:

## Newsletter Digest - YYYY-MM-DD

### Processed (X newsletters)

1. **[Pragmatic Engineer]** - "Platform Teams Done Right"
   - Extracted: Platform team anti-patterns
   - → Second Brain - Engineering Management.md
   - ✓ Archived

2. **[ByteByteGo]** - "Rate Limiting Deep Dive"
   - Extracted: Token bucket algorithm summary
   - → Second Brain - Development.md
   - ✓ Archived

3. **[The Batch]** - "AI News Weekly"
   - Skipped: News only, no actionable content
   - ✓ Archived

### Summary
- Newsletters processed: X
- Second Brain entries added: Y
- Archived: X

Content Extraction Guidelines

Include in Second Brain:

  • Tool/library announcements with clear use case
  • Architecture patterns with examples
  • Techniques you can apply
  • Commands/configs worth remembering
  • Important news from news-focused newsletters (Il Post, Semafor, Appunti, Il Mattinale Europeo):
    • Geopolitical events with lasting impact
    • Policy changes (EU, IT, international)
    • Economic developments (trade, sanctions, markets)
    • Major political events (elections, government changes)
    • → Add to Second Brain - Politics and Economics.md

Skip (archive only):

  • Tech industry news/opinions (funding, hype cycles)
  • Funding announcements
  • Job postings
  • Content you've already captured
  • Ephemeral news (daily weather, minor events)

Ask user if unclear:

  • Mixed content (some actionable, some not)
  • Topics outside usual categories

Rules

See ../_SECOND_BRAIN.md for shared rules. Additional:

  • Always archive - processed = archived, no exceptions
  • Batch process - handle multiple newsletters in one session
Related skills
Installs
22
GitHub Stars
13
First Seen
Mar 1, 2026