Case File №0000 Open-Source Intelligence Workbench
OSINT Hub — case intake
Correlate usernames, phone numbers and email addresses across public platforms in a single case. Dating-platform footprints, dossier facts and search pivots — for authorized investigations only.
Open a case
Enter any combination of subjects — one field is enough. Each subject becomes its own exhibit in the case file; tools run only for the fields you fill. Leading @ is stripped automatically.
Dating platform sweep
Scans dating platforms (Tinder, Badoo, MeetMe, AFF…) via maigret's site database, then filters results down to known dating domains.
maigret checks its full site database; the toggle below filters results down to known dating platforms. The same filter follows you into the job view.
Dating scans need the full backend (maigret) — 3000+ sites. The sweep button is disabled in lite cloud mode.
Responsible use
Dating-platform checks are for verifying consent and identity, exposure assessment on persons you are authorized to investigate, and due-diligence work. Respect platform terms of service and local privacy law (GDPR/CCPA). Never for stalking, harassment or deception.
Tooling
Scanners execute server-side on the API host. Install anything missing on the host, then restart the API — status refreshes on every health check.
Tech stack — blueprint spec sheet
How this instrument is built. Everything below is rendered in-page from this single HTML file; nothing is fetched externally.
- FrameworkFastAPI (Python 3), served by uvicorn — async HTTP with a thread-pool job runner so scans never block the API.
- ExecutionEach tool runs as its own subprocess with hard timeouts, so a hung CLI can never wedge a worker.
- StreamingServer-Sent Events at /api/jobs/{id}/stream — snapshot, log, found, info, tool_done and job_done events pushed live while tools run.
- Rate limitingSliding window — 20 jobs/hour/IP by default, returning HTTP 429 when exceeded.
- AuthOptional bearer token (Authorization: Bearer …); when enabled, clients poll instead of streaming since EventSource cannot send headers.
- PersistenceJob records and logs are written under data/jobs/ so archives survive restarts.
| Tool | Kind | Purpose | Upstream |
|---|---|---|---|
| Sherlock | username | Hunts a username across 400+ social sites. | sherlock-project/sherlock |
| Maigret | username | Checks 3000+ sites including dating platforms. Powers the Dating sheet. | soxoj/maigret |
| PhoneInfoga | phone | Number intelligence — formats, country, carrier, reputation plus Google-dork search pivots. | sundowndev/phoneinfoga |
| Ignorant | phone | Checks whether a phone number is registered on platforms (Snapchat, Instagram…). | megadose/ignorant |
| SearchPhone | phone | Multi-API phone OSINT (Google/GitHub/Reddit/DDG + Hudson Rock) with report generation. | HackUnderway/SearchPhone |
| Holehe | Checks if an email is registered on 120+ platforms via password-reset flows. | megadose/holehe |
- Single fileOne self-contained HTML document — inline CSS + vanilla JS, zero dependencies, zero build step, zero external requests (fonts are system stacks).
- Live updatesSSE streaming with automatic 1.5 s polling fallback (used when a bearer token is set or the stream drops).
- Runtime configAPI base URL and optional bearer token are set in Settings and stored in localStorage — the same file works against any backend instance.
- FrontendAny static host — e.g. Cloudflare Pages. It is one file with no server-side requirements.
- BackendAny host with the scanner CLIs installed (see Tooling sheet for install hints). API base is configurable at runtime, so frontend and backend can live on different origins.
- Lite vs fullLITE CLOUD MODE — Cloudflare Pages Function (functions/api/[[path]].js): edge username checks (~40 platforms) + instant phone pivots; no server needed. FULL MODE — FastAPI backend: maigret 3000+ sites, holehe email checks, phoneinfoga carrier intel, ignorant phone registrations.
Archive
The last 15 jobs known to the API. Click a row to reopen its exhibits and logs.