Open anything a bank reviews
PDF, Word, Excel, PowerPoint, Outlook and .eml mail, web pages, CSV, text, Markdown, JSON and XML. Drag one onto the window, or point it at a whole folder and let it work through them.
Windows desktop · single user · no installer service
So staff can use AI tools on real client files — and it runs entirely on the machine that holds them. No network calls at runtime, no cloud account, no telemetry, no data leaves the machine.
Request access Evaluation builds are issued by hand, one organisation at a time.
An animation of one real detection pass over a credit memorandum. Each personal value is claimed by the detector layers that found it, shown with its confidence, and replaced by what the export actually writes. The monetary amount and the memo date are deliberately left alone: the NOT-PII gate holds them, because currency amounts and fiscal periods are never treated as personal data. The organisation name appears twice and both occurrences resolve to the same synthetic name.
Commercial Credit Approval Memorandum Ashvale Commerce Bank, N.A. Commercial Credit Administration CONFIDENTIAL Obligor: Montclair Restaurant Group Bancorp Obligor Number: 62157985 Facility: FAC-677814761 Relationship Manager: ARNAULT, PEYTON E Prepared By: Fariha CITRANO Memo Date: 07/02/2026 Request: Renewal Amount: $10,388,329 Risk Rating: 5 The Bank has held the primary operating relationship since 2017 through account 752965719079, obligor number 62157985. The borrower's federal tax identification number is 75-5241227. Montclair Restaurant Group Bancorp operates two craft brewing and taproom locations. Gross margin of 58.4% is in the upper half of the peer range for regional craft brewers.
Above: a real pass over one of the project's own gold documents, with the evidence trail the engine actually recorded. Every value, confidence, layer and replacement on that screen came out of the shipped build.
01 / THESIS
It cannot phone home, because there is nothing in it that can.
A security reviewer can confirm this by inspection, or with a network monitor, in about a minute. Offline has also been proven by execution: with all socket connections blocked, ingestion, the PDF parser and a full model-loaded scan ran clean.
02 / INGESTION
A masking tool is only as good as its reading of the file. Most of the engineering here is in refusing to lose something.
PDF, Word, Excel, PowerPoint, Outlook and .eml mail, web pages, CSV, text, Markdown, JSON and XML. Drag one onto the window, or point it at a whole folder and let it work through them.
PDF always uses this project's own geometry engine, built on PDFium. It reconstructs tables from ruling lines and whitespace, preserves page provenance, and produces Markdown whose character offsets map back to the rendered page.
“NO TEXT COULD BE READ FROM THIS DOCUMENT. This tool reads text only and cannot see inside images, so NO PII SCAN WAS PERFORMED. An empty findings list here does NOT mean the document is clean.”
Two buttons follow, and nothing runs until one is pressed. OCR uses the engine already built into Windows, so there is nothing to download, nothing to get approved, and nothing new inside the security boundary.
After an OCR pass a stepper walks every page it recovered — the scanned image on the left, the text OCR produced on the right — so the reviewer can check it themselves rather than trust it.
03 / DETECTION AND MASKING
Candidates from every layer are clustered by overlap, scored, and resolved into one finding carrying its own evidence trail.
The NOT-PII gate
Currency amounts, fiscal periods, percentages and bare finance acronyms are never PII, no matter which layer proposed them. The rule is enforced once, at fusion, so every detection source agrees.
Findings are grouped by the value, not the hit. A name appearing two hundred times is one decision. The Becomes column is computed with the real masking function, so what the queue promises is what the export writes.
Five styles: Redact, Tokenise, Synthetic, Hash, No Mask. The interesting one is deterministic keyed pseudonymisation — the same person masks to the same synthetic name everywhere, across a document and across every sheet of a workbook.
A spreadsheet is masked by column, with the detected type, the rule applied and a live preview of the result. One rule can be pushed across every sheet with a matching header.
04 / RELEASE AND EVIDENCE
These are the identifiers the governance document uses. They are cited here so a reviewer can ask for the control by name.
C1 · THE RELEASE GATE
It answers in four states: allowed, needs acknowledgement, blocked by policy, or allowed with the warning switched off by the organisation.
C10 · READ BACK
The Export step reports one of four verdicts, and the third is the reason it exists: ready to export, saved and checked, 3 NOT masked!, saved, unverified.
C11 · EVERYWHERE
The whole-file sweep used to be a button in the export dialog. A button that can be skipped is not a defence, so it now runs at the end of every detect.
C12 · THE FILENAME
Three prefixes, each of them true of the file it names: MASKED_, UNREVIEWED_, and UNMASKED_UNSAFE_TO_UPLOAD_IN_COPILOT_.
C8 · THE LOG
Type, a safe preview, an occurrence count and a keyed HMAC-SHA256 fingerprint. An auditor can confirm a value they already suspect; they cannot recover one they do not.
C4 / C5 · THE AUDIT TRAIL
One file per session, one JSON object per line, flushed and synced as each event happens, so a session that crashes still has everything up to the crash. Each entry is sealed with the one before it, and Check integrity reports the first bad record by number.
REVERSAL
When an assistant sends back an answer full of masked values, open it here and the real values go back in. It finds the map itself — the open document, the answer's folder, then the last twelve maps it wrote — and tells you which one it used.
05 / CONFIGURATION
The application works out the shape, states in plain English what it will match, and shows how many it finds in the document you have open.
$ EMP-004512 This matches: 3 capital letters, then a '-', then 6 digits. Anything of that shape is found, not just this one value.
PROFILES
US banking, India, or development finance. The last one stops World Bank and ADB style project identifiers being flagged as personal data.
DEFAULTS
A default style per kind of information, and how much of a redacted value stays readable.
THE SALT
A 256-bit key per installation makes masking consistent. Share it with a colleague and your outputs match theirs. Regenerate it and they will not.
SECOND OPINION
Export the findings as a spreadsheet, a colleague changes one column, load their answer back. You are told exactly what changed, what already agreed, and what did not match this document.
06 / THE PATH
The application draws this same chain across the top of the window. Green is done; the first step that is not done is where you are; a step is done only when every step in front of it is.
07 / SPECIFICATION
There is no social proof on this page because there is none worth printing. These are the numbers instead, with the ones that are unflattering kept in.
Quote 0.90, not 0.900. Two runs of identical code can differ by a few occurrences because of floating-point scheduling in the model runtime. It is documented, the cure was priced, and it was refused.
The answer key was made harder three separate times: when the engine started scoring well, occurrences it missed were added on purpose.
| SSN, ITIN, EIN | 1.000 | Date of birth | 1.000 |
| US phone | 1.000 | Loan number | 1.000 |
| ABA routing | 1.000 | Credential | 1.000 |
| 1.000 | Property legal desc. | 1.000 | |
| Card, IBAN, VIN | 1.000 | Customer ID | 0.971 |
| Passport, licence | 1.000 | Licence number | 0.966 |
| Postal address | 0.992 | Facility ID | 0.962 |
| Person name | 0.920 | Account number | 0.954 |
| Demographic | 0.897 | Employer / organisation | 0.745 |
The weakest type is organisation names at 0.745, and that is stated deliberately. It is the hardest class, it is where the remaining work is, and a vendor who claims uniform excellence is not measuring.
In the product rather than in a brochure. A locked, machine-readable schema ships with the application. Of 35 detection categories, 23 are personal information, and each of those carries its basis.
It maps to these frameworks and is designed to support compliance with them. It is not “HIPAA compliant” and not “ISO 27001 certified”. Software is not compliant; organisations are, and certification needs an accredited auditor. Anyone qualified to sign a purchase order knows the difference.
Screens on this page are the shipped build running against the project's own synthetic gold corpus. No customer document appears anywhere.
08 / ACCESS
Tell us who you are and what you are trying to protect. Evaluation builds go out by hand, one organisation at a time, with the reproduction command for every number on this page.
Message received. We'll be in touch.