← Về thư mục
📄 / / root / .hermes / skills / research / public-records-osint / SKILL.md

name: public-records-osint description: Investigate public records across OSINT sources. version: 0.1.0 author: Hermes platforms: [linux, macos, windows] metadata: hermes: tags: [Osint, PublicRecords, Investigation, DueDiligence]


Public-Records OSINT Investigation

Use this skill to investigate people, companies, contracts, sanctions, property, courts, archives, and news using public records. It focuses on entity resolution, cross-link analysis, timing correlation, and evidence chains. It does not do generic web research or private-data collection, and it stays Python stdlib only.

When to Use

Prerequisites

How to Run

Invoke through the terminal tool.

  1. Read the source wiki entries under SKILL_DIR/references/sources/ and the VPS fallback reference under SKILL_DIR/references/vps-fallback-sources.md.
  2. Fetch the relevant datasets with the stdlib scripts in SKILL_DIR/scripts/.
  3. Resolve entities across CSVs with entity_resolution.py.
  4. Optionally run timing correlation with timing_analysis.py.
  5. Build the final evidence chain with build_findings.py.

Quick Reference

Procedure

  1. Identify which sources apply.
  2. SEC EDGAR for corporate filings.
  3. USAspending for federal contracts.
  4. Senate LD-1 / LD-2 for lobbying disclosures.
  5. OFAC SDN for sanctions.
  6. ICIJ Offshore Leaks for offshore entities.
  7. NYC ACRIS for deeds and mortgages.
  8. OpenCorporates for corporate registries.
  9. CourtListener for opinions and dockets.
  10. Wayback for historical captures.
  11. Wikipedia + Wikidata for narrative and structured facts.
  12. GDELT for global news monitoring.

  13. Acquire data.

  14. Invoke the matching fetch_*.py script through the terminal tool.
  15. Keep outputs normalized as CSV with a header row.
  16. Treat 0-row results with warnings as meaningful when the target simply is not covered by that source.

  17. Resolve entities across sources.

  18. Normalize names before matching.
  19. Treat exact matches as high confidence.
  20. Treat fuzzy and token-overlap matches as candidates, not conclusions.

  21. Optionally test timing correlation.

  22. Use timing_analysis.py when event timing near awards or filings matters.
  23. Treat statistical significance as a lead, not proof.

  24. Build the findings JSON.

  25. Use build_findings.py to emit findings with evidence[] and sources[].
  26. Every claim should trace back to a source row.

Pitfalls

Verification

Run python3 SKILL_DIR/scripts/build_findings.py --cross-links data/cross_links.csv --timing data/timing.json --out data/findings.json and confirm each finding contains an evidence[] trail.