InTouch Hub · Blue Isle Software

Phishing Check

Read one Gmail message via the Google Workspace tool and have AI judge whether it is genuine or phishing — using the real SPF/DKIM/DMARC results, sender/return-path/reply-to mismatches, and link domains in the headers.

Provided free and as is, without warranty of any kind — including merchantability, fitness for a particular purpose, and the accuracy or completeness of any result. See the licence. You are responsible for checking what this produces before relying on it.

aiauthenticationconformancedkimdmarcdomaindomainkeysemailframeworkgmailgoogle_workspaceidentifiedit-supportmailmessagenotificationpolicyspf

Phishing Check

Hand it an email; it tells you whether the email is genuine or phishing — and why, using the same forensic signals a security analyst would check.

Why this works

Phishing has gotten good enough that you can't judge an email by how it looks. The reliable signals live in the headers, not the wording:

This workflow extracts those facts and lets the AI weigh them, instead of guessing from tone.

What it does

  1. fetch — the Google Workspace tool pulls the full Gmail message as JSON (gmail get <id> --format full). Because it's the full message, the complete raw header set comes along, including Authentication-Results, Return-Path, and Reply-To.
  2. assess — Claude reads the headers + body and returns a verdict: GENUINE / SUSPICIOUS / PHISHING with a confidence level, a table of the checks (SPF, DKIM, DMARC, sender vs reply-to, link domains), short reasoning, and a recommended action.
  3. notify — the verdict is sent to you on your InTouch channel.

No scripting, no header-parsing code — the GW tool reads, the AI judges.

Setup

1. Credentials

2. Placeholders in workflow.iml

3. Getting a message id

Run this workflow on demand against a suspect message. To find an id:

gog gmail messages search "from:suspicious-sender newer_than:2d" --max=5 --plain

(the first column is the message id), or grab the id of whatever message you want checked.

Provider flexibility

The assess step uses the anthropic tool, but it's pure reasoning — swap it for openai, gemini, or a local ollama model by changing the tool name and credential. The prompt stays the same. Local models keep the email contents entirely on your network.

What it won't do

AI cost

One assessment is a single Claude call: roughly the email's size in prompt tokens (typically 2–8k) plus ~400 response tokens. A few tenths of a cent per check on Claude Sonnet. Run it only on the emails you actually want vetted and the cost is negligible.

AI provider

Any supported AI provider works here. This template ships configured for the anthropic tool; swap that task's tool to anthropic, openai, gemini, mistral, ollama or openrouter to use the provider you already have, and point its credential at your own key. The step is a plain summarise/classify call — nothing in it is vendor specific. See requires.ai in the manifest.