A next-generation, automated hiring platform connecting employers with top-tier candidates.
JobWise originated as a purely Python-based backend API, created to explore advanced backend architecture and data processing. Realizing the core logic was robust and highly scalable, I decided to take the project Full-Stack. Utilizing AI and modern UI principles to accelerate the design workflow, I conceptualized and built a stunning React frontend architecture to bring the Python engine to life.
What started as a learning exercise is now a fully functional, sleek SaaS hiring platform.
- Intelligent Onboarding: Candidates can upload their resumes (PDF format), and the system automatically extracts and categorizes their skills using PyPDF2.
- Smart Match Dashboard: Candidates instantly view active jobs sorted by a dynamic Match Score algorithm that compares their parsed skills against the employer's requirements.
- Frictionless Application: Premium UI interactions allow candidates to apply for jobs seamlessly with real-time status tracking.
- Job Management: Employers can create, edit, and manage job listings with custom salary ranges, locations, and structured skill arrays.
- Applicant Tracking System (ATS): Employers receive beautifully formatted applicant cards featuring match scores and dynamic statuses (Applied, Reviewing, Accepted, Rejected), alongside quick-action controls.
- Unified Design System: A strictly enforced CSS architecture utilizing CSS Variables (
index.css) ensures flawless cross-component consistency. - Premium Interactions: Physics-based CSS hover transitions simulate a high-end "Framer Motion" style premium feel.
- Secure Authentication: JWT-based authentication using bcrypt hashing. Accounts are strictly validated and secured via Email login protocols.
Frontend Architecture:
- React (Vite)
- React Router DOM
- Phosphor Icons
- Vanilla CSS (Custom CSS Variables Design System)
Backend Architecture:
- FastAPI (Python)
- SQLAlchemy (ORM) & Alembic (Migrations)
- PostgreSQL
- PyPDF2 (Resume parsing)
- Passlib & python-jose (JWT Auth)
-
Open a terminal in the root directory and create a virtual environment:
python -m venv .venv .\.venv\Scripts\Activate.ps1 # Windows # source .venv/bin/activate # Mac/Linux
-
Install backend dependencies:
pip install -r requirements.txt
-
Setup your PostgreSQL Database & Environment Variables:
- Copy
.env.exampleto.env. - Update the
DATABASE_URLto point to your local PostgreSQL instance.
- Copy
-
Run database migrations to build the schema:
alembic upgrade head
-
Start the FastAPI server:
uvicorn app.main:app --reload
(The backend runs on
http://localhost:8000. Swagger API documentation is automatically generated athttp://localhost:8000/docs)
-
Open a new terminal and navigate to the frontend directory:
cd frontend -
Install Node dependencies:
npm install
-
Start the Vite React development server:
npm run dev
(The frontend runs on
http://localhost:5173)
