skills/web-search-tools/nimble-web-expert/SKILL.md
Get web data now — fast, incremental, immediately responsive to what the user needs. The only way Claude can access live websites. USE FOR: - Fetching any URL or reading any webpage - Scraping prices, listings, reviews, jobs, stats, docs from any site - Discovering URLs on a site before bulk extraction - Calling public REST/XHR API endpoints - Web search and research (8 focus modes) - Bulk crawling website sections Must be pre-installed and authenticated. Run `nimble --version` to verify. For building reusable extraction workflows to run at scale over time, use nimble-agent-builder instead.
npx skillsauth add nimbleway/agent-skills nimble-web-expertInstall 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.
Web extraction, search, and URL discovery using the Nimble CLI. Returns clean structured data from any website.
User request: $ARGUMENTS
nimble extract. Research/topic → nimble search. Discover/crawl URLs → nimble map or nimble crawl.--transform "data.parsing" for agents. Show the data immediately as a table. Do NOT experiment, loop, or write Python to parse output.&+wait. 6–20 → xargs -P. 20+ → Python asyncio script. See references/batch-patterns.md..nimble/. Never leave extraction results in memory only.nimble --version + NIMBLE_API_KEY confirms the CLI path; otherwise run one read-only mcp__plugin_nimble_nimble__nimble_agents_list probe. Success = connected; an auth/not-connected error or a response containing an OAuth authorization URL = not connected.dangerouslyDisableSandbox. If the plugin is installed but the connector isn't connected (typical Cowork / claude.ai), surface the verbatim connect steps from rules/setup.md and stop; if no plugin at all, follow the install flow in rules/setup.md.| Skill | Best for | Key commands |
| ---------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------ |
| nimble-web-expert (this skill) | Real-time data — fetch any URL, search, map, crawl, run existing agents | extract, search, map, crawl, agent run |
| nimble-agent-builder | Build reusable agents — create, refine, publish named extraction templates | CLI: generate, get-generation, publish |
Hand off to nimble-agent-builder only when all of these are true: the user has signalled a recurring/scheduled need, the pattern is repetitive (same site, same fields), and they've seen and approved the results. Don't ask after every extract — only when language clearly signals a recurring workflow ("I want to do this every day", "build me a pipeline", "make this reusable").
For agent refinement: "Agent updates are handled by nimble-agent-builder — it can refine the existing agent without rebuilding from scratch."
AskUserQuestion at every meaningful choice — never guess, never ask in prose.which browser-use, python3 -c "from playwright.sync_api...") and ask whether to investigate with browser-use, Playwright, or skip.Looks great! / Mostly good / Not quite / Skip feedbackPick CLI or MCP at session start — same skill, two transports. Once a transport is selected, stick with it for the session and don't re-probe on every command.
nimble --version && echo "${NIMBLE_API_KEY:+API key: set}" # CLI path
# OR (fallback when shell isn't available)
claude mcp list 2>/dev/null | grep -q "nimble" && echo "MCP: ok" # plugin MCP
nimble ... commands.mcp__plugin_nimble_nimble__* tools instead.rules/setup.md for the environment-aware install flow. Any Claude product (Code, Cowork, claude.ai) → /plugin install nimble. Codex or other terminal-only agents → npm i -g @nimble-way/nimble-cli. Cursor / VS Code / generic MCP clients → paste the mcp.json snippet.If bash is denied: you're in a Cowork-like / MCP-only host. Use mcp__plugin_nimble_nimble__* tools, but verify the connection first with one read-only nimble_agents_list probe. If the probe fails with an auth/not-connected error or returns an OAuth authorization URL, the connector isn't connected — surface the connection steps from Core principles and stop (and never invent an auth-completion flow). Never substitute WebFetch, WebSearch, curl, or any other tool for Nimble operations.
| User signal | Command | Notes |
| ---------------------------------- | --------------------------------------------- | ---------------------------------------------- |
| Names a specific site or domain | nimble agent → nimble extract if no agent | Always check for agent first — announce it |
| Provides a direct URL | nimble extract | Skip agent check |
| Research, topic, or vertical query | nimble search | Use focus modes for news, jobs, shopping, etc. |
| "Find URLs / sitemap / all pages" | nimble map | Returns URL list + metadata |
| "Crawl / archive a whole section" | nimble crawl | Async bulk extraction |
Pre-built agents return clean structured data with zero selector work. Always check first.
Always verbalize — never silently:
<agent_name> — using it now." or "No pre-built agent — falling back to extraction."Lookup order:
~/.claude/skills/nimble-web-expert/learned/examples.json → agents[] arrayreferences/nimble-agents/SKILL.md → baked-in table (50+ sites)nimble agent list --limit 100 --search "<domain or vertical>" → show table, confirm with userRun with --transform "data.parsing" — always:
nimble --transform "data.parsing" agent run --agent <name> --params '{"keyword": "..."}'
Do NOT run without --transform "data.parsing" and then parse raw output. The raw response contains html (useless), headers, and parsing (what you want). The transform flag extracts parsing in one shot.
For the full agent list (50+ sites), see references/nimble-agents/SKILL.md.
⚠️ google_search is for SEO/SERP rank analysis only — not general information retrieval. For finding information, use nimble search.
| Situation | Command | Reference |
| ------------------------------- | -------------------------------------------- | ---------------------------------------------------- |
| Site/domain → check agent first | nimble agent list → nimble agent run | references/nimble-agents/SKILL.md |
| Direct URL | nimble extract | references/nimble-extract/SKILL.md |
| Search the live web | nimble search | references/nimble-search/SKILL.md |
| Discover URLs on a site | nimble map | references/nimble-map/SKILL.md |
| Bulk crawl a section | nimble crawl run | references/nimble-crawl/SKILL.md |
| Batch agents (up to 1,000) | nimble agent run-batch | references/nimble-agents/SKILL.md |
| Batch extract (up to 1,000) | nimble extract-batch | references/nimble-extract/SKILL.md |
| Poll tasks / batches / results | nimble tasks / nimble batches | references/nimble-tasks/SKILL.md |
| Unknown selectors or XHR path | browser-use or Playwright investigation | references/nimble-extract/browser-investigation.md |
| Proven site patterns | copy a recipe | references/recipes.md |
| 2+ inputs | parallel bash &+wait or generated script | references/batch-patterns.md |
For the full extract waterfall (tiers, flags, browser actions, network capture), see references/nimble-extract/SKILL.md.
| Command | Output |
| ---------------- | --------------------------------------------------------------------------- |
| nimble agent | Structured data in data.parsing — array (SERP/list) or dict (PDP/product) |
| nimble extract | HTML, Markdown, or parsed JSON — depends on --format and --parse |
| nimble search | Structured results array (title, URL, description) |
| nimble map | URL list + metadata |
| nimble crawl | Async job — poll with nimble crawl status <job_id> |
Agent runs always need --transform "data.parsing". If the agent name suggests a list (serp, search, plp), expect an array. If it suggests a single item (pdp, product, profile), expect a dict.
mkdir -p .nimble # save all outputs here
Naming: .nimble/<site>-<task>.md (e.g. .nimble/amazon-airpods.md, .nimble/yelp-sf-italian.json)
Working with saved files:
wc -l .nimble/page.md && head -100 .nimble/page.md
grep -n "price\|rating" .nimble/page.md | head -30
End every response with: Source: [URL] — fetched live via Nimble CLI
The skill maintains ~/.claude/skills/nimble-web-expert/learned/examples.json.
good[] for url_pattern matches → use documented command/tier as starting point. Scan bad[] → avoid documented pitfalls.good[] with url_pattern, task, command, tier, notes. On negative feedback, ask "What went wrong?" and append to bad[] with url_pattern, task, issue, avoid, better.allowed-tools — if a Nimble transport isn't available, stop and follow the guidance in the no-transport branch of Core principles. Don't try to work around it.run_in_background=False. See nimble-agent-builder delegation model for the why.Load only when needed:
| File | Load when |
| ---------------------------------------------------- | ----------------------------------------------------------------------------- |
| references/recipes.md | Need a proven command for a common site (Amazon, Yelp, LinkedIn…) |
| references/nimble-agents/SKILL.md | Step 0 lookup — full agent table (50+ sites) |
| references/nimble-extract/SKILL.md | Extract flags, render tiers, browser actions, network capture, parser schemas |
| references/nimble-search/SKILL.md | Search flags, all 8 focus modes |
| references/nimble-map/SKILL.md | Map flags, response structure |
| references/nimble-crawl/SKILL.md | Full async crawl workflow |
| references/nimble-tasks/SKILL.md | Poll tasks/batches, fetch results — for async, batch, and crawl operations |
| references/nimble-extract/browser-investigation.md | Tier 6 — CSS selector/XHR discovery with browser-use or Playwright |
| references/nimble-extract/parsing-schema.md | Parser types, selectors, extractors, post-processors |
| references/nimble-extract/browser-actions.md | Full browser action types and parameters |
| references/nimble-extract/network-capture.md | Filter syntax, XHR mode, capture+parse patterns |
| references/nimble-search/search-focus-modes.md | Decision tree, mode details, combination strategies |
| references/batch-patterns.md | Parallel bash patterns for 2–5, 6–20, and 20+ inputs |
| references/error-handling.md | Error codes, known site issues, troubleshooting |
development
Finds qualified candidates for a role by searching LinkedIn, Indeed, GitHub, and other professional platforms using Nimble Web Search Agents. Accepts a job description, role title, or freeform request and returns a ranked candidate list with profiles, skills, and contact signals. Use this skill when the user wants to find, source, or recruit candidates for a role. Common triggers: "find candidates for", "source engineers in", "who can I hire for", "find me a [role]", "recruiting for", "talent search", "find a [role] in [city]", "build a candidate list", "sourcing for [role]", "who's available for", "find potential hires". Also triggers on a pasted job description followed by a sourcing request. Do NOT use for job market research or salary benchmarking — use market-finder instead. Do NOT use for researching a single known person — use company-deep-dive or meeting-prep instead.
development
A building experience: create, test, validate, refine, and publish extraction workflows based on existing or new Nimble agents. For users who want to invest in a durable, reusable workflow for a specific domain — not get data immediately. Trigger phrases: "set up extraction for X site", "I need to extract from this site regularly", "build an agent for", "create a reusable scraper", "generate a Nimble agent", "refine my agent", "add a field to my agent", or when the user wants to run extraction at scale. For getting data immediately, use nimble-web-expert instead.
tools
SEO intelligence toolkit covering the full lifecycle via live web data: keyword research, rank tracking, site audits, content gap analysis, competitor keyword reverse-engineering, AI visibility across five platforms (ChatGPT, Perplexity, Google AI, Gemini, Grok), and GitHub repo SEO. Crawls real sites and SERPs via Nimble CLI — no fabricated metrics. Triggers: "SEO", "keywords", "rank tracker", "site audit", "content gap", "competitor keywords", "AI visibility", "GitHub SEO", "SERP analysis", "keyword research", "technical SEO", "keyword difficulty", "topic clusters", "ranking delta", "on-page SEO", "AI citation audit". Do NOT use for competitor business signals — use `competitor-intel` instead. Do NOT use for competitor messaging — use `competitor-positioning` instead. Do NOT use for general web scraping — use `nimble-web-expert` instead.
tools
Researches meeting attendees and their companies before any meeting using real-time web data. Surfaces roles, recent activity, company context, and talking points — then maps cross-attendee relationships. Use this skill when the user asks to prepare for a meeting, research someone they're meeting, or wants context on attendees. Common triggers: "prepare me for my meeting", "who am I meeting with", "research this person", "meeting prep", "brief me on [person]", "I have a meeting with [person/company]", "get me ready for my call", "what should I know about [person]", "background on [person] before our meeting", "attendee research". Requires the Nimble CLI (nimble search, nimble extract) for live web data. Do NOT use for multi-company competitor monitoring (use competitor-intel) or single-company deep dives without attendees (use company-deep-dive).