skills/osint/SKILL.md
Open-source intelligence on people, companies, domains, and B2B accounts. Use when the user wants to investigate, vet, research, or build a dossier on a target — phrases like "OSINT", "due diligence", "background check", "research this person", "look into [company/domain]", "vet this prospect/vendor", "what does X do", "is this account worth pursuing", "find me a contact at", "who's the buyer for", or any open-source investigation task. Disambiguates identities before reporting and grades every claim by independent source count.
npx skillsauth add baphomet480/claude-skills osintInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Open-source intelligence gathering with disambiguation discipline, confidence grading, and tiered depth. Public sources only. No breach data. No social engineering. Scope-respecting.
This skill is the orchestrator. You do the thinking. Tools and scripts are workers — they fetch, you decide.
findings.json sidecar.Run these in order. Skipping any of them is how OSINT goes wrong.
Before a single query, confirm:
See references/ethics-and-scope.md for full rules and the decline-it list.
The single biggest OSINT failure mode is conflating two people (or two companies) with the same name. Before reporting anything about a target:
If you can't disambiguate, say so. Don't guess.
See references/disambiguation.md for the full protocol.
A "fact" repeated by ten content-farm sites that all copied one LinkedIn bio is one source, not ten. Before grading a finding:
Every finding gets a letter grade in the dossier:
If a finding can only get a D, either drop it or label it as inference.
See references/confidence-grading.md for the rubric and edge cases.
Match the user's intent to a workflow. If unclear, ask.
| User intent / phrasing | Workflow |
|---|---|
| "Research this person", "background check on", "who is X" | workflows/person.md |
| "Look into this company", "what does X do", "is X legit" | workflows/company.md |
| "B2B account intel", "is this prospect worth pursuing", "find the buyer at", "what's their stack", "who's their MSP" | workflows/b2b-account.md |
| "Check this domain/IP", "tech footprint", "what's running on", "subdomains of" | workflows/domain.md |
| "Due diligence", "investment-grade research", "vet this vendor/partner" | workflows/due-diligence.md |
For multi-target investigations (e.g., a person at a company), run the relevant workflows in sequence and merge the outputs.
Pick a depth at the start. Tell the user the depth and the rough budget so they can adjust.
templates/dossier.md + findings.json sidecar.If you're going to exceed the budget you stated, stop and tell the user before continuing.
Every Standard or Deep investigation produces two artifacts:
<target-slug>-dossier.md — human-readable, follows templates/dossier.md. Section headers, confidence grades on every claim, source URLs collected at the bottom.<target-slug>-findings.json — machine-readable, follows templates/findings.schema.json. Each finding has claim, confidence, sources[], category, extracted_at.For Quick investigations, the markdown summary is enough. JSON is optional.
Save outputs to a folder named osint/<target-slug>/ in the working directory unless the user specifies otherwise.
Required minimum: web search + ability to fetch URLs. The skill works with just these.
Strongly helpful (graceful degradation):
web.archive.org) for historicalSearch operator reference: references/search-operators.md — Google dorks, LinkedIn X-ray, GitHub search syntax, Wayback usage.
API key check (do this once at the start of any Standard or Deep investigation, silently):
[ -n "$GITHUB_TOKEN" ] && echo "github: yes" || echo "github: no"
[ -n "$BRAVE_API_KEY" ] && echo "brave: yes" || echo "brave: no"
[ -n "$APIFY_TOKEN" ] && echo "apify: yes" || echo "apify: no"
[ -n "$SHODAN_API_KEY" ] && echo "shodan: yes" || echo "shodan: no"
If a key is missing, fall back to web search. Never tell the user "I can't do this" without first trying the fallback.
If the current project root contains an .agent/ directory, this skill MUST participate in the Agentic OS shared-memory model.
At the end of your execution, check for .agent/state/last-run.json. If it exists, append or update the file using its required schema to log your run. Ensure you capture your runtime (agent_id), assigned_skill, a concise description, decision_log, and outcome. Use python3 ~/.agents/skills/heartbeat/scripts/heartbeat.py complete <task_id> ... if completing a task from the queue.
If running inside PAI or PAI-OpenCode, the following are honored automatically:
~/.opencode/skills/PAI/USER/SKILLCUSTOMIZATIONS/OSINT/PREFERENCES.md override defaults.~/.opencode/skills/Apify/ are used when present.~/.opencode/skills/PAI/SKILL.md runs first if the file exists.If those paths don't exist, ignore them. The skill is fully functional standalone.
User: "Look into Jason Gurash at Avenir Senior Living for me — B2B prospect, infrastructure consulting angle."
Your turn 1 (don't dossier yet):
Setting up a B2B account intel investigation. Routing to
workflows/b2b-account.md. Depth: Standard (~20 min). Disambiguation target: Jason Gurash, VP Operations, Avenir Senior Living. I'll confirm that match before reporting any details about him personally. Scope: public sources for sales discovery — corporate site, LinkedIn, news, tech footprint. I'll skip personal-life angles since they're not relevant to the consulting use case. Starting now.
Then run the workflow. Then produce the dossier with grades.
development
Sets up, configures, and optimizes Google Analytics 4 (GA4) properties. Evaluates websites for proper GA4 implementation, tracking codes, and configuration improvements. Uses the Google Analytics Admin API for programmatic setup or provides manual integration paths via gtag.js or Next.js Third Parties.
development
Generate, edit, describe, restyle, restore, thumbnail, and batch-process images using xAI (Grok) or OpenAI image APIs and GPT-4o vision. Default provider is xAI ($0.02/image flat rate). Use this skill whenever the user asks to generate, create, make, draw, or design an image or picture using AI, or wants to edit, modify, transform, restyle, composite, or inpaint an existing image. Also handles image description and alt-text generation, background removal, style transfer, photo restoration, thumbnail creation, and batch generation from JSON manifests. Trigger when the user mentions DALL-E, gpt-image, Grok image, xAI image, OpenAI image generation, or wants AI-generated visuals for any purpose (logos, mockups, illustrations, thumbnails, icons, concept art, memes). Also trigger for batch image generation, generating a set or series of images, processing multiple images from a manifest, or creating consistent image collections. If the user says "make me an image of...", "generate a picture", "edit this photo to...", "describe this image", "remove the background", "make this look like watercolor", "restore this old photo", "create a thumbnail", "generate a batch of images", or "process this image manifest", this is the skill to use.
testing
Agentic OS Orchestrator. Process and execute tasks from the shared .agent/state/tasks.json queue. Use when the user asks to 'check the queue', 'process tasks', or run the heartbeat.
tools
Delegate a sub-task to Claude Code via the Agent Client Protocol (ACP). Use this skill whenever you want to hand off work to Claude — complex agentic coding with MCP tool access, detailed multi-file refactors, tasks requiring Claude's reasoning style, or anything where Claude's strengths give an advantage. Also invoke when the user asks you to "ask Claude", "use Claude for this", or "run this through Claude". The script handles subprocess lifecycle and ACP session setup; you just provide the prompt and read stdout.