News Aggregator & Summarizer
Aggregate news from multiple sources, summarize articles, and deliver a personalized daily digest
🧂 Ingredients
🔌 APIs
aggregate_news_articles_from_multiple_sources
🔄 Alternatives:
supplement_with_web_search_for_niche_topics
🔄 Alternatives:
fetch_full_article_content_for_summarization
🔄 Alternatives:
deliver_daily_digest_as_push_notification
🔄 Alternatives:
📋 Step-by-Step Build Guide
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.
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.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.
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.
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.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."
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."
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.