Inspiration

By experiencing the culture of ghosting, dry texts and overall dissatisfaction with the modern dating scene first hand, we realized that many people who were looking for relationships had to come to their goal through somewhat convoluted and inefficient means. We then imagined a way to skip the awkward and most tedious aspect of a dating app: having countless meaningless conversations to find someone who matches your "vibe." This "vibe" has always been purely qualitative, but we asked the question: why not add a quantitative aspect? The whole dance of online dating is already so calculated and cutthroat even without any empirical data driving the process. So why not add some data to create some objectivity and efficiency where it's so needed? That's IGB.AI.

What it does

IGB.AI is a dating and compatibility app that uses Instagram message data from various different users and not only offers a diverse and nuanced assessment of texting style and compatibility rating, but also creates chatbots based off of this message data in order to simulate conversation between users and find compatible couples.

How we built it

Frontend: React Native and Expo for cross platform integration(ios, android, web). Authentication: Supabase for user authentication DB: MongoDB for user data and text data storage, ChromaDB for user vectors and compatibility matching. Backend: Python FastAPI for general backend and Flask for vector extraction LLMs: Used Google Gemini for AI persona chat bots and compatibility analysis.

The implementation of our main functionalities is encompassed by this single pipeline:

  • Upload & Parse — User uploads Instagram DM export, messages extracted from ZIP
  • Feature Extraction — Compute 228 behavioral features using spaCy (linguistics), VADER (sentiment), and HuggingFace Transformers (emotion classification)
  • Normalization — Raw features calibrated to 0-1 range using piecewise linear functions
  • Vector Storage — Behavior vector stored in ChromaDB with cosine similarity indexing
  • Personality Synthesis — Features aggregated into 12 interpretable personality traits for LLM prompting
  • Persona Chat — Gemini generates responses mimicking the user's communication style based on their personality vector

Challenges we ran into

Connecting a plethora of different tools and frameworks resulted in a lot of dependency issues that gave us headaches for a while. We struggled to normalize data points once they were vectorized due to the complexities and intricacies of human speech and personality. Data sets were not linear and therefore difficult to set on a scale.

Accomplishments that we're proud of

Setting out to capture the unique essence of human online social interaction in 24 hours was quite the tall task and was frankly daunting. But being able to say that we have embedded and categorized the way that some people have spoken and have created the pathway to do it for countless others is amazing and personally impressive with the given time. It was also very fun and challenging tackling the data processing pipeline for this app. We had never worked with vectorizing/embedding and it was a great experience trying to understand Chroma DB, normalization, and transformers. We are proud to have made it as far as we did.

What we learned

We learned that vectorizing and recreating a personality is an extremely nuanced and tedious task, but not impossible. While processes like normalization are quite difficult, there are methods that make it possible and thus open up a whole new way of interacting with others. We learned a lot about NLP in general, a subject that felt like just a buzzword up until now. We learned the features of language, how to use transformer models for language, and customizing n dimensional vectors. Actually working with NLP concepts and tools deepened our understanding of AI and LLMs in greatly.

What's next for IGB.AI

We are hoping that we can thoroughly optimize the online dating scene by using IGB.AI. As our LLM continues to take in more users we hope we can sophisticate it and make the compatibility ratings and simulated conversations more and more accurate to real text conversations between users. As more users join, we can take that customer base positive feedback loop and use it to monetize our app by incentivizing the purchase of a subscription that boosts a specific users' chatbot's visibility in the overall chatbot ecosystem. Even moving outside of the dating app environment, this kind of efficient social interaction and use of chatbots could be used to help socially awkward children with learning social intelligence and behaviors, optimize the creation of teams and the interview process for companies by matching specific personalities together, or help those entering the work force understand professional social standards and specified expectations.

Built With

Share this project:

Updates