
Newsletter Agent
Under maintenance
Pricing
Pay per event
Go to Store

Newsletter Agent
Under maintenance
An AI-powered Apify actor that generates well-structured newsletters using a crew of specialized AI agents. The system uses CrewAI to coordinate multiple agents that research, write, and edit newsletter content based on user input.
0.0 (0)
Pricing
Pay per event
1
Total users
5
Monthly users
5
Runs succeeded
>99%
Last modified
15 days ago
Newsletter AI Agent
An AI-powered Apify actor that generates well-structured newsletters using a crew of specialized AI agents. The system uses CrewAI to coordinate multiple agents that research, write, and edit newsletter content based on user input.
Documentation
Features
- Multi-agent System: Uses CrewAI to coordinate specialized agents for research, writing, and editing
- Apify Integration: Leverages Apify actors for efficient web scraping and data collection
- Comprehensive Research: Gathers information from multiple sources:
- Google Search results
- Latest news articles
- Reddit discussions
- Twitter/X posts
- YouTube videos
- Intelligent Processing: Transforms raw data into well-structured newsletters
- Markdown Output: Delivers clean, formatted content ready for distribution
- Configurable Sections: Customize newsletter structure and content focus
Architecture
graph TDsubgraph "User Interface"A[Apify Actor Input] --> B[main.py]endsubgraph "Core System"B --> C[NewsletterCrew]C --> D[Agent Orchestration]endsubgraph "Agents"D --> E[Researcher Agent]D --> F[Writer Agent]D --> G[Editor Agent]endsubgraph "Tools"E --> H[Google Search Tool]E --> I[Reddit Tool]E --> J[Twitter Tool]E --> K[YouTube Tool]E --> L[Google News Tool]endsubgraph "Apify Integration"H --> M[Apify Actors]I --> MJ --> MK --> ML --> MM --> N[Web Data]endsubgraph "Output"G --> O[Newsletter Content]O --> P[Apify Actor Output]endclassDef default fill:#F3F4F6,stroke:#D1D5DB,color:#1F2937classDef core fill:#E5E7EB,stroke:#9CA3AF,color:#111827classDef highlight fill:#DBEAFE,stroke:#93C5FD,color:#1E40AFclassDef agents fill:#FCE7F3,stroke:#F9A8D4,color:#9D174DclassDef tools fill:#D1FAE5,stroke:#6EE7B7,color:#065F46classDef apify fill:#E0F2FE,stroke:#7DD3FC,color:#0C4A6Eclass B,C,D core;class E,F,G agents;class H,I,J,K,L tools;class M,N apify;
Prerequisites
- Python 3.10+
- Apify API key
- Google API key for Gemini Pro
- Apify CLI (for local development)
Environment Setup
- Clone the repository:
git clone https://github.com/pratik-dani/newsletter-ai-agent.gitcd newsletter-agent
- Install Apify CLI:
$npm install -g apify-cli
- Create and activate virtual environment:
python -m venv venvsource venv/bin/activate # On Windows, use `venv\Scripts\activate`
- Install dependencies:
$pip install -r requirements.txt
- Configure environment variables in
.env
:
APIFY_API_KEY=your_apify_api_key_hereGOOGLE_API_KEY=your_google_api_key_here
Usage
Local Development
- Run the actor locally:
$apify run
- Test with custom input by modifying
storage/key_value_stores/default/INPUT.json
:
{"topic": "Your newsletter topic here"}
Apify Platform Deployment
- Login to Apify:
$apify login
- Deploy the actor:
$apify push
Input Schema
{"topic": {"title": "Newsletter Topic","type": "string","description": "Topic or requirements for the newsletter","editor": "textfield"}}
Example input:
{"topic": "Latest developments in quantum computing, focusing on breakthroughs, industry news, and practical applications"}
Output Format
The actor outputs a dataset containing:
{"topic": "string","content": "markdown formatted newsletter content","status": "success|error","timestamp": "ISO 8601 datetime"}
Project Structure
newsletter-agent/├── .actor/ # Actor configuration├── docs/ # Documentation├── src/│ ├── agents/ # AI agent implementations│ │ ├── researcher.py # Research agent│ │ ├── writer.py # Content writer│ │ └── editor.py # Editor│ ├── config/ # Configuration│ ├── tools/ # Apify integration tools│ ├── newsletter_crew.py # Agent orchestration│ └── main.py # Entry point├── tests/ # Test suite├── requirements.txt # Python dependencies└── README.md
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.