UofTwo is the ultimate solution to every UofT student’s dating woes.
But more than that, it’s a technical and philosophical experiment in identity, compatibility, and human behavior.
UofTwo prioritizes who people are, how they express themselves, and how they behave over time—rather than reducing identity to photos and one-line prompts.
Identity is not static, binary, or easily captured by a swipe. Sadly, most dating apps treat identity as a handful of photos and a short bio. Using UofTwo, you express your identity through free-response questions to begin with, but your identity evolves over time, moulded by your behaviour.
UofTwo combines:
- Self-reported identity (descriptions, traits, hobbies)
- Behavioral signals (swipe patterns, latency, engagement)
- AI interpretation (LLM-generated summaries and compatibility explanations)
We use this data to create matches that feel more intentional, more interpretable, and more human.
- Access restricted to University of Toronto students
- Authentication handled via Supabase
- Ensures a shared institutional and cultural context
- Reduces spam, bots, and low-trust interactions
Profiles are built around expression, not optimization.
Each user provides:
- Free-response self-description
- Personality traits
- Hobbies and interests
- Editable answers that can evolve over time
Rather than forcing users into rigid categories, UofTwo allows identity to be nuanced and personal.
At signup (and on edits), we:
- Feed user-written descriptions into an LLM
- Generate a concise, readable summary
- Preserve tone while improving clarity
This helps:
- Other users understand someone quickly
- Reduce performative writing
- Normalize diverse writing styles
When viewing another user, UofTwo:
- Feeds both users’ free-response descriptions into an LLM
- Generates a natural-language compatibility explanation
- Focuses on shared values, complementary traits, and potential dynamics
Example:
“You both value curiosity and long conversations. One of you approaches problems analytically while the other leans intuitive, which could make for a thoughtful and balanced dynamic.”
This makes matching:
- Transparent
- Explainable
- Less mysterious than a raw number
In addition to AI summaries, UofTwo computes a compatibility score using multiple signal types.
- Similarity between personality traits
- Overlap in hobbies and interests
- Semantic similarity between written descriptions (via embeddings)
We track anonymized interaction metrics such as:
- Swipe latency (how quickly decisions are made)
- Swipe frequency
- Like vs pass ratios
- Engagement consistency over time
These signals help infer:
- Selectiveness
- Intent
- Preference patterns
Compatibility is treated as learned, not assumed.
As users interact with the app:
- Their preferences become clearer
- Matching adapts over time
- Identity is refined through action, not just text
This creates a feedback loop between:
Who users say they are
and how they actually behave
- Next.js (App Router)
- TypeScript
- Node.js
- Next.js API routes
- Prisma ORM
- Supabase
- PostgreSQL database
- Authentication
- Large Language Models for:
- Profile summarization
- Pairwise compatibility summaries
- Embedding-based similarity scoring
- Behavioral analytics pipeline (in-progress / extensible)
With more time, we would:
- Introduce FAISS-based large-scale similarity search
- Precompute embeddings and compatibility summaries
- Track identity drift over time
- Add visualizations for behavioral patterns
- Experiment with multiple matching strategies
- Conduct A/B tests on explainability vs raw scores
UofTwo is for UofT students who:
- Want more meaningful matches
- Care about personality and values
- Are tired of shallow dating mechanics
- Appreciate transparency and explanation
It's not UofT, it's UofTwo, mi amor ;)