A full-stack job matching platform built with Flask backend and HTML/CSS/JavaScript frontend.
- Job Search: Browse and filter jobs by location, salary, and keywords
- Job Posting: Employers can post new job listings
- Application Tracking: Candidates can track their application status
- Candidate Inbox: Employers can review and manage candidate applications
- Pipeline Management: Visual pipeline for managing hiring stages
- Profile Builder: Candidates can build and edit their profiles
- Resume Parsing: Upload and parse resumes
- Skill Gap Analysis: Analyze skills needed for job roles
- Learning Paths: Discover courses to bridge skill gaps
-
Run the setup script:
.\run.ps1
Or double-click
run.batif you prefer Command Prompt. -
Open your browser:
- Navigate to
http://localhost:5000 - The landing page will load automatically
- Navigate to
-
Navigate to backend folder:
cd backend
-
Create virtual environment:
python -m venv .venv .\.venv\Scripts\Activate.ps1 -
Install dependencies:
pip install -r requirements.txt -
Initialize database:
python init_db.py
-
Run the server:
python app.py
-
Open browser:
- Go to
http://localhost:5000
- Go to
PathAI1v2/
├── backend/
│ ├── app.py # Flask backend server
│ ├── models_fixed.py # Database models
│ ├── init_db.py # Database initialization
│ ├── requirements.txt # Python dependencies
│ └── app.db # SQLite database (created on first run)
├── Landing page.html # Homepage
├── Job search.html # Job search and browsing
├── post a job.html # Job posting form
├── Application Status.html # Application tracking
├── Candidate inbox.html # Employer candidate management
├── pipeline.html # Hiring pipeline visualization
├── profile builder.html # Candidate profile builder
├── resume parsing.html # Resume upload and parsing
├── skill gap analysis.html # Skill analysis tool
├── Learning.html # Learning paths
├── api.js # Frontend API helper
├── run.bat # Windows batch script to run
├── run.ps1 # PowerShell script to run
└── README.md # This file
GET /api/jobs- List all active jobs (supports?keywords=,?location=,?salary_min=)POST /api/jobs- Create a new job posting
GET /api/applications- List applications (supports?candidate_id=,?job_id=)POST /api/applications- Submit a new applicationGET /api/applications/<id>- Get application detailsPUT /api/applications/<id>- Update application status
GET /api/pipeline/stages- List all pipeline stagesPOST /api/pipeline/stages- Create a new stageGET /api/pipeline/notes- List notes (supports?application_id=)POST /api/pipeline/notes- Add a note to an application
GET /api/users- List usersGET /api/candidates- List candidatesGET /api/skills- List skillsGET /api/resumes- List resumes
- Landing Page (
/or/Landing page.html) - Homepage with features overview - Job Search (
/Job search.html) - Browse and search jobs - Post a Job (
/post a job.html) - Create new job postings - Application Status (
/Application Status.html) - Track your applications - Candidate Inbox (
/Candidate inbox.html) - Review candidates (employers) - Pipeline (
/pipeline.html) - Manage hiring pipeline - Profile Builder (
/profile builder.html) - Build candidate profile - Resume Parsing (
/resume parsing.html) - Upload and parse resumes - Skill Gap Analysis (
/skill gap analysis.html) - Analyze skill gaps - Learning Paths (
/Learning.html) - Discover learning resources
The application uses SQLite by default (stored in backend/app.db). The database schema is based on the provided backend.sql file and includes:
- Users (candidates, employers, admins)
- Jobs and job postings
- Applications and application status
- Candidates and their profiles
- Skills and skill matching
- Resumes and parsed resume data
- Pipeline stages and notes
- Learning paths
- Backend: Add new routes in
backend/app.py - Frontend: Create or update HTML pages in the root directory
- API Integration: Use
api.jshelper functions or fetch directly
- Update models in
backend/models_fixed.py - Run
python backend/init_db.pyto recreate tables - Note: This will reset the database!
If port 5000 is already in use, edit backend/app.py and change:
app.run(host='0.0.0.0', port=5000, debug=True)to a different port (e.g., port=5001).
- Make sure Python 3.8+ is installed
- Add Python to your system PATH
- Or use full path:
C:\Python39\python.exe -m venv .venv
- Delete
backend/app.dband runpython backend/init_db.pyagain - Check that all models are properly defined in
models_fixed.py
This is a prototype/demo project.
For issues or questions, check the code comments or review the API endpoints in backend/app.py.