Skip to content

199-biotechnologies/probe-person

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

probe-person

Deep background investigation skill for Claude Code.
Corporate registries, sanctions lists, court records, news, and network analysis -- all from your terminal.

Star this repo   Follow @longevityboris

Claude Code Skill Python 3.8+ MIT License OSINT


Why This Exists

You're about to hire someone, invest in their company, or enter a partnership. You need to know who you're dealing with -- not the LinkedIn version, the real version.

Probe-person runs a full background investigation from your terminal. It searches corporate registries in the relevant jurisdictions, screens sanctions and PEP lists, pulls court records, scans news coverage, and maps the subject's professional network. Then it writes the findings into a narrative intelligence report that reads like something from a private investigations firm, not a data dump.

The whole thing runs inside Claude Code as a skill. You say "probe [name]" and it handles the rest -- profiling the subject, selecting the right databases, dispatching parallel investigation agents, and synthesizing everything into a coherent report.

What It Searches

Category Sources Coverage
Corporate Registries OpenCorporates, Companies House (UK), SEC EDGAR (US), ACRA (SG), ASIC (AU), Handelsregister (DE) 200M+ companies across 140+ jurisdictions
Sanctions & PEP OpenSanctions (OFAC, EU, UN, UK lists), politically exposed persons databases Global watchlist screening
Court Records CourtListener, Caselaw Access Project, PACER (US federal), Insolvency Service (UK) Civil, criminal, regulatory, bankruptcy
Professional Licenses FINRA BrokerCheck, FCA Register, GMC (UK doctors), AHPRA (AU), state bar associations Finance, medicine, law, accounting
News & Media Exa (1B+ indexed pages), Brave Search, major outlets Tiered credibility scoring (Tier 1-4)
Network & Associates Cross-referenced from all sources above, plus Google Scholar, patent databases Recurring names, co-directors, red flag associations
Digital Identity LinkedIn (via Exa), GitHub, social platforms, breach databases Only when identifiers are provided

Install

Clone into your Claude Code skills directory:

git clone https://github.com/199-biotechnologies/probe-person.git ~/.claude/skills/probe-person

Set up your API keys:

# Required
export BRAVE_API_KEY="your-brave-api-key"
export EXA_API_KEY="your-exa-api-key"

# Optional (increases rate limits / enables additional sources)
export COMPANIES_HOUSE_API_KEY="your-key"      # Free at developer.company-information.service.gov.uk
export OPENCORPORATES_API_KEY="your-key"        # Optional, increases rate limits
export OPENSANCTIONS_API_KEY="your-key"         # Optional, increases rate limits

Add the exports to your ~/.zshrc or ~/.bashrc so they persist.

Quick Start

Open Claude Code and say:

probe Boris Djordjevic

Or be more specific:

probe Jane Smith, CFO at Acme Corp, based in London

The skill handles everything from there -- profiling, database selection, parallel investigation, and report synthesis.

Reports are saved to ~/Documents/Probe/{Subject_Name}_{Date}/report.md.

How It Works

The system uses a file-first map/reduce pipeline that prevents context overflow. This matters because a thorough investigation generates far more data than any LLM context window can hold.

Phase 0: Profile Discovery
  Orchestrator searches for the subject, determines who they are,
  selects which databases and agents are relevant.

Phase 1: Parallel Investigation
  5-7 specialist agents run simultaneously. Each writes full findings
  to a file and returns only a 300-token summary to the orchestrator.

Phase 2: Summary Collection
  Orchestrator collects the short summaries (~1,500 tokens total),
  never reads the raw files. Updates the manifest.

Phase 3: Synthesis
  A fresh-context agent reads all raw files and writes the final
  narrative report with cross-referencing and verification.

This architecture is crash-proof (files persist if any agent fails), resumable (re-run synthesis without re-investigating), and scalable (adding agents doesn't increase context pressure).

Features

Adaptive investigation -- A doctor in Sydney gets different searches than a hedge fund manager in London. The system profiles first, then selects relevant registries and databases. It doesn't run FINRA checks on a pastry chef.

Narrative reports -- Every report is written as flowing prose with a narrative arc, not bullet points. It tells the story of who this person is, how they got here, and what the patterns in their record reveal.

Verification protocol -- Every claim is tagged with its evidence level. Official registries and mainstream news = VERIFIED. Subject's own LinkedIn = UNVERIFIED - SELF-REPORTED. No independent source = flagged explicitly.

Red flag detection -- The system watches for credential inflation, single-source biographies, unverifiable institutional claims, name-dropping without reciprocity, and disproportionate obscurity relative to claimed achievements.

HTML reports -- Request an HTML version and get a styled report with the design system defined in REPORT_DESIGN.md.

Security & Ethics

This tool searches publicly available information only. It does not access private databases, hack accounts, or circumvent access controls. Every source it queries is either a public registry, a public API, or a search engine.

All API keys are loaded from environment variables. Nothing is hardcoded. The .gitignore excludes .env files and key material.

Use this tool responsibly. Background investigations should serve legitimate purposes: hiring due diligence, investment screening, compliance checks, journalism. Don't use it to stalk, harass, or discriminate.

Contributing

See CONTRIBUTING.md for guidelines. We're particularly interested in new data source scripts for registries we don't cover yet.

License

MIT


Built by Boris Djordjevic at 199 Biotechnologies | Paperfoot AI

Star this repo   Follow @longevityboris