ResumeMatch is a backend service that parses PDF resumes and compares them against job descriptions to identify skill matches, gaps, and weighted relevance scores using rule-based NLP and configurable scoring logic.
-
Backend API (FastAPI)
http://172.236.173.47:8000/docs -
Frontend UI (Streamlit - demo interface)
http://172.236.173.47:8501
- PDF resume ingestion and text extraction with layout-aware parsing
- Skill extraction and normalization using deterministic matching and synonym handling
- Raw and weighted skill match scoring with configurable importance weights
- Gap analysis highlighting missing or weakly matched skills
- RESTful API built with FastAPI for programmatic access
- Lightweight Streamlit UI for manual testing and visualization
- Extract structured text from resume PDFs
- Normalize resume and job description content (case, spacing, aliases)
- Identify skills using rule-based matching and canonical skill mapping
- Compute raw match ratios and weighted relevance scores
- Return structured match results via REST APIs
- Python3
- FastAPI
- Streamlit
- PyMuPDF
- Regex
- clone the repository
git clone https://github.com/yshvrd/ResumeMatch
cd ResumeMatch- Build and start all services
docker compose up --build- Access the application
- Frontend (Streamlit UI): http://localhost:8501
- Backend (FastAPI docs): http://localhost:8000/docs
Base URL - http://172.236.173.47:8000
-
/docs : Interactive FastAPI documentation
-
/health : Health check endpoint to verify API status
-
/compare : Resume–Job Description comparison endpoint (
⚠️ POST-only, will return 405 Method Not Allowed if accessed via browser) -
Optional : test '/compare' via curl
curl -X POST http://localhost:8000/compare \
-F "resume=@sample_resume.pdf" \
-F "jd_text=Paste job description text here"



