Skip to content

Building the Personas

From "we need a retired banker" to a fully realized character with a wife named Kamla, a son who handles the computer things, and a strategic framework for extracting scammer payment details while pretending not to understand UPI.

Context: February 5, 2026, late afternoon. The core webhook handler was working --- it could receive messages, call Gemini, and return responses. But the responses sounded like a chatbot. The next step was making them sound like a real person who a scammer would believe.


The Starting Point

User: "The persona needs to feel like a real Indian uncle, not a chatbot. Retired State Bank of India banker. 67 years old. Lives in Dwarka, Delhi. Knows banking inside out but can't figure out his phone."

Claude Code generated an initial persona prompt --- a system instruction for Gemini that described the character. It was competent but generic. The speech patterns were correct Hindi-English code-switching, but they lacked specificity. It could have been any uncle from any city.

User: "Add more family references --- that's how Indian conversations actually work. Every Indian uncle brings up his family in every conversation. Wife, children, grandchildren. And the family members should be reasons to delay --- 'let me ask my son' is the most natural stalling tactic."

The revised prompt added:

  • Kamla (wife): "Kamla ko bataana padega" (I'll have to tell Kamla) --- used when the scammer asks for payment, creating a delay while appearing to seek spousal approval
  • Rohit (son): "Rohit ko phone karta hoon, woh sab jaanta hai computer ke baare mein" (let me call Rohit, he knows about computers) --- the tech-savvy son becomes a reason to stall for time
  • Priya (daughter-in-law): Referenced in stories about family gatherings, adding conversational texture

These were not random names. They were chosen to be culturally appropriate --- common Hindi names from the right generation and social class for a retired banker's family in Delhi.

User: "The strategic delays need to extract information, not just waste time. When Sharma Uncle says 'let me ask Rohit,' the next message should include a question that forces the scammer to reveal something."

This was the critical refinement. The final version turned every delay into an extractive opportunity:

DELAY TACTIC: "Ek minute beta, Rohit ko phone kar raha hoon..."
FOLLOW-UP: "Rohit bol raha hai ki UPI ID chahiye transfer ke liye.
            Aapka UPI ID kya hai? Rohit abhi kar dega."

The delay feels natural --- an old man calling his tech-savvy son for help. But the follow-up extracts the scammer's UPI payment identifier. The scammer thinks they are one step closer to getting money from a confused victim. In reality, they just handed over a financial identifier that can be reported to law enforcement.


The Hinglish Problem

A genuine Indian uncle does not speak pure English or pure Hindi. He speaks Hinglish --- a natural mix that shifts based on the topic. Banking terms stay in English ("account," "transfer," "OTP"). Emotional reactions switch to Hindi ("Arey baap re!"). Polite address uses Hindi ("beta," "ji"). Technical confusion uses Hindi ("Yeh kya hai? Samajh nahi aaya").

We spent a full session getting the language mixing right. The initial output was too uniform --- every sentence had the same Hindi-to-English ratio. Real Hinglish is contextual:

  • When confused: More Hindi. "Yeh kya bol rahe ho? Mujhe kuch samajh nahi aa raha."
  • When discussing banking: More English with Hindi fillers. "Account number toh hai mere paas, lekin yeh UPI-VPI kya hota hai?"
  • When suspicious: Formal Hindi. "Dekhiye, SBI mein 35 saal kaam kiya hai. Kabhi aisa nahi hua."
  • When cooperating: Casual Hinglish. "Theek hai beta, bolo kya karna hai."

Claude Code encoded these contextual switches into the persona prompt as explicit instructions with examples for each emotional state. The result was a character who sounded different depending on the emotional moment --- exactly like a real person.


The Three-Persona Strategy

Sharma Uncle was not the only persona. We built three, each targeting a different scam category:

Sharma Uncle (Rajendra Sharma, 67, retired SBI branch manager) targets banking and KYC scams. His banking knowledge creates a paradox: he catches inconsistencies ("SBI never asks for OTP on phone call") while appearing vulnerable enough to keep the scammer trying.

Lakshmi Aunty (Lakshmi Venkataraman, 58, retired teacher, T. Nagar, Chennai) targets lottery, prize, and insurance scams. Her Tamil-English pattern ("Aiyo, kanna, what you are saying?") immediately signals the right demographic. Her LIC insurance knowledge lets her ask pointed questions about fake insurance schemes.

Vikram (Vikram Malhotra, 32, software developer, Koramangala, Bangalore) targets digital arrest and tech support scams. He is not a victim persona --- he is a skeptic. He demands documentation, mentions his friend at the Cyber Cell, and asks uncomfortable questions. Against "digital arrest" scams ("Your Aadhaar is linked to money laundering"), his refusal to panic keeps scammers talking while they try to overcome his objections.

Why Three Personas

Each persona is optimized for a different scammer psychology. Banking scammers expect confused elderly victims and get suspicious if the target asks too many smart questions --- Sharma Uncle gives them exactly what they expect while slowly extracting their details. Lottery scammers expect greed and excitement --- Lakshmi Aunty provides enthusiasm while asking "which bank should I go to, kanna?" Digital arrest scammers expect fear --- Vikram's calm skepticism forces them to provide more and more fake documentation to convince him, each piece being additional evidence.

The entire persona engineering phase --- all three characters, their speech patterns, their strategic behaviors, their family members, and their extractive tactics --- was completed in a single extended Claude Code session. The human provided the cultural framework and strategic vision. The AI translated it into structured prompts that Gemini could execute consistently across hundreds of conversations.


These excerpts are representative of the actual development conversations. See the README for how to interpret them.