osint-investigation

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

Updated Jul 7, 2026
One-click install
npx skills add https://github.com/episvr/USTB-2026-SummerInternship --skill osint-investigation-episvr
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: osint-investigation
Source: https://github.com/episvr/USTB-2026-SummerInternship/tree/main/hermes-config/optional-skills/research/osint-investigation
Command: npx skills add https://github.com/episvr/USTB-2026-SummerInternship --skill osint-investigation-episvr

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, court records — requires querying many disconnected databases and manually reconciling inconsistent entity names. This Skill automates acquisition, entity resolution, timing correlation, and evidence-chain construction across eleven public-record sources. ## Core Features & Use Cases - Multi-source data acquisition: Stdlib-only Python fetchers for SEC EDGAR, USAspending, Senate lobbying, OFAC SDN, ICIJ Offshore Leaks, NYC ACRIS, OpenCorporates, CourtListener, Wayback Machine, Wikipedia/Wikidata, and GDELT, all writing normalized CSVs. - Entity resolution with confidence tiers: Match names across sources 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. - Use Case: A journalist investigating pay-to-play patterns fetches a company's Senate lobbying filings and USAspending contract awards, resolves entity names across both CSVs, runs a timing test, and produces a findings.json where every claim traces back to a specific source row. ## Quick Start Ask the agent to investigate whether a specific company has lobbying filings that correlate with federal contract awards, using the osint-investigation scripts to fetch both datasets and build an evidence chain.

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 — SEC EDGAR for filings, USAspending for contracts, Senate LDA for lobbying — then run entity_resolution.py to match names across CSVs and build_findings.py to generate a structured evidence chain.

How to cross-reference lobbying data with government contracts?▼

Download Senate lobbying filings and USAspending awards as CSVs, then run entity_resolution.py with the client_name and recipient_name columns. Optionally run timing_analysis.py to test whether filing dates cluster near award dates using a permutation test.

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

Most sources work anonymously with no key, including SEC EDGAR, USAspending, OFAC, GDELT, Wayback, and ACRIS. Optional free tokens for OpenCorporates, CourtListener, and Senate LDA raise rate limits. All scripts use Python standard library only.

What are the limitations of token-based entity resolution?▼

The resolver uses exact, sorted-token, and token-overlap matching without external fuzzy libraries like rapidfuzz, so it cannot do Levenshtein distance, transliteration, or phonetic matching. Fuzzy matches are leads with medium or low confidence, not confirmed identities.

Why did a fetch script return zero rows for a person?▼

Private individuals often do not appear in sources like SEC EDGAR, USAspending, or ICIJ unless they are corporate insiders, federal contractors, or offshore-leak subjects. Scripts return 0 rows with an explicit warning explaining coverage rather than silently writing empty files.