On AML, screening, and what it takes to check a person without ruining one.I've been going deeper into security. In the last post I wrote about small tools for analysing applications: dependencies, reachable vulnerabilities, secrets left behind. That is the side of security everyone recognises. Find the hole, stop the leak, fail the pipeline before the problem ships.But in day-to-day work I keep running into another kind of question. These are still security questions, and they are still solved with technology. Only the technology isn't an exploit or a firewall. It's information. Who is this person, according to the lists that matter? Is this name a match, or only a namesake? What should a system be allowed to decide alone?This text is about that kind of security, and about what happens when you answer it wrong, with confidence. But before the lists, before the scores, before any of that, I need you to meet someone.A woman at a counterIt's a Tuesday, mid-afternoon, the kind of hour when bank branches go quiet and the air conditioning is louder than the people. She has a number ticket in one hand and a plastic folder in the other. Inside the folder: passport, proof of address, a payslip, a letter from the school. Everything in the order the website told her to bring. She has been rehearsing this for days. She is opening an account so her first salary has somewhere to land.The clerk is kind. He types her name. It's a common name where she was born, the sort you'd find a hundred times in any phone book there. The screen turns amber. He doesn't say anything at first. He looks at the monitor, then at her, then at the monitor again. Then he says the sentence, the polite one, the one that says nothing: "It's a compliance matter. It will take a little while."She doesn't know what a compliance matter is. She only knows that, in the span of one second, she stopped being a customer and became something else. She sits back down on the plastic chair and holds the folder in both hands, like it might still prove something.Hold that image. We'll come back to her. I need to tell you first how I learned to be afraid of that amber screen.The night the confidence brokeWhen you first approach this problem, the instinct is the same for almost anyone who writes software: download the public lists, search for the name, return a hit. Simple, fast. It feels like it works.So imagine you test it on the hardest case you can think of. A very famous head of state, someone who is, in fact, sanctioned. You type the name and wait. Critical sanctions hit. Recommended action: BLOCK. Confidence: 95%. Correct. Exactly what it should say. You almost clap.Then, out of habit, you do the thing you should always do. You open the evidence. And the feeling goes away, slowly, the way it does when you realise you misread something important. The hit wasn't his record. It was a paragraph inside somebody else's entry, a sentence about an airline mentioning him in passing. His real records, the ones that matter, the ones with his date of birth and his programme and the authority that put him there, the search never found. The lists write him as SURNAME, Given name. The query was looking for "Given name Surname". It walked right past him.Sit with that for a second. Same tool, same query: a false positive and a false negative at the same time, delivered with ninety-five percent confidence. That is the thesis of this whole text, and it has almost nothing to do with which product you buy. A system that is confidently wrong in both directions is worse than having no system at all, because it teaches people to stop thinking.Searching text is not the same as knowing who someone is."Everything is on the internet"People say it the way they say there are a lot of stars. It stops meaning anything. So let me give you some scale. The Panama Papers, in 2016: about 11.5 million documents and 2.6 terabytes. The Pandora Papers: nearly twelve million files. The Internet Archive has announced passing a trillion archived web pages. OpenSanctions alone tracks more than a million targets from hundreds of sources.And here is the part that surprised me. The problem is not that there is too much information. The problem is that it is shaped badly. One authority publishes a CSV with no header. Another publishes XML where a date of birth can be a day, a year, or a range. A third publishes Excel, a fourth an HTML table, a fifth a PDF. Names arrive in Latin, Arabic, Cyrillic, sometimes all three for the same person. "Mohammed" has a dozen spellings. A listing written in 2005 might say circa 1960, and that's all anyone will ever know.So nobody really searches the internet for a person. What you actually do is plumbing. You choose a few hundred places that matter, fetch each one in its own format, flatten everything into one shape, normalise the names, and only then, at the very end, ask your question. Google is a wonderful guessing machine. It is not a due-diligence tool. And the distance between those two things is exactly where people get hurt.How we got hereThe usual origin story is Al Capone and his laundromats. It's told so often it must be true, and it is almost certainly a legend. What is documented is plainer, and to me stranger: for most of the twentieth century, moving dirty money was not a crime in itself. You prosecuted the crime underneath it and, if you were lucky, the tax evasion.The first big weapon was paperwork. The Bank Secrecy Act of 1970 forced American banks to keep records and report large cash transactions. Laundering itself only became a federal crime in 1986. The idea was almost boring. You can't watch every transaction, but you can make the banks responsible for knowing whom they serve.Then the world did what the world does. In 1989 the G7 created the FATF. A year later it published the Recommendations, the skeleton that nearly every country's rules still hang on. In 1999 the UN Security Council began building a consolidated list of people and entities tied to the Taliban, later to al-Qaida. After September 11, the USA PATRIOT Act hardened customer identification across American banking.Notice the pattern. Underneath everything, the tool is a list. A list is the simplest instrument a state owns: these names are frozen, do not deal with them. Which means the whole craft of screening is, in the end, the craft of reading other people's lists correctly, and knowing how wrong that reading can be.What are you actually asking?"Do a background check" sounds like one question. It is at least five, and each one is answered by a different kind of source, with a different way of being wrong.Is this party sanctioned? Frozen or blocked by someone with the power to do it: OFAC, the UN, the EU, the UK, dozens more. Official, structured, the most reliable data you will ever touch.Is this a PEP? A politically exposed person, or a relative, or a close associate. It is not a crime. It is a risk category, because power and money travel together. The data is messier: parliament rosters, government directories, Wikidata, all of it going stale the day after an election.Has an authority acted against them? Wanted lists, debarment from development banks, regulator bans. Real events, scattered across hundreds of publishers.Who really owns this company? Registries, LEI data, the leaks. Being named in a leak is not wrongdoing. Plenty of perfectly legal people use offshore structures.What has been alleged publicly? News and court records. The most seductive source, and the most dangerous. An allegation is not a finding. A docket where a name appears as a party is not a conviction.No single tool answers all five well. A product that claims to is selling you confidence, not information.It isn't only for banksBanks are legally obliged to screen. That's why the industry exists. But these are not only banking questions. They are trust questions, and they show up everywhere. A small business about to wire money to a supplier it found online. A charity looking at a very large donor. A journalist asking who is behind a shell company. A marketplace deciding which sellers to let in. A person about to hand their savings to a "financial adviser" who turns out to exist only as a website.Most financial crime, and most scams, run on a single resource: nobody checked. Screening is the unglamorous habit of checking. It is not surveillance, although it can become surveillance the moment you stop asking why you are looking, and who gets to see the result.Two neighbourhoodsNone of this is lonely. There are two neighbourhoods, and it helps to know which one you're standing in.On the open side there are projects like OpenSanctions, OCCRP's Aleph, the ICIJ's Offshore Leaks database, GLEIF, OpenCorporates, OpenOwnership, Wikidata and LittleSis. They turn public and journalistic work into something you can actually query. Bellingcat showed that careful public research can do work once reserved for intelligence agencies.On the commercial side, the old giants still do this with paid data and human researchers. A newer generation sells APIs with "AI agents" attached. They do different jobs, and the marketing blurs them. One job is screening a name against watchlists. Another is watching a bank's own transactions, which is not the same thing (Google Cloud's AML AI lives in that second world). Another is researching a person across the open web. Another is reading the documents themselves: trust deeds, filings, ownership structures.When you read a brochure, keep a few habits close. "Fewer false positives": compared to what? Ask for the baseline. "Zero false positives" is not a measurement. It is usually humans filtering the output. Call it that. "AI agent that resolves Level-1 alerts" means a machine is deciding that a person is not a match. That is the place where a silent mistake harms someone, and European and Brazilian law both say a human must stay in the loop.Commercial products sell curation, monitoring, uptime and accountability. That has real value. What they cannot sell you is the right to stop thinking.What the technology should do, and what it shouldn'tWhether you build something small, buy a platform, or use a mix of both, the useful principles are the same. They are less about features and more about how humans and machines share a decision.Parse records, don't just search text. A name inside someone else's paragraph is not a match. Treat names the way people do: order, spelling, script. And refuse the silly near-matches that only a string-distance function would love. Separate two questions everyone mixes up. How sure am I this is the same person? How serious is the listing if it is? Mix them and you panic at the word "sanctions" in a news article. Count people, not rows. The same person on seven lists is one finding, not seven emergencies. Keep context apart from matches. News and courts can inform a reviewer, but they should not become a match by themselves. Admit what you don't know. "No match" means nothing if you don't say what was searched, how old the data was, and what failed. Do not let a language model close the case. Fluent prose you cannot audit is a liability in this domain, not a feature.I learned most of this the hard way, by building a small screening experiment, breaking it on purpose, and watching it fail with confidence. The product is not the point. The failure mode is.The hard part isn't technicalYou can improve matching every week. What you cannot engineer away is this: screening works by suspicion, and suspicion has victims.Namesakes come first. Without a date of birth, the honest answer is "possible." A system that skips that ruins people for sharing a name.Back to the counter. Twenty minutes go by. Nobody tells her anything, because nobody knows anything yet. The clerk calls someone upstairs. Upstairs opens a PDF. The PDF is a list published thousands of kilometres away, by an authority she has never heard of, about a man she has never met. He shares her name, letter for letter. That's the whole case against her. That's all the evidence there is.The man on the list was born in a different decade. The list says so. The record is right there, in a field that nobody has compared with her passport, because the system never asked for the date of birth. It only asked whether this name looked like that name. And it did. It always will, for someone.Forty minutes pass. The folder is damp where her thumbs have been pressing. A man in the next window finishes his business and leaves. A woman after her gets called, and also leaves. She is still on the chair, doing the arithmetic of someone who has rent due on Friday.This scene is a composite, not a real person. I built her from the kind of stories anyone who has worked near this field has heard, in the corridor, over coffee, always told a little too quietly. But I need you to understand why I tell it. Every careful design choice in this field exists so that nobody has to sit on that chair.The dead stay listed. Listings outlive people, and "block" is not always an honest word. Contested lists matter too. Some governments put opposition figures and human-rights groups on "terrorist" lists. Treat every list as equally true and you become an instrument of someone else's politics. The search is itself sensitive. Looking someone up sends personal data to third parties, and that needs a purpose, a retention limit, and a human who signs off. No decision about a person made solely by an automated system. That is not only the law in Europe and Brazil. It is the right design.And then there are the agents. Alert fatigue is real, and letting an AI dismiss Level-1 alerts is tempting. Most alerts are noise, and reviewers are tired. But look at what the agent is deciding. It is deciding that a person is not a problem, in language nobody can audit line by line. Wrong one way, a criminal walks through. Wrong the other, a clerk and a woman are stuck at a counter.I'm not against machines reducing noise. I'm against a machine closing a case about a human being without a human being able to say why.What this looks like when it worksLet's rewrite the afternoon. Same Tuesday, same quiet branch, same folder in her hands. The clerk types her name. The screen does not shout. It says something smaller and more honest: possible match, no date of birth to compare. Not "match." Not "block." Possible. A machine that knows exactly how much it doesn't know.The clerk smiles the way people smile when they have a procedure and the procedure is on their side. "Could I see your passport?" He opens it, reads the date of birth, looks at the list. Thirty years apart. He discounts the listing, writes one line explaining why, and clicks. The account opens. Four minutes. No humiliation. And somewhere, in a log nobody will read until the day somebody needs to, a sentence saying why.She puts the folder back in her bag. She will never know that on another Tuesday, in another version of that bank, the screen stays amber.That is the whole philosophy in one scene. The machine's job is to be fast, tireless, and honest about its uncertainty. The human's job is to be able to answer "why?"This is still cybersecurity. It just doesn't look like a red team engagement. It looks like a habit: check carefully, say how sure you are, and leave the final call to someone who can be asked to explain it. The internet will keep growing. More data is not more truth. It is more noise, more namesakes, and more ways to be confidently wrong.Tools find. People decide.