Personality tests help people understand themselves. They can also give intelligent agents enough context to make recommendations that fit a particular person instead of treating everyone the same. That motivated me to create a personality test for Motiro, our flagship team motivation product.

There are many ways to model personality. Some sort people into a small number of types; others measure traits along continuous scales. For us, the Big Five was the clear choice: it is one of the most extensively researched models of personality. The International Personality Item Pool also provides well-tested sets of questions for it that anyone can freely use.
The model starts with five broad traits: Openness, Conscientiousness, Extraversion, Agreeableness, and Neuroticism. Each trait is divided into six narrower facets, giving us 30 facets in total.
Now imagine reducing every facet to just three ranges: low, typical, or high. That deliberately crude model already gives us:
3^30 = 205,891,132,094,649
That is more than 205 trillion theoretical personality profiles. The engineering question was not how to enumerate them. It was this: how can software find a useful, personal explanation for one human being living somewhere inside that enormous space?
Why ordinary personality reports are boring
The easy solution is to report every score separately. Your Openness is this. Your Conscientiousness is that. Here are your other three traits, followed by all 30 facets. The result may be accurate, but it is a tedious 35-point inventory—not an intelligent explanation of who you are.
The more distinctive insights appear when traits reinforce, balance, or contradict one another. A score can tell you that a tendency exists. A combination can help explain what that tendency looks like in the context of the rest of the person.
Consider someone who scores high in both assertiveness and modesty. Assertiveness alone suggests a willingness to take the lead. Modesty alone suggests little interest in status or recognition. Together, they can produce quiet authority: someone willing to lead without needing the credit. Neither score provides that insight by itself.
To offer this kind of explanation to everyone, we had to explore how the traits and facets could combine, identify the combinations that carried a distinct meaning, and write a precise explanation for each one. Then we needed software capable of deciding which explanations genuinely belonged in a particular report.
This is also where personality writing can easily become a horoscope. A horoscope starts with a broad sentence and hopes almost everyone will recognize themselves in it. Motiro starts with the scores. The “quiet authority” explanation appears only when both assertiveness and modesty are high. If either one is not high, that explanation does not appear. If the engine cannot find a meaningful trait combination, it does not hallucinate one.
How AI made this possible
A few years ago, I would have expected a project like this to require several people: personality specialists to find and check the patterns, writers to explain them clearly, and programmers to encode the rules and test the resulting system. AI allowed me to move between those roles while keeping the work inside one fast feedback loop.
I used Claude Code and Codex repeatedly throughout the process. A typical loop looked like this: propose an explanation and the rule that would trigger it; implement the rule; generate reports across many sample profiles; read the results; then revise or discard whatever did not work. The same loop exposed missing cases, overlapping explanations, weak wording, and behavior that became fragile near a score boundary.
AI did not make the final decisions. Some suggestions were fluent but empty. Others overstated what the scores could support or repeated an insight already covered elsewhere. I made the final calls about the underlying research, the tone, the privacy boundaries, and what was good enough to ship.
After one week of running that loop, I had written, reviewed, and approved a library of exactly 207 explanations. Sixty describe the facets that most strongly define a person; another 60 turn those facets into practical takeaways. Forty explain what emerges when two broad traits meet, 38 capture revealing interactions between individual facets, and nine describe the gap between what someone shows on the outside and what may be happening within.
These are not 207 personality types. Each is a reusable piece of meaning tied to a precise personality pattern. “Warm but guarded,” for example, can help explain many people, but it appears only when friendliness is high and trust is low. That is the compression at the heart of the system: a library small enough for every sentence to be reviewed, but expressive enough for the engine to assemble a coherent portrait of someone within a theoretical space of more than 205 trillion personality profiles.
Turning 207 explanations into one personal report
Writing 207 good explanations gave the engine a vocabulary. It still needed judgment about what to leave out. A single profile may support many true explanations, but five variations of “you tend to take charge” do not create five insights. They make a report feel mechanical.
So the engine does more than match scores to paragraphs. It chooses the clearest explanation, sets aside weaker ones built from the same evidence, and looks elsewhere in the profile for the next insight. The goal is not to say everything that is true. It is to say the few things that, together, explain the person best.
AI helped encode those judgments as rules and test them across thousands of profiles. I reviewed a sample, gave the AI examples of good and bad selections, then had it inspect most of the remaining reports and flag doubtful cases. Tests caught broken logic; the review caught outputs that followed the rules but still felt repetitive, generic, or unconvincing.
Why the finished engine does not use AI
Here is the counterintuitive part: although AI made the engine possible, the finished engine does not ask an AI to write your report.
The obvious implementation would be to send every profile to a large language model and prompt it to produce a personal analysis on demand. That would be easy to prototype, but it would make the result nondeterministic. It could invent psychological claims, vary its conclusions from one run to the next, and produce sentences no human had reviewed. It would also add cost, latency, and another provider handling sensitive personality scores.
Instead, every explanation our product can show comes from the reviewed library. The runtime engine only evaluates rules and selects text. The same profile always produces the same human-approved explanations: no hallucinations, no prompt drift, and no per-report LLM call. AI lives in the development loop, where it helped me explore and test the system—not in the production path, where people trust the result.
From one personality to two
Once the individual report worked, a more interesting problem appeared. Comparing two personality profiles is not just twice the work. How can we explain the interaction between two people without reducing their relationship to a compatibility score?
Using the same exploratory strategy, AI made it practical to build and test a second library containing 129 explanations. These describe ways two people may communicate, get things done, disagree, handle pressure, and explore together. They are presented as useful possibilities the two people can discuss—not as a verdict about whether they belong together.
The pair engine is deterministic too: it selects only reviewed explanations, keeps the strongest distinct insights, and discards repetitions. It does not improvise a story about the two people.
Checking those rules manually across combinations of two 30-facet profiles would not have been realistic. AI helped generate and evaluate thousands of representative pairings, while I read sample paired reports and revised the rules and prose when the result repeated itself, contradicted itself, or made too much of weak evidence. One AI-powered programmer was able to build the entire paired-report engine.
Why this matters for programmers
The largest gain was not faster code. It was keeping the research, prose, rules, simulations, and tests inside one feedback loop. AI did not turn me into a psychologist or remove the need for judgment; it made a project that would have been impractical for me alone possible.
The method is reusable. Start with sources you trust. Turn what you learn into explicit data and rules. Use AI to explore the combinations, implement the system, generate test cases, and find the places where your assumptions break. Then read the output and remain responsible for every decision that ships.
There is another lesson here too: using AI to build a product does not mean AI must sit in the product's runtime. In this case, AI was most valuable as a tool for exploring a large design space and converting judgment into deterministic software.
That is a much larger opportunity than completing familiar tickets faster. AI expands the blast radius of a programmer. Products that once looked too broad for one person can become reasonable things to attempt.
Run it on yourself
You're more than welcome to take Motiro's brand-new personality test. It contains 60 questions, takes about 10–15 minutes, and is free. You do not need to create an account or provide an email address, and the guest assessment is processed without being stored.
If you find the initial report interesting—and I bet you will—you can create a free account and answer 69 additional questions. That unlocks the full report across all 30 facets, its deeper trait combinations, and a revocable link you can share with friends.
Anyone can read a report you share without creating an account. Friends and colleagues can take the test in any of 11 languages. If they complete their own profile, Motiro unlocks the free paired analysis showing how the two of you may interact.
Try it at motiro.com/personality, then share your result with someone who knows you well. The paired report is where the system becomes especially interesting. You can leave your feedback in the comments.
Closing
If you know me through my programming books, you may have wondered why I have not published another one. AI is rapidly changing what it means to be a programmer. Computer Science Distilled and Computer Science Unleashed are still great reads for every kind of programmer, but this revolution is so disruptive that I need to let the dust settle before writing the next one.
Motiro is only one case study. Programmers everywhere are beginning to build things that would once have been too expensive, broad, or complicated to attempt. Writing code faster is part of the change. The deeper change is that the boundary of what one programmer can reasonably build has moved—and we are still discovering how far.