# AI-Powered RSS Aggregator & Summarizer (`primeparse/rss-aggregator`) Actor

Enterprise-grade RSS aggregator with AI-powered summarization. Collects, filters, and processes feeds from any source. Ideal for content analysis, news monitoring, and AI training. Features keyword filtering, metadata extraction, and structured output in JSON/CSV. Built with Hugging Face.

- **URL**: https://apify.com/primeparse/rss-aggregator.md
- **Developed by:** [PrimeParse](https://apify.com/primeparse) (community)
- **Categories:** AI, Automation, News
- **Features:** Limited permissions
- **Stats:** 8 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🌐 RSS Aggregator: AI-Powered RSS Aggregator & Summarizer

Enterprise-grade RSS aggregator with AI-powered summarization. Collects, filters, and processes feeds from any source. Ideal for content analysis, news monitoring, and AI training. Features keyword filtering, metadata extraction, and structured output in JSON/CSV. Built with Hugging Face for advanced summaries.

**High-quality RSS Feed Aggregator & Processor for Content Teams, Researchers, and AI Engineers**

Automatically aggregates RSS feeds, filters by keywords, extracts summaries, and optionally generates AI-powered summaries — clean, structured, ready for analysis or AI.

**Built for:**

- Content aggregators & news monitoring teams
- Researchers tracking academic papers and publications
- AI/ML engineers building content datasets
- Marketing teams monitoring industry trends
- Data analysts processing feed data

✅ **Smart keyword filtering**\
✅ **AI-powered summarization** (Hugging Face transformers)\
✅ **Multiple feed support** (1-5 feeds recommended)\
✅ **Rich metadata extraction** (date, author, tags, description)\
✅ **Rate limiting & respectful crawling**\
✅ **AI-ready structured output**

👉 **Runs on Apify • No code required**

### 🚀 Why This Aggregator

✔ **Purpose-Built for RSS Processing**\
Intelligently aggregates and processes RSS feeds from any source — news sites, academic journals, blogs, corporate feeds.

✔ **AI Summarization Ready**\
Optional integration with Hugging Face transformers (BART, Pegasus) for advanced AI-powered summarization of feed entries.

✔ **Clean & Structured Output**\
Extracts only meaningful content — title, link, summary, author, tags, publication date — ready for analysis.

✔ **Smart Keyword Filtering**\
Filter entries by custom keywords (case-insensitive) across title, summary, and tags for relevance.

✔ **AI & ML Ready**\
Structured JSON/CSV output perfect for RAG systems, LLM fine-tuning, or training datasets.

✔ **Fast & Efficient**\
Powered by feedparser — excellent for RSS/Atom feeds. Lightweight and fast processing.

✔ **Safe & Controlled Processing**\
Configurable rate limiting, entry limits per feed, and graceful error handling.

### 💼 Use Cases

- **News monitoring** — Track industry news and trends from multiple sources
- **Academic research** — Aggregate papers from arXiv, PubMed, and other academic feeds
- **Content curation** — Collect and filter relevant content for newsletters or blogs
- **AI training data** — Generate clean datasets for LLM fine-tuning or RAG systems
- **Competitive intelligence** — Monitor competitor blogs and news feeds
- **Market research** — Track product announcements and industry updates

### 📊 Supported Sources

- **News feeds** — TechCrunch, Reuters, BBC, Guardian, etc.
- **Academic feeds** — arXiv, PubMed, academic journals
- **Blog feeds** — Medium, WordPress, custom blog RSS
- **Corporate feeds** — Company blogs, press releases, announcements
- **Any RSS/Atom feed** — Standard-compliant feeds

### ⚙️ How It Works

1. Provide RSS feed URLs (1-5 feeds recommended)
2. Set custom keywords and processing options
3. Optionally enable AI summarization
4. Run the Actor
5. Download clean, structured RSS datasets

### 🧩 Input Configuration

#### Example JSON Input

```json
{
  "rssFeeds": [
    "https://arxiv.org/rss/cs.AI",
    "https://techcrunch.com/feed/"
  ],
  "maxEntriesPerFeed": 10,
  "keywords": [
    "AI",
    "machine learning",
    "artificial intelligence"
  ],
  "enableSummarization": true,
  "enableAISummarization": true,
  "aiModelName": "facebook/bart-large-cnn",
  "aiMaxLength": 1024,
  "aiMinLength": 50,
  "aiMaxSummaryLength": 150,
  "delayBetweenFeeds": 1.0
}
```

#### Key Options

- **rssFeeds** — List of RSS feed URLs to aggregate (required, 1-5 recommended)
- **maxEntriesPerFeed** — Maximum entries per feed (0 = unlimited, default: 10)
- **keywords** — Custom keywords for filtering entries (case-insensitive, empty = all entries)
- **enableSummarization** — Extract summary/description from feeds (default: true)
- **enableAISummarization** — Use Hugging Face AI for advanced summarization (default: false)
- **aiModelName** — Hugging Face model identifier (default: "facebook/bart-large-cnn")
- **aiMaxLength** — Maximum input length for AI model (default: 1024 tokens)
- **aiMinLength** — Minimum summary length (default: 50 tokens)
- **aiMaxSummaryLength** — Maximum summary length (default: 150 tokens)
- **delayBetweenFeeds** — Delay in seconds between feeds for rate limiting (default: 1.0)

### 📂 Output Dataset

All entries are stored in the default Apify dataset with the following structure:

#### Example Output Record

```json
{
  "title": "Adobe hit with proposed class-action, accused of misusing authors' work in AI training",
  "link": "https://techcrunch.com/2025/12/17/adobe-hit-with-proposed-class-action-accused-of-misusing-authors-work-in-ai-training/",
  "published": "2025-12-18T00:44:55",
  "summary": "The lawsuit is just the latest in a string of copyright-related legal complaints aimed at the AI industry.",
  "feedTitle": "TechCrunch",
  "feedUrl": "https://techcrunch.com/feed/",
  "author": "Lucas Ropek",
  "tags": [
    "AI",
    "Adobe",
    "Anthropic",
    "artificial intelligence"
  ]
}
```

#### With AI Summarization

When `enableAISummarization: true`, the `summary` field contains AI-generated summaries:

```json
{
  "title": "Breakthrough in Quantum Computing",
  "link": "https://example.com/quantum-breakthrough",
  "published": "2025-12-15T10:30:00",
  "summary": "Researchers achieve significant milestone in quantum error correction, bringing practical quantum computing closer to reality. The new method reduces error rates by 50%...",
  "feedTitle": "Science News",
  "feedUrl": "https://example.com/feed.xml",
  "author": "Dr. Jane Smith",
  "tags": ["quantum computing", "research", "technology"]
}
```

### 🤖 AI Summarization Models

Supported Hugging Face models for summarization:

- **facebook/bart-large-cnn** (default) — Best for news articles and general content
- **google/pegasus-xsum** — Optimized for news summaries
- **Any summarization model** — Compatible with Hugging Face transformers

The Actor automatically falls back to basic extraction if AI summarization fails or is unavailable.

### 🏁 Getting Started

#### Quick Start on Apify

1. Click **"Try for free"** on Apify
2. Paste RSS feed URLs (e.g., `https://techcrunch.com/feed/`)
3. Customize keywords and options
4. Optionally enable AI summarization
5. Run and download your dataset

### 📈 Performance

- **Processing Speed** — ~1-2 seconds per feed (depending on entries)
- **Rate Limiting** — Configurable delay between feeds (default: 1s)
- **Memory Efficient** — Processes feeds sequentially
- **Scalability** — Handles 1-5 feeds optimally (can process more)

### 🔧 Advanced Configuration

#### Custom AI Models

You can use any Hugging Face summarization model:

```json
{
  "enableAISummarization": true,
  "aiModelName": "google/pegasus-xsum",
  "aiMaxLength": 2048,
  "aiMinLength": 100,
  "aiMaxSummaryLength": 200
}
```

### 📧 Support

- **Email**: **kidaxxb@gmail.com**
- **Response** within 24 hours
- **Issues**: Use Apify Issues tab

**Tags:** RSS, feed aggregator, content processing, AI summarization, Hugging Face, news aggregation, feed parser, content analysis, RAG, LLM training, data extraction

***

**Built with ❤️ on Apify**

# Actor input Schema

## `rssFeeds` (type: `array`):

List of RSS feed URLs to aggregate (1-5 feeds recommended)

## `maxEntriesPerFeed` (type: `integer`):

Maximum number of entries to process from each feed (0 = unlimited)

## `keywords` (type: `array`):

Optional keywords to filter entries (case-insensitive). If empty, all entries are included.

## `enableSummarization` (type: `boolean`):

Extract summary/description from entries if available

## `delayBetweenFeeds` (type: `number`):

Delay in seconds between processing feeds (rate limiting)

## `enableAISummarization` (type: `boolean`):

Use Hugging Face AI models for advanced summarization (requires transformers library)

## `aiModelName` (type: `string`):

Hugging Face model identifier for summarization (e.g., facebook/bart-large-cnn, google/pegasus-xsum)

## `aiMaxLength` (type: `integer`):

Maximum input text length for AI model (tokens)

## `aiMinLength` (type: `integer`):

Minimum summary length generated by AI (tokens)

## `aiMaxSummaryLength` (type: `integer`):

Maximum summary length generated by AI (tokens)

## Actor input object example

```json
{
  "rssFeeds": [
    "https://arxiv.org/rss/cs.AI",
    "https://techcrunch.com/feed/"
  ],
  "maxEntriesPerFeed": 10,
  "keywords": [],
  "enableSummarization": true,
  "delayBetweenFeeds": 1,
  "enableAISummarization": false,
  "aiModelName": "facebook/bart-large-cnn",
  "aiMaxLength": 1024,
  "aiMinLength": 50,
  "aiMaxSummaryLength": 150
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "rssFeeds": [
        "https://arxiv.org/rss/cs.AI",
        "https://techcrunch.com/feed/"
    ],
    "keywords": [],
    "aiModelName": "facebook/bart-large-cnn"
};

// Run the Actor and wait for it to finish
const run = await client.actor("primeparse/rss-aggregator").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "rssFeeds": [
        "https://arxiv.org/rss/cs.AI",
        "https://techcrunch.com/feed/",
    ],
    "keywords": [],
    "aiModelName": "facebook/bart-large-cnn",
}

# Run the Actor and wait for it to finish
run = client.actor("primeparse/rss-aggregator").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "rssFeeds": [
    "https://arxiv.org/rss/cs.AI",
    "https://techcrunch.com/feed/"
  ],
  "keywords": [],
  "aiModelName": "facebook/bart-large-cnn"
}' |
apify call primeparse/rss-aggregator --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,primeparse/rss-aggregator"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/5KQdkYDp6T1atkhXP/builds/PDnoW7QPqW8YkDkvX/openapi.json
