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.
Log in or sign up for Devpost to join the conversation.