Inspiration
In the past year with all the tech layoffs happening, many students have been struggling to find jobs in the tech industry. With lower hiring quotas, interviews become more difficult to attain and interview cycles also tend to be more rigorous and demanding. We personally know many affected by this, and wanted to come up with a tool that could help students and graduates be better equipped. As a result, we were inspired to build an application that provides in-depth information on the tech stack expected for the position and provide tools to prepare. This way, candidates get a better understanding of what to expect on the job, and also be better equipped to tackle those technical interviews!
What it does
The user will paste the link of a job description into the input, and it will return several cards separated by categories that give an overview of the tech stack necessary to qualify and succeed in the role. Each technology will also include study materials.
How we built it
The backend of our application was built using Flask as our backend framework, Beautiful Soup for web scraping, and OpenAI API for categorizing. Once the link was received, the web scraper will scrape the contents of the job posting and produce a job description in the HTML format expected. From there, we connect to GPT API to pass in the HTML-formatted description, prompting it to break the skills, qualifications, and/or responsibilities sections into their respective categories. Using some fun tricks in Python, we convert this response into the proper JSON format we want, and send this to our frontend!
We built our frontend using Next.js and Tailwind CSS. We have Next.js handle the input field and fetch the api response, then process it. We used Tailwind to make give our application a modern, and hopefully beautiful, UI/UX.
Challenges we ran into
The biggest challenges we ran into all related to connecting the Flask backend with the Next.js frontend. Once the GPT API was producing the required response and we figured out the JSON conversion, sending it to the frontend proved to be quite challenging. We kept getting issues with CORS, GET requests being handled incorrectly, response body not actually storing any content, and some other HTTP errors.
These were difficult to solve as this was our group's first time actually using Flask, and we had to learn a lot about what CORS does and how Flask handles API calls (especially with GPT API). This took several hours, but eventually we were able to solve it by configuring CORS the right way, and debugging the web scraper call as well as the API fetch handling in the frontend.
Accomplishments that we're proud of
We were very proud of the backend that we built. This was our first time using Flask and GPT API together, and that was a difficult yet very rewarding experience! We learned a lot about these technologies and how powerful they are.
We were also happy with the UI we were able to built. It was difficult to get the data into the correct JSON format we wanted, and then process it through our frontend to build the powerful cards we wanted to build.
Additionally, our group had a lot of first time hackers! So it was a great learning experience for everyone!
What we learned
We learned a lot about how Flask operates as a Python based backend framework. We also learned more about how to leverage GPT API's to really build a powerful application. With a backend heavy project, we got a much better understanding of how things truly work behind the scenes, as well as understanding how these technologies differ from the standard Node + JS we are all used to.
What's next for SkillSprint
The next steps for SkillSprint will be to actually convert it into a chrome extension!
We realize that this tool would be easier for people to use if they could simply click a button and have it produce the necessary details they need.
Another step is to create user profiles, where they can track the applications they have submitted, see which skills have the most overlap in applications, and personalize the study content they want to focus on.
We want to continue to build this platform to really make it as helpful to people as possible, to really make an impact.
All super cool things we are excited to continue working on!
Built With
- beautiful-soup
- flask
- javascript
- next.js
- openai
- python
- tailwind
Log in or sign up for Devpost to join the conversation.