The starmind challenge asked us to develop an application to recommend most relevant jobs to a user given their skillset. When creating it we focused on appealing UI and UX, simplicity and intuitiveness, as well as on producing the most relevant recommendations possible.
We used a react frontend, which allowed us to quickly prototype and develop the UI and UX. It is supported by a django backend, which runs a recommendation algorithm written in python. The data we use is stored in a sqlite3 database and in a serialized pandas dataframe.
The program works as follows: the user can enter ther skills in a textbox, and while typing they get suggestions to enter one of the skills from the dataset of 13000 possible ones we were given. Then, when the user submits their skillset, the algorithm compares it with thee skillsets required for every job in our dataset, and produces a "relevance" score for each job. The job relevance score is a sum of the relevance scores for each required skill the user has, and the skill relevance score is 1/sqrt(skill frequency), so that the more uncommon skills that the user has (such as cutting glass or managing political campaings) affect the recommendation more than the common ones (such as communication and teamwork). Finally, the recommendations are displayed to the user, and for each recommendation the user can see which skills make them suitable for the job, and which skills they lack and they will most probably learn if they choose this job.
We found that the job recommendations were very appropriate for the skills of people from the "skill_profiles" dataset we were given, both those with more common skills (such as computer programming or engineering) as well as those with very narrow, industry specific skills (such as harvesting timber or cutting glass).