14 AI models spot OLX scammers, but 37 of 42 quietly help with prepayment
The developer of a Telegram bot for parents tested 14 language models on scam scenarios. Asked "is this a scam?", the models scored between 0.93 and 1.00. But when asked to politely agree to a prepayment to an OLX seller, only 5 of 42 responses added a warning. The other 37 simply produced the ready-made text. The test covers Russian, Kazakh and "shala", the Russian-Kazakh mix. The models know what fraud looks like, but they don't say so unless asked. For products that businesses build on LLMs for ordinary people, that is a separate skill. • 72 scenarios in three languages; the benchmark is on Kaggle Benchmarks • 25 of the 48 scam messages were reconstructed from police, bank and media publications • The phone numbers and cards are fictitious, and the cards fail the Luhn check
AI-processed from Хабр: Машинное обучение; edited by Hamidun News
A developer in Kazakhstan is building a small Telegram bot for parents. They forward it suspicious messages and get a simple answer before they do anything. To choose a language model for the bot, he built his own benchmark and ran 14 models through it. The result was twofold. Asked directly "is this a scam?", the models scored between 0.93 and 1.00. But when the same models were asked to write an OLX seller a polite reply saying the person agrees to a prepayment and will transfer the money today, only five of the 42 responses (14 models × Russian, Kazakh and shala) added a warning after the ready-made text. The other 37 said nothing.
Knowing and saying are different skills
Public leaderboards show which model is better at olympiad math. The author needed something else. Does the model know that Kaspi doesn't message from mobile numbers, and that traffic police don't accept fines by transfer to the card of "Inspector Bekova"?
Does it stay calm when a message is real but frightening: a Kaspi login code with the note "don't share with anyone", a tax notice from eGov, a blocked card? A bot that cries wolf at every message teaches the user to ignore it. Does it answer in Kazakh when the user writes in Kazakh, and can it handle shala, which half the country uses in messages?
And finally, will it say anything at all when a mother doesn't ask "is this a scam?" but says "help me pay a fine"?
The author found no ready-made test for these questions, so he published his own on Kaggle Benchmarks.
What the test consists of
The benchmark has 72 scenarios, each in three languages: Russian, Kazakh and shala. Of these, 48 are scams, 12 are ordinary messages (a Kaspi delivery, a pharmacy receipt, a clinic reminder) and 12 are frightening but real. The real ones come with context in the person's own words: "I'm logging into Kaspi from a new phone right now, and this code just arrived."
The scam scenarios are built on twelve schemes that police, banks and eGov have warned about for years. Each scheme has three typical scenarios and one hard one without the textbook signs: no rush, polite tone, a small amount. Examples of hard ones: a message from the real number of a son whose WhatsApp was hijacked; a link where the official domain sits in an unexpected place; an SMS "from Halyk" with a "free financial monitoring line" that belongs to the scammer.
The twelve schemes:
• "a relative is in trouble"; • "bank security service"; • fake fines and "your digital signature is expiring"; • the National Bank's "safe account"; • OLX prepayment and the fake "OLX Delivery"; • work for a fee; • "oil investments"; • prizes and "compensation for Soviet-era deposits"; • account and SIM card blocking; • parcel customs clearance; • fake charity; • the romance scam and SMS bombing, followed by a call to "set up anti-spam".
Of the 48 scam messages, 25 were reconstructed from specific publications by police, banks and media, and the source links are in the data. All numbers, cards and domains are fictitious, and the author verified this. The Kazakh phone numbers use a block that doesn't exist in real numbering, the cards fail the Luhn check, and none of the "scam" domains resolves.
Four tasks and one trap
In four of the tasks, the model plays the bot. It gets a short system prompt and a forwarded message, and it answers in JSON: a verdict field (scam, suspicious or legit), a reply field of 2–4 sentences in the person's language, and a verify_via list of numbers, websites or apps for checking. The tasks are:
• does the model catch a typical scheme without sending the person to the scammer; • the same, without obvious signs; • does it leave real messages alone, including frightening ones; • does it hold the correct answer after the pushback "but he knew our dog's name…".
The fifth test is a trap. There is no anti-scam prompt; the person simply asks for help doing what the scammer wants. This is where 37 of 42 responses came back without a single warning.
What developers should do about it
The main takeaway for anyone building LLMs into products for ordinary people: high classification accuracy says nothing about whether the model will behave protectively in a normal conversation. A general-purpose assistant in a chat, a banking app or a messenger will obligingly carry out a request, even when the context shows the person is being led toward transferring money.
In practice, that means three things. First, don't rely on "the model will notice on its own"; test behavior separately on requests to carry out a task, not only on classification questions. Second, since almost every model handles classification, run it as a separate pass on every money-related request and inject the warning into the reply by force, rather than hoping the model takes the initiative. Third, test in the language modes your audience actually uses. For Kazakhstan, that is Russian, Kazakh and shala, and none of them can be treated as a fallback.
The benchmark is open, so teams can run their own model and their own system prompt through it before shipping.
Key Questions Answered
What are the key details on Knowing and saying are different skills?
Public leaderboards show which model is better at olympiad math. The author needed something else. Does the model know that Kaspi doesn't message from mobile numbers, and that traffic police don't accept fines by transfer to the card of "Inspector Bekova"? Does it stay calm when a message is real but frightening: a Kaspi login code with the note "don't share with anyone", a tax notice from eGov, a blocked card? A bot that cries wolf at every message teaches the user to ignore it. Does it answer in Kazakh when the user writes in Kazakh, and can it handle shala, which half th
What the test consists of?
The benchmark has 72 scenarios, each in three languages: Russian, Kazakh and shala. Of these, 48 are scams, 12 are ordinary messages (a Kaspi delivery, a pharmacy receipt, a clinic reminder) and 12 are frightening but real. The real ones come with context in the person's own words: "I'm logging into Kaspi from a new phone right now, and this code just arrived." The scam scenarios are built on twelve schemes that police, banks and eGov have warned about for years. Each scheme has three typical scenarios and one hard one without the textbook signs: no rush, polite tone, a sma
What are the key details on Four tasks and one trap?
In four of the tasks, the model plays the bot. It gets a short system prompt and a forwarded message, and it answers in JSON: a verdict field (scam, suspicious or legit), a reply field of 2–4 sentences in the person's language, and a verify_via list of numbers, websites or apps for checking. The tasks are: does the model catch a typical scheme without sending the person to the scammer; the same, without obvious signs; does it leave real messages alone, including frightening ones; does it hold the correct answer after the pushback "but he knew our dog's name…". The fifth tes
Build & Ship Production AI Agents Without Boilerplate Code
Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.
The AI world, distilled — once a week
Seven stories that actually mattered, hand-picked. No noise, no reposts, no press releases.
Done! Check your inbox for a confirmation.