Skip to content
New

DeepSeek V4.1 Flash free for 7 days: 10M tokens a day after a top-up of $10 or more. Until Nov 30.

How it works

Turning OSINT into a clean report

Build an OSINT report that stands up: scope, method, findings with evidence and severity, and the NotHoly chat to draft and tighten it.

Intermediate3 min readBy NotHoly

A report is the deliverable. All the recon is worth what the reader can act on, which means structure, evidence and plain language. A good OSINT report has a scope statement, a method note, findings with evidence and severity, and a clear next step for each one. The NotHoly chat drafts and tightens it while you own every fact in it.

The sections a report needs

Keep it boring and complete. A workable structure fits on one outline.

text
1. Scope and dates: what you looked at, what you did not
2. Method: sources and tools, passive and active
3. Findings: each with evidence, impact and a fix
4. Appendix: raw data, host lists, timeline

The scope statement protects you and the reader, because it says what was in bounds. The method section lets someone reproduce the work, which is what standards like NIST SP 800-115 expect from a test report.

Write findings that stand up

A finding is a claim plus proof. Each one carries a title, where it was found as the source line from your notes, why it matters, and what to do. Rate impact plainly as informational, low, medium or high, and a scale like CVSS keeps it consistent across findings. Say what you observed and what it exposes, and when you did not verify something, label it a lead rather than a finding.

Draft and tighten with the chat

Paste your structured notes and ask for a first draft.

text
Here are my OSINT findings with sources and a severity each.
Draft a report: scope, method, findings table, then one page
per finding with evidence and remediation. Flag any finding
whose evidence is thin so I can recheck before I send it.

Then run a second pass for language, asking it to cut hedging, drop adjectives and keep each finding to what the evidence supports. The model is good at structure and tone and does not know whether a fact is true, so you check every claim against your notes before the report leaves your hands.

One table that carries the report

Busy readers read the findings table and skim the rest, so give it columns that let them triage.

Finding Source Impact Status
Staging host exposes config httpx, crt.sh Medium Reported
Employee email in breach hibp Low Reported
Origin IP behind CDN dns-history Info Noted

Keep the table to facts. The detail lives in the per-finding pages below it, where the evidence and the fix sit next to each claim.

Scope and privacy

The report is where personal data is most likely to leak. Redact what the reader does not need: mask emails, drop breach contents and keep screenshots free of unrelated people. State your scope and stop at its edge, because a finding about an out-of-scope asset belongs in a separate note to the owner, not in the main report. Hand the report over through the agreed channel and delete working copies that hold sensitive data.

Frequently asked questions

How long should an OSINT report be?

As long as the findings need and no longer. A findings table plus one page per finding is enough for most engagements, and padding hides the signal the reader is paying for.

Can the AI write the whole report?

It can draft the structure and tighten the prose, which saves real time. It cannot decide what is true or in scope. You own every claim, so you read every line before it ships.

That closes the track, from scope to subdomains, URLs, certificates, code, dorks, people, images, structure and now the report. Start again at the OSINT workflow, or the index at what is OSINT.

Sources

  1. NIST SP 800-115, Technical Guide to Information Security Testing and Assessment
  2. FIRST, Common Vulnerability Scoring System (CVSS)
  3. PTES, Reporting

More in AI agents for security

AI agents for security

Why automate recon and testing on the NotHoly API

Put a model that does not refuse in your pipeline, with CVE, advisory and public-page reads that do not cost tokens. Your tools do the active work.

Intermediate3 min read

AI agents for security

Build your hackbot, part 1: architecture

The design of a small bug bounty agent: an LLM, a set of tools, memory, and guardrails, wired into a loop that runs on your machine under your approval.

Intermediate3 min read

AI agents for security

Build your hackbot, part 2: code the agent

A small Python bug bounty agent with tool calling on the NotHoly API: it proposes recon commands, waits for your approval, reads output, and keeps notes.

Intermediate3 min read