Inspiration

Hiring process can be daunting at times for job seekers, and might not even provide enough details about applicants to companies as there might be a lack of engagement from the applicants. With TraitQuest, we hope to make the hiring process more engaging by making it interactive and interesting.

What it does

TraitQuest is a dynamic interactive game that uses AI to interact with the player, and with these interactions, provide a general overview of their personality based on the scientifically researched, Big Five personality traits. With in-game elements that are visually appealing, and a engaging story-line, we put player in a situation where he/she faces common problems in office and allow them to navigate through these scenarios via open-ended answers and simple game interaction. The simplicity of the game also provides an even playing-field for disabled individual, giving them a fair chance to an interview.

How we built it

Using pygame, public sprites and AI, we generate a game instance. The AI is responsible for interacting with the player by reacting to player's response under a given context. Pygame controls the game flow and renders the sprites elements on the game screen.

We also utilise the use of a vector database leveraging Intersystem's IRIS database. This allows us to enhance our report generation with my embedding domain specific knowledge on the Big 5 personality traits to improve and tailor the summary to the individual user and their generated scenario.

We use YAML files to structure and provide Claude with the necessary context for each scenario, including the player’s main goal, the rules they must follow, and any specific constraints. Claude leverages this information to dynamically generate prompts and adapt the scenario in real-time based on the user’s behaviour and inputs. This flexibility allows us to create highly customisable experiences, whether for hiring tests, training simulations, or interactive assessments. At the end of the interaction, Claude evaluates the user’s actions and generates results, providing insights or outcomes tailored to the scenario. The results are calculated based on the 44 items BFI questionnaire, a commonly used test to test your personality, and based on the language used in the player's dialogue, it will give a number between 0-5 (Strongly Disagree - Strongly Agree) to answer the questionnaire. This approach ensures scalability, adaptability, and consistency across a wide range of use cases.

Challenges we ran into

For the game, the difficulty comes mostly with game flow control. It is really important to encapsulate the code and keep it modular such that the game flow can be understood despite its large code file. It is also difficult to obtain certain sprites, and we are limited to sprites available free online. Integration of the AI was also difficult, as we need to consider how the AI model pipeline should interact with the Game Flow.

Accomplishments that we're proud of

An actual playable 2D game is made using pokemon sprites, with satisfactory stableness. Great teamwork and everyone worked very hard through the night. No breakdowns and used the lanyards we were given to which will upload your Big 5 personality results.

What we learned

We learnt how the control flow for pygame works, and how one can render sprites on a screen. We also learn how to design a game flow that is not susceptible to exploitation by players (say early exits in game). Moreover we also learnt a lot about RAG, vector databases and Langchain.

What's next for TraitQuest

We are planning to add more interactive elements in the game. Specifically, we are looking to include dynamically-generated elements that can interact with the player. We also want to look into more types of interactions available in the game, as for now players can only chat with NPCs. With more interactive elements, minigames that test for a player's appitude can be added, and the TraitQuest will be more complete as a concept.

Built With

Share this project:

Updates