osint-investigation

Cross-reference public records and sanctions data into structured evidence chains.

Updated Sep 10, 2026
One-click install
npx skills add https://github.com/loteiron/ZeusAgent --skill osint-investigation-loteiron
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: osint-investigation
Source: https://github.com/loteiron/ZeusAgent/tree/main/optional-skills/research/osint-investigation
Command: npx skills add https://github.com/loteiron/ZeusAgent --skill osint-investigation-loteiron

SYSTEM DOCUMENTATION & REQUIREMENTS

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

What problem does it solve? Investigative research requires manually querying dozens of disconnected public-record sources and reconciling inconsistent entity names, making it hard to build verifiable evidence chains. This Skill automates acquisition from government contracts, corporate filings, lobbying, sanctions, offshore leaks, property, and court records, then resolves entities across sources with explicit confidence levels. ## Core Features & Use Cases - Multi-source data acquisition: Stdlib-only Python fetch scripts for SEC EDGAR, USAspending, Senate lobbying disclosures, OFAC SDN, ICIJ Offshore Leaks, NYC ACRIS property records, OpenCorporates, CourtListener, Wayback Machine, Wikipedia/Wikidata, and GDELT news, all normalized to CSV. - Entity resolution with confidence tiers: Matches names across CSVs using exact, fuzzy (word-bag), and token-overlap tiers, each labeled high/medium/low confidence. - Statistical timing analysis: Permutation tests detect whether events like lobbying filings cluster suspiciously near contract awards. - Evidence-chain findings: Aggregates matches and timing results into findings.json where every claim traces to a specific source row. - Use Case: Investigate whether a lobbying client won federal contracts: fetch Senate LD filings and USAspending awards, run entity resolution to link names, test timing correlation, and produce a verifiable findings report. ## Quick Start Use the osint-investigation skill to check whether a specific company appears in OFAC sanctions, ICIJ offshore leaks, and recent federal contract awards, then summarize any cross-source matches with confidence levels.

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 with the provided scripts, such as SEC EDGAR filings, USAspending contracts, and Senate lobbying disclosures, then run entity_resolution.py to link names across the CSV outputs. Finish with build_findings.py to produce an evidence-chain report.

How do I check if an entity 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 for the name.

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

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

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

None. All fetch and analysis scripts use only the Python standard library (urllib, csv, json, zipfile), so they run on Linux, macOS, and Windows with zero installation.

Why did entity resolution return low-confidence matches?▼

Low confidence indicates a token_overlap match, meaning names share at least 60% token overlap but are not exact or word-bag equal. These are leads, not conclusions, and should be verified manually against the source rows cited in the output.

What are the limitations of this public-records approach?▼

Entity resolution uses token-bag matching only, with no Levenshtein or phonetic matching, and federal campaign finance via the FEC is intentionally not covered. Statistical timing significance does not establish wrongdoing, and public records may contain stale or redacted data.