Inspiration

Many students learn individual programming skills without knowing how those skills connect to technology roles. We wanted to turn that uncertainty into a small, understandable machine-learning project.

What it does

SkillGap ML takes the skills a user knows and uses a machine-learning model to suggest the technology role that best matches those skills. The user can: Add and remove skills. View their current skills. Get an ML-based role prediction. See which skills match a selected role. Identify missing skills for that role. Save their skill profile for later use. The ML model uses K-Nearest Neighbors (KNN) to compare the user's skill profile with example profiles and predict the closest role.

How we built it

We built the project in Python using object-oriented programming. User skills are converted into binary feature vectors. A K-Nearest Neighbors classifier, implemented from scratch, compares the user's vector with labeled training profiles using cosine similarity. The three nearest examples vote on the most suitable role. A separate analyzer shows which skills are present or missing for a selected role, while JSON storage keeps the user's profile between sessions.

Challenges we ran into

The main challenge was making the recommendation genuinely data-driven instead of relying only on if/else rules.

Accomplishments that we're proud of

We built a real ML pipeline and implemented KNN from scratch, making the prediction process visible and understandable.

What we learned

We learned how to convert categorical skills into numerical features, calculate cosine similarity, implement KNN classification, and combine an ML model with an object-oriented Python application.

What's next for SkillGap

A future version could use a much larger real-world dataset, evaluate accuracy on held-out data, extract skills from CVs, include proficiency levels, and add an AI explanation layer.

Built With

Share this project:

Updates

Submission history