Divyanshu Aryan

case study · at TrulyMadly

Building Maira, TrulyMadly’s AI matchmaker

Divyanshu Aryan designed and built Maira, TrulyMadly’s AI matchmaker, as its sole engineer, then architected the AI companion app it grew into. All of it was built as an employee of TrulyMadly, and Maira belongs to TrulyMadly. The rest of this page is in Divyanshu’s own words.

I built Maira, TrulyMadly’s AI matchmaker.

People rarely say what they want neatly, and many say it in Hinglish. As the sole engineer, I designed and built Maira (it started out as MissTM) to follow that, learn what each person wants and introduce real people who fit, with safety checks throughout. Then I rebuilt how it reads requests: it now understands more, works faster and costs far less.

koi chahiye jo travel karna pasand kare, aur thoda funny ho

MairaSomeone who loves a trip and doesn’t take life too seriously. Got it. Delhi NCR mein dekhun?

96/100

requests it understands correctly, up from 77 before my rebuild

⅕

of the old cost to understand each request

37%

less waiting while it works out what you mean

for engineers

  • Sole engineer. Agent harness: layered prompt assembly (persona, constitution, time awareness, conversation arc), intent routing, output guards, 6 LLMs with failover and A/B tests.
  • Rebuilt Hinglish preference extraction as one cached LLM tool call: accuracy 77% → 96%, cost −82%, latency −37%.
  • Search: hard filters, hybrid retrieval over text and image embeddings fused with RRF, a reciprocal likes-you channel, two-sided reranking with exposure fairness.

Teaching an AI to remember you.

Maira grew into an app of its own, where people chat with and call AI characters, and I architected it. The hard part was memory, so I designed a layered one and measured it on real chats. Tell a character your sister’s wedding is in March, and weeks later it asks how it went.

3 weeks agomy sister’s wedding is in march, total chaos at home

todayHow did the wedding go? Did the chaos settle down?

1 in 5 → 3 in 4

personal details it picks up from real chats, before → after my redesign

for engineers

  • Architected the standalone Maira companion app (chat and calls with many human-like characters) on a multi-tenant platform that drove revenue growth.
  • 3-tier memory: recent window, compaction summaries, RAG over subject–relation–object triples extracted async into a knowledge bank. Prompt caching serves ~84% of tokens.
  • LLM-judge evaluation on real chats; designed an extractor lifting user-fact recall from 19% to 74%.

I designed check-ins people actually answer.

When someone goes quiet, the easy answer is spam. I designed something gentler: the character checks in with something it remembers about them, waits longer each time, from two minutes up to fifteen days, and tries a fresh angle on every attempt. Then I rebuilt it to hold up at scale, so every message goes out once, and only once.

7 in 10

people who got a check-in wrote back

for engineers

  • Re-engagement pipeline: memory-aware nudges on a back-off ladder (2 min → 15 days), 19 rotating comeback angles, plus story and feed nudges; 70%+ reply rate.
  • Re-architected for scale: lease-based dispatcher, transactional outbox, idempotency fences. Exactly-once delivery at 2.5 s p95.

Making an AI you can actually call.

Typing isn’t for everyone, so the characters take calls too. A call only feels real if replies come quickly and you can cut in. I connected a live AI voice model to the app’s calling system, made it stop the moment you start talking, and carried the chat memory into the call.

for engineers

  • Real-time voice calls on Gemini Live through a Go bridge to Agora, sharing memory with the character’s text chat.
  • Barge-in with Silero VAD, so people can interrupt mid-sentence, as on a normal phone call.
Next: scoring the matchesSee it in the story