This project is an AI-powered HR Tech web application that simplifies the recruitment process. It allows HR professionals to upload CVs and Job Descriptions (JDs), automatically extract structured candidate data, and analyze compatibility between CVs and JDs using generative AI. The app uses FastAPI for the backend and React (with Vite and Tailwind) for the frontend.
- Upload CVs and extract structured candidate data using Gemini API.
- Upload Job Descriptions (JDs) and analyze compatibility with uploaded CVs.
- Generates:
- ATS Score (% match)
- Summary (experience and education match)
- Skill Analysis (matched, missing, bonus)
- Suggestions for improvement
- All documents are processed using base64-encoded PDF uploads sent to the LLM.
- Excel logs are updated and stored in Cloudflare R2 for tracking JD and CV metadata.
-
Frontend on Vercel:
https://quickcvfrontend-git-main-kev0-4s-projects.vercel.app/ -
Backend on Render:
https://quickcv.onrender.com
-
Navigate to the
/backenddirectory. -
Install dependencies:
pip install -r requirements.txt -
Create a
.envfile with the following format:R2_ACCESS_KEY_ID=<key> R2_SECRET_ACCESS_KEY=<key> R2_ENDPOINT_URL=<endpoint url for bucket> R2_BUCKET_NAME=<bucket name to store pdfs> GOOGLE_API_KEY=<gemini api key>
-
Start the development server:
uvicorn main:app
-
POST /api/get_details
→ Extract candidate details from a CV PDF -
POST /api/compare_cv_jd
→ Upload a CV and JD PDF and get a detailed compatibility analysis including:- ATS Score
- Skill Match (matched, missing, bonus)
- Summary & Improvement Suggestions
-
POST /api/upload_cv
→ Upload CV only to extract and log data
http://127.0.0.1:8000/api/get_detailshttp://127.0.0.1:8000/api/upload_cvhttp://127.0.0.1:8000/api/compare_cv_jdhttp://127.0.0.1:8000/docs
https://quickcv.onrender.com/api/get_detailshttps://quickcv.onrender.com/api/upload_cvhttps://quickcv.onrender.com/api/compare_cv_jdhttps://quickcv.onrender.com/docs
Tech Stack: FastAPI + Uvicorn
- Navigate to the
/HRwebappdirectory. - Install dependencies:
npm install - Update backend URLs in the following files:
App.jsxUploadButton.jsxdetails.jsxjdPage.jsx(for JD-CV compatibility analysis)
- Run the development server:
npm run dev
Frontend Stack: Vite + React + Tailwind CSS
- Cloudflare R2 stores uploaded PDF CVs and JDs.
- Excel (.xlsx) files in R2 log metadata and extracted details for both CVs and JDs.