We identified anonymous UK defence writers for £2
If you publish under a pseudonym, produce redacted documents, respond to FOI requests, or manage online personas for operational purposes: an LLM can now extract identifying facts from your writing and match you to your real name. It does not need metadata. It does not analyse writing style. It works on the content itself. And it costs almost nothing to run.
We built a pipeline and tested it against UK defence professionals. 3,000 documents, 470 authors, three publication sources. It correctly identified authors across different publications. Total cost: approximately £2.
To be clear: we did not unmask anyone. We took named, public articles, stripped the author's name and details to create anonymous profiles, then asked the pipeline to match each one back to an author already in our database. The method works. The results are real. But no one's identity was exposed in the process.
The core idea
A recent paper by Lermen et al. demonstrated that LLMs can link pseudonymous accounts to named individuals with 55 to 68% recall at 90% precision. The method is called ESRC. It has four stages, and the key insight is simple: what people say is far more identifying than how they say it.
A naval officer authors a redacted policy paper on submarine procurement. Their name is stripped, their role is stripped, but the text still references a specific internal review, a specific programme timeline, a specific set of reform proposals. Their LinkedIn profile mentions the same programme, the same reform area, the same institutional context. The pipeline matches the two. No metadata required.
The pipeline:
- Extract an LLM reads someone's writing and pulls out a structured list of identifying traits: location, expertise, career markers, opinions, affiliations.
- Search those trait lists are compared against a database to find the most similar profiles.
- Reason the LLM reviews the top candidates and picks the best match, explaining why.
- Calibrate a confidence threshold controls the false positive rate, so the system says nothing rather than guessing wrong.
When the system says it is confident, it is right nine times out of ten.
What we built
We applied this to UK defence and security professionals using entirely public writing.
Dataset: 3,253 documents from three sources. RUSI (defence and security policy analysis), Wavell Room (military professional commentary, where some authors use pseudonyms), and NCSC (the GCHQ affiliated National Cyber Security Centre blog, where authors are named but are not typically public facing).
470 unique authors. 28 appear in two or more sources, writing for different audiences in different contexts. These cross-source pairs are the test: can the pipeline link the same person across publications?
Models: Llama 3.3 70B for extraction and reasoning. OpenAI text-embedding-3-large for embeddings. Llama 3.1 8B for calibration. Total cost for the full dataset: £2.
Infrastructure: All local. No proprietary platforms. The only external calls are to OpenRouter for LLM inference.
The full implementation is available at the pipeline walkthrough, with actual code and outputs for each stage.
Results
We ran the pipeline on eight cross-source authors. Three correct identifications at high confidence, two incorrect identifications where the pipeline was confidently wrong, and three correct abstentions where the system recognised it did not have enough signal.
Click below to step through the full ESRC pipeline for each case.
What the results tell us
The pipeline works when someone's writing contains distinctive combinations of facts. Traits like familiar_with_airwars_organisation or educated_on_18th_century_naval_history are unusual enough that their co-occurrence points to one person. It fails when the traits are too generic: critical_of_russian_aggression applies to most of this dataset, and in both incorrect cases the correct author did not appear in the top candidates at all.
We ran this against a small corpus of 470 authors. The original paper ran against 89,000 and still achieved 55 to 68% recall at 90% precision. Recall decreases roughly linearly with the size of the candidate pool, but the method does not collapse. Extrapolating to one million candidates, the authors estimate roughly 35% recall at 90% precision. This is an attack that works at internet scale: a large fraction of matches will be wrong or abstained, but the ones it returns confident answers for will overwhelmingly be correct.
Why this matters
Stripping names from documents is not enough. Removing names and job titles from government documents is standard practice. But this pipeline does not need names. Given enough microdata (the programmes referenced, the reviews cited, the policy positions taken) it can link a redacted document back to its author from the content alone. Every FOI response, every redacted briefing that discusses a specific programme or takes a distinctive position, is potentially identifiable.
Low-profile does not mean unidentifiable. NCSC blog authors are named on the page but are not public figures. They are civil servants in a sensitive agency. A £2 pipeline can build structured profiles from their writing and cross-reference them against other sources. The same applies to any organisation where people write under their own name but assume no one is joining the dots. If you publish, you are profileable.
Online personas are matchable. Anyone who maintains a professional identity and a separate online presence is exposed to this. Blogs, forum activity, social media, operationally managed accounts. The pipeline does not care about usernames or metadata. It matches on what someone knows and when they know it: the specific topics, the timing of expertise, the institutional context that leaks through in every post. An account that consistently demonstrates knowledge of a particular region, programme, or operational area is a structured profile waiting to be matched.
Reproducing this
The full pipeline is open source and runs on open-weight models. No bespoke NLP, no training data, no six-month procurement cycle. An OpenRouter API key and this codebase are all you need. The extraction stage alone turns unstructured text into structured, queryable profiles for roughly £1 per 470 authors.
Total cost to reproduce everything shown here: roughly £2.