Let the AI read the news β You read the bulletin.
A fully autonomous, AI-powered weekly tech newsletter that summarizes the top stories, dives deep into trends, and delivers beautifully formatted content straight to your inbox.
AI Bulletin is a self-operating newsletter system designed to:
- π§ Use CrewAI agents to generate insightful, structured content
- π¨ Deliver formatted newsletters via SendGrid
- β‘ Run on a lightweight FastAPI backend
- ποΈ Schedule and automate weekly generation and delivery using APScheduler
Built for AI-curious hackers who want to stay informed.
To automate every part of a newsletter workflow:
- βοΈ Curate and plan relevant content
- π Summarize and analyze top stories
- ποΈ Format a professional-grade newsletter
- π€ Email it to all subscribers
Without any human in the loop. Just subscribe and enjoy.
| Agent | Responsibility |
|---|---|
| TopicPlannerAgent | Plans weekly theme and outlines subtopics |
| TopStoriesAgent | Summarizes the top 3 tech/AI stories |
| DeepDiveAgent | Provides in-depth analysis on a major topic |
| ToolOfTheWeekAgent | Recommends trending AI tool with summary |
| QuoteAgent | Picks a relevant quote or tweet |
| AIInTheWildAgent | Highlights a real-world AI use case |
| HotTakesAgent | Adds quick, opinionated commentary |
| EditorsNoteAgent | Writes a personalized closing note |
| NewsletterEditorAgent | Edits and compiles all section drafts |
| HTMLFormatterAgent | Styles and formats final HTML for email delivery |
PlanTopicsTaskβ Done by TopicPlannerAgent[Parallel]TopStoriesTask, DeepDiveTask, ToolTask, QuoteTask, AIWildTask, HotTakesTask, EditorsNoteTaskEditNewsletterTaskβ NewsletterEditorAgentFormatHTMLTaskβ HTMLFormatterAgent- π Email is sent via SendGrid
CrewManagerAgent
β
βΌ
TopicPlannerAgent
β
βΌ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Runs in Parallel β
β ββββββββββββββ¬βββββββββββββ¬βββββββββββββ¬ββββββββββ β
β βTopStories β DeepDive β ToolOfWeek β Quote β β
β βAgent β Agent β Agent β Agent β β
β ββββββββββββββ΄βββββββββββββ΄βββββββββββββ΄ββββββββββ β
β ββββββββββββββ¬βββββββββββββ β
β β AIWild β HotTakes β β
β β Agent β Agent β β
β ββββββββββββββ΄βββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
NewsletterEditorAgent
β
βΌ
HTMLFormatterAgent
- Language: Python 3.12+
- Framework: FastAPI + Jinja2 templates
- Task Automation: APScheduler
- Agents & LLM: CrewAI (GPT-4 or Deepseek)
- Database: SQLite (via SQLAlchemy ORM)
- Email Services: SendGrid or any other service (configurable)
ai-bulletin/
βββ main.py # FastAPI app entry point
βββ database.py # SQLite engine + session config
βββ models.py # SQLAlchemy models
βββ schemas.py # Pydantic schemas for validation
βββ admin.py # Admin interface or manual overrides
βββ newsletter/ # CrewAI agents, tasks, orchestration
βββ crew/ # Crew definitions and configuration
βββ jobs/ # APScheduler jobs (weekly trigger)
βββ utils/ # Email sender wrappers
βββ templates/ # HTML pages for subscription/unsubscribe
βββ requirements.txt # Project dependencies
βββ subscribers.db # SQLite DB (auto-created)
- Python 3.10+
uv: ultra-fast package manager
curl -Ls https://astral.sh/uv/install.sh | bash# Clone the repo
$ git clone https://github.com/dev-ahmadbilal/ai-bulletin.git
$ cd ai-bulletin
# Create virtual environment
$ uv venv .venv
$ source .venv/bin/activate
# Install dependencies
$ uv pip install -r requirements.txtuvicorn main:app --reloadcurl -X POST http://localhost:8000/subscribe \
-H "Content-Type: application/json" \
-d '{"email": "example@domain.com"}'| Method | Route | Description |
|---|---|---|
| POST | /subscribe |
Subscribe a new email |
| GET | /health |
Check API health status |
| GET | /unsubscribe |
Show unsubscribe form |
| POST | /unsubscribe |
Unsubscribe from list |
- The
newsletter_jobis triggered every Sunday at 10 AM:
CronTrigger(day_of_week="sun", hour=10, minute=0)- You can change the schedule in
jobs/newsletter_job.py
- βοΈ When a new user subscribes, they instantly receive the latest edition of the newsletter.
- π« We recommend checking your spam or junk folder if you don't see the email.
- ποΈ After that, new editions are delivered to all subscribers automatically every week.
AI Bulletin is currently looking for sponsors!
If you're a company or individual who believes in the power of open-source, agentic AI systems, and automated media β let's collaborate.
Want to sponsor AI Bulletin?
β‘οΈ ahmadbilal.3491@gmail.com
If you enjoy AI Bulletin, consider buying me a coffee:
β‘οΈ https://buymeacoffee.com/ahmad.bilal
This project is licensed under the MIT License
Feel free to fork and submit PRs for enhancements, fixes, or new agent ideas.
- Shoutout to Ed Donner for an amazing Agentic ai course.
- CrewAI by Vercel & LangChain community
- APScheduler for painless job scheduling
- SendGrid for simple transactional email delivery
