A German reporter has obtained the internal training files of a Russian agency that recruits soldiers for the war in Ukraine, by posing as a job applicant on Telegram. It is Julius Fitzke, one of my students. He posed as a recruit and recorded how the “sale” is made. I asked him to show his #osint workbench. This is his account.
On the evening of 13 July, at 22:52, Julius Fitzke sent three short messages to a woman he had never met.
“My wife and I want to serve together.”
“Is that allowed?”
“She’s from Ufa too.”
The spelling was rough on purpose. That evening Fitzke was Vadim Denisov from Ufa: poorly educated, in debt, and interested in a contract with the Russian army.
Ufa is the capital of Bashkortostan, a republic on the western edge of the Urals. More than a million people live there, well over a thousand kilometers east of Moscow. Sixteen minutes later she answered by voice message, in a pleasant, businesslike voice. The offer felt like a holiday pitch. A free ticket, to the region where you sign. A free hotel, while the doctors look you over. Free meals, until the contract is signed. (Then two weeks to a month of training, and the front.)
(Translated voice)
(Original voice)
But his wife? She was not welcome in that region.
“Realistically, they can only take a woman if she has medical training,” she said. When recruitment opens, her team quickly sends in every application it has, “because a lot of women call. But unfortunately, in the last three months not a single one has been approved. I’m telling you honestly, the truth, as it is.”
Another message followed. “So talking and dreaming about going together, unfortunately, remains only a dream.”
“The situation with women”, English translation.
This story is about how Fitzke got those voice messages, and what he had to build along the way: a woman who does not exist, a man who does not exist, a Python script, a browser button, some help from AI and a voice model that runs on a laptop.
My journey to the front
Russia’s army is running short of men who will go to the front for money. Every region has a quota of signed contracts to deliver, and a trade has grown up around filling it.
Russians use the English word for recruiter and write it in Cyrillic: рекрутер. A рекрутер looks for men (and sometimes women, see further below) in pools nobody has tapped yet and talks them into a contract with the Ministry of Defence. Agencies pay per signed contract. One of them, rekruter-svo.ru, advertises “from 500,000 rubles for every candidate”. That is about €5,300 - for the recruiter.
I wanted to understand how these agencies work. (WELT published a story on 28 August: “Mention neither the word army nor war”: inside Putin’s recruitment machinery (in German, paywalled). The headline is a line from a Moscow agency’s guide to recruiting foreigners. It tells recruiters to speak of “guarding border regions” instead.
I lived in Russia for three years and speak the language fluently. I can no longer travel there. In the fifth year of the war people are guarded, most of all with foreign journalists, and Western messaging services are being blocked.
One service remains: Telegram. Tens of millions of Russians still use it despite attempts to block it. Its API is generous enough to search and analyse content at scale.
My Telegram. Nowhere else is it this easy to get information about Russia.
Becoming Valeria Denisovna
When I made contact, I could be neither a journalist nor a foreigner.
I installed Clone App – Parallel Dual Space to run a second copy of Telegram on my phone. The app is riddled with advertising. It did the job.
Telegram wants a phone number for a new account. You can hide it from other users, but a Russian number makes the identity more credible. onlinesim.ioactivates Telegram on a Russian number for one or two dollars.
I named the account “В Д”, V D. Initials commit to nothing. Depending on who I was writing to, V D could be a woman or a man.
The profile picture began as a stock photograph. I had ChatGPT change it, round after round, until I no longer recognised the woman in the original. One of my instructions: “Alter the face slightly so that it no longer produces any matches on PimEyes.”
Editing the stock photo in ChatGPT until I no longer recognised the person in the original.
Henk asked me for this article why I did use a fake identity. In my view, assuming a false identity was necessary. In Russia, people are generally reluctant to speak with foreign journalists, particularly when it comes to sensitive subjects. Moreover, the recruiter with whom the anonymous chat took place had previously been approached from another account and asked whether she would be willing to give an interview. She declined.
Cloning the recruiter’s voice serves to make the material more accessible and understandable to readers and does not infringe her personal rights, as her identity is not known. Furthermore, the translation and cloning process alters the voice sufficiently to make recognition effectively impossible.
Telegram
Telegram lets you decide who can see your profile picture. That makes one account serve two people. I could approach male officials as Valeria Denisovna, get what I needed, put their accounts on the picture’s block list, and write to the next person as a man.
As Valeria, 27, with experience in HR and looking for a new job, I wrote to the management of a recruiting agency that was advertising online for new recruiters.
It is one of many. It calls itself AKS, short for Агентство коммуникативных стратегий: Agency of Communication Strategies. The generic name would suit a PR firm. It is registered not as a company but as an “autonomous non-commercial organisation”.
The head of the agency sent me a phone number and asked me to call him later.
That was a problem.
Russia’s legislation has made it close to impossible to get a Russian eSIM with a phone number. A Kazakh eSIM is easier, and Kazakh numbers share the +7 country code. But an attentive person notices a Kazakh mobile number, and some phones flag it.
The other option is to call from my German phone with the caller ID withheld. That is expensive, and Russians are reluctant to pick up withheld numbers. Telephone fraud is a mass problem there.
So I used an excuse that works in Russia today. I said I was in a city where the authorities had shut down the mobile network again. It happens constantly. I had Wi-Fi at home. Could we talk on Telegram instead?
He agreed.
I asked a colleague who is a native Russian speaker to help. Together we wrote Valeria’s biography. The job interview was over quickly.
Then the head of the agency sent us something.
A marketplace for soldiers
It was a small Telegram channel, «Новостник АКС», “News from AKS”: the agency’s bulletin for its recruiters. Polls, lists, prices. Too much to read by hand.
So I had an AI write me a tool: a Python script that logs into my Telegram account with Telethon, a Python library for Telegram’s API. I gave it the channel’s URL. Two minutes later the channel’s entire message history sat in one JSON file.
The script at work: every post in the channel, numbered and dated, ready to be analysed.
Read in bulk, the channel works like a freight exchange. Regions open and close like loading docks, and each one has a price.
“Dear partners! We inform you of the opening of a new destination: Ivanovo. One-time payment to the candidate: 1.4 million rubles [about €15,000]. GIRLS accepted for drone units. Please increase the flow to this destination.” (11 December 2025)
“Voronezh: 2.5 million rubles about [€26,000].. This destination is exclusive: candidates can only be processed for it through our team. The medical commission in Voronezh stands out for its high loyalty and moves considerably faster than in other regions.” (5 December 2025)
“Adler: 3.0 million rubles [about €31,000]. IF WE FILL THE QUOTA, THIS IS A VERY PROMISING DESTINATION.” (10 December 2025)
I uploaded the file to an AI model and asked what was in it. The answer ran along these lines:
The channel reveals the marketplace behind Russia’s military contract recruitment. Recruiters learn which regions are looking for candidates, which million-ruble bonuses and intermediary commissions are on offer, and which applicants will be accepted. Particularly striking are detailed requests for drone pilots, snipers, cooks, doctors and women for deployments with the Africa Corps, as well as the recruitment of foreigners, convicted criminals, men previously deemed unfit for service and, in some cases, people with HIV or hepatitis. The whole operation follows a sales logic: regions open and close, commissions are raised, referral bonuses are offered and candidates are redirected to wherever they are needed.
That summary told me where to look. The figures I quote come from the posts themselves.
The agency does not hide who it is after. On its website, anoaks.ru, a section headed “Source of material” tells recruiters that their earnings “depend on a properly configured traffic funnel”. It then lists the main target groups. Among them:
men liable for military service who have received a draft notice
former prisoners and former Wagner members
people who may have committed a crime
The list goes on, as I reported in WELT: people from regions with low wages, 18- and 19-year-olds with no school-leaving certificate, drug addicts and gambling addicts, the socially vulnerable and “society’s outcasts”.
The training folder
Next, the head of AKS sent a Google Drive folder: training materials for aspiring recruiters.
One sheet lists the regions through which a man can sign, and the region decides almost everything. Sign in wealthy St Petersburg and you get 4.5 million rubles at once, about €47,000. The fitness examination is strict, and nobody over 55 is taken.
Sign in Voronezh, 500 kilometres south of Moscow, and you get half. There, the sheet says, the medical check is “very loyal”. It means lenient. Hepatitis and HIV are no obstacle.
The rule holds down the list: the less a region pays, the less it asks. Some accept, by arrangement, men with diabetes, a slipped disc, blindness in one eye or a mild intellectual disability. In Bashkortostan, Vadim’s home region, a man can still sign at 64.
A subfolder is called «Креативы с девушками», “Creatives with girls”. It holds ready-made ads: AI-generated young women in uniform next to the offer. “5,620,000 rubles for a year of service”, about €56,000. A one-time payment of up to 3.1 million. Salary from 210,000. Debts written off up to 10 million. “Ticket, accommodation and food at our expense.” “Any university in the country, no waiting list.”
Several of the ads promise all this for a year of “rear-area service”. That is a deception. Where a volunteer serves is decided by the Ministry of Defence.
One folder carries its own review in its name: “Provocative – field-tested, gets a great many clicks.”
The Google Drive folder “Creatives with girls”.
And there is a dialogue template: a script for the conversation with a candidate.
(Members of this site can download the full document below)
It disappointed me at first. I had expected sophisticated persuasion techniques, the lines that lure a man into a war. The script starts later. The candidate is already half-convinced and wants to know what happens next.
The operator never names an organization. The call is “about the contract with the Ministry of Defence”. A drafting note on how the candidate should save the number reads: “[name] contract service / MinOborony (think about what’s better)”.
“We” buy the ticket. “We” clear the travel date with the military commissariat. “We” supply a “curator” who pays for the hotel and the food and walks the recruit to the selection point. The money is described as “accountable”. Someone is funding this.
Then the script warns the candidate, emphatically, against “private firms or so-called intermediaries” who “make money off ordinary people”.
It is a middleman telling his lead not to trust middlemen.
Becoming Vadim Denisov
The second line of the investigation ran the other way. I wanted to be the lead, and see how far a recruiter would go to get me to the front.
I removed the profile picture. Valeria was gone. V D was now Vadim Denisov from Ufa.
Finding a recruiter was not difficult. Classified-ad platforms such as Avito and social networks such as VKontakte are full of ads that look exactly like the images in the AKS folder.
The conversation moved to Telegram. A woman who communicated almost entirely by voice message offered to arrange everything I needed for a “better life”. I have no idea who she really is. Her profile picture was an AI-generated female soldier with her jacket unbuttoned.
The chat with the recruiter. Her name, number and picture are redacted.
My Russian is good. It is not native. I do have a feel for the language, more of one than a model has: when I let an LLM write supposedly authentic messages, I can hear the machine in them. So I wrote every message myself and gave it a rough, provincial flavour.
But where I cannot afford to give myself away, I want my text checked before it goes out.
Using Codex, I vibe-coded a “Russian widget”: a small Chrome add-on that talks to Claude Sonnet 4.6 through an API key. One click in the toolbar opens it. I paste in the message I am about to send. Three buttons tell the model how to proofread: correction only, formal, casual. The result goes to my clipboard, then into the chat, then to the recruiter.
Before and after. I paste in flawed Russian and click “Reine Korrektur” (correction only). What comes back is correct and stays close to my wording: “There must be a region where women can serve too. Are you sure that’s impossible?”
We wrote back and forth for two weeks.
She explained the route. During the medical commission, housing and food are provided. Then “you sign the contract on your side, and the Ministry of Defence signs on its side”. A wait of about a day. Then the training unit.
“You train for two weeks to a month,” she said. “And then you are sent to the SVO zone.” SVO is the Russian abbreviation for the “special military operation”, the state’s term for the war.
The recruiter speaks German
I wanted readers to open the material themselves. I went back to the Drive folder, picked the most telling files and translated them.
WELT can embed widgets written in TSX directly in an article. I vibe-coded a simulated Windows XP desktop. An Explorer window is open: “Arbeitsmaterialien für angehende Recruiter”, working materials for aspiring recruiters. Inside are the files: regional bonuses, the FAQ, the medical criteria, the packing list, where to find candidates, the ads. Here is a German version that works.
The WELT article with the recruiting materials embedded.
One icon is different: a Telegram logo. Click it and my chat with the recruiter opens, in German.
The chat inside the widget, translated into German.
The widget also runs on its own. Open the folder and the chat here.
One problem remained. She had sent me a large number of voice messages. I considered printing transcripts. That seemed dull.
On Hugging Face I looked for a well-rated voice-cloning model and settled on OmniVoice by k2-fsa. It needs five to fifteen seconds of reference audio from a speaker and a transcript of what is said in it. With PyTorch installed, it runs locally on my laptop.
To get the audio out of Telegram I installed an older desktop version, 7.2.5, which exports entire chats. Newer clients no longer offer that. The export is a folder: the chat in a messages.html file, the recordings in a voice_messages subfolder.
In VS Code I opened that folder, gave Codex an OpenAI API key and had it write one script with four loops:
ffmpeg converts each OGG voice message to MP3 at 64 kbit/s, enough for speech recognition.
Each MP3 goes to OpenAI’s gpt-4o-mini-transcribe model, which returns a Russian transcript.
An OpenAI model translates each transcript into German.
OmniVoice speaks each German text, using an excerpt from one original recording as the voice reference.
My MacBook was busy for about half an hour. Then I had almost two dozen audio files.
I was stunned. The audio quality is excellent, the intonation more or less natural. What surprised me most: speaking German, the recruiter still has a heavy Russian accent.
The toolbox
Nothing here is exotic. The accounts cost a few dollars, the models run on a laptop or behind an API key, and the code was written by AI on request.
Second Telegram account: Clone App – Parallel Dual Space. Runs a second Telegram on the same phone. Catch: riddled with ads.
Russian number: onlinesim.io. Activates Telegram on a Russian number for $1–2. Catch: it solves the account, not the phone call.
Profile picture: stock photo + ChatGPT. Alters a face until the original is no longer recognisable. Catch: test the result in a face search engine first.
One account, two identities: Telegram privacy settings. Controls who sees the profile picture. Catch: you have to track who has seen what.
Channel history: Python + Telethon. Downloads a channel’s full history as JSON in two minutes. Catch: it logs in with your own account.
First read: an AI model. Summarises the posts and points to patterns. Catch: a map, not a source. Quote the posts.
Message check: Chrome add-on built with Codex, calling Claude Sonnet 4.6. Proofreads my Russian in three registers. Catch: it corrects; I write.
Chat export: Telegram desktop 7.2.5. Exports the chat as HTML plus voice files. Catch: needs the older version.
Transcript and translation: ffmpeg, gpt-4o-mini-transcribe, an OpenAI model. Turns Russian voice messages into Russian and German text. Catch: the recordings leave your machine.
Voice: OmniVoice (k2-fsa) on PyTorch. Speaks the German text in the original voice, from 5–15 seconds of reference audio. Catch: half an hour of laptop time; label the result as synthetic.
The tools fetched, converted and proofread. The reporting was something else: knowing that a mobile shutdown is a believable excuse in Russia this year, and hearing when a message sounds like a machine wrote it.
Vadim Denisov never travelled to a selection point. His wife does not exist, so nobody had to tell her that her application was one of the many that go nowhere.
The recruiter is real. I still do not know her name. On WELT’s website she goes on explaining, in a language she never spoke to me, that the training lasts two weeks to a month.
Julius Fitzke has been a trainee reporter (Volontär) on WELT’s foreign desk since July 2025. He writes on Substack at substack.com/@juliusfitzke.
Sources
Julius Fitzke, „Erwähne weder das Wort Armee noch Krieg“ – Im Inneren von Putins Rekrutierungsmaschinerie, WELT, 28 August 2026
The interactive: AKS working materials and the chat with the recruiter, WELT
AKS, Agency of Communication Strategies: anoaks.ru and its Telegram channel @ANOAKS_news
Recruiter commission offer: rekruter-svo.ru
Training materials and dialogue template: Google Drive folder sent by AKS, held by the author
Telegram conversation and voice messages with a recruiter, July 2026, held by the author
For members only: original recruiting document
















