Your 24/7 AI travel agent that monitors thousands of hotels, flights, and vacation rentals, learns your preferences, and emails you the perfect deal at exactly the right time to book.
VacationGenius is the first fully autonomous AI travel agent that solves three critical pain points in travel booking:
- Deals disappear before you find them - Hotel prices change 1-3 times per day
- No way to optimize the full trip cost - Need perfect combination of hotel + flight + dates
- Generic alerts don't match your preferences - Alert fatigue from irrelevant deals
A multi-agent system where:
- Agent 1 continuously scrapes TripAdvisor for real-time prices (Apify)
- Agent 2 streams all data through a real-time pipeline (Redpanda)
- Agent 3 analyzes deals and predicts optimal booking times (StackAI)
- Agent 4 learns your preferences and sends perfectly timed emails (StackAI)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β VacationGenius System β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β Frontend (Next.js) - Developer 1 β
β ββ> User dashboard with watchlist management β
β ββ> Real-time agent activity logs (SSE) β
β ββ> Learning curve visualization β
β ββ> Deal cards with match scores β
β β
β Backend API (Express) - Developer 2 β
β ββ> REST API for frontend β
β ββ> Watchlist CRUD operations β
β ββ> User preference management β
β ββ> Agent coordination endpoints β
β β
β Scraping + Deal Analysis Agent (Node.js) - Developer 3 β
β ββ> Apify TripAdvisor scraper integration β
β ββ> Scheduled scraping every 2 hours β
β ββ> Deal quality scoring (0-100) β
β ββ> Price history tracking β
β ββ> Produce to Redpanda 'hotel-prices' & 'deal-analysis' β
β β
β Personalization + Email Agent (Node.js) - Developer 4 β
β ββ> Consume from Redpanda 'deal-analysis' β
β ββ> Match deals to user preferences β
β ββ> Learning engine (72% β 94% accuracy) β
β ββ> StackAI integration for predictions β
β ββ> Email sending via Resend API β
β β
β Redpanda (Streaming) - Shared Infrastructure β
β ββ> Topic 1: 'hotel-prices' (raw scraped data) β
β ββ> Topic 2: 'deal-analysis' (scored deals) β
β ββ> Topic 3: 'user-matches' (personalized matches) β
β ββ> Topic 4: 'email-queue' (outgoing emails) β
β β
β Database (PostgreSQL/Supabase) - Shared β
β ββ> Users & watchlists β
β ββ> Price history β
β ββ> User preferences & interactions β
β ββ> Learning metrics β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Next.js 14 - React framework with App Router
- TypeScript - Type safety
- Tailwind CSS - Styling
- NextAuth.js - Authentication
- Recharts - Data visualization
- Server-Sent Events - Real-time updates
- Express.js - REST API server
- Prisma - Database ORM
- PostgreSQL - Primary database
- JWT - Authentication tokens
- Zod - Schema validation
- Winston - Logging
- Apify - TripAdvisor scraping
- KafkaJS - Redpanda producer
- Node-cron - Scheduled tasks
- Winston - Logging
- KafkaJS - Redpanda consumer
- Resend - Email service
- StackAI - ML predictions
- Winston - Logging
- Redpanda - Kafka-compatible streaming
- Docker Compose - Local development
- PostgreSQL - Database
- Node.js 18+
- Docker & Docker Compose
- Git
git clone <repository-url>
cd vacation-genius
npm run install:all# Copy environment template
cp env.example .env
# Edit .env with your API keys
# Required: DATABASE_URL, APIFY_API_TOKEN, RESEND_API_KEY# Start PostgreSQL and Redpanda
npm run docker:up
# Wait for services to be healthy
docker-compose ps# Generate Prisma client
npm run db:generate
# Push schema to database
npm run db:push# Start all services
npm run dev
# Or start individually:
npm run dev:frontend # http://localhost:3000
npm run dev:backend # http://localhost:3001
npm run dev:scraper # Scraping agent
npm run dev:personalizer # Personalization agentvacation-genius/
βββ frontend/ # Next.js frontend (Developer 1)
β βββ src/
β β βββ app/ # App Router pages
β β βββ components/ # React components
β β βββ lib/ # Utilities
β βββ package.json
β βββ tailwind.config.js
βββ backend/ # Express API (Developer 2)
β βββ src/
β β βββ routes/ # API routes
β β βββ middleware/ # Auth, validation
β β βββ services/ # Business logic
β βββ prisma/
β β βββ schema.prisma # Database schema
β βββ package.json
βββ agents/
β βββ scraper-analyzer/ # Scraping agent (Developer 3)
β β βββ src/
β β β βββ services/ # Apify, Redpanda
β β β βββ index.ts # Main agent loop
β β βββ package.json
β βββ personalization-email/ # Personalization agent (Developer 4)
β βββ src/
β β βββ services/ # Email, ML
β β βββ index.ts # Main agent loop
β βββ package.json
βββ docker-compose.yml # Local infrastructure
βββ package.json # Root workspace config
βββ README.md
Responsibilities:
- User dashboard with watchlist management
- Real-time agent activity logs (SSE)
- Learning curve visualization
- Deal cards with match scores
- Authentication and user management
Key Files:
frontend/src/app/page.tsx- Landing pagefrontend/src/app/dashboard/- User dashboardfrontend/src/components/- React components
Responsibilities:
- REST API for frontend
- Watchlist CRUD operations
- User preference management
- Agent coordination endpoints
- Database schema and migrations
Key Files:
backend/src/routes/- API endpointsbackend/prisma/schema.prisma- Database schemabackend/src/middleware/- Authentication
Responsibilities:
- Apify TripAdvisor scraper integration
- Scheduled scraping every 2 hours
- Deal quality scoring (0-100)
- Price history tracking
- Redpanda producer
Key Files:
agents/scraper-analyzer/src/index.ts- Main agentagents/scraper-analyzer/src/services/- Apify, Redpanda
Responsibilities:
- Redpanda consumer for deal analysis
- Match deals to user preferences
- Learning engine (72% β 94% accuracy)
- StackAI integration for predictions
- Email sending via Resend
Key Files:
agents/personalization-email/src/index.ts- Main agentagents/personalization-email/src/services/- Email, ML
- Sign up at apify.com
- Get API token from account settings
- Add to
APIFY_API_TOKENin.env
- Sign up at resend.com
- Get API key from dashboard
- Add to
RESEND_API_KEYin.env
- Sign up at stack-ai.com
- Create project and get API key
- Add to
STACKAI_API_KEYin.env
User Sets Watchlist β Backend API β Database
β
Scraping Agent reads watchlist every 2 hours
β
Apify scrapes TripAdvisor
β
Redpanda 'hotel-prices' topic
β
Deal Analysis (scoring + filtering)
β
Redpanda 'deal-analysis' topic
β
Personalization Agent (matching + learning)
β
Redpanda 'user-matches' topic
β
Email Agent β Send via Resend
β
User receives email & clicks
β
Feedback loop β Update learning
- β Agents run continuously in background (visible dashboard logs)
- β Real-time price drop detected and email sent in < 60 seconds
- β User preferences learned from 3+ interactions
- β All 3 sponsor tools (Apify, Redpanda, StackAI) clearly demonstrated
- β System handles 100+ hotels per destination without lag
- β Learning curve visualization shows improvement over time
- β 3-minute demo runs flawlessly with live streaming data
npm run devnpm run build
npm startdocker-compose -f docker-compose.prod.yml up -d- Each developer works on their assigned component
- Use feature branches for development
- Test locally with
npm run dev - Submit PR for review
- Deploy to staging for integration testing
MIT License - Built for the Future of Agents Hackathon
- Autonomy (20%): Agents run continuously, make decisions, send emails without manual intervention
- Real-World Value (20%): Saves users $500-2000 per trip, reduces research time to zero
- Tool Integration (20%): Deep integration with Apify, Redpanda, and StackAI
- Technical Implementation (20%): Real streaming architecture with multi-agent coordination
- Presentation (20%): Live demo with real-time data processing
Built with β€οΈ for the Future of Agents Hackathon
Powered by Apify, Redpanda, and StackAI