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.
- 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.
| 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 |
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.
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# 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://localhostCreate 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=falseGet API keys:
- Gemini: Google AI Studio
- Groq: Groq Console
# 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# Install Ollama from https://ollama.com/
ollama pull gemma3:4b
ollama serve- Open your browser and visit
http://localhost. - Select a Mode: Choose Fast, Balanced, or Detailed assessment.
- Upload Resume: Drag and drop your PDF resume for enhanced analysis.
- Submit: Answer the questions and submit.
- View Report: See your readiness score, strengths, and recommended jobs instantly.
- Download PDF: Click "Download PDF Report" to save a copy.
- Draft Emails: Select a recommended job to auto-generate a recruiter email.
| Service | Port | Description |
|---|---|---|
placify_nginx |
80 | Reverse proxy, serves static files |
placify_backend |
8000 | FastAPI application |
placify_db |
5432 | PostgreSQL database |
# 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_dbSee 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
- 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.
Contributions are welcome! Please fork the repository and submit a Pull Request.
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your Changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for more information.
Built with โค๏ธ by Rohit