Zero-cloud email intelligence for Chrome. Extract, validate, and discover email addresses from any web page — no accounts, no subscriptions, no Hunter/Apollo/Snov.io required.
- Zero cloud — all data lives in your browser's local storage. Nothing is ever transmitted to any server you don't control.
- Zero cost — no API keys, no subscriptions, no usage limits. Install and go.
- Full pipeline — extract → validate → discover → export, all in one extension.
- Smart extraction — decodes obfuscation (
[at],{dot}), HTML entities (@), mailto links, JSON-LD, and data attributes. - Confidence scoring — MX validation + disposable detection + source analysis = a 0–100 score for every address.
Multi-layer email extraction: regex, 7 obfuscation patterns, 6 HTML entity forms, mailto: links, data-email attributes, and JSON-LD/schema.org blocks. Also extracts phone numbers and social URLs (LinkedIn, Twitter/X, GitHub, Facebook, Instagram, YouTube). Filters out false positives like image filenames and retina density patterns.
MX record verification via DNS-over-HTTPS (Cloudflare primary, Google fallback) with 30-minute caching. Disposable domain detection against 43 known providers. Automatic classification into personal, role, or disposable. Provider identification (Gmail, Outlook, Yahoo, ProtonMail). Confidence score 0–100 for every address.
Generate candidate emails from a person's name using 7 patterns (first.last@, flast@, etc.) and 14 role addresses (info@, careers@, support@, …). Detect contact/about/team pages on the current site. Fetch public commit emails from GitHub's Events API.
CSV (with formula injection protection), JSON (pretty-printed), vCard (properly escaped), and tab-separated clipboard copy. One-click compose links for Gmail and Outlook. Download any format as a file directly from the popup or dashboard.
Full-tab management UI with search, domain/type filtering, bulk operations, tagging, notes, starring, and scan history. Everything you'd expect from a CRM — without the CRM.
Background extraction as you browse. Configure domain allowlists and blocklists. Badge counter shows discovered emails per page. Desktop notifications when new addresses are found.
Automatic page classification (company, blog, directory, e-commerce, personal, government, education). Social link extraction across 6 platforms. RDAP/WHOIS domain lookup for registrar, creation date, and expiry. Related page detection for contact, about, team, and career pages.
| Shortcut | Action |
|---|---|
Alt+E |
Extract emails from current page |
Alt+D |
Open dashboard |
| Right-click | Extract from selected text |
Coming soon
git clone https://github.com/meysam81/trawl.git
cd trawl
bun install
bun run buildThen open chrome://extensions, enable Developer mode, and load the dist/ directory.
- No accounts, no telemetry, no cloud. Period.
- All data stored in
chrome.storage.local— encrypted by Chrome, never synced. - External network calls are limited to:
- DNS-over-HTTPS (Cloudflare/Google) for MX lookups
- GitHub API for public commit emails
- RDAP for domain registration info
- Fully open source — audit the code yourself.
- Licensed under MIT.
Popup ──→ Lib Modules ←── Dashboard
↑
Service Worker ←→ Content Script
Data flow: schemas.ts (Zod SoT) → extract.ts → intelligence.ts → storage.ts → export.ts
Supporting: discovery.ts · page-intelligence.ts · logger.ts
Every storage read/write is Zod-validated. Invalid data is logged and skipped — the extension never crashes on bad state.
bun install # install dependencies
bun run start # dev server with HMR
bun run build # production build to dist/
bun run typecheck # tsc --noEmit
bun run lint # oxlint
bun run deadcode # knip — unused exports/deps
# Use Google DNS primary instead of Cloudflare (default)
VITE_DNS_PRIMARY=google bun run buildStack: TypeScript (strict) · Vite 7 · @crxjs/vite-plugin · Zod 4 · loglevel · oxlint · knip
PRs welcome — please open an issue first for large changes.
MIT — Copyright 2026 Meysam
