Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

36 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Placify - AI-Driven Placement Readiness Platform

Placify is an intelligent career readiness platform designed to bridge the gap between students and their dream jobs. By leveraging Generative AI (Gemini, Groq, Ollama), Placify analyzes student profiles, resumes, and assessment responses to provide personalized career guidance, job recommendations, and actionable improvement plans.

๐Ÿš€ Key Features

  • Multi-Mode Assessment:
    • Fast Mode: Quick 10-question MCQ baseline check.
    • Balanced Mode: A mix of 20 MCQs and short answers for deeper insight.
    • Detailed Mode: Comprehensive analysis combining 30+ questions with resume parsing.
  • Resume Analysis (RAG-Powered): Upload your PDF resume to get a resume-only report or combine it with assessments for hyper-personalized results.
  • AI-Driven Insights: Utilizes Google Gemini and Groq to generate:
    • Readiness Scores (0-100%).
    • Key Strengths & Improvement Gaps.
    • Tailored Action Plans.
    • Job Recommendations with personalized cold email drafts.
  • Hybrid Job Matching Pipeline:
    • Phase 1: Hard filter (location, CTC, work mode)
    • Phase 2: TF-IDF + Cosine similarity (top 15 candidates)
    • Phase 3: LLM re-ranking (top 5 from 15)
    • Phase 4: Full AI analysis with matched companies
  • Professional Outputs:
    • PDF Reports: Downloadable, well-formatted career reports stored in database.
    • Email Drafting: Auto-generated cold email drafts for recruiters.
  • Full-Stack Docker Deployment: Nginx + FastAPI + PostgreSQL, production-ready.
  • Modern UI: Clean, responsive interface with a professional LinkedIn-inspired design, custom system fonts, and skeleton loading states.
  • Privacy-First Approach: Mandatory consent for resume processing, ensuring user data control.

๐Ÿ› ๏ธ Tech Stack

Layer Technology
Backend Python 3.11, FastAPI, Uvicorn, SQLAlchemy, scikit-learn
Database PostgreSQL 15 (Docker)
AI Engine Gemini 2.5-flash โ†’ Groq llama-3.3-70b โ†’ Ollama gemma3:4b
Frontend HTML5, Vanilla CSS, JavaScript (ES6+)
PDF Generation FPDF
Reverse Proxy Nginx Alpine
CI/CD GitHub Actions

๐Ÿ›ก๏ธ AI Resilience System

Placify ensures zero downtime for AI features using a robust fallback mechanism:

Request โ†’ [Gemini] โ†’ 429/Error โ†’ [Groq] โ†’ Error โ†’ [Ollama (Local)]

Failed providers are automatically skipped in subsequent API calls within the same request.

๐Ÿ“‚ Project Structure

Placify/
โ”œโ”€โ”€ .github/
โ”‚   โ””โ”€โ”€ workflows/                  # CI/CD pipelines
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ routes/
โ”‚   โ”‚   โ”œโ”€โ”€ api.py                  # API endpoints
โ”‚   โ”‚   โ””โ”€โ”€ views.py                # Frontend routes
โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ”œโ”€โ”€ ai_service.py           # AI analysis (Gemini/Groq/Ollama)
โ”‚   โ”‚   โ”œโ”€โ”€ pdf_service.py          # PDF report generation
โ”‚   โ”‚   โ”œโ”€โ”€ resume_service.py       # Resume parsing
โ”‚   โ”‚   โ””โ”€โ”€ matching_service.py     # Job matching algorithm
โ”‚   โ”œโ”€โ”€ config.py                   # Configuration & environment
โ”‚   โ”œโ”€โ”€ database.py                 # SQLAlchemy setup & seeding
โ”‚   โ”œโ”€โ”€ db_models.py                # ORM table definitions
โ”‚   โ”œโ”€โ”€ models.py                   # Pydantic validation schemas
โ”‚   โ””โ”€โ”€ quiz.py                     # Assessment question bank
โ”œโ”€โ”€ static/
โ”‚   โ”œโ”€โ”€ style.css                   # Main stylesheet (v3.2)
โ”‚   โ””โ”€โ”€ script.js                   # Frontend JavaScript (v2.4)
โ”œโ”€โ”€ template/
โ”‚   โ”œโ”€โ”€ index.html                  # Main application page
โ”‚   โ”œโ”€โ”€ privacy-policy.html         # Privacy Policy page
โ”‚   โ””โ”€โ”€ terms.html                  # Terms & Conditions page
โ”œโ”€โ”€ image/
โ”‚   โ””โ”€โ”€ placify_logo.svg            # Unified vector logo
โ”œโ”€โ”€ web_data/
โ”‚   โ”œโ”€โ”€ analysis/                   # Stored analysis JSON files
โ”‚   โ”œโ”€โ”€ pdf/                        # Generated PDF reports
โ”‚   โ””โ”€โ”€ resume/                     # Uploaded resumes
โ”œโ”€โ”€ company_dataset/
โ”‚   โ””โ”€โ”€ companies.json              # 94+ company job listings
โ”œโ”€โ”€ nginx/
โ”‚   โ””โ”€โ”€ nginx.conf                  # Reverse proxy configuration
โ”œโ”€โ”€ test/
โ”‚   โ”œโ”€โ”€ test_gemini.py              # Gemini API tests
โ”‚   โ””โ”€โ”€ test_groq.py                # Groq API tests
โ”œโ”€โ”€ docs/                           # Additional documentation
โ”œโ”€โ”€ main.py                         # Application entry point
โ”œโ”€โ”€ Dockerfile                      # Backend container definition
โ”œโ”€โ”€ docker-compose.yml              # Full stack orchestration
โ”œโ”€โ”€ .env.example                    # Environment variables template
โ”œโ”€โ”€ .dockerignore                   # Docker build exclusions
โ”œโ”€โ”€ .gitignore                      # Git ignore rules
โ”œโ”€โ”€ requirements.txt                # Python dependencies
โ”œโ”€โ”€ README.md                       # Project overview (this file)
โ”œโ”€โ”€ LICENSE                         # MIT License
โ””โ”€โ”€ quick_demo.ipynb                # Demo notebook

โšก Getting Started

Quick Start (Docker โ€” Recommended)

# 1. Clone the repository
git clone https://github.com/rohit483/Placify.git
cd Placify

# 2. Set up environment variables
cp .env.example venv/.env
# Edit venv/.env with your API keys

# 3. Start everything
docker compose up --build

# 4. Open browser
http://localhost

Environment Variables

Create venv/.env:

# Required
GEMINI_API_KEY=your_gemini_key_here
GROQ_API_KEY=your_groq_key_here
POSTGRES_USER=username
POSTGRES_PASSWORD=your_password
POSTGRES_DB=placify_db
DATABASE_URL=postgresql://username:your_password@db:5432/placify_db

# Optional (for production)
SKIP_SEED=false

Get API keys:

Local Development (Without Docker)

# 1. Create virtual environment
python -m venv venv
.\venv\Scripts\activate  # Windows
source venv/bin/activate  # Mac/Linux

# 2. Install dependencies
pip install -r requirements.txt

# 3. Set up PostgreSQL locally and configure DATABASE_URL

# 4. Run
python main.py

Optional: Ollama (Local AI Fallback)

# Install Ollama from https://ollama.com/
ollama pull gemma3:4b
ollama serve

๐Ÿ“– Usage

  1. Open your browser and visit http://localhost.
  2. Select a Mode: Choose Fast, Balanced, or Detailed assessment.
  3. Upload Resume: Drag and drop your PDF resume for enhanced analysis.
  4. Submit: Answer the questions and submit.
  5. View Report: See your readiness score, strengths, and recommended jobs instantly.
  6. Download PDF: Click "Download PDF Report" to save a copy.
  7. Draft Emails: Select a recommended job to auto-generate a recruiter email.

๐Ÿณ Docker Services

Service Port Description
placify_nginx 80 Reverse proxy, serves static files
placify_backend 8000 FastAPI application
placify_db 5432 PostgreSQL database

Useful Commands

# Start
docker compose up --build

# Stop (keeps data)
docker compose down

# Stop and delete all data (fresh start)
docker compose down -v

# View logs
docker compose logs -f web

# Access database
docker exec -it placify_db psql -U $POSTGRES_USER -d placify_db

๐Ÿ“š Developer Documentation

See API_GUIDE.md and DEV_GUIDE.md for complete documentation:

  • Database schema and seeding
  • API reference (all endpoints)
  • Security & validation details
  • Deployment checklist
  • Troubleshooting guide

๐Ÿ”ฎ Future Scope

  • Advanced RAG: Implement vector embeddings (ChromaDB/FAISS) for semantic resume-to-job matching.
  • Pan-India Expansion: Expand the company dataset beyond Central India to all major tech hubs.
  • Admin Dashboard: Web UI for managing companies without API calls.
  • User Accounts: Authentication and assessment history tracking.

๐Ÿค Contributing

Contributions are welcome! Please fork the repository and submit a Pull Request.

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add some AmazingFeature').
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

๐Ÿ“„ License

Distributed under the MIT License. See LICENSE for more information.


Built with โค๏ธ by Rohit