Evally
Guardrails

PII detector

Find personal data and secrets in text, and quote exactly where they are.

Checks text for contact details, government IDs, card and bank numbers, health details and credentials, and quotes the sentence that contains each one. Use it before logging, before sending text to a third-party model, or to redact support tickets.

Try it live

Real calls to Jev. Pick an example or paste your own.

Examples
163
No verdict yet

Pick an example or paste your own input, then run it.

Under the hood

Every question and rule, in the open. Fork it to change any of them.

What it asks

Reads text, then asks 5 questions in one call.

  1. Q1Contact detailsYes / no quotes evidence

    Does the text contain a real person's email address, phone number or home address?

  2. Q2Government IDYes / no quotes evidence

    Does the text contain a government ID number (passport, social security, national ID, driver's license or tax ID)?

  3. Q3Card or bank numberYes / no quotes evidence

    Does the text contain a payment card number, bank account number or IBAN?

  4. Q4Health detailsYes / no quotes evidence

    Does the text reveal a specific person's health condition, diagnosis or medication?

  5. Q5Password or API keyYes / no quotes evidence

    Does the text contain a password, API key, access token or other secret credential?

How it decides

Rules run in code, top to bottom. The first one that matches gives the verdict.

  1. 1
    If Contact details ≥ 0.7Contains PII
  2. 2
    If Government ID ≥ 0.7Contains PII
  3. 3
    If Card or bank number ≥ 0.7Contains PII
  4. 4
    If Health details ≥ 0.7Contains PII
  5. 5
    If Password or API key ≥ 0.6Contains PII
  6. 6
    If Contact details ≥ 0.4Possible PIIreview
  7. 7
    If Government ID ≥ 0.4Possible PIIreview
  8. 8
    If Card or bank number ≥ 0.4Possible PIIreview
  9. 9
    If Health details ≥ 0.4Possible PIIreview
  10. 10
    If Password or API key ≥ 0.35Possible PIIreview
  11. ·
    DefaultNo personal data

Call it from your code

Every template runs as-is with an API key, no setup: POST /api/v1/judges/pii-detector/run.

curl -X POST https://tryevally.com/api/v1/judges/pii-detector/run \  -H "Authorization: Bearer $EVALLY_API_KEY" \  -H "Content-Type: application/json" \  -d '{  "input": {    "text": "Hi, my order hasn'\''t arrived. I placed it last Tuesday. You can reach me at 415-555-0132 or dana.whitfield@gmail.com. My card ending 4417 was charged twice. Thanks!"  }}'

Seen in the wild

Community builds on Jev that use this pattern. Not affiliated with Evally.

More in Guardrails