production app : live https://syncmatrix.vercel.app
A smart, rule-based web application that dramatically simplifies the recruitment process by automatically parsing candidate resumes, extracting core professional attributes, and scoring them directly against specific Job Description (JD) requirements.
Built strictly with robust regex rules and structural parsing (no external LLMs or black-box AI dependencies), this system delivers fully deterministic, fast, and fully transparent matching results.
- Advanced Resume Parsing: Accurately extracts precise total experience metrics (years & months) along with core competencies directly from raw textual resume data.
- Intelligent JD Extraction: Pulls precise Job Titles, Required Skills, Preferred Skills from Job Descriptions avoiding unrelated paragraphs.
- Mathematical Eligibility Checking: Calculates true candidate experience normalized to total months and cross-references them against Minimum Required Experience parameters of the target JD.
- Sample JD Engine: Contains a robust, cyclable library of 15 fully-crafted Sample Job Descriptions built directly into the UI for rapid testing and demonstration.
- Deterministic Scoring Engine: Provides absolute matching percentages between the user's skillset and the explicitly stated requirement of the Job Description.
- Frontend Framework: React 18 + Vite
- Language: TypeScript
- Styling & UI: Tailwind CSS, Radix UI Primitives
- Icons: Lucide React
To run this project locally, ensure you have Node.js installed on your machine.
-
Clone the repository ```bash git clone https://github.com/monasri001/Resume-Parsing-and-Job-Matching-System.git cd Resume-Parsing-and-Job-Matching-System ```
-
Install dependencies ```bash npm install ```
-
Start the development server ```bash npm run dev ```
-
Access the application Navigate to `http://localhost:8080\` (or the port specified by Vite) in your local web browser.
- `jdParser.ts`: Responsible for analyzing JD text using complex Regex rulesets designed to reliably extract exact Job Titles, Minimum Experience Requirements, and Categorized Skills despite highly variant input formats.
- `resumeParser.ts`: Isolates the "Work Experience" section of uploaded resumes, parses date string ranges (e.g.,
Jan 2026 - Present), and aggressively calculates the exact candidate's overall lifespan in the industry utilizing strict Number standards. - `skillDictionary.ts`: Maintains an active hardcoded token list of current technologies, platforms, soft skills, and programming languages to aggressively identify within both inputs.
- `matchingService.ts`: Cross-references the normalized Candidate object with the JD object, enforcing eligibility blocking if the candidate's exact computed months falls beneath the required JD metric, generating an absolute
MatchResult.