Livio β Your Smart Flatmate Finder


π Livio is a multilingual roommate matching app that uses real-world data and cosine similarity to recommend the most compatible flatmates β based on lifestyle, habits, and personal preferences. Built entirely in Python with Streamlit, itβs designed to be explainable, beautiful, and exportable.
π Live app β livio-roommate-matching.streamlit.app
π¦ GitHub repo β github.com/Isaac5Tayfur/livio-roommate-matching
π§ Key Features
π― Personalized matching using Cosine Similarity on normalized lifestyle traits
π Bilingual UI (English and Spanish)
π Interactive charts and profile comparisons
𧬠Trait explanations based on shared lifestyle preferences
π§Ό Filters for non-smokers, healthy eaters, and pet allergies
π₯ Export results as CSV and high-res PNG (chart + table)
π‘ Dynamic theming with responsive layout and dark/light mode support
π§ How It Works
Livio loads a dataset of 15,000+ tenant profiles, each with traits like:
Sleep schedule, work shift, energy rhythm
Budget, social level, cleanliness rating
Preferences like reading, pets, loud music, cooking, diet, etc.
These profiles are encoded and normalized with MinMaxScaler
, then compared using Cosine Similarity.
You select up to 3 seed tenants, and Livio recommends the top N most similar profiles β based on shared normalized traits.
π₯ App Interface
Below are examples of the Livio interface in both English and Spanish versions:
π¬π§ English UI
πͺπΈ Spanish UI
π Outputs & Exports
After running a match, Livio displays:
A bar chart of compatibility scores
A comparison table of key lifestyle traits
An explanation block with top shared habits (e.g., ποΈ Early risers, π§Ό Clean, π Non-smokers)
You can also download the results:
π Table (PNG)
π Chart (PNG)
π Project Structure
Livio/
βββ app.py # Streamlit frontend
βββ logic.py # Matching algorithm & data preprocessing
βββ ui_helpers.py # Chart, table, and trait explanation functions
βββ tenants_dataset.csv # Full dataset of profiles
βββ metadata.xlsx # Schema of all traits and value options
βββ Media/ # Visual assets (banner, exports)
βββ requirements.txt # Python dependencies
βββ README.md # GitHub documentation
π Try It Yourself (Locally)
git clone https://github.com/Isaac5Tayfur/livio-roommate-matching.git
cd livio-roommate-matching
python -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -r requirements.txt
streamlit run app.py
π’ Python β₯ 3.9 required. No database needed β all data is in CSV format.
βοΈ Deployment
Livio is deployed live using Streamlit Cloud.
No signup is needed β just open and try:
π livio-roommate-matching.streamlit.app
π§ Future Enhancements
User authentication and history
Weighted trait matching
Database-backed profiles
Additional languages (French, German...)
Mobile optimization and saved preferences
π€ Author
Tayfur Akkaya Clavijo
π LinkedIn | π§βπ» GitHub | βοΈ Blog
π License
MIT License. Free to use, adapt, and contribute.
Subscribe to my newsletter
Read articles from Tayfur Akkaya Clavijo directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Tayfur Akkaya Clavijo
Tayfur Akkaya Clavijo
I'm an AI, data and finance enthusiast. Passionate about lifelong learning and cross-sector innovation, Iβm always looking to collaborate on impactful projects at the intersection of data, strategy, and technology.