Know your gap. Close it fast.
A unified career platform that transforms scattered job data into personalized, time-bound learning plans.
We've all been there—scrolling through job listings as fresh graduates, staring at endless skill requirements, and feeling completely overwhelmed. Python, SQL, Tableau, Power BI, 2+ years experience... Where do you even start?
The frustrating part? The information exists. MyCareersFuture lists jobs. Glassdoor shows salaries. SkillsFuture offers subsidized courses. But it's all fragmented. There's no single place that connects what jobs need, what you already have, and how to bridge the gap.
We wanted to build something that doesn't just show the problem—it solves it.
SkillSprint is a unified career platform that transforms scattered job data into personalized, time-bound learning plans.
Our key innovation is the Time-to-Ready Calculator. Most platforms tell you what skills you need. SkillSprint tells you how long it'll take and exactly what to do, week by week.
| Feature | Description |
|---|---|
| Smart Resume Parsing | Upload your resume and we extract your skills automatically |
| Job Explorer with Skill Matching | Aggregated jobs from multiple sources with color-coded skill gaps (green = have, red = missing) |
| Sprint Planner | AI-generated week-by-week learning roadmaps with curated resources, including SkillsFuture-subsidized courses |
| Application Tracker | Kanban board to manage your job search pipeline from Saved → Applied → Interviewing → Offer |
| Layer | Technology | Reason |
|---|---|---|
| Frontend | React + Vite | Fast development, modern tooling |
| UI | MUI | Rapid prototyping |
| State | Zustand | Lightweight state management |
| Backend | FastAPI | High-performance Python API |
| Database | Supabase (PostgreSQL) | Auth, DB, real-time capabilities |
We followed a clean architecture approach—separating data models (Pydantic schemas), business logic (service classes), and API endpoints (FastAPI routers). Our database design includes row-level security policies, performance indexes, and helper functions for skill-matching calculations.
For data, we aggregated job listings from multiple sources and built a normalized skill taxonomy to handle inconsistent naming across platforms.
Data quality was brutal. Our job dataset had missing values across location, employment type, salary, and requirements fields. We spent significant time building rule-based cleaning pipelines to extract meaningful information from unstructured job descriptions.
Skill taxonomy normalization. "Python" vs "Python 3" vs "Python Programming"—different sources name skills differently. We had to create a standardized mapping to make skill-matching actually work.
Scope management under time pressure. With only one day, we had to ruthlessly prioritize. The Sprint Planner was our differentiator, so we protected that scope and cut bonus features when needed.
- The Time-to-Ready Calculator actually works. Seeing a concrete "4 weeks to job-ready" instead of vague advice feels genuinely empowering.
- End-to-end flow. From resume upload → skill extraction → job matching → learning sprint → application tracking. It's a complete journey.
- Clean architecture. Despite hackathon time pressure, we built maintainable code with proper separation of concerns—over 30 Pydantic models and comprehensive API endpoints.
- Singapore-specific value. Integration with SkillsFuture subsidized courses makes this genuinely useful for local job seekers.
- Data preparation is half the battle. We underestimated how much time cleaning and normalizing job data would take. Garbage in, garbage out.
- Prioritization is survival. In a one-day hackathon, saying "no" to features is just as important as building them.
- Clean architecture pays off. Even under time pressure, proper separation of concerns made debugging and iteration much faster.
- Expand data sources — Add more job boards and real-time API integrations
- Smarter sprint generation — Use ML to personalize learning paths based on learning pace and style
- Community features — Let users share successful learning sprints and course reviews
- Mobile app — Job searching happens everywhere; we should too
- Employer partnerships — Connect companies directly with candidates who've completed relevant sprints
- Node.js 18+
- Python 3.8+
- Docker and Docker Compose (optional)
cd frontend
npm install
npm run dev# Navigate to backend
cd backend
# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Create .env file with required variables
cat << EOF > .env
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
SUPABASE_SERVICE_KEY=your_supabase_service_key
GEMINI_API_KEY=your_gemini_api_key
DEBUG=True
EOF
# Run development server
uvicorn main:app --reload --host 0.0.0.0 --port 8000# Navigate to backend
cd backend
# Create and activate virtual environment
python -m venv .venv
.venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Create .env file with required variables (create manually):
# SUPABASE_URL=your_supabase_url
# SUPABASE_KEY=your_supabase_key
# SUPABASE_SERVICE_KEY=your_supabase_service_key
# GEMINI_API_KEY=your_gemini_api_key
# DEBUG=True
# Run development server
uvicorn main:app --reload --host 0.0.0.0 --port 8000# Start containers
docker-compose up -d
# View logs
docker-compose logs -f
# Stop containers
docker-compose down
# Rebuild after changes
docker-compose up -d --buildOnce the backend is running:
| Endpoint | URL |
|---|---|
| Health Check | http://localhost:8000/health |
| Swagger UI | http://localhost:8000/docs |
| ReDoc | http://localhost:8000/redoc |
.
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── stores/ # Zustand state stores
│ │ └── utils/ # Utility functions
│ └── package.json
│
├── backend/
│ ├── app/
│ │ ├── models/ # Pydantic data models
│ │ ├── services/ # Business logic
│ │ ├── routers/ # FastAPI route handlers
│ │ └── main.py # Application entry point
│ ├── requirements.txt
│ └── Dockerfile
│
├── docker-compose.yml
└── README.md
Team SkillSprint | TechFest 2026
This project was built for TechFest 2026 Hackathon.
