top of page
  • Jan

Cracking the Code Behind Human Compatibility

We are Character — and this is how we match you.

To understand compatibility we first have to understand the individual

After researching the online friend-finding space, we had to conclude that existing solutions haven’t managed to crack the complex code of friendship — swiping profiles based on photos and short bios is too shallow and simply not enough.

That’s why we’ve put our heads down for countless days and nights on end to create what will be the first human compatibility algorithm that can change the online friend-finding landscape for good. Here, we give you an overview of how and why Character matches people with the goal of creating long-lasting, close friendships.


Character relies on one simple and intuitive input mechanism: a single card stack. It contains three types of cards:

  • Questions about yourself

  • Questions about your friends

  • Matching profiles

The Character card stack

What’s complex on the inside, is a minimalist and playful experience on the outside. You answer questions with “yes” and “no” by swiping. Alternatively, you can always skip a question. The algorithm dynamically decides what set of questions to show you next based on the responses you provide. With each question, we slowly but surely surface your personality while you’re lost in a fun and seamless flow of self-reflection.

Apart from exploring your inner self, you’re also able to answer questions about your friends, after inviting them to the app. This not only results in a more accurate profile of your personality, but it’s also interesting to find out how your friends perceive you. While you’re swiping you and your friends to clearly defined personas, we throw in a stranger’s profile here and there that we think could be your future friend.

Next, let’s dive deeper into the types of questions.

Questions about yourself

We rely on a whole range of areas such as:

😈 Personality

🌌 Interests

❤️ Passions

🎈 Hobbies

🎓 Background

🎯 Ambitions & Goals

🏛️ Politics

🌍 Values & Worldviews

🎶 Music & Arts

💰 Finance

👏 Skills

✈️ Experiences

⏰ Habits

🙏 Spirituality & Religion

👪 Life Stage & Expectations

🤣 Humour

💐 Appreciation & criticism

There are two types of questions: category-based and questions to uncover individual facts.

Anything related to personality (which is the largest area) is category-based. Similar to models like Myers Briggs Type Indicator, Big5/OCEAN, HEXACO, DISC, and so on, we ask multiple questions for each category, e.g. extraversion. Our algorithm does optimize these questions, though. It always picks the next question in the category where it knows the least about you so far — until it is sure to know your scores for each category. If you are consistent in your answers to questions about extraversion, you will get fewer questions about extraversion. This allows us to understand users better despite asking fewer questions than other personality models.

A simplified example of hierarchical questions

Individual questions are, for example, about your hobbies. Here we are using a tree-like structure. Check out the illustration above. Instead of asking for those 4 types of sport, we use an iterative approach. That way we can stick to simple yes-and-no questions which make it easier to answer. In fact, our experience shows that this is the most effective way to gather this data when taking into account user motivation. The benefits are obvious: every “yes” opens up new questions that drill deeper. Every “no” cancels out entire tree structures. Some users will say “no” to the first question and thus be spared all following sports-related ones. This is a simple example. The app has 113 different sports and they have multiple parents. Rarely does a “no” lead somewhere, because you may be interested in multiple sports. So, at first sight, we could make the “no” from “team sports?” lead to skiing. But what if you like both, soccer and skiing? That is why we “follow the yesses”. A “yes” will trigger further questions drilling deeper, while a “no” just prevents that. It does not lead to new questions for the most part, because most child questions are not excluding each other. There are exceptions in the area of e.g. values, though.

With this system, we can get the answers to 1.300 questions by asking less than 100.

Future versions will drill much deeper. We can always extend the algorithm and ask when you learned to ski, what level you are at right now, and so on. That is the true beauty of the endless card deck design: the entire set of questions in the app will continuously be expanded and adapted to understand you even better.

We also allow you, as the user, to suggest questions.

Questions about your friends

Likely your friends have some interesting knowledge about you. You can add them to Character and they will get the occasional question about you. Answers are never shown individually, but we do show aggregates like “80% of your friends think that you can tell when someone is lying”.

Answering questions about your friends gives more accurate profiles — and is more fun

This feature helps us get a more holistic view of who you are and prevents certain biases. We consider your friends’ and your opinion about you separately. If you think you are always on time, but all your friends disagree, then that explains more of you than just your timing skills.😜


While you are happily swiping through your card deck, we will throw in a profile here and there. These profiles are pre-selected for compatibility, so you won’t have to swipe left so much.

Profiles consist of lots of different elements. These could be photos of you, photos of things, places, celebrities, or foods you enjoy, stats, icons, or texts that describe you as a person. General but important data points like your psychometric scores are kept in the background. They are only used to decide whom to show you (yes, you will only see good matches!). The profile of someone else shows you concrete aspects of them, like their political hero, their favorite anime character, moral values they hold, or their habits. With 1.300 questions in the app, we can’t show everything. So the algorithm will customize each profile to show what you share with the other person — or what could interest you about them. Imagine 6–12 items on each profile. And remember, the things you see on that profile are already customized to you — to show you overlaps and similarities. We believe that this is a key ingredient to kickstarting the chat — historically one of the trickiest parts of any matchmaking app.

The recipient of your comment always sees it — and can decide to answer or delete it. Once they answer, the chat is open for both sides to write as much as they want.

Apart from the answers to these question types, there is also a settings page for the basics. These include the match range (do you only want the top 10% of matches or is the top 40% fine?). Additionally — and importantly — you can set your desired distance. Even within one city, it matters whether a friend lives 3min or 30min away from you. It will determine how often you meet — and for what occasions.


There are so many things our algorithm does, but the most important part is matchmaking. Character is there to enable serendipity: the app gives you the best profiles — you still get to make the final call. How do we do this?

Selecting whether or not two people are a match is based on decades of research in differential psychology. We have worked with professors from this field of psychology to build the basis of the algorithm.

In the not-so-distant future, our algorithm will learn by itself, though. To do that, we ask for feedback after every meeting and in regular intervals months later. By tracking the development of friendships, we can precisely analyze what components of the compatibility match make for a great first meeting — and which ones make for a lasting friendship.

Overall, most things hint towards similarities being a key ingredient in this compatibility score. As they say “birds of a feather flock together”. We are aware that the myth of “opposites attract” still exists — but it is mostly refuted by research. The fact that people experience this can be traced back to a simple psychological phenomenon: when asked to describe someone, people point out the most obvious things. What is most obvious to you is largely what is different (and often annoying). There will always be differences in people, and you can develop great relationships with them — but likely it’s the similarities that make them great, despite not because of the differences.

Vision for the algorithm

Today we are starting with 1.300 questions from various areas which we engineered together with professors of psychology based on decades of research. In the future, this will happen automatically. The algorithm will ask a small number of users a new question, which may even be proposed by a user. This question could be whether or not you like the philosopher Friedrich Nietzsche. It then checks how the user’s answers correlate with other questions and determines where Nietzsche is added to our web of questions. Likely it will find that 99.99% of people who say “no” to “Are you interested in philosophy?” will also say “no” to Nietzsche. Once this relationship is understood, it adds the Nietzsche question as a child to the “Are you interested in philosophy?” question. From that time on, only those interested in philosophy will be asked about Nietzsche. This is just a simple example. Our hope is, that the algorithm also finds some less obvious connections between Nietzsche and e.g. certain political values — or personality traits.

Current status

Currently, we are matching people via our MVP while we are building the app. The MVP is a bunch of typeforms chained together, which connect to our server where the magic happens. We display an introspective analysis and connect users via email.

Found this interesting? Send me your thoughts to — every email gets a personal reply. No VAs, no bots.

bottom of page