Everything ScrubLocally can find in your text
30 detectors, 27 of them on by default. Each one is a pattern, often paired with a checksum, running in your browser. This page lists all of them with the honest version of what they catch — including the ones that are deliberately conservative, because a detector that redacts every long number makes documents unusable and gets switched off.
People & organisations
| Detector | Default | What it matches, and what it doesn’t |
|---|---|---|
| Names | on | Given names from a common-name list, titles (Dr, Ms), sign-offs and “my name is …”. Heuristic: unusual names need the custom-terms box. |
| Email addresses | on | Any RFC-shaped address, including plus-tagged and subdomained ones. |
| Phone numbers | on | US/NANP formats and +country international numbers, with or without separators. |
| Usernames / @handles | on | @mentions on social platforms, Slack and GitHub. |
| Company names | on | Names ending in Inc, LLC, Ltd, GmbH, Corp and friends. Plain brand names need custom terms. |
| Your custom terms | on | Anything you type in the custom-terms box — project codenames, internal product names, a nickname. |
Government & health IDs
| Detector | Default | What it matches, and what it doesn’t |
|---|---|---|
| US Social Security numbers | on | Dashed SSNs always; bare 9-digit runs only next to an “SSN”/“social security” label. Never-issued ranges are ignored. |
| Dates of birth | on | Dates labelled DOB / date of birth / born on. |
| All dates | off | Every date in the text. HIPAA Safe Harbor needs this; ordinary writing usually does not. |
| Passport numbers | on | Only where a “passport” label is next to the number — passport formats vary too much to guess. |
| Driver’s licence numbers | on | Label-anchored (“DL #…”). US state formats are inconsistent, so context is required. |
| Medical record numbers | on | MRN / patient ID / chart number labels and the value after them. |
| UK National Insurance | on | QQ 12 34 56 A format, excluding the letter combinations HMRC never issues. |
| Aadhaar numbers (India) | on | 12 digits that pass the Verhoeff check digit. |
| PAN (India) | on | The AAAAA9999A income-tax PAN format. |
| NHS numbers (UK) | off | Off by default: a valid NHS number is 10 digits and looks exactly like a US phone number. |
Financial
| Detector | Default | What it matches, and what it doesn’t |
|---|---|---|
| Card numbers | on | Luhn-valid 13–19 digit numbers on a known card prefix — so order IDs are not mistaken for cards. |
| IBANs | on | Checked with the ISO 13616 mod-97 rule, so lookalikes are skipped. |
| US routing numbers | on | Nine digits that pass the ABA checksum, next to a routing/ABA label. |
| Account & reference IDs | on | Values after account / customer / policy / invoice / case labels. |
| Crypto wallet addresses | on | Bitcoin (legacy and bech32) and Ethereum-style addresses. |
Technical & secrets
| Detector | Default | What it matches, and what it doesn’t |
|---|---|---|
| API keys & secrets | on | OpenAI, Anthropic, AWS, GitHub, Google, Stripe, Slack, Twilio, SendGrid, GitLab, Hugging Face keys plus generic key/password assignments. |
| Private key blocks | on | Whole PEM blocks, from BEGIN to END. |
| JWT / bearer tokens | on | Three-part JSON Web Tokens, which usually carry a user ID in the payload. |
| IP addresses | on | IPv4 and IPv6. Handy for logs; turn it off if you are debugging network config. |
| MAC addresses | on | Hardware addresses in colon or dash form. |
| URLs | off | Off by default — links are usually the context the model needs. Turn on for signed or tokenised URLs. |
Location
| Detector | Default | What it matches, and what it doesn’t |
|---|---|---|
| Street addresses | on | House number + street name, with an optional unit, city, state and ZIP. |
| Postcodes | on | US state + ZIP pairs and UK postcodes standing on their own. |
| GPS coordinates | on | Decimal latitude/longitude pairs. |
The checksums, and why they matter
Five detectors verify their matches with arithmetic rather than trusting the shape. Card numbers must pass the Luhn (mod-10) check and begin with an issuer prefix that exists under ISO/IEC 7812 — Visa 4, Mastercard 51–55 and 2221–2720, American Express 34 and 37, Discover 6011 and 65, JCB, Diners and UnionPay. IBANs must satisfy the ISO 13616 mod-97 rule. US routing numbers must pass the ABA 3-7-1 weighted checksum. Aadhaar numbers must pass the Verhoeff check digit; NHS numbers, the mod-11 digit.
The payoff is precision. Without those checks, a sixteen-digit order number, a twelve-digit reference and a nine-digit part code would all be redacted, and the text you handed to a model would be missing exactly the identifiers you needed it to reason about.
What no detector here can do
It cannot recognise a name it has never seen with no title in front of it. It cannot tell that “the client from the Tuesday call” is a person. It cannot see identity that comes from combination — a job title plus a city plus a date is often unique even with every name removed, which is why HIPAA pairs its identifier list with an “actual knowledge” condition and FERPA asks whether a reasonable person could still identify the student.
Which is why the tool highlights instead of just replacing. Read the coloured left pane before you paste; the review takes seconds and it is the only part of this process that a pattern matcher genuinely cannot do for you.
Frequently asked questions
Why are some detectors off by default?
Because they collide with ordinary text or with each other. Every date is an identifier under HIPAA Safe Harbor but a nuisance in business writing. A valid NHS number is ten digits and indistinguishable from a US phone number. URLs are usually the context a model needs. Each of those is one click away in the settings panel, and several pages here turn them on for you.
What is the difference between a detector and a custom term?
A detector recognises a shape — an email address, a Luhn-valid card number, a street address. A custom term is a literal string you type: a codename, an unusual surname, an internal system. Custom terms are matched case-insensitively on word boundaries and are never stored.
Do you use an AI model to detect personal data?
No. Everything here is deterministic pattern matching plus checksums, which is why it runs instantly, works offline and never sends anything anywhere. A small on-device NER model would find more unusual names at the cost of a multi-megabyte download; the trade was made in favour of speed, and the custom-terms box covers the gap.