Detection Guide

What Garimi Can Detect

Garimi combines regular expressions and checksum validation with contextual cues — Korean labels and titles, and for English text, labels or legal-suffix cues — to find sensitive-information candidates.
Automatic detection is a suggestion that helps your decision,
not a guarantee that everything will be found. The final check is yours to make.
The same detection runs on images and PDF files.

Format-based detection

Finds candidates based on a fixed pattern.

Mobile phone
010-0000-0000
Finds 01X-series Korean mobile numbers with or without hyphens or spaces.
Auto-selected.
Landline / main line
02-000-0000 · 1500-0000
Finds Korean area-code and business main-line formats.
Can be mistaken for order numbers, so review is recommended.
International phone
+1 555-000-0000 · (415) 555-0123
Finds a number only when it starts with "+" (E.164) or uses parentheses around a US/Canada-style area code.
A plain hyphenated digit string like 123-456-7890 is deliberately not matched — it can't be told apart from an order or part number. Auto-selected when the format matches.
Email
demo.user@example.invalid
Finds practical email address formats.
Auto-selected.
IP address
203.0.113.10
Finds IPv4 addresses.
Even a private IP can be sensitive, so it's auto-selected.

* All examples are synthetic data unconnected to any real person or organization.

Format + validation detection

Pattern matching followed by a checksum or similar check.

Korean RRN / foreigner-registration shape

Adds a birth-date and gender/century-digit check on top of the 6-7 digit structure. Auto-selected when it checks out,
shown as a candidate when it doesn't.

Korean business registration number

Applies the official checksum to the 3-2-5 digit format.

Card number shape

Applies the Luhn checksum to 13-19 digit numbers.
Passing the checksum shows the shape is valid — it doesn't prove it's a real card.

US Social Security Number (SSN)

Applies SSA area/group/serial range rules to the 3-2-4 digit format.
Auto-selected when the ranges check out.

IBAN (international bank account number)

Applies the international mod-97 checksum.
Auto-selected when it passes, regardless of spacing in how it's written.

Step 1 Extract format candidate
Step 2 Checksum / date validation

Passing validation means the structure is well-formed — it doesn't certify that it's real information.

Context-candidate detection

Inferred from titles, labels and legal-suffix cues,
and always presented as a candidate, never auto-confirmed.

Name

An English name is found only next to a label ("Name:", "Attn:", "Contact:", "Dear ", "Prepared by:") or a title ("Mr.", "Ms.", "Dr.") — a plain sentence with no label, like "Alex Hong presented the roadmap," is not flagged.
Korean prose is read more broadly by comparing it against titles, honorifics and label context. Either way it's shown as a candidate, never auto-confirmed, since it can be confused with an ordinary noun.

"Attn: Alex Hong, please review the attached contract."

Company, address & project

A company name needs a legal suffix ("Inc.", "Ltd.", "Corp.", "LLC" and similar) or a Korean corporate prefix ("주식회사", "㈜") — plain company names with neither are not matched. Addresses are inferred from Korean administrative-district and road-name patterns; there is no equivalent English address rule yet.

"This agreement is between the client and Garim Trading Inc."

Also candidate-only, and label-gated

  • Customer name — found only after a "Client:" or "Customer:" label, same as company names.
  • Amount — a dollar amount needs a "$" sign or a "USD" prefix ("$33,000", "USD 1,234"); Korean amounts are read from won-unit words ("만원", "억원").
  • Date — calendar-validated numeric or Korean-worded dates.
  • Passport number — matched only right after a "Passport" / "Passport No." label. There's no universal passport checksum, so a label-free alphanumeric string can't be told apart from an order or inventory code — it is always a candidate, never auto-confirmed.
  • Driver's licence number — same rule as passport numbers: label required, always a candidate.

Known limitations

  • An English name or company with no label and no legal suffix — ordinary prose like "Earlier today Alex Hong presented the roadmap" — is not detected at all. This is a deliberate design choice to avoid flagging every capitalized two-word phrase as a name; it means plain, label-free English text needs a closer manual read.
  • A discourse phrase at the start of a sentence, followed by a comma and a legal suffix on the same line ("Thanks, LLC formation takes about a week"), can be wrongly read as a company name. This is always shown as a candidate, so it never gets auto-confirmed.
  • A two-word, capitalized value straight after a colon label ("contact: North America") can be wrongly read as a person's name, because the label-plus-capitalized-words shape alone can't tell a name apart from an ordinary two-word phrase. This is also always a candidate you can dismiss during review.

Custom detection

Add anything automatic detection missed, yourself.

On the review screen, select a phrase in the original text or type one in to add it as sensitive information yourself.
You can assign it a type,
and mask every occurrence of the same phrase throughout the document at once.
Anything you add can be undone.