Skip to content

tisha-varma/Career-Copilot-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Python FastAPI LLaMA Gemini

πŸš€ Career Copilot AI

🌐 Hosted Application: https://career-copilot-ai-xlbe.onrender.com/

An Intelligent AI-Powered Career Guidance Platform
Transform your job search with advanced resume analysis, personalized learning roadmaps, and AI-generated career assets. Vid Link: https://drive.google.com/file/d/1V2kW5XIy1OHB-HbXajX1bebIdqk67-Wn/view?usp=sharing

Features β€’ Architecture β€’ Tech Stack β€’ Quick Start β€’ Demo β€’ Deployment


🎯 Problem Statement

Job seekers often struggle with:

  • Understanding how well their resume matches target roles
  • Identifying skill gaps and creating effective learning plans
  • Writing compelling, personalized cover letters
  • Preparing for role-specific technical interviews
  • Efficiently searching across multiple job platforms

Career Copilot AI solves these challenges using a multi-agent AI system that provides comprehensive career guidance in one unified platform.


✨ Key Features

πŸ“Š Intelligent Resume Analysis

  • Upload PDF resumes with automatic text extraction using pdfplumber
  • 4-step agentic analysis workflow powered by Google Gemini:
    1. Resume Understanding - Extracts skills, education, experience
    2. Role Fit Analysis - Calculates match score against 8 target roles
    3. Learning Roadmap - Generates prioritized skill development plan
    4. Reflection - Validates analysis completeness

βœ‰οΈ AI Cover Letter Generator

  • Generates personalized, professional cover letters using LLaMA 3.1 (via Groq)
  • Leverages BGE Embeddings + ChromaDB for semantic resume understanding
  • Extracts and highlights specific projects, technologies, and achievements
  • Download as professionally formatted PDF using ReportLab

🎀 Interview Preparation

  • Role-specific technical and behavioral questions for 8 career paths
  • LLM-powered personalized questions based on YOUR resume
  • Difficulty levels (Easy/Medium/Hard) with expert tips
  • STAR method guidance for behavioral responses

πŸ” Multi-Platform Job Search

  • Direct links to 5 major job platforms (LinkedIn, Indeed, Glassdoor, Google Jobs, Wellfound)
  • Pre-configured search queries based on your target role
  • Role-specific job search tips and strategies

πŸ“ˆ Google Sheets Export

  • One-click export of analysis to Google Sheets via OAuth 2.0
  • Organized tabs: Summary, Skills Gap, Learning Roadmap
  • Perfect for tracking progress and sharing with mentors

🎬 YouTube Learning Resources

  • Curated video recommendations based on identified skill gaps
  • Links to top tech learning channels
  • Personalized learning content suggestions

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                              Frontend Layer                              β”‚
β”‚                    HTML/CSS (Tailwind) + Jinja2 Templates                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                     β”‚
                                     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           FastAPI Backend                                β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚   /analyze   β”‚ β”‚ /cover-letterβ”‚ β”‚  /interview  β”‚ β”‚    /jobs     β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                     β”‚
                                     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          AI/ML Processing Layer                          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   Google Gemini    β”‚  β”‚   LLaMA 3.1 (Groq) β”‚  β”‚  BGE Embeddings  β”‚  β”‚
β”‚  β”‚   (Analysis Agent) β”‚  β”‚  (Cover Letters)   β”‚  β”‚   + ChromaDB     β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                     β”‚
                                     β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                          Integration Layer                               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚ Google Sheets   β”‚  β”‚  PDF Generation β”‚  β”‚   Resume Extraction     β”‚  β”‚
β”‚  β”‚ (OAuth 2.0)     β”‚  β”‚   (ReportLab)   β”‚  β”‚    (pdfplumber)         β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Agentic Workflow

The resume analysis uses a multi-step agentic loop where each step builds on previous results:

Resume Upload β†’ Text Extraction β†’ Gemini Agent Loop
                                        β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β–Ό                               β–Ό                               β–Ό
  Step 1: Understand              Step 2: Analyze               Step 3: Plan
  Extract skills,                 Calculate role fit,           Generate learning
  experience, education           identify gaps                 roadmap
        β”‚                               β”‚                               β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                        β–Ό
                                 Step 4: Reflect
                                 Validate completeness,
                                 iterate if needed

πŸ› οΈ Tech Stack

Backend Framework

Technology Purpose
FastAPI High-performance async web framework
Uvicorn ASGI server with hot reload
Jinja2 Server-side templating

AI/ML Stack

Technology Purpose
Google Gemini 1.5 Primary analysis agent (4-step reasoning loop)
LLaMA 3.1 (Groq) Cover letter generation, interview questions
BGE Embeddings Semantic understanding of resume content
ChromaDB Vector store for similarity search
Sentence Transformers Local embedding generation

Document Processing

Technology Purpose
pdfplumber PDF text extraction
ReportLab PDF cover letter generation

Google Cloud Integration

Technology Purpose
Google Sheets API Export analysis data
OAuth 2.0 Secure authentication
Google Generative AI Gemini API access

Frontend

Technology Purpose
Tailwind CSS Modern, responsive styling
HTML5 Semantic markup
Vanilla JS Interactive components

πŸš€ Quick Start

Prerequisites

  • Python 3.10+ (recommended: 3.12)
  • pip package manager
  • API keys for Gemini and Groq (free tiers available)

1. Clone the Repository

git clone https://github.com/tisha-varma/Career-Copilot-AI.git
cd Career-Copilot-AI

2. Create Virtual Environment

# Windows
python -m venv .venv
.venv\Scripts\activate

# Linux/Mac
python -m venv .venv
source .venv/bin/activate

3. Install Dependencies

pip install -r requirements.txt

4. Set Environment Variables

# Windows PowerShell
$env:GEMINI_API_KEY = "your_gemini_api_key_here"
$env:GROQ_API_KEY = "your_groq_api_key_here"

# Linux/Mac
export GEMINI_API_KEY="your_gemini_api_key_here"
export GROQ_API_KEY="your_groq_api_key_here"
πŸ“Œ How to get API Keys (Click to expand)

Google Gemini API Key

  1. Go to Google AI Studio
  2. Sign in with your Google account
  3. Click "Create API Key"
  4. Copy and save the key

Groq API Key (for LLaMA 3.1)

  1. Go to Groq Console
  2. Create a free account
  3. Generate a new API key
  4. Copy and save the key

5. Run the Application

cd app
uvicorn main:app --reload

6. Open in Browser

Navigate to http://127.0.0.1:8000


πŸ“Έ Demo

Home Page

image

Analysis Dashboard

image image image

Job Opportunities

image

Cover Letter Generator

Input job details and receive an AI-crafted cover letter tailored to your experience. image image

Interview Prep

Practice with role-specific questions generated from YOUR resume. image


🎯 Supported Career Paths

Role Technical Focus
πŸ–₯️ Frontend Developer React, JavaScript, CSS, TypeScript
βš™οΈ Backend Developer Python, Java, APIs, Databases
πŸ”§ Full Stack Developer End-to-end web development
πŸ“Š Data Analyst SQL, Python, Visualization, Statistics
πŸ€– Machine Learning Engineer TensorFlow, PyTorch, MLOps
πŸš€ DevOps Engineer Docker, Kubernetes, CI/CD
πŸ“± Product Manager Strategy, Roadmapping, Agile
🎨 UX Designer Figma, User Research, Prototyping

🌐 Deployment

Deploy to Render (Recommended - Free Tier)

  1. Push your code to GitHub
  2. Go to render.com and create account
  3. Click New β†’ Web Service
  4. Connect your GitHub repository
  5. Configure:
    • Build Command: pip install -r requirements.txt
    • Start Command: cd app && uvicorn main:app --host 0.0.0.0 --port $PORT
  6. Add environment variables:
    • GEMINI_API_KEY
    • GROQ_API_KEY
  7. Click Deploy

Deploy with Docker

FROM python:3.12-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY app/ ./app/
WORKDIR /app/app

EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
docker build -t career-copilot .
docker run -p 8000:8000 \
  -e GEMINI_API_KEY=your_key \
  -e GROQ_API_KEY=your_key \
  career-copilot

πŸ“ Project Structure

Career-Copilot-AI/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ main.py              # FastAPI application & routes
β”‚   β”œβ”€β”€ agent.py             # Gemini agentic analysis loop
β”‚   β”œβ”€β”€ prompts.py           # LLM prompt templates
β”‚   β”œβ”€β”€ resume_parser.py     # PDF upload handling
β”‚   β”œβ”€β”€ resume_extractor.py  # Structured data extraction
β”‚   β”œβ”€β”€ llama_analyzer.py    # LLaMA + BGE + ChromaDB integration
β”‚   β”œβ”€β”€ cover_letter.py      # Cover letter generation
β”‚   β”œβ”€β”€ interview_prep.py    # Interview questions database
β”‚   β”œβ”€β”€ resume_analyzer.py   # LLM interview question generation
β”‚   β”œβ”€β”€ job_search.py        # Job platform URLs & tips
β”‚   β”œβ”€β”€ youtube_search.py    # Learning video recommendations
β”‚   β”œβ”€β”€ sheets_api.py        # Google Sheets OAuth & export
β”‚   β”œβ”€β”€ sheets_export.py     # TSV data formatting
β”‚   β”œβ”€β”€ pdf_generator.py     # Cover letter PDF creation
β”‚   β”œβ”€β”€ templates/           # Jinja2 HTML templates
β”‚   β”‚   β”œβ”€β”€ index.html       # Home page
β”‚   β”‚   β”œβ”€β”€ result.html      # Analysis results
β”‚   β”‚   β”œβ”€β”€ cover_letter.html
β”‚   β”‚   β”œβ”€β”€ interview.html
β”‚   β”‚   └── jobs.html
β”‚   └── static/              # CSS, JS, images
β”œβ”€β”€ requirements.txt         # Python dependencies
β”œβ”€β”€ render.yaml              # Render deployment config
β”œβ”€β”€ Procfile                 # Heroku/Render process file
└── README.md

πŸ”§ Configuration

Environment Variables

Variable Required Description
GEMINI_API_KEY Yes Google Gemini API key for resume analysis
GROQ_API_KEY Yes Groq API key for LLaMA 3.1 access
GOOGLE_CLIENT_ID Optional For Google Sheets export
GOOGLE_CLIENT_SECRET Optional For Google Sheets export

Demo Mode

If API keys are unavailable or quota is exceeded, the app automatically switches to demo mode with keyword-based analysis. This ensures the application remains functional for demonstration purposes.


🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ™ Acknowledgments

  • Google for Gemini AI and Google Cloud APIs
  • Meta for LLaMA 3.1 open-source model
  • Groq for lightning-fast LLaMA inference
  • Hugging Face for Sentence Transformers and BGE embeddings
  • ChromaDB team for the excellent vector database

Built with ❀️ for job seekers everywhere
Star ⭐ this repo if you find it helpful!

About

Career Copilot AI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors