An AI-powered assistant for recommending internships and job opportunities for students, designed to help users find the perfect internship or job placement.
- AI Chat Interface: Modern, responsive chat interface with real-time communication
- Job Scraping: Automated scraping of job offers from multiple sources (PWR, Nokia, SII)
- Location Services: GPS integration for location-aware responses
- Student-Focused: Specialized recommendations for student internships
- Real-time Updates: Live data scraping and vector search
- Modern UI/UX: Clean, aesthetic design with smooth animations
The project consists of three main components:
- API Server: FastAPI-based REST API
- AI Agent: LangChain-powered conversational AI
- Data Scraping: Automated job offer collection from multiple sources
- Vector Database: PostgreSQL with pgvector for semantic search
- Data Management: Efficient storage and retrieval of job offers
- Modern UI: React 18 with TypeScript and Tailwind CSS
- Responsive Design: Mobile-first approach with smooth animations
- Real-time Chat: WebSocket-like experience with streaming responses
- Audio Integration: Text-to-speech and voice input capabilities
- Toast Notifications: User-friendly feedback system
- Vector Storage: Semantic search capabilities
- Job Offers: Structured storage of scraped opportunities
- Metadata: Rich information about each job posting
- FastAPI: Modern Python web framework
- LangChain: AI agent framework
- PostgreSQL: Primary database
- pgvector: Vector similarity search
- Docker: Containerization
- React 18: UI framework
- TypeScript: Type safety
- Vite: Build tooling
- Tailwind CSS: Styling
- Axios: HTTP client
- Lucide React: Icons
- Docker and Docker Compose
- Node.js 18+ (for local development)
- Python 3.9+ (for local development)
Clone the repository:
git clone <repository-url>cd InternBot
Start with Docker Compose:
# Production setup docker-compose up --build # Development setup with hot reload docker-compose -f docker-compose.dev.yml up --build
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Database: localhost:5432
cd backend
pip install -e .
uvicorn intern_bot.api.api:app --reload --host 0.0.0.0 --port 8000cd frontend
npm install
npm run devInternBot/
├── backend/ # FastAPI backend
│ ├── src/intern_bot/
│ │ ├── agent/ # AI agent implementation
│ │ ├── api/ # API routes and models
│ │ ├── data_scraper/ # Web scraping modules
│ │ ├── data_manager/ # Database operations
│ │ └── settings/ # Configuration
│ ├── Dockerfile
│ └── pyproject.toml
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── views/ # Page components
│ │ ├── services/ # API services
│ │ └── lib/ # Utilities
│ ├── Dockerfile
│ └── package.json
├── postgres/ # Database schema
├── docker-compose.yml # Production setup
├── docker-compose.dev.yml # Development setup
└── README.md
- Frontend: Deploy to Vercel with automatic builds
- Backend: Deploy to Railway or Render
- Database: Use managed PostgreSQL with pgvector
- Frontend: Deploy to Netlify
- Backend: Deploy to DigitalOcean App Platform
- Database: Managed PostgreSQL droplet
- VPS: Deploy entire stack on a VPS
- Cloud: Use cloud providers (AWS, GCP, Azure)
- Orchestration: Docker Swarm or Kubernetes
DB_HOST=your-db-hostDB_PORT=5432DB_USER=postgresDB_PASSWORD=your-passwordDB_NAME=internbotVITE_BACKEND_URL=https://your-backend-url.comVITE_NODE_ENV=productionThe system scrapes job offers from:
- PWR (Politechnika Wrocławska): Academic job board
- Nokia: Corporate career portal
- SII: IT consulting company
POST /agent/invoke- Chat with AI agentPOST /agent/stream- Stream chat responsesPOST /scrape/data- Trigger data scraping
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.
For support and questions:
- Create an issue in the repository
- Check the documentation in each component's README
- Review the API documentation at
/docswhen running the backend
- Real-time notifications
- Advanced filtering and search
- User authentication and profiles
- Mobile app (React Native)
- Multi-language support
- Advanced analytics dashboard
- Integration with more job boards
- Machine learning for job matching