Inspiration

This project was inspired because I'm currently a college student, and to be honest, with all the drama in the job market for Computer Science and Engineers, this is a project that I'm deeply passionate about. I also wanted something to be free out on the internet but also with more features where users didn't have to pay to use online. You can search right now and probably find an extensive resume AI assistant that already exists, but it costs a lot of money (especially for college students) to might even use that. This project is to save time, money, and get real interview practice specified to whatever major you are in.

This project is to show that AI can be more personalized and efficient for users to prepare for job interviews. With the growing importance of both technical skills and communication in the job market, I saw an opportunity to leverage advanced AI and cloud technologies to help users better prepare for interviews in a way that addresses their unique strengths and areas for improvement. The idea was to create an all-in-one platform that supports resume analysis, interview practice, and real-time feedback to optimize job seekers’ chances of success.

What it does

This application offers a range of features to support job seekers in their interview preparation journey. It allows users to upload resumes in PDF format, extracts the key information using PDF Form Recognizer, and analyzes it with OpenAI, providing valuable feedback and a score out of 100%. Users can also access a Translate Button for easy translation into popular languages. The Real-Time Speech-to-Text feature enables users to practice answering tailored interview questions, while OpenAI generates personalized questions based on the user's resume. After answering, users receive feedback and a grade for their response, enabling continuous improvement.

How I built it

I built the AI-Powered Interview Assistant using Node.js for the backend and Angular for the frontend, both of which allowed us to create a fast, responsive, and scalable application. We utilized Azure Cloud Services for hosting and integrating key AI tools like Form Recognizer for resume extraction and OpenAI for analyzing resumes and grading interview responses. For the Real-Time Speech-to-Text functionality, we integrated advanced Azure APIs that converted spoken words into text in real-time. The Translate Service was implemented by using language translation API to ensure users could easily switch between languages.

Challenges I ran into

There were two main challenges that I ran into alongside the regular challenges that I faced. I've never worked with Node.js before as a backend with Angular, so I had to research lots of YouTube tutorials to help with that. Luckily, Node.js is very intuitive. Nevertheless, the first hardest challenge was integrating the real time speech-to-text feature. This feature is very specific (as you can see on my project's website it doesn't even work) in the fact that it isn't ng build compatible, can't work as a standalone on Node.js, and needs extra help to support it. I tried so hard to get real time speech to work on the website (over 20+ hours total spending on this one aspect), but I couldn't get it to work sadly. However, if needed, can download the github code and it works locally(you need a Speech API key though).

The second main challenge was figuring out how to put a Node.js API onto the Azure Web Service. There are a lot of YT videos for a Node.js APPLICATION but not for an API. Luckily, I was able to find the Azure documentation (lots of fun reading) on how to specifically only put a Node.js API on to their platform. Now that I know how to do that, I'm tempted to make a youtube video doing it to be honest.

Additionally, tailoring interview questions to each individual’s resume posed difficulties, as I had to ensure that OpenAI’s model could parse and analyze resumes in a way that generated relevant, specific, and insightful questions. Lastly, ensuring seamless integration between all AI services, including resume analysis and feedback, required careful testing and fine-tuning. The hardest part of using OpenAI is that there is such a limited amount of free tokens that I could use, that I spent a lot of my time developing a model and a data sheet on how much I expect the user to use and develop my application based off that. (I know I have $200 free credits but I can't risk paying more since I can't fund it ~ just a precaution on my end).

Accomplishments that I'm proud of

I'm very impressed on how easy it was to use all the Azure AI services and how streamlined their App Service platform is. I'm proud of combining over four different services into one application. I like how the resume scoring system is used and quick personal feedback to the users and job seekers. I'm proud of the UI, all the Azure services, and how real it feels to each user. I'm proud of using GitHub Co-Pilot and how simple it was to use. Overall, I'm proud that I took a step (as my first Hackathon) and develop a personal project using what seemed to be intensive Azure services but instead was really straightforward to use.

What I learned

I learned many items through the development of this project. I learned the importance of integrating multiple AI tools onto a cohesive platform so that all of them work seamlessly together. I went from zero to hero on Node.js API, working with Azure (services and hosting platforms), integrating the OpenAI models, and using GitHub Co-Pilot to speed up my efficiency by over 100%. I learned so many new skills that I would have never learned in school. I learned the challenge of building a system that can both accurately translate and interpret speech in real-time highlighted the importance of refining data accuracy and optimizing AI-based models for diverse user needs.

What's next for AI-Powered Interview Assistant

There can be a lot more to develop with this application. Can add more languages, better error handling (ie: when OpenAI can't function because waiting for tokens to reset), better training on each models. Outside of what is already there, can add a Job-Search platform to directly apply to the positions based on the feedback from the resume analysis. Also, in my personal opinion, the UI could be entirely re-done as it looks a little sloppy. However, additional tools can be added or expanded up to help the user experience and build confidence with job seekers to succeed in their job applications. (Also, I would use better SCSS to be tailored for a better UI experience for all phone users).

Built With

Share this project:

Updates