Apify Multi-Platform Scraper
apify/agent-skills
Scrapes public data from social, maps, search and review platforms by choosing from about a hundred Apify Actors and running them through the Apify CLI.
Conduct deep OSINT research on individuals. An agent skill from smixs/osint-skill.
$ npx skills add smixs/osint-skill --skill osint -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install smixs/osint-skill osint --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/smixs/osint-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/osint .claude/skills/osint && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "osint" agent skill from https://github.com/smixs/osint-skill/tree/main/osint into .claude/skills/osint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "osint", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/smixs/osint-skill/tree/main/osintType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add smixs/osint-skill --skill osint -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install smixs/osint-skill osint --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/smixs/osint-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/osint .agents/skills/osint && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "osint" agent skill from https://github.com/smixs/osint-skill/tree/main/osint into .agents/skills/osint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "osint", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add smixs/osint-skill --skill osint -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install smixs/osint-skill osint --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/smixs/osint-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/osint .cursor/skills/osint && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "osint" agent skill from https://github.com/smixs/osint-skill/tree/main/osint into .cursor/skills/osint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "osint", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/smixs/osint-skill.git --path osint--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add smixs/osint-skill --skill osint -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install smixs/osint-skill osint --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/smixs/osint-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/osint .gemini/skills/osint && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "osint" agent skill from https://github.com/smixs/osint-skill/tree/main/osint into .gemini/skills/osint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "osint", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install smixs/osint-skill osintInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add smixs/osint-skill --skill osint -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/smixs/osint-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/osint .github/skills/osint && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "osint" agent skill from https://github.com/smixs/osint-skill/tree/main/osint into .github/skills/osint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "osint", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add smixs/osint-skill --skill osint -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install smixs/osint-skill osint --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/smixs/osint-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/osint .opencode/skills/osint && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "osint" agent skill from https://github.com/smixs/osint-skill/tree/main/osint into .opencode/skills/osint/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "osint", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
osintConduct deep OSINT research on individuals. An agent skill from smixs/osint-skill.
Osint is an agent skill from smixs/osint-skill. Conduct deep OSINT research on individuals. Build full digital footprint, psychoprofile (MBTI/Big Five), career history, social graph with confidence scores. Recursive self-evaluation until completeness threshold is met. Includes internal intelligence (Telegram history, email, vault contacts) before going external. Use when: "osint", "досье", "research person", "find everything about", "пробей", "разведка", "due diligence", "background check", "digital footprint", "найди всё про", "собери информацию", "кто это"…
Its SKILL.md is about 5.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 22 other files, including scripts, reference files and assets (for example `assets/dossier-template.md`, `references/content-extraction.md` and `references/platforms.md`).
It sits in Security, covering OSINT, Web scraping and Fundraising and pitch decks. It works with Telegram, Apify, Perplexity and Instagram. The repository describes itself as: OSINT Skill for AI agents (Claude Code, OpenClaw, Codex, OpenCode) — from a name to a scored dossier with psychoprofile, career map, and confidence grades. 55+ Apify actors, 7… The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 94f382e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 12 files in scripts/ (Shell and Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
bashpython3From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
web.archive.orgAlso links to:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
APIFY_API_TOKENAPIFY_TOKENPERPLEXITY_API_KEYEXA_API_KEYTAVILY_API_KEYJINA_API_KEYPARALLEL_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Osint loads about 5.5k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 173 tokens; SKILL.md has 2,358 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from smixs/osint-skill at commit 94f382e, republished under its MIT licence (© smixs). 2,358 words, ~5,489 tokens.
.claude/skills/osint/SKILL.md (or your agent's skills folder). This skill also uses 19 other files; get the full folder from GitHub.Systematic intelligence gathering on individuals. From a name or handle to a scored dossier with psychoprofile, career map, and entry points.
Determine entry point from context:
Default (full research request): Phase 0 → 1 → 1.5 → 2 → 3 → 4 → 5 → 6.
All API keys via environment variables. Never hardcode tokens.
PERPLEXITY_API_KEY — Perplexity Sonar (fast answers + deep research)EXA_API_KEY — Exa AI (semantic search, company/people research, deep research)TAVILY_API_KEY — Tavily (agent-optimized search + extract, $0.005/req basic)APIFY_API_TOKEN — Apify scraping (LinkedIn, Instagram, Facebook)JINA_API_KEY — Jina reader/search/deepsearchPARALLEL_API_KEY — Parallel AI searchBRIGHTDATA_MCP_URL — Bright Data MCP endpoint (full URL with token)MCPORTER_CONFIG — mcporter config pathRun from skill dir: bash scripts/<name>.sh.
Each validates env vars, exits with descriptive error + URL to get the key.
Search & Research:
diagnose.sh — run FIRST. Capability map of all tools.perplexity.sh — search <query> | sonar <query> (AI answer) | deep <query> (deep research)tavily.sh — search <query> (basic $0.005) | deep <query> (advanced) | extract <url>exa.sh — search <query> | company <name> | people <name> | crawl <url> | deep <prompt>first-volley.sh "Name" "context" — parallel search, all engines at once.merge-volley.sh <outdir> — deduplicate and merge first-volley results.Scraping:
apify.sh — linkedin <url> | instagram <handle> | run | results | store-searchrun-actor.sh — universal Apify runner (55+ actors). Embedded from apify/agent-skills.
Quick answer: bash scripts/run-actor.sh "actor/id" '{"input":"json"}'
Export: bash scripts/run-actor.sh "actor/id" '{"input":"json"}' --output /tmp/out.csvjina.sh — read <url> | search <query> | deepsearch <query>parallel.sh — search <query> | extract <url>brightdata.sh — scrape <url> | scrape-batch | search | search-geo <cc> | search-yandexПринцип: от дешёвого к дорогому, от быстрого к глубокому.
Начни ВСЕГДА с этого. Получи быстрый контекст прежде чем копать. Запускай ВСЕ параллельно:
# Perplexity Sonar — AI ответ с цитатами
bash skills/osint/scripts/perplexity.sh sonar "Who is <Name>, <context>"
# Brave Search — классический поиск
web_search "<Name> <company> <role>"
# Tavily — agent-optimized search с AI answer
bash skills/osint/scripts/tavily.sh search "<Name> <context>"
# Exa — семантический поиск + company/people research
bash skills/osint/scripts/exa.sh search "<Name> <context>"
bash skills/osint/scripts/exa.sh people "<Name>"→ Получаешь: быстрые факты, ссылки, контекст. → Решение: достаточно? → Phase 6. Нужно больше? → Level 2.
Проверяй источники из Level 1 через fetch:
# Читай найденные URL
web_fetch "<url_from_perplexity>"
bash skills/osint/scripts/jina.sh read "<url>"
bash skills/osint/scripts/parallel.sh extract "<url>"→ Получаешь: подтверждённые факты, cross-reference. → Совпадает? → дополняй досье. Нужно глубже? → Level 3.
Подключай scraping для соцсетей:
# LinkedIn
bash skills/osint/scripts/apify.sh linkedin "<url>"
# Instagram
bash skills/osint/scripts/apify.sh instagram "<handle>"
# Facebook, заблокированные сайты
bash skills/osint/scripts/brightdata.sh scrape "<url>"→ Получаешь: структурированные профили, фото, связи.
Если нужно копать ещё глубже — формируй развёрнутый промпт и отправляй в deep research. Запускай ВСЕ параллельно (30-60 сек каждый):
# Perplexity Deep Research
bash skills/osint/scripts/perplexity.sh deep "<detailed research prompt about Name>"
# Exa Deep Research
bash skills/osint/scripts/exa.sh deep "<detailed prompt>"
# Parallel AI Deep Search
bash skills/osint/scripts/parallel.sh search "<detailed query>"
# Jina DeepSearch
bash skills/osint/scripts/jina.sh deepsearch "<query>"Правило: Level 4 промпт должен быть РАЗВЁРНУТЫМ — включай всё что уже знаешь из Level 1-3, чтобы deep research не повторял базовые факты, а копал дальше.
OSINT research runs as a swarm of parallel sub-agents on Sonnet. The main agent is the coordinator — it does NOT scrape itself.
sessions_spawn with model: sonnet, mode: runstreamers/youtube-channel-scraper for channel dataapify/facebook-pages-scraper + apify/facebook-page-contact-informationvdrmota/contact-info-scraper on found websitesclockworks/tiktok-profile-scraper), local registries, press, university records, Yandex search, Google Maps (compass/crawler-google-places if business owner)/tmp/osint-<subject>-<task>.mdbash skills/osint/scripts/diagnose.sh.tg.py (Telegram history), himalaya (email), vault contacts.Start with Level 1 (quick answers) ALWAYS before heavy scraping.
bash skills/osint/scripts/perplexity.sh search "Who is <Name>, <context>"web_search "<Name> <company>"
bash skills/osint/scripts/first-volley.sh "Full Name" "context"web_fetch "<citation_url_1>"
web_fetch "<citation_url_2>"bash skills/osint/scripts/merge-volley.sh /tmp/osint-<timestamp>.Rate limiting: wait 1s between Brave queries, 2s between Jina calls. Do NOT hammer APIs in tight loops — stagger parallel launches.
Before going external, check what we already know. This phase mines local sources that may contain gold — prior conversations, emails, vault contacts.
If tg.py is available (check Phase 0):
# Search by name/handle in Telegram
python3 skills/telegram/scripts/tg.py search "Name" 20
# If we have their username/id — read conversation history
python3 skills/telegram/scripts/tg.py history <username_or_id> 50What to extract from Telegram history:
⚠️ Telegram history is Grade A intelligence — unfiltered, real-time, authentic. Weight it higher than curated LinkedIn/Instagram profiles. ⚠️ Privacy: internal intelligence stays in the dossier. Never quote DMs in public outputs.
If himalaya is available:
# Search emails by name or domain
~/.local/bin/himalaya search "from:name@domain.com OR to:name@domain.com" -f INBOX
# Or by name
~/.local/bin/himalaya search "Name Surname" -f INBOX
~/.local/bin/himalaya search "Name Surname" -f SentWhat to extract from email:
# Check if we already have a card
grep -rl "Name" vault/crm/ vault/contacts/ 2>/dev/null
# Check MOC indexes (adjust paths to your vault structure)
grep -i "name" vault/MOC/*.md 2>/dev/nullIf vault card exists: read it, note last_accessed, existing tags, prior interactions. Don't duplicate — enrich the existing card after research completes.
If meeting in person and node is available, nodes camera_snap can capture context.
Only with explicit user permission.
After Phase 1.5, you should know:
This context shapes Phase 2 priorities — if we already know their career from emails, focus external research on psychoprofile and social media instead.
Read references/platforms.md ONLY when needing URL patterns or extraction signals.
Tool priority (primary → fallback). If primary fails, switch immediately. Never retry same tool.
apify.sh linkedin → brightdata.sh scrape → jina.sh readapify.sh instagram → brightdata.sh scraperun-actor.sh "apify/instagram-tagged-scraper" (who tags them), apify/instagram-comment-scraper (sentiment)brightdata.sh scrape → none (only Bright Data works)run-actor.sh "apify/facebook-pages-scraper" → brightdata.sh scraperun-actor.sh "clockworks/tiktok-profile-scraper" → clockworks/tiktok-scraper (comprehensive)run-actor.sh "clockworks/tiktok-user-search-scraper" (find by keywords)run-actor.sh "streamers/youtube-channel-scraper" → jina.sh read → brightdata.sh scrapeweb_fetch t.me/s/{channel} → jina.sh readpython3 scripts/twitter.py tweet <url> → jina.sh readrun-actor.sh "compass/crawler-google-places"run-actor.sh "vdrmota/contact-info-scraper" (extract emails/phones from any URL)jina.sh read → brightdata.sh scraperun-actor.sh = universal Apify runner (embedded, 55+ actors). See references/tools.md for full actor catalog.
Read references/tools.md ONLY when troubleshooting a failed tool.
When you find YouTube, podcast, blog, or conference talks — read references/content-extraction.md immediately and extract 3-5 pieces of content on the spot.
Do NOT just note the URL. Extract transcripts/text NOW. A 20-minute YouTube video reveals more about a person than their entire LinkedIn. Content platforms are the #1 source for psychoprofile — skipping them = shallow dossier.
If initial searches return unusually little for someone who should have a footprint:
web_fetch "https://web.archive.org/web/2024*/target-url" — deleted profiles, old biosweb_search "cache:domain.com/path" — recently removed pagesbrightdata.sh search-yandex "Name" — Yandex indexes CIS deeper and caches longerList every claim as a row: fact | source 1 | source 2 | grade.
For each critical fact (employer, role, location, education):
If LinkedIn says "CEO" but company site says "Co-founder" — flag explicitly. Include both with sources. Do NOT silently pick one.
If common name — verify at least 2 facts (company + city, or photo + company) link to same person. If unsure, split into separate entities.
Internal intelligence (Phase 1.5) counts as an independent source.
Read references/psychoprofile.md ONLY at this phase.
9 mandatory checks. If any fail, flag as critical gap:
| Dimension | Weight | What to score (1-10) |
|---|---|---|
| Identity | 0.15 | Full name, DOB, location, education, photo |
| Career | 0.20 | Completeness of work history, current role clarity |
| Digital footprint | 0.15 | Number of platforms found, account activity level |
| Psychoprofile | 0.15 | MBTI confidence, writing style quantified, values deduced |
| Internal intel | 0.10 | Telegram/email history depth, vault data |
| Personal life | 0.05 | Family, hobbies, lifestyle, pets |
| Cross-reference | 0.10 | How many facts are A-grade, contradiction count |
| Actionability | 0.10 | Entry points identified, approach strategy clear |
Weighted sum (1-10) = Depth Score.
Count unique source types used (max 12): LinkedIn, Instagram, Facebook, Telegram DM, Telegram channel, VK, Twitter/X, company website, press/media articles, conference profiles, government/business registries, email correspondence.
| Depth Score | Coverage | Diagnosis | Action |
|---|---|---|---|
| 8+ | All pass | Strong dossier | Proceed to Phase 6 |
| 8+ | Some fail | Deep but blind spots | Target failed checks, 1 more cycle |
| <7 | All pass | Wide but shallow | Deepen via interviews/articles/deepsearch |
| <7 | Some fail | Restart needed | Different search angle, new tool combination |
(a) Depth Score ≥ 8.0 AND all coverage checks pass → exit to Phase 6 (b) 3 cycles completed → deliver best available with honest assessment (c) Two cycles with delta < 0.5 → plateau reached, deliver with note
Read assets/dossier-template.md before rendering. Follow the template structure exactly.
No markdown tables in output (Telegram cannot render). Bullet lists only.
Report Depth Score, source count, source types, and total API spend.
If internal intelligence was used, add a separate "из переписки" section (marked as internal/confidential, not for sharing outside).
$0.50: ask user before proceeding.
brightdata.sh scrape as primary instead of Apify.apify.sh store-search "linkedin scraper" for alternatives. Actors on Apify are volatile — always have a Bright Data fallback.jina.sh deepsearch. Check Telegram history.bash scripts/apify.sh store-search "people search". If mcpc installed: APIFY_TOKEN=$APIFY_API_TOKEN mcpc --json mcp.apify.com --header "Authorization: Bearer $APIFY_TOKEN" tools-call search-actors keywords:="people search" limit:=10. Check Telegram contacts by phone.clockworks/free-tiktok-scraper (free tier) as fallback. TikTok usernames often differ from other platforms — search by real name via clockworks/tiktok-user-search-scraper.vdrmota/contact-info-scraper — it crawls the site and extracts all contact info.© smixs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 19 other files (scripts, references, assets) in osint of smixs/osint-skill.
Open the folder on GitHubat commit 94f382e
Osint next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Osint this skillsmixs/osint-skill | 141 | — | ~5.5k | Automated safety check: Pass | MIT | |
| Apify Multi-Platform Scraperapify/agent-skills | 2.4k | 2 repos | ~1.4k | Automated safety check: Notes | None | |
| Apify Buying Signal Detectionapify/awesome-skills | 265 | — | ~5.1k | Automated safety check: Notes | Apache-2.0 | |
| Apify Google Maps Leadsapify/awesome-skills | 265 | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Luma Event Attendeesgooseworks-ai/goose-skills | 1.2k | 1 repos | ~1.7k | Automated safety check: Notes | MIT | |
| Apify Ads Intelligenceapify/awesome-skills | 265 | — | ~4.2k | Automated safety check: Notes | Apache-2.0 |
apify/agent-skills
Scrapes public data from social, maps, search and review platforms by choosing from about a hundred Apify Actors and running them through the Apify CLI.
apify/awesome-skills
Set up a recurring buying-signal detection pipeline that finds companies showing buying intent across three signal types — job postings (hiring for the persona), fundraising events (recent raises)…
apify/awesome-skills
Build a local-business lead database from Google Maps in one Apify pipeline: search by target audience + geography, enrich each place with company contacts from its website, leads enrichment (names…
gooseworks-ai/goose-skills
Find speakers, hosts, and guest profiles at conferences and events on Luma.
apify/awesome-skills
Research, spy on, and analyze ads across Meta (Facebook & Instagram), Google (Ads Transparency Center + paid search results), TikTok (Ads Library + Creative Center), LinkedIn Ad Library, and X…
brightdata/skills
Bright Data MCP handles ALL web data operations. An agent skill from brightdata/skills.
Categories
Conduct deep OSINT research on individuals. An agent skill from smixs/osint-skill. Osint is an agent skill from smixs/osint-skill. Conduct deep OSINT research on individuals.
Osint fits situations like: research person; find everything about; background check; digital footprint.
Run `npx skills add smixs/osint-skill --skill osint -a claude-code`. Or copy the skill folder (osint in smixs/osint-skill) into .claude/skills/osint in your project. Claude Code loads it when a task matches its description.
Run `npx skills add smixs/osint-skill --skill osint -a codex`. Or copy the skill folder (osint in smixs/osint-skill) into .agents/skills/osint in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add smixs/osint-skill --skill osint -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/osint, .gemini/skills/osint, .github/skills/osint and .opencode/skills/osint in your project.
Going by SKILL.md and its folder, Osint needs a shell and Python for the scripts in its folder, the command-line tools its instructions call (bash and python3) and credentials named APIFY_API_TOKEN, APIFY_TOKEN, PERPLEXITY_API_KEY and EXA_API_KEY. Our summary lists: Python 3; A Bash shell; A credential in PERPLEXITY_API_KEY; A credential in EXA_API_KEY.
SKILL.md names 2 domains. In commands or code: web.archive.org; the agent is likely to contact it when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Osint is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Osint: Apify Multi-Platform Scraper (apify/agent-skills, 2.4k stars), Apify Buying Signal Detection (apify/awesome-skills, 265 stars), Apify Google Maps Leads (apify/awesome-skills, 265 stars) and Luma Event Attendees (gooseworks-ai/goose-skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
smixs (a GitHub user) maintains it in smixs/osint-skill, which has 141 GitHub stars. The repository was last updated on March 10, 2026.
Source: smixs/osint-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.