osint-investigation

Cross-reference public records from SEC, OFAC, ICIJ, and courts into evidence chains.

Updated Jun 7, 2026
One-click install
npx skills add https://github.com/Chensihakniroth/ANAKOT-AGENT --skill osint-investigation-chensihakniroth
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: osint-investigation
Source: https://github.com/Chensihakniroth/ANAKOT-AGENT/tree/main/optional-skills/research/osint-investigation
Command: npx skills add https://github.com/Chensihakniroth/ANAKOT-AGENT --skill osint-investigation-chensihakniroth

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Investigating people and companies across scattered public records—corporate filings, government contracts, lobbying disclosures, sanctions lists, property deeds, and court records—requires manually querying a dozen disconnected databases and reconciling inconsistent entity names by hand. ## Core Features & Use Cases - Multi-source data acquisition: Stdlib-only Python fetchers pull normalized CSVs from SEC EDGAR, USAspending, Senate lobbying disclosures, OFAC SDN, ICIJ Offshore Leaks, NYC ACRIS, OpenCorporates, CourtListener, Wayback Machine, Wikipedia/Wikidata, and GDELT. - Entity resolution: Three-tier name matching (exact, fuzzy word-bag, token overlap) links entities across sources with explicit confidence levels. - Timing correlation and evidence chains: A permutation test detects suspicious clustering between events (e.g., lobbying filings near contract awards), and findings are compiled into a JSON document where every claim traces to a source row. - Use Case: A journalist investigating pay-to-play can match Senate lobbying clients against USAspending contract recipients, run a timing analysis on filing vs. award dates, and produce a verifiable findings report. ## Quick Start Ask the agent to investigate a company by fetching its SEC filings and federal contracts, then cross-reference the results for entity matches.

Frequently Asked Questions about osint-investigation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I investigate a company using public records?▼

Fetch data from relevant sources—SEC EDGAR for filings, USAspending for contracts, Senate LDA for lobbying—then run entity_resolution.py to match names across the CSVs. Finish with build_findings.py to produce an evidence-chained findings.json.

How to check if a person or company is on the OFAC sanctions list?▼

Run fetch_ofac_sdn.py to download and normalize the full SDN list, including addresses and AKAs joined from the supplemental files. You can filter by sanctions program or entity type, then search the resulting CSV locally.

Does this OSINT tool require API keys or paid accounts?▼

Most sources work anonymously with no key, including USAspending, GDELT, Wayback, and NYC ACRIS. Optional free tokens for OpenCorporates, CourtListener, and Senate LDA raise rate limits; SEC EDGAR only requires a User-Agent with contact info.

What Python packages are needed to run the OSINT scripts?▼

None. Every fetch and analysis script uses only the Python standard library (urllib, csv, json, zipfile), so the skill runs on Linux, macOS, and Windows with zero installation.

Why did my entity search return zero rows?▼

Scripts return 0 rows with a warning when an entity plausibly isn't in a source—for example, private individuals rarely appear in SEC EDGAR or USAspending. EDGAR also flags when a name resolves to an individual insider filer rather than a corporate registrant.

What are the limitations of the entity matching approach?▼

Matching uses normalization and token-overlap heuristics without external fuzzy libraries, so there is no Levenshtein, phonetic, or transliteration matching. Fuzzy matches are leads with explicit confidence tiers, not confirmed identities.