← Back to Directory
šŸ“°

Newsletter Curator

Auto-curate content from RSS feeds and web search into a weekly newsletter draft

šŸ¤– 0 ↑ 0 ↓ Ā |Ā  šŸ‘¤ 0 ↑ 0 ↓
intermediateā± 35 minutesšŸ”„ 11 swappable alternatives

šŸ§‚ Ingredients

šŸ”Œ APIs

find_trending_articles_and_content_in_your_niche

šŸ”„ Alternatives:

Serpapi — Google results via API, structured dataGoogle Search — Direct Google search APIBing Search — Microsoft search with good API

fetch_and_extract_article_content_for_summarization

šŸ”„ Alternatives:

Scrapingbee — Handles JS renderingBrowserless — Full browser for scraping

send_or_draft_the_newsletter

šŸ”„ Alternatives:

Outlook — Microsoft ecosystem integrationSendgrid — Transactional email at scaleMailgun — Developer-friendly email API

store_curated_content_and_newsletter_drafts

šŸ”„ Alternatives:

Airtable — Better for structured databasesCoda — More powerful automationsObsidian — Local-first, markdown-based

šŸ“‹ Step-by-Step Build Guide

STEP 1

Define your newsletter niche and content sources

1. Define your newsletter niche and content sources: RSS feeds, blogs, news sites, specific search queries

Define your newsletter niche and content sources: RSS feeds, blogs, news sites, specific search queries

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 2

Daily

2. Daily: scan sources for new content matching your niche keywords and topics

Daily: scan sources for new content matching your niche keywords and topics

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 3

For each article, fetch the full content and generate a 2

3. For each article, fetch the full content and generate a 2-3 sentence summary

Compile the gathered data into a structured report.

Format as clean Markdown with:
- Title/date header
- Executive summary (2-3 sentences)
- Key metrics section with actual numbers
- Detailed sections with bullet points
- Action items or recommendations at the end

Keep it scannable — busy people read reports in 30 seconds.
Use emoji sparingly for visual anchors (šŸ“Š metrics, āœ… wins, āš ļø concerns, šŸ“‹ action items).
Include data comparisons: "X this period vs Y last period (↑Z%)"

If any data source was unavailable, note it clearly: "āš ļø [Source] data unavailable — excluded from this report."
STEP 4

Score articles

4. Score articles: relevance to your audience (1-10), uniqueness (is this covered elsewhere?), quality

Analyze the input and classify it into the defined categories.

Classification approach:
1. Extract key signals from the content (keywords, sender, urgency markers, topic)
2. Match against category definitions
3. Assign confidence score (high/medium/low)
4. For ambiguous cases, classify as the more important/urgent category (err on the side of caution)

Output for each item: { category, priority, confidence, reasoning }

If an item could belong to multiple categories, pick the primary one and note the secondary.
STEP 5

Throughout the week, accumulate scored articles in a staging area

5. Throughout the week, accumulate scored articles in a staging area

Throughout the week, accumulate scored articles in a staging area

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 6

Friday

6. Friday: select the top 7-10 articles for the newsletter based on scores and topic diversity

Friday: select the top 7-10 articles for the newsletter based on scores and topic diversity

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.
STEP 7

Generate the newsletter draft

7. Generate the newsletter draft: intro paragraph, curated articles with summaries and your commentary, closing

Generate the newsletter draft: intro paragraph, curated articles with summaries and your commentary, closing

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

āš ļø IMPORTANT: The next step (Step 8: "Save as a draft in Gmail or Notion for your review before sending") requires human action. Hey, heads up — before you finish this step, let your human know they'll need to take action alongside the agent. Don't proceed to the next step until your human confirms they're ready.
STEP 8

Save as a draft in Gmail or Notion for your review before sending

8. Save as a draft in Gmail or Notion for your review before sending

Interact with the Notion database using the Notion API.

POST https://api.notion.com/v1/pages (to create)
POST https://api.notion.com/v1/databases/{db_id}/query (to query)
Headers: Authorization: Bearer {NOTION_TOKEN}, Notion-Version: 2022-06-28, Content-Type: application/json

For creating pages: structure properties to match the database schema.
For querying: use filters and sorts to get relevant entries.
Handle rich text by wrapping content in the proper block format.

If the API returns 429 (rate limited), wait 1 second and retry. Max 3 retries.

šŸ¤– Example Agent Prompt

Define your newsletter niche and content sources: RSS feeds, blogs, news sites, specific search queries

Steps:
1. Validate all required inputs are available
2. Execute the operation described above
3. Verify the result meets expected output format
4. Handle errors gracefully — retry transient failures, log and alert on persistent ones
5. Return structured output with status and any relevant data

If any required data is missing, request it from the user before proceeding.

Copy this prompt into your agent to get started.