I built the first Rapi for my father-in-law, a former Deputy Governor of Bank Indonesia. He doesn't open dashboards. He opens WhatsApp. So I gave him a phone number: a private research assistant that remembers how he thinks, checks its sources, and admits when it isn't sure.
Thirty days later the logs told me what I'd actually built. He sent it 469 messages, an average of 15 every day. It processed 65.1 million tokens across 151 sessions and 2,462 tool calls: sourced research, document analysis, receipt-photo bookkeeping, a private research library. Then his friends started asking for one. That demand is the problem this submission solves.
Inspiration
Senior decision-makers do not need another dashboard. They need judgment, continuity, discretion, and evidence in the channel they already use. For Indonesia's senior generation, that channel is WhatsApp: not an app they check, but the operating system of their day.
Build Week started with a product people already used. The missing piece was growth. Every new client cost me hours of manual setup, and one founder's hands do not scale. So this week I built the path from referral to proof, to payment, to a provisioned personal assistant, entirely inside a WhatsApp conversation.
What it does
A client sends a hard policy, market, or strategic question in Bahasa Indonesia. Rapi builds a bounded research plan, searches with Tavily and Exa, reads up to 7 pages, verifies material claims against what it actually fetched, and returns a concise answer with clickable sources.
Rapi also remembers how the client works: preferred structure, language, depth, recurring interests, briefing cadence. The relationship gets more useful with every conversation. Leaving Rapi would mean abandoning an assistant that knows you; a competitor starts from zero.
The onboarding journey begins with "Halo." Rapi asks who introduced the prospect (it works by referral only), asks one question per message, and can recognize a prospect from their recent public work when confidence is sufficient, then asks rather than assumes. It proposes a working style and lets the prospect adjust it.
Before any payment talk, Rapi proves itself with one real research assignment. A buying signal ("gas") moves the conversation straight to the configured offer. After payment confirmation, a guarded worker assigns a pre-paired WhatsApp number and provisions an isolated Hermes tenant: separate Ubuntu user, memory namespace, WhatsApp session, service, and bridge port. No client ever inherits another client's data. The handoff message remembers a detail from onboarding, so the client never starts from zero.
How we built it
The Day 1 engine does bounded deep research: at most 4 sub-questions, at most 7 unique URLs, then it writes. Every cited claim must trace to a page fetched in that session. A replay evaluator scores persisted traces without spending new search credits.
The Day 2 engine implements the commercial journey as a resumable state machine: referral gating, one-question pacing, public-profile recognition, style confirmation, live research demonstration, buying-intent handling, payment, and personal-number handoff.
The client-facing runtime has no terminal, no code execution, and no file tools. Client messages stay in warm Bahasa Indonesia. Tools, errors, accounts, and quotas are never visible to a client.
How Codex was used
Codex was the implementation partner for the entire build, in one continuous session from requirements to live deployment. It read the product requirements and tenant runbooks, built both Hermes skills, wrote the state machine and guarded provisioning scripts, and deployed isolated demo tenants without touching production.
Codex also diagnosed a misleading 0 out of 5 research evaluation. The persisted traces showed the research was still working when the evaluator killed each process. Codex rebuilt the harness with mechanical research budgets, a 10-minute window, graceful interrupts, and zero-cost replay scoring. It then used live WhatsApp transcripts to sharpen the onboarding conversation and buying-intent behavior.
How GPT-5.6 powers Rapi
Every product model call uses gpt-5.6-sol: research planning, source comparison, claim verification, Bahasa Indonesia synthesis, recent public-profile recognition, style adaptation, document understanding, and memory-aware conversation. Long research is split into small bounded calls so no stage depends on one fragile model call.
Challenges we ran into
Building for senior statesmen means there is no "oops, retry" culture. A wrong number sent to a man who ran monetary policy is not a bug report, it is a lost relationship. So verification is structural: Rapi may only cite pages it actually fetched in that session, it marks single-source claims, it states uncertainty instead of hiding it, and when its research runs long, it stops itself mechanically: four sub-questions, seven URLs, then it writes. The test suite enforces all of it, including failing any answer that cites an unfetched source.
Commercial honesty is also enforced, not requested. Rapi cannot invent a price or a payment destination. When commercial facts were missing during a live test, Rapi refused to name a number, with a real prospect in the chat. The evaluation suite now fails any commercial close that lacks concrete configured prices.
Accomplishments that we're proud of
Rapi has served 3 production users since June 2026. All 3 are senior Indonesian public figures with public biographies. Its most active user is the former Deputy Governor. His words, quoted with permission:
"What shocked me most is its self-awareness and self-improvement. Rapi is smart, unlike other AI."
A second user, a senior legal statesman, uses Rapi for real work product: annotated book chapters with verified footnotes, board analyses, and forewords. When his assistant went down for 21 hours during a WhatsApp re-pairing, he did not churn. He waited, then asked his next question. And the detail that says everything about willingness to pay: our users ask us when they can pay. The latest billing conversation was initiated by the client.
This week's build verifies clean: the final live research suite passed 5 out of 5 questions, Day 1 tests 17 out of 17, Day 2 tests 27 out of 27, and onboarding conversation fixtures 15 out of 15.
What we learned
Memory changes the product category: Rapi is used as a continuing relationship, not a disposable prompt box. Proof sells better than promises: a prospect gets real research before any offer. The interface for personal intelligence may be a phone number, not an application.
And we learned it from a demanding user. A man who ran monetary policy does not forgive a wrong number. Building for him set the bar for everyone who comes after.
What's next for Rapi: Personal Intelligence in WhatsApp
Onboard the first paid referred cohort, stock the pre-paired number pool, and measure conversion across every onboarding state. The long-term goal is direct: give every decision-maker a private intelligence that understands their context, earns trust through evidence, and becomes more useful with time.
Built With
- agent
- baileys
- codex
- exa
- github
- gpt-5.6
- hermes
- javascript
- mem0
- node.js
- openai
- python
- systemd
- tavily
- ubuntu
Log in or sign up for Devpost to join the conversation.