Guruji - live demo
Guruji is an AI-powered interview platform that automates the creation, scheduling, and execution of technical interviews. Leveraging modern web technologies and AI/voice services, Guruji offers a seamless experience for recruiters and candidates alike.
Guruji is still under active development. You might encounter some issues or ongoing UI changes. 💡 For bug reports or suggestions, please contact anoop@anoopvl.pro.
- Next.js 15 (App Router) — Server-side rendering, dynamic routes, API routes
- React — Client-side UI
- Tailwind CSS & ShadCN UI — Utility-first styling and component library
- Supabase — Authentication, PostgreSQL database, CRUD operations
- Vapi.ai — AI voice assistant (interview conductor)
- Lucide Icons & React-Icons — SVG iconography
- Framer Motion — Animations for smooth UI transitions
- Sonner — Toast notifications
- PNPM — Fast package management
- Docker — Containerization for consistent deployment
Official Docker Image: anoopvl/guruji-guruji on Docker Hub
- Open
https://guruji.anoopvl.pro - Click Sign in on the landing page
- Log in using Google or GitHub (via Supabase)
- Upon success, you're redirected to your Dashboard
From here, you can:
- Create new interviews (
/dashboard/create-interview) - View all interviews (
/all-interviews) - View scheduled interviews and feedback (
/scheduled-interviews)
Route: /dashboard/create-interview
- Step 1: Enter job details (title, description, duration)
- Step 2: AI generates questions.
- Step 3: Review and save questions — a unique Interview ID and URL are created
Route: /all-interviews
- View all created interviews
- Copy and share interview links
Route: /scheduled-interviews
- View completed interviews along with feedback
- Delete interviews via smooth UI interactions
Route: /interview/[id]/start
- Vapi.ai conducts the voice interview session
- The AI asks questions, transcribes answers, and ends the session
- Feedback is generated and saved
- Redirects user to the completed screen
Route: /interview/[id]/completed
- Displays summary and analysis
- Guides you on potential next steps
guruji/
├─ app/
│ ├─ (main)/dashboard/ # Protected dashboard routes
│ │ ├─ create-interview/ # Interview creation flow
│ │ ├─ _components/ # Shared UI components
│ │ └─ page.jsx # Dashboard landing
│ ├─ (main)/all-interviews/ # List all interviews
│ ├─ (main)/scheduled-interviews/ # Interviews with feedback
│ ├─ (main)/layout.js # Nested layouts + provider
│ ├─ auth/page.jsx # OAuth login page
│ ├─ interview/[id]/start/ # Live interview session
│ ├─ interview/[id]/completed/ # Interview completed screen
│ └─ provider.jsx # Supabase auth wrapper & context
├─ components/ # Shared Shadcn UI components
├─ services/ # API clients (Supabase, Constants)
├─ public/ # Static assets
├─ styles/ # Global CSS and Tailwind config
├─ Dockerfile.dev/ # Docker configuration files
├─ Dockerfile # Docker image configuration
├─ docker-compose.yml # Multi-container setup
├─ docker-compose.dev.yml # Multi-container setup for hotreadload
├─ .dockerignore # Docker ignore patterns
├─ next.config.mjs # Next.js config
└─ package.json # Scripts & dependencies
- Clone the repo
git clone https://github.com/AnoopVL/gurujii.git
cd gurujii- Install dependencies
pnpm install- Configure environment variables
Create a
.env.localfile:
NEXT_PUBLIC_SITE_URL=http://localhost:3000
NEXT_PUBLIC_VAPI_PUBLIC_KEY=<your_vapi_key>
NEXT_PUBLIC_SUPABASE_URL=<your_supabase_url>
NEXT_PUBLIC_SUPABASE_KEY=<your_supabase_anon_key>- Run development server
pnpm run dev- Open in browser
Go to
http://localhost:3000
- Docker installed on your machine
- Docker Compose (usually comes with Docker Desktop)
- Clone the repo
git clone https://github.com/AnoopVL/gurujii.git
cd gurujii- Configure environment variables
Create a
.env.localfile:
NEXT_PUBLIC_SUPABASE_URL=your_superbase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
OPENROUTER_API_KEY=your_router_key
NEXT_PUBLIC_VAPI_PUBLIC_KEY=your_vapi_key
NEXT_PUBLIC_HOST_URL=http://localhost:3000/interview
NEXT_PUBLIC_SITE_URL=http://localhost:3000
- Build and run with Docker Compose (recommended)
- For local development:
docker-compose -f docker-compose.dev.yml up --build- For local working:
export $(grep -v '^#' .env.local | xargs)
docker-compose -f docker-compose.yml up --build -d- Access the application
Open
http://localhost:3000in your browser
Stop all containers:
docker-compose downView logs:
docker-compose logs -f- Multi-stage build for optimized image size
- Node.js 18 Alpine base image
- Automatic dependency caching
- Production-ready configuration
- Health checks included
- app: Main Next.js application
- nginx (optional): Reverse proxy for production
- Volume mounting for development
- Environment variable management
- Hot reload support in development mode
For more screenshots checkout (
/screenshots) folder
- Build the app
pnpm run build- Start in production
pnpm run startdocker-compose -f docker-compose.prod.yml up -d1. Docker Hub + Cloud Provider:
# Build and push to Docker Hub
docker build -t yourusername/gurujii:latest .
docker push yourusername/gurujii:latest
# Deploy on any cloud provider supporting Docker2. Container Registry:
- AWS ECR + ECS/Fargate
- Google Cloud Run
- Azure Container Instances
- DigitalOcean App Platform
3. Platform-as-a-Service:
- Vercel (recommended for Next.js)
- Netlify
- Railway
- Render
NEXT_PUBLIC_SITE_URL=https://your-domain.com
NEXT_PUBLIC_VAPI_PUBLIC_KEY=<your_production_vapi_key>
NEXT_PUBLIC_SUPABASE_URL=<your_production_supabase_url>
NEXT_PUBLIC_SUPABASE_KEY=<your_production_supabase_key>
NODE_ENV=production- Start development environment:
docker-compose up- Install new dependencies:
docker-compose exec app pnpm add <package-name>- Run commands inside container:
docker-compose exec app pnpm run <script>- Access container shell:
docker-compose exec app shView application logs:
docker-compose logs appMonitor container resources:
docker statsPull requests and issues are welcome. Open for enhancements and feature requests.
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/gurujii.git - Create a feature branch:
git checkout -b feature/amazing-feature - Set up development environment:
- Traditional: Follow Option 1 in Installation & Setup
- Docker: Use
docker-compose upfor consistent environment
- Make your changes and test thoroughly
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js for the amazing React framework
- Supabase for backend services
- Vapi.ai for AI voice capabilities
- Tailwind CSS for styling
- ShadCN UI for beautiful components
Made with ❤️ by AnoopVL





