An advanced full-stack application that leverages RAG (Retrieval-Augmented Generation) and Vector Databases to provide personalized, data-driven career roadmaps for tech professionals.
The current job search process is generic and frustrating. Professionals struggle to:
- Identify exact skill gaps between their current role and dream role
- Find personalized learning paths based on real market data
- Understand which skills are actually in-demand in the job market
- Get actionable, step-by-step guidance for career transitions
Skill Coach solves these problems by:
- Data-Driven Analysis: Analyzes real job postings (scraped or mocked) to identify in-demand skills
- Vector Search: Uses pgvector for semantic similarity matching between your skills and job requirements
- AI-Powered Roadmaps: Leverages Google's Gemini API to generate personalized, step-by-step learning paths
- RAG Architecture: Combines vector database retrieval with LLM generation for contextually relevant recommendations
User Input โ Vector Embedding โ Database Query โ Skill Gap Analysis โ LLM Generation โ Personalized Roadmap
- User provides current skills and target role
- System converts skills to vector embeddings
- Vector database finds similar job postings using cosine similarity
- Identifies skill gaps by comparing user skills vs. job requirements
- Gemini API generates detailed learning roadmap based on gaps
- Returns actionable, step-by-step path with resources and timelines
| Component | Technology | Why It's In-Demand |
|---|---|---|
| Frontend | Next.js 14 (React) + TypeScript + Tailwind CSS | Industry standard for performance, SEO, and modern UI. App Router architecture. |
| Backend | Python (FastAPI) | High-performance, async-first framework. Perfect for ML/AI integration. |
| Database | PostgreSQL with pgvector | Robust relational DB + advanced vector search for RAG. |
| AI/ML | Google Gemini API | State-of-the-art LLM for intelligent content generation. |
| Embeddings | Sentence Transformers | Open-source model for textโvector conversion. |
| State Management | TanStack Query (React Query) | Modern server-state management for React. |
| Styling | Tailwind CSS | Utility-first CSS for rapid UI development. |
- โ Personalized Career Roadmaps - Input your skills and get custom learning paths
- โ Job Matching - Find jobs that match your skillset with similarity scores
- โ Skill Gap Analysis - Identify exactly what you need to learn
- โ Resource Recommendations - Get curated learning materials for each step
- โ Timeline Estimates - Realistic timeframes for career transitions
- โ Confidence Scores - Know how ready you are for your target role
- โ Vector Search - Semantic similarity using pgvector and cosine distance
- โ RAG Pipeline - Combines retrieval and generation for context-aware responses
- โ Async Operations - Fast, non-blocking API with FastAPI
- โ Type Safety - Full TypeScript on frontend, Pydantic on backend
- โ Modern Architecture - App Router, Server Components, Edge Runtime ready
skill-coach/
โโโ backend/ # FastAPI Backend
โ โโโ app/
โ โ โโโ api/
โ โ โ โโโ routes/ # API endpoints
โ โ โ โ โโโ skills.py
โ โ โ โ โโโ jobs.py
โ โ โ โ โโโ roadmap.py
โ โ โ โโโ schemas.py # Pydantic models
โ โ โโโ core/
โ โ โ โโโ config.py # Configuration
โ โ โโโ db/
โ โ โ โโโ database.py # DB connection
โ โ โ โโโ models.py # SQLAlchemy models
โ โ โ โโโ init_db.py # Database seeding
โ โ โโโ services/
โ โ โโโ embedding_service.py # Vector embeddings
โ โ โโโ gemini_service.py # Gemini API
โ โโโ main.py # FastAPI app
โ โโโ requirements.txt
โ โโโ .env.example
โ
โโโ frontend/ # Next.js Frontend
โโโ src/
โ โโโ app/
โ โ โโโ layout.tsx # Root layout
โ โ โโโ page.tsx # Home page
โ โ โโโ globals.css # Global styles
โ โโโ components/
โ โ โโโ ui/ # Reusable UI components
โ โ โโโ providers.tsx # React Query provider
โ โโโ lib/
โ โโโ api.ts # API client
โ โโโ utils.ts # Utilities
โโโ package.json
โโโ .env.local
- Python 3.10+
- Node.js 18+
- PostgreSQL 14+ with pgvector extension
- Google Gemini API Key (Get one here)
- Navigate to backend directory
cd backend- Create virtual environment
python -m venv venv- Activate virtual environment
Windows (PowerShell):
.\venv\Scripts\Activate.ps1macOS/Linux:
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- Configure environment
cp .env.example .envEdit .env with your settings:
DATABASE_URL=postgresql://postgres:password@localhost:5432/skill_coach
GEMINI_API_KEY=your_actual_api_key_here
REDIS_URL=redis://localhost:6379/0- Setup PostgreSQL with pgvector
-- Connect to PostgreSQL
psql -U postgres
-- Create database
CREATE DATABASE skill_coach;
-- Connect to the database
\c skill_coach
-- Enable pgvector extension
CREATE EXTENSION vector;- Initialize database and seed data
python -m app.db.init_db- Run the API
python main.pyAPI will be available at:
- API: http://localhost:8000
- Docs: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- Navigate to frontend directory
cd frontend- Install dependencies
npm install
# or
pnpm install- Configure environment
cp .env.local.example .env.localEdit .env.local:
NEXT_PUBLIC_API_URL=http://localhost:8000- Run the development server
npm run dev
# or
pnpm devFrontend will be available at: http://localhost:3000
- Visit http://localhost:3000
- Add your current skills (e.g., "Python", "JavaScript", "React")
- Enter your target role (e.g., "Senior AI Engineer")
- Optionally add target salary and experience
- Click "Generate Career Roadmap"
- Review your personalized learning path!
# Search skills using vector similarity
curl -X POST "http://localhost:8000/api/v1/skills/search" \
-H "Content-Type: application/json" \
-d '{"query": "machine learning", "limit": 10}'
# Get trending skills
curl "http://localhost:8000/api/v1/skills/trending/top?limit=10"# Match jobs to your skills
curl -X POST "http://localhost:8000/api/v1/jobs/match" \
-H "Content-Type: application/json" \
-d '{
"skills": ["Python", "FastAPI", "PostgreSQL"],
"limit": 10,
"min_salary": 120000
}'# Generate career roadmap
curl -X POST "http://localhost:8000/api/v1/roadmap/generate" \
-H "Content-Type: application/json" \
-d '{
"current_skills": ["Python", "JavaScript", "React"],
"target_role": "AI Engineer",
"target_salary": 180000,
"experience_years": 3
}'Clean, intuitive interface for entering your career goals.
Detailed, step-by-step learning path with resources and timelines.
Visual representation of what you need to learn.
- โ RAG (Retrieval-Augmented Generation) architecture
- โ Vector search with pgvector
- โ Semantic similarity using cosine distance
- โ Text embeddings with Sentence Transformers
- โ LLM integration (Gemini API)
- โ Complex data modeling with relationships
- โ High-performance async API design
- โ Type-safe Python with Pydantic
- โ Database migrations and seeding
- โ Error handling and retries
- โ CORS configuration
- โ API documentation (Swagger/ReDoc)
- โ Next.js 14 App Router
- โ Server Components
- โ Client Components for interactivity
- โ TypeScript for type safety
- โ TanStack Query for state management
- โ Tailwind CSS for styling
- โ Responsive design
- โ Loading states and error handling
- User authentication and profiles
- Save and track multiple roadmaps
- Progress tracking for learning steps
- Community-contributed resources
- Real-time job market data updates
- Skill endorsements and verification
- Integration with learning platforms (Coursera, Udemy, etc.)
- Mobile app (React Native)
- Email notifications for new opportunities
- Salary predictions based on skills
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this project for your portfolio!
Built as a portfolio project to demonstrate:
- Modern full-stack development
- AI/ML integration
- Vector databases and RAG architecture
- Production-ready code practices
- Google Gemini API for AI-powered content generation
- pgvector for vector database capabilities
- FastAPI for the amazing Python framework
- Next.js team for the best React framework
- Vercel for deployment platform
โญ If you found this project helpful, please give it a star!
๐ง Questions? Feel free to reach out or open an issue.