← Back to work

Personal product / entertainment personality-matching test

AIsoul | Soul Mirror

An entertainment personality-matching experience designed for self-observation

AIsoul Soul Mirror result-page cover showing AI personality match, reflective interpretation, and a six-dimension profile
Time
2026
Type
Personal product / entertainment personality-matching test
My role
Product positioning, experience flow, scoring and matching logic, generative-content integration, backend organization, testing, and launch
Status
Full experience is live and continues to improve through operating data and real feedback
Access code
findsoul

Why I built this product

AIsoul began as an experiment in how AI could support self-observation without pretending to provide a professional psychological diagnosis. The product uses 20 scenario-based questions to map a user’s tendencies across six dimensions and match them with one of seven AI personality archetypes.

The aim is not to tell users who they are. It is to provide a coherent, readable mirror that may help them notice patterns in how they think, decide, communicate, and act.

How the complete experience works

Visitors enter a shared experience code, read the scope of the test, and complete all 20 questions. The interface keeps the question number, progress, selection state, and next action clear so the flow can be completed continuously on desktop or mobile.

AIsoul Soul Mirror entry page showing the 20-question introduction, experience-code field, and start button

Entry page: visitors enter the shared experience code before beginning the complete 20-question flow.

AIsoul Soul Mirror question page showing question 11, progress, and four response options

Question page: explicit numbering, progress, and selection feedback maintain a continuous experience.

After submission, deterministic rules calculate raw and display scores for six dimensions and match the result to one of seven AI personalities. The result page combines the match, match strength, a personalized interpretation, and a six-dimension profile.

AIsoul Soul Mirror result page showing an AI personality match, match score, reflective interpretation, and six-dimension chart

Result page: personality matching, validated generative interpretation, and six-dimension scoring form one complete response.

The shared code is only a lightweight access control for a portfolio demonstration. It is not a payment, membership, or formal account system.

Key product decisions

1. AI does not decide who the user is

All six-dimension scoring and personality matching are completed by deterministic local rules. The model does not read the answers and independently decide which personality a user belongs to. Identical answers therefore produce the same core result.

Generative AI is used only in the expression layer. It receives the calculated dimension tendencies and matched archetype, then turns that structured result into a more natural and specific interpretation. The model expresses the result; it does not determine it.

2. Generation failure must not break the experience

Every personality has an independent local result. If the model request times out, returns an error, or fails structural validation, the system automatically uses the matching local version. Users can still finish the test and receive a complete result.

This fallback is not visually dramatic, but it distinguishes a stable product flow from a prototype that works only when an API request succeeds.

3. Remove features that do not support the core experience

Earlier versions contained payments, weekly access codes, social-media operations entry points, and a more complicated user system. Those modules increased size without improving the central experience, so I removed them and refocused the product on three questions: Is answering smooth? Is the match clear? Is the result worth reading?

How generative content enters the product

The personalized interpretation is generated through the DeepSeek API. The server sends only the six calculated tendencies and matched personality profile required for generation; it does not send the user’s 20 individual answers.

The model must return an agreed structure. The backend checks required fields, data types, and reasonable content length before anything is displayed. Real API keys remain in server environment variables and are never sent to the browser or committed to the public repository.

Integrating the model therefore includes limiting input, constraining output, handling timeouts and errors, preparing local fallbacks, and protecting sensitive configuration—not merely making an API call.

How I observe whether the product is working

After launch, I added anonymous records and an administration view to monitor stability and identify what to improve. The system records the test time and version, answer choices, six-dimension scores, final match, generation or fallback status, request duration, and error type.

It does not store names, phone numbers, accounts, or IP addresses, and records expire after 180 days. Screenshots on this page use demonstration data and do not represent the scale of real users.

AIsoul administration overview using demonstration data to show daily tests, personality distribution, average dimensions, and score distribution

Administration overview with demonstration data: it illustrates trend and distribution capabilities, not real user scale.

AIsoul DeepSeek status view using demonstration data to show success rate, fallback count, latency, and anonymous records

DeepSeek operating statistics with demonstration data: generation status, latency, and anonymous records are shown without user identity or individual answers.

What I completed

I was responsible for narrowing the positioning and non-diagnostic boundary; designing access, answering, scoring, matching, and results; maintaining the six-dimension rules; integrating DeepSeek with structured output and fallback; designing anonymous data and administration views; moving keys and secrets to server environment variables; adding validation, security headers, and automated tests; organizing the repository; and deploying with Gunicorn, systemd, Nginx, and HTTPS.

Current outcome

The product is publicly accessible. Users can complete all 20 questions, receive stable dimension scores and a personality match, read a model-generated or local interpretation, and finish the experience even when generation fails. Anonymous operating statistics and automated tests are in place.

Limits and next step

The current sample is too small to support reliable adjustment of question weights or personality distributions. The questions, dimensions, and archetypes are entertainment product design and do not have professional psychometric validity.

The next stage is to observe distribution skew, overly influential questions, comprehension of dimension scores, which result content is worth reading, generation stability, latency, repetition, and overinterpretation. Improvement will focus on precision, stability, and experience rather than adding many more features.