Inspiration
When you connect with someone on LinkedIn, they see the cracked persona you've curated for yourself. When you match with someone on Tinder, they see your photos and a few fun facts that you've chosen. Every single profile you have is a 1-dimensional self-construction. How could that ever be the real you?
We use LLM chat data to solve this problem. When you're debugging on Claude at 3AM in the morning, you are not performing. When you're ranting about life to seek validation from ChatGPT, you're not holding back. You're not afraid to be judged. You ask the selfish questions. You present your unfiltered, unadulterated, real self.
We encapsulate this purity, compounded over years of conversation, and open the door for some very heavy introspection. Then, securely, we connect you with compatible individuals — made possible by our purpose-built algorithms for each use case.
Even if you only use LLMs to study or code, your vectorized persona runs deep. Your AI notices your cognitive style, build process, and decision-making patterns. It knows if you ship iteratively, obsess over clean architecture, or lean a bit too hard on Copilot. DFS isn't just for friendship or romance. It can also find you a hacker team, a study buddy, or even a co-founder.
What it does
Depth-First Social parses your entire Google Gemini chat history, creates a detailed vector describing everything it knows about you, and uses it to match you with people worth knowing. You can choose to search for hackathon teammates, mentors/mentees, dates, and even co-founders.
Your AI conversations are the only data about you that was never voluntarily curated. We analyze what you actually said, score you across 50 variables in 6 personality dimensions with evidence pulled directly from your messages, and build you a self-portrait. Then we match you against other users, generate a personalized connection blurb, and flag friction points before you meet.
The Solana layer keeps people accountable after the match, with a system that rewards you for showing up to meetings, giving app feedback, and showing personal growth over time in your self-portrait.
How we built it
- Gemini 2.5 Pro is the extraction engine. It ingests your entire Google Gemini chat history via Google Takeout and scores you across 50 variables spanning 6 personality dimensions, pulling direct evidence from your actual messages. That scored output becomes your Archetype, a mathematical self-portrait. Gemini 2.5 also generates the Compatibility Blurb for each match, explaining the logic behind the pairing and flagging friction points before you meet.
- Snowflake is the matching layer and the privacy boundary. Once your Archetype is extracted, Snowflake stores it as a native VECTOR(FLOAT, 50) type, so raw chat data never persists in our system, only the distilled scores. VECTOR_COSINE_SIMILARITY runs sub-second matching across the entire user pool, and because Snowflake only ever holds the archetype and not the underlying conversations, your personal data never lives inside our application.
- Auth0 is the identity backbone. A Regular Web Application handles the OAuth 2.0 authorization code flow for the Next.js frontend, while a separate API registration scopes JWTs explicitly to the Python backend. Two post-login Actions run on every session: the first scrubs PII before it propagates anywhere in the stack, the second stamps your Archetype as a namespaced custom claim on the token itself. The Python backend writes the Archetype back via the Management API after extraction, so every subsequent token carries it automatically with no extra database calls anywhere in the stack.
- Supabase handles everything live. Profiles, matches, and messages are stored in Postgres, and real-time chat between matched users runs on Supabase's live subscriptions. It verifies Auth0-issued JWTs directly via the JWKS URL, with Row Level Security enforced at the database level using auth.jwt() ->> 'sub', so every query is automatically scoped to the authenticated user. No one can read or write another user's data even if they bypass the application layer entirely.
- Solana keeps people accountable after the match. An Anchor smart contract manages a Meeting Escrow system where users earn Karma for showing up, giving feedback, and demonstrating growth in their self-portrait over time. award_karma and penalize_abandonment instructions mean matches are backed by real skin-in-the-game, and reputation is soulbound, verifiable, non-transferable, and portable beyond the app itself.
Challenges we ran into
The "Performative Paradox" was our biggest hurdle: ensuring the data remained authentic. We solved this by focusing on historical data (Google Takeout) rather than new prompts. Technically, mapping irregular, high-dimensional chat logs into a consistent 50-variable vector that stayed accurate across different social contexts required intense prompt engineering and iterative weighting.
Accomplishments that we're proud of
- We successfully turned Auth0 from a simple authentication tool into a production-grade identity layer that carries a user's mathematical "DNA" across the entire stack.
- We are also proud of our "Blind Spot" feature, which uses Gemini to provide genuinely insightful and helpful introspection based on the gap between how a user presents and what their data actually shows.
What we learned
We learned the intricacies of Vector Dimensionality and how to weigh technical skills against persona traits to make matches feel human. We also mastered the integration of Soulbound NFTs on Solana to represent verifiable and non-transferable identity labels and skill weights on-chain.
What's next for Depth-First Social
The next step is Group Matching which expands our Snowflake vector search to optimize for 4-person hackathon teams that balance complementary archetypes.
Built With
- auth0
- cortex
- fastapi
- gemini
- javascript
- next.js
- python
- snowflake
- solana
- supabase


Log in or sign up for Devpost to join the conversation.