← Back to Directory
📰

News Aggregator & Summarizer

Aggregate news from multiple sources, summarize articles, and deliver a personalized daily digest

🤖 00 ↓  |  👤 00
beginner25 minutes🔄 10 swappable alternatives

🧂 Ingredients

🔌 APIs

aggregate_news_articles_from_multiple_sources

🔄 Alternatives:

Mediastack Real-time news, free tierGnews Simple, focused news API

supplement_with_web_search_for_niche_topics

🔄 Alternatives:

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

fetch_full_article_content_for_summarization

🔄 Alternatives:

Scrapingbee Handles JS renderingBrowserless Full browser for scraping

deliver_daily_digest_as_push_notification

🔄 Alternatives:

Ntfy Free, open-source push notificationsTelegram Free push via TelegramSlack Team notification channel

📋 Step-by-Step Build Guide

STEP 1

1. Define your interests and news topics: AI, technology, business, specific ind

1. Define your interests and news topics: AI, technology, business, specific industries, etc.

Define your interests and news topics: AI, technology, business, specific industries, etc.

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

2. Configure news sources: NewsAPI categories, specific publications, and Brave

2. Configure news sources: NewsAPI categories, specific publications, and Brave Search queries for niche topics

Search the web using the Brave Search API.

GET https://api.search.brave.com/res/v1/web/search?q={query}&count=10&freshness=pd
Headers: X-Subscription-Token: {BRAVE_API_KEY}

Parse the results: extract title, URL, description for each result.
Deduplicate results from the same domain.
Score relevance based on: keyword match in title (high), recency (high), source authority (medium).
Return the top results with: title, 2-sentence summary, source URL, and publish date.

If the search returns no results, try broadening the query by removing the least important keyword.
STEP 3

3. Daily at 7am: pull the latest articles from all configured sources (past 24 h

3. Daily at 7am: pull the latest articles from all configured sources (past 24 hours)

Daily at 7am: pull the latest articles from all configured sources (past 24 hours)

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 4

4. Deduplicate: same story from multiple sources → keep the best source

4. Deduplicate: same story from multiple sources → keep the best source

Deduplicate: same story from multiple sources → keep the best source

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 5

5. Score by relevance to your interests, source quality, and recency

5. Score by relevance to your interests, source quality, and recency

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 6

6. For top 10 stories, fetch full content and generate a 3-sentence summary

6. For top 10 stories, fetch full content and generate a 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 7

7. Compile the daily digest: categorized sections (Tech, Business, Industry, Wor

7. Compile the daily digest: categorized sections (Tech, Business, Industry, World), each with headline, summary, and source link

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 8

8. Deliver via your preferred channel — push notification, email, or Slack

8. Deliver via your preferred channel — push notification, email, or Slack

Send the compiled content via email using the configured email API.

Compose the email:
- To: {recipient_email}
- Subject: {subject_line}
- Body: Format as clean HTML with proper headings, bullet points, and styling.
  Use inline CSS for compatibility. Keep it mobile-friendly (max-width: 600px).

Send via the configured email provider (SendGrid, Resend, or SES).
Verify the response indicates successful delivery (202 for SendGrid, 200 for Resend).
Log: timestamp, recipient, subject, and delivery status.

If send fails, retry once after 3 seconds. If it fails again, save the email content locally and alert the user.

🤖 Example Agent Prompt

Define your interests and news topics: AI, technology, business, specific industries, etc.

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.