Portfolio-ready AI newsroom platform for tech content generation, editorial workflows, and automated publishing.
This project is more than a content site mockup. It brings together:
- multi-agent orchestration for content operations
- a modern frontend and API backend split
- editorial automation and monetization hooks
- deployment-ready infrastructure choices
- a product framing that can evolve into a real media workflow
- Multi-Agent System: Autonomous agents for searching, writing, humanizing, reviewing, and publishing content
- Azure OpenAI Integration: Powered by GPT-5 for high-quality content generation
- Modern Tech Stack: Next.js 14, FastAPI, PostgreSQL, Redis, Weaviate
- Automated Publishing: Daily content generation workflow
- Affiliate Integration: Automatic Amazon/Flipkart affiliate link insertion
- SEO Optimized: Built-in SEO optimization and readability scoring
- Style Transfer: Custom humanizer agent trained on your writing style
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Next.js 14 Frontend β
β (Modern, Minimalistic Design) β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ
β
ββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββββββββββ
β FastAPI Backend β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Multi-Agent Workflow (LangGraph) β β
β β Search β Write β Affiliate β Humanize β Review β Publishβ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β β β
PostgreSQL Redis Weaviate External APIs
- Docker & Docker Compose
- Node.js 20+
- Python 3.11+
- Azure OpenAI API key
- NewsAPI key
git clone <repository-url>
cd ai-tech-newsroom# Copy environment template
cp .env.example .env
# Edit .env with your API keys
# REQUIRED:
# - AZURE_OPENAI_API_KEY (already configured)
# - NEWS_API_KEY (get from https://newsapi.org)# Start all services
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose downServices will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
- PostgreSQL: localhost:5432
- Redis: localhost:6379
- Weaviate: http://localhost:8080
cd backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run database (use Docker or local PostgreSQL)
docker-compose up -d postgres redis weaviate
# Start FastAPI server
python -m uvicorn api.main:app --reload --port 8000cd frontend
# Install dependencies
npm install
# Start development server
npm run dev- Run the full stack with Docker for the fastest local evaluation
- Open the frontend at
http://localhost:3000 - Open the backend docs at
http://localhost:8000/docs - Review the agent pipeline and deployment notes in the docs files
ai-tech-newsroom/
βββ frontend/ # Next.js application
β βββ app/ # App router pages
β βββ components/ # React components
β βββ lib/ # Utilities
β
βββ backend/ # FastAPI application
β βββ agents/ # Agent implementations
β β βββ search_agent.py # Trending topic discovery
β β βββ writer_agent.py # Content generation
β β βββ affiliate_agent.py # Product link injection
β β βββ humanizer_agent.py # Style transfer
β β βββ reviewer_agent.py # Quality assurance
β β βββ publisher_agent.py # Publishing automation
β βββ api/ # FastAPI routes
β βββ models/ # Database models
β βββ services/ # External services
β βββ config/ # Configuration
β βββ training/ # Training data
β
βββ automation/ # Cron jobs and workflows
βββ database/ # Database schemas
βββ docs/ # Documentation
The system runs a daily workflow that automatically generates and publishes tech articles:
# Trigger manually via API
POST http://localhost:8000/api/agents/workflow/daily-
Search Agent π
- Scrapes trending topics from NewsAPI, Reddit, Twitter
- Analyzes and ranks topics by relevance
- Selects top 5-10 topics for article generation
-
Writer Agent βοΈ
- Researches each topic from multiple sources
- Generates 800-1500 word articles
- Creates SEO-optimized titles and meta descriptions
-
Affiliate Agent π°
- Identifies product mentions in articles
- Fetches Amazon/Flipkart links
- Inserts natural "Buy Now" CTAs
-
Humanizer Agent π
- Trained on your 20-30 writing samples
- Rewrites content in your personal style
- Adds personality and natural flow
-
SEO Optimizer Agent π
- Optimizes heading structure
- Improves keyword density
- Calculates readability scores
-
Reviewer Agent β
- Grammar and spelling checks
- Fact verification
- Duplicate content detection
-
Publisher Agent π°
- Schedules publication times
- Publishes approved articles
- Shares on social media (optional)
The frontend features a modern, minimalistic design with:
- Dark theme with neon accent colors
- Responsive layout (mobile-first)
- Fast loading with Next.js SSR
- SEO optimized with automatic sitemap
- Analytics ready (Plausible/PostHog)
Key pages:
- Homepage with trending articles
- Category pages (AI, Mobile, etc.)
- Article detail pages
- Product review pages
To train the humanizer agent on your writing style:
- Add 20-30 of your best articles to
backend/training/style_samples/ - Format: Plain text or markdown files
- The humanizer will learn your:
- Sentence structure patterns
- Vocabulary preferences
- Tone and voice
- Humor style
# Add your samples
cp your-article-1.md backend/training/style_samples/
cp your-article-2.md backend/training/style_samples/
# ... add 20-30 samples- Sign up at https://newsapi.org
- Get your API key
- Add to
.env:NEWS_API_KEY=your_key_here
- Create app at https://www.reddit.com/prefs/apps
- Add credentials to
.env:
REDDIT_CLIENT_ID=your_id
REDDIT_CLIENT_SECRET=your_secret
- Join Amazon Associates program
- Add to
.env:AMAZON_ASSOCIATE_TAG=your-tag-20
PostgreSQL database with the following main tables:
- articles: Published content
- topics: Trending topics discovered
- affiliate_links: Product links and tracking
- writing_samples: Style transfer training data
- agent_jobs: Workflow tracking
# Access PostgreSQL
docker-compose exec postgres psql -U newsroom -d newsroom_db
# Run migrations
cd backend
alembic upgrade head
# Create migration
alembic revision --autogenerate -m "description"Set up cron job to run daily content generation:
# Edit crontab
crontab -e
# Add daily workflow at 6 AM
0 6 * * * curl -X POST http://localhost:8000/api/agents/workflow/dailyAutomated workflow is configured in .github/workflows/daily-content.yml
- Frontend: Vercel (automatic deployment from GitHub)
- Backend: Railway.app or Render.com
- Database: Supabase or Railway PostgreSQL
- Vector DB: Weaviate Cloud
Set the following in your production environment:
# Production mode
DEBUG=False
# Database (use production URL)
DATABASE_URL=postgresql://user:pass@host:5432/db
# Redis (use production URL)
REDIS_URL=redis://host:6379
# All API keys (same as development)
AZURE_OPENAI_API_KEY=...
NEWS_API_KEY=...# API health
curl http://localhost:8000/api/health
# Database health
curl http://localhost:8000/api/health/db# View all logs
docker-compose logs -f
# View specific service
docker-compose logs -f backend
docker-compose logs -f frontendcd backend
# Run tests
pytest
# Run with coverage
pytest --cov=. --cov-report=html- Public documentation reviewed and cleaned up
- README polished for portfolio presentation
- Repository maintenance update pushed for current-month activity
- Next.js frontend setup
- FastAPI backend setup
- Database schema
- Docker configuration
- Search Agent implementation
- Writer Agent with Azure OpenAI
- Humanizer Agent training
- Reviewer Agent
- Affiliate Agent
- Amazon/Flipkart API integration
- Google AdSense setup
- Newsletter integration
- LangGraph workflow orchestration
- Daily cron jobs
- Social media posting
- Performance optimization
- Domain setup
- Production deployment
- Analytics integration
- Growth optimization
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - feel free to use this for your own projects!
Built with:
For questions or issues:
- Create an issue on GitHub
- Check the documentation in
/docs
Happy coding! Let's build the future of automated tech journalism! π