As students from around the world, we noticed that LinkedIn did not provide enough options for the working class, with already long hours and extended studying periods to land their dream job, we created Split Search to help them get suited into the real world. Instead of waiting for recruiters to scout or looking through the descriptions of hundreds of jobs each with 10-20 qualifications, we provide the working person power to actively search for a job quickly on their own. Mental health is important.
Time is money and with more time, it only makes sense that you get more productivity out of your workday.
A place where we value UI/UX and the ease of use of the application, without the noisy news-feed and the spam e-mails from many, many, many sites, including, but not limited to: GlassDoor, ZipRecruiter, LinkedIn, Manufacturing Workers, Lensa, Oracle Cloud, Nexxt smart search, and that email under a random person's name.
And that is why we decided this year's job search would be different, new, extraordinary.
What it does
Split Search uses the authentication service offered by Firebase to log and register users when they use Split Search. That way, we can remember user preferences, their resumes, and the jobs they have shortlisted. Authenticated users are prompted to upload a copy of their resume in a PDF file, which is uploaded into storage buckets, another service also offered by Firebase.
Once uploaded to Firebase Storage, the link of that PDF is routed to a local Flask server which houses our machine learning model. The model serves as a parser and extracts multiple pieces of information from the resume, such as the name, email, and resume objective. The parser extracts the multiple skills that are listed and gives them an overall rating compared to other resumes that have been uploaded and are in a similar field. The parser also does the same thing for the listed work experience.
Using that knowledge, the parser extracts several keywords and determines what type of job our user is applying to. From there, the parser extracts the highest level of education the user has completed and the coarse location of the user.
All this information is sent to several APIs we use via POST requests. We are returned JSON objects of jobs, which we show on our web application in the form of different job listings that the user can apply for and shortlist.
How we built it
This project has been built with a lot of love and motivation to help others using:
- React for the client-side of the application.
- Flask for the webserver.
- NLTK and TensorFlow for the Python machine learning model
- Firebase for authentication, a serverless backend, and storage buckets
- Dozens of APIs for the job listings
Challenges we ran into
We had a lot of difficulty with creating this project as 75% of our team did not know React, Firebase, and how to connect it with a Flask server. We had to learn everything along the way, and although it was fun to finally connect our two different localhost servers after hours of debugging, it was a tedious process. Our team also faced communication gaps as we lived on different coasts of the US and had to find times that worked for both of us.
Accomplishments that we're proud of
We are proud of the fact that we used so many services to create one, coherent project. We are also proud of being able to overcome the steep learning curve of React and Firebase and integrate our front-end with an actual machine learning model.
What we learned
As a team, we learned how to better split our time and work in order to use our different sets of skills to actually create a project. We also learned how to create something that will help other people in their real lives. Many of us learned React for the first time, so that was excruciating and thrilling.
What's next for Split Search
We are advancing Split Search in the following ways:
- Implement a better search process and more selection options for workers so they can find their special company.
- Increase storage via a tree search in distinguished databases.
- Create an AI system to help match the personalities of job seekers to company values.
- Enhance security so that the personal information of our users is guarded safely.