Inspiration
As undergraduates seeking internship opportunities every summer, we observed that there were an increasing number of different tech roles such as DevOps Engineer which are not familiar and abstract to us. Job descriptions also do not provide sufficient information on what the job truly entails. Often, it is also difficult for students (like us) to determine what type of career path suits our personality/skillset/goals.
What it does
As such, we came up with the idea to create an all-in-one platform, "TechyMatchy" which serves 3 main functions: 1) Help undergraduates find our their "Tech superheroes" (ie work personality/preferences) by asking work-related questions 2) Filter out career paths which most suit their personality and provide information on these career paths. 3) Evaluate their resume and give instantaneous feedback so that students can increase the chances of clinching their dream jobs.
How we built it
Our project consist of 2 main portions: 1) Web application (Front-end)
- To build the front-end of our web app, we utilized Vue.js (front-end framework) to ensure that our UX is seamless and reactive. We also made use of Vuetify (VUE UI library) to improve the design of each component and create a visually appealing UI. 2) ML models (Back-end)
- Determining "Tech Superhero" / Personality: Each question in the survey assesses the traits the user possesses (ie Analytical, Creativity, Entrepreneurship etc). These traits also correspond to each personality. At the end of the survey, the score of each of these traits are summed and the highest scoring trait will determine the final personality.
Determining which career falls under which personality: With a pre-trained model (bart-large model) trained on the MultiNLI(MNLI) dataset, the model is able to perform zero-shot classification on job descriptions scraped from the web(input) to output their associated character traits(output). The outputs were collated based on specific careers and the frequency of each character trait appearance were calculated. Using the top few traits, each career can be associated with specific traits. With this association, careers can be appropriately grouped under personalities that showcase traits that are desired in that respective career.
Generating percentage of requirements satisfied from resume SpaCy was used to tokenize, lemmatize, lowercase, and remove stop-words from the job description. After which, we made use of a python library, textacy to generate relevant keywords. This process is repeated using the user's resume and the number of keywords matches are tabulated, which is then used to generate the final percentage.
Program flow: Firstly, we created a survey to ask for user input which will then be used as data for our ML model. Based on the survey response, our ML model will seek to classify the user into 8 main superheroes/personalities. Upon which, users will be able to learn more about their inclinations, strengths & weaknesses, learning style and top 3 most suitable jobs. Emphasis is placed on providing information regarding these top 3 jobs and allow undergraduates to browse job listings with similar job titles. Afterwards, users will be prompted to craft out a condensed resume by including their projects, past work experiences and skills & proficiencies. Finally, we made use of NLP to extract important phrases from the resume and match it with important phrases extracted from job descriptions of the top 3 jobs. A final percentage will be displayed to users to see the percentage of requirements employers look for in that career. More importantly, suggestions will be made to users on how to further improve their resume and further appeal to potential employers of their dream jobs.
Challenges we ran into
A key challenge was the need to learn multiple new frameworks/concepts all at once. For some members, it was their first time using Vue.js which required a deep understanding of component-based programming, Vue Router and Vue Store.
Accomplishments that we're proud of
We are proud of the method we sought to engage students. Inspired by the MBTI personality test, we thought that a focused survey asking more career-related questions and "rewarding" users with a "tech superhero"/personality type will attract students to complete the test and take ownership in finding their most suitable career paths. Also, by evaluating their resume almost instantaneously, we create an immediate feedback loop for students to continue improving their resume and better advertise themselves.
What we learned
Besides new frameworks, a key insight we had was on the capabilities and limitations of current NLP techniques. From that, we were able to find the latest models and explore pre-trained models with custom data to fit our specific use case.
Another key insight we had was to keep things simple, especially during the proof-of-concept phase. Initially, we sought to use complex ML models which overcomplicated the project. Rather than beginning with the most complex model, we learnt to start small with a simple model. Upon knowing that the model is a good fit, we can then explore alternative models that are derived from the base model.
What's next for Team 40: TechyMatchy
In the future, an important function to include will be integrating job listing platforms into TechyMatchy. This will allow users to apply to their dream jobs directly using their well-refined resume. Job listing platforms such as jobstreet, indeed etc will also be able to leverage on TechyMatchy's resume assessments to shortlist the best candidates.
Gaining access to data of successful applications from job listing platforms (ie Jobstreet) will also allow us to improve on our resume assessment. In addition to outputting the percentage of requirements matched, we can also compare resumes of successful applicants and take into account important factors that differentiate successful applicants from the rest.
Built With
- css3
- html5
- javascript
- python
- spacy
- textacy
- vuejs
- vuetify
Log in or sign up for Devpost to join the conversation.