Following our successful implementation of a customer service chatbot for our business (you can test yourself on our website and read more about here: Implementing a Client Service Chatbot: A Deep Dive into OpenAI's ChatGPT, Google Cloud Functions, and Dialogflow), we decided that our next challenge should be to take things one step further. Among our aims for this project was a meaningful purpose involving machine learning and designing a richer UI. Enter CareerAdvisor360, a chatbot-like web service designed to help you decide on a career path. In its initial phase, the system works as a guided dialogue between a user and a chatbot. At the end of this conversation, the user receives an IT job recommendation. In the future, we plan to further expand the recommendations to account for several other industries and domains, as well as adding multiple different features.
We’ve kicked things off with extensive research, data gathering, designing our database, and Figma mockups. We then quickly rolled up our sleeves for the actual implementation. In the following paragraphs, we provide insights into our choice of technology stack, our approach to recommendations, and the cloud solutions we have leveraged. For web development, we have opted for Node.js with Express for the backend and React for the frontend. This is a popular stack choice due to its many advantages such as performance and rich ecosystems surrounding both Node.js and React. Nevertheless, before reaching this decision, we explored and compared some alternatives as well, including Ruby on Rails.
For the recommendations, we have combined the power of a BERT-based Language Model with some algorithms. We started with some filtering, based on the user-expressed preferences, excluding the jobs that do not match various criteria. The system then makes a recommendation based on computed similarities between the user’s answers and the collected job descriptions, using a weighted approach. Finally, since non-functional requirements such as efficiency, security, and high availability are important to us, we turned to cloud solutions. We chose Google Cloud SQL to manage our relational database efficiently. Additionally, we took advantage of Cloud Run for processing user answers and make recommendations. This serverless solution offers the advantage of an event-driven architecture that seamlessly integrates with the SQL service. Moreover, Cloud Run is also more powerful than Cloud Functions, a similar but lighter Google service. This difference was significant for us in this case, due to the need for multiple complex tasks and computations. This combination of web development, machine learning, and cloud solutions is the foundation of our product. While CareerAdvisor360 is still in its early stages, we have ambitious plans for it. One of our next steps is to integrate the ChatGPT API into the system to enhance the quality of the conversations. Stay tuned for updates on our progress!