Motivation 🚀

There are tons of jobs in IT and for professionals looking for a position, it may definitely get a bit overwhelming. By relating a huge database of jobs such as InfoJobs more directly to prospective applicants, we believe we can provide smooth and efficient experience for both the contractors and the people looking for jobs.

What it does 📦

✅ Interacts with the InfoJobs API to serve as a frontend and alternative backend.

✅ Given a list with a user's skills, it produces an ordered list of suitable IT jobs obtained from the InfoJobs API. Due to inconsistence in the database, this cannot be done, but we can recommend a specific IT job category based on the user's skills, all served on an intuitive and easy to use website.

⏱ The user an input the skills in a multiple select dropdown menu on the frontend.

⏱ The user can search for IT jobs according to relevant criteria, such as experience needed, location, salary and categories.

How we built it 🔨

We adapted the Bullhorn-staffing dashboard API for hosting IT jobs. We chose it mainly due to its modern appearance and its implementation in Angular.js, because we value its wide adoption and the availability of libraries, that allowed us to create a demo to improve upon using explained ideas. In parallel, we started working on the recommendation algorithm and it's implementation in python using heaps.

To better understand the API, we used the curl command and Postman to perform 'GET' http requests. After failing to integrate it with Angular.js, we implemented a python backend using the fastapi library.

We started building a form for users to input their skills and obtain recommendations by the algorithm.

We designed the search algorithm both for the actual dataset and the hypothetical uniform one in Python, the latter providing better search experience as it recommends jobs directly.

Challenges we ran into 🏃🏻‍♂️

We initially tried to connect Angular.js directly to the InfoJobs API, but due to Cross-origin (CORS) requests being blocked in modern browsers it was really problematic and we had to try a different approach.

Whilst there were many small challenges and learning experiences we solved, 20 hours deep into development we discovered a flaw in our assumptions with regards to the database API: the skills listed didn't correspond to the subcategories to which the jobs were posted. This meant that the underlying assumption of our recommendation algorithm was unfeasible with this API and we had to come up with a new model based on user interaction with the site.

Furthermore, we found that adapting the Bullhorn API to work with our InfoJobs backend was beyond our current skills.

Accomplishments that we're proud of 💪🏼

  • Implementing from the ground up a recommendation algorithm for jobs based on arbitrary skills.
  • Designing an easy to use and intuitive web site with AngularJS.
  • Having a scalable component that is the availability of a better searching algorithm if the database were to be expanded.

What we learned 📘

  • How to implement API's, connecting AngularJs (or any other framework) to InfoJobs through a python backend implementing FastAPI.
  • 'Cross origin request blocked' is needed for modern browsers' increased security. To bypass this block and connect to the InfoJobs API, we needed to create a backend that would make the api calls directly to InfoJobs and then, through localhost, disable CORS for the specific port where the website is hosted.
  • Development pipeline for AngularJS
  • Implementing a search algorithm using heaps in Python, OOP and algorithmics.
  • Working in a Hackathon (it was our first experience in a hackathon): the time pressure, need to deliver and team-working experience...

What's next for InfoITJobs 🔮

Whilst we don't have a Minimum Viable Product, we are very close and already implement the search algorithm. We only need to connect the website to the program, and that will be across possible scalability of the project to the uniform database.

Share this project:

Updates