An AI-powered recruitment tool that parses resumes, analyzes job descriptions, ranks candidates, and generates tailored CVs β built with FastAPI, OpenAI, and FAISS.
Recruiters spend hours manually screening resumes against job descriptions. Resume-JD-CV Platform automates that pipeline end-to-end:
- Upload a resume (PDF/DOCX) β AI extracts and structures the candidate's profile.
- Upload or paste a Job Description β the system analyzes core requirements.
- Candidates are embedded and ranked against the JD using FAISS vector search.
- Recruiters can compare candidates side-by-side and auto-generate a tailored CV in DOCX format matched to the job.
| Feature | Description |
|---|---|
| π§ AI Resume Parsing | Extracts text from PDF/DOCX and uses OpenAI to structure candidate profiles (skills, experience, education). |
| π JD Analysis | Parses uploaded or pasted job descriptions to identify core requirements and keywords. |
| π Semantic Candidate Ranking | Uses embeddings + FAISS to rank candidates by relevance to a given JD. |
| βοΈ Candidate Comparison | Side-by-side comparison view for shortlisting. |
| π Tailored CV Generation | Auto-generates a DOCX CV customized to match a specific job description. |
| ποΈ Duplicate Detection | Flags duplicate or near-duplicate resumes in the pipeline. |
ββββββββββββββββ ββββββββββββββββ βββββββββββββββββββββ
β Frontend β ββββΆ β FastAPI β ββββΆ β OpenAI API β
β (HTML/CSS/JS) β β (main.py) β β (parsing, CV gen) β
ββββββββββββββββ ββββββββ¬ββββββββ βββββββββββββββββββββ
β
ββββββββββββββΌββββββββββββββ
βΌ βΌ βΌ
βββββββββββββ βββββββββββββ ββββββββββββββ
β services/ β β embeddings/β β db.py β
β (business β β (FAISS + β β (SQLAlchemyβ
β logic) β β vectors) β β models) β
βββββββββββββ βββββββββββββ ββββββββββββββ
- Backend: FastAPI, Python 3.8+
- AI/ML: OpenAI API (GPT-4o), FAISS for vector similarity search
- Frontend: HTML, CSS, JavaScript (vanilla)
- Database: SQLAlchemy (SQLite by default, MySQL optional)
- Document Handling: DOCX/PDF parsing and generation
- Deployment: Docker-ready
.
βββ main.py # FastAPI app entry point β routes & core API logic
βββ db.py # Database configuration and SQLAlchemy models
βββ build_index.py # Builds the FAISS vector index from resume embeddings
βββ requirements.txt # Python dependencies
βββ Dockerfile # Container build configuration
βββ frontend/ # Static frontend (index.html, styles.css, app.js)
βββ services/ # Business logic: AI integration, doc processing, vector search
βββ embeddings/ # Embedding generation & FAISS index storage
βββ test_cv_generation.py # CV generation tests
βββ test_embedding.py # Embedding pipeline tests
βββ test_matcher.py # Candidate-JD matching tests
βββ test_parser.py # Resume parsing tests
βββ test_search.py # Vector search tests
βββ profiling_log.txt # Performance profiling notes
- Python 3.8+
- An OpenAI API key for AI parsing and CV generation
- (Optional) MySQL or another relational database β falls back to SQLite by default
git clone https://github.com/RAYhaaNJR10/RESUME--JD--CV.git
cd RESUME--JD--CVpython -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activatepip install -r requirements.txtCreate a .env file in the root directory:
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-4opython build_index.pyuvicorn main:app --reload- π₯οΈ Frontend Dashboard:
http://127.0.0.1:8000/dashboard - π API Docs (Swagger UI):
http://127.0.0.1:8000/docs
docker build -t resume-jd-cv .
docker run -p 8000:8000 --env-file .env resume-jd-cvpython test_cv_generation.py
python test_embedding.py
python test_matcher.py
python test_parser.py
python test_search.py- Add authentication for multi-recruiter access
- Support batch resume uploads
- Export candidate rankings as CSV/PDF reports
- Add support for additional file formats (RTF, plain text)
Contributions, issues, and feature requests are welcome. Feel free to open a PR or issue.
This project is licensed under the MIT License.
Rayhaan β AI/ML student & Data Science Intern, building tools at the intersection of AI and recruitment tech.