SheHacks+ 8 Project
All of us are students, and we've all felt the pain of going through job searches. Not only do we need to scour for jobs, but we also need to filter for suitable jobs that meet our skill sets. Additionally, based on our experiences and the advice from recruiters we've spoken to, a common trait that separates the successful students from the rest is that they are able to sell themselves and their abilities to the interviewer. The ability to do so is a valuable skill, and just like any other skill, it is one that can be learned. And the best way to learn is to practice. This inspired the idea of Mr. Axolotl
If you haven’t heard of Mr. Axolotl, he’s a world renowned recruiter and thankfully for us, he’s willing to share his secrets. Mr. Axolotl takes in an user's resume and parses and displays keywords and skills. The user may also input a job description. The application then compares the user's skills with the required skills of the job and displays different stats from job compatibility all the way to missing skills required for the job. Additionally, to help users practice for their interview, Mr. Axolotl himself has offered to generate tailored interview questions based off of your resume through a chatting feature.
We used the Flask framework to build our web app. We used the pdfMiner Python library to extract the text from the uploaded documents and used the Natural Language Toolkit (nltk) in Python to remove common filler words like (“the," "a," etc...). The remaining words were compared to an online dataset of 2000+ job skills that was extracted through the help of Pandas. We then used Cloudflare’s Workers AI to create catered interview questions based on the skills extracted. We loop through the list of skills to create a string compilation that is fed to the AI as an user input. By giving the Worker AI a role specializing in interviews, it would create interview-specific responses to the prompts and inputs entered by the user. On top of the interview skills, Mr. Axolotl uses AI to generate constructive criticism on the answers provided by the user. To create the statistics, we used nltk and the online dataset again to get the list of skills from the job posting provided. The list from the user’s resume and the list for the job posting are then compared to get a match percentage and missing skills.
Our first hurdle was deciding what project we were going to undergo. We had a lot of ideas and a lot of areas we wanted to learn more about/explore. However, when faced with the 36-hour deadline, we had to choose a project that was both something we were interested in and doable in that timeframe. Narrowing down our scopes was a challenge but we were able to choose which features would be essential for our application and then have a list of features/other elements we would incorporate if we had more time. Additionally, we did have some issues trying to connect the frontend and backend together since we initially decided to do the backend in Python/Flask and the frontend in React/Javascript. However, we resolved that issue by doing the backend in Python/Flask and doing the frontend in HTML/CSS
We’re happy that we were able to achieve something like this in the given time limit and how much time we used up for brainstorming ideas feels very impressive. It was also our first time using Flask and Cloudflare so we are proud of how much we were able to accomplish in such a short period of time. We were also able to create a chatbot using Cloudflare that was specifically catered to interview settings from small talk to technical questions to constructive criticism. Though it was our first time also making a chat bot, we were also able to create a fully functional UI for it as well using HTML, CSS, and Javascript.
One thing we learned is how to brainstorm lots of ideas and pick which one would help others while still being in our capabilities. We also learned how to narrow down a project’s scope and pick out which ideas/elements are essential. We learned technical skills like Flask, natural language processing, and CloudFlare api to do specific tasks. Also further built on HTML and Flask skills by integrating user input and upload/save buttons on the site.
Our future plan is to expand this application to include assistance with cover letters as well as advising on the formatting of resumes. We also want to improve the application's ability to parse out key words and phrases in a job search. We could also use machine learning to improve our chatbot's pattern recognition abilities and gather a larger pool of data so that its advice will be better. Another step forward would be to add a job posting recommendations as well. We also want to make this app more user-friendly. We could implement user-authentication and have the user be able to see past critiques.