skills/web-search-tools/nimble-web-expert/references/nimble-agents/SKILL.md
Reference for nimble agent commands. Load for Step 0 agent lookup. Contains: full agent table (50+ sites across e-commerce, food, real estate, jobs, social, travel), discover/list/schema/run commands, response shapes (PDP=dict, SERP=list, google=entities), agent memory.
npx skillsauth add nimbleway/agent-skills nimble-agents-referenceInstall 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.
Pre-built agents for specific sites. Always faster and more reliable than manual extraction — use them whenever a matching agent exists (see Step 0 in SKILL.md).
Parameters:
| Parameter | CLI flag | Type | Default | Description |
| ------------ | -------------- | ------ | ------- | -------------------------------------------------------- |
| limit | --limit | int | — | Results per page |
| offset | --offset | int | — | Pagination offset |
| search | --search | string | — | Search agents by domain, vertical, or name keyword |
| managed_by | --managed-by | string | — | Filter by attribution (e.g. nimble) |
| privacy | --privacy | string | — | Filter by privacy level |
CLI:
# All agents (broad lookup)
nimble agent list --limit 100
# Targeted search by domain or vertical (preferred when domain is known)
nimble agent list --limit 100 --search "amazon"
nimble agent list --limit 100 --search "ecommerce"
nimble agent list --limit 100 --search "jobs"
Python SDK:
from nimble_python import Nimble
nimble = Nimble(api_key=os.environ["NIMBLE_API_KEY"])
agents = nimble.agent.list()
Response fields per agent: name, display_name, description, vertical, entity_type, domain, is_public, managed_by
Parameters:
| Parameter | CLI flag | Type | Description |
| --------------- | ----------------- | ------ | --------------------- |
| template_name | --template-name | string | Agent name (required) |
CLI:
nimble agent get --template-name amazon_pdp
Python SDK:
agent = nimble.agent.get(template_name="amazon_pdp")
Response: same as list item + output_schema — JSON schema mapping field names to {type, description}.
Parameters:
| Parameter | CLI flag | Type | Default | Description |
| -------------- | ---------------- | ------ | -------- | ------------------------------------------------------- |
| agent | --agent | string | required | Agent name |
| params | --params | JSON | required | Agent input parameters |
| localization | --localization | bool | false | Enable zip_code/store_id localization (agent-dependent) |
CLI:
nimble agent run --agent amazon_pdp --params '{"asin": "B0CHWRXH8B"}'
Python SDK:
resp = nimble.agent.run(agent="amazon_pdp", params={"asin": "B0CHWRXH8B"})
parsing = resp.data.parsing # dict for PDP agents, list for SERP agents
Response fields: task_id, status (success/failed), status_code, data.parsing, data.html, metadata.query_duration, metadata.agent
SERP
parsingitems are typed Pydantic objects — call.model_dump()beforejson.dumps()or**spread. PDPparsingis a plain dict.
Parameters:
| Parameter | CLI flag | Type | Default | Description |
| -------------- | ----------------------- | ------ | -------- | ---------------------------------- |
| agent | --agent | string | required | Agent name |
| params | --params | JSON | required | Agent input parameters |
| localization | --localization | bool | false | Enable localization |
| callback_url | --callback-url | string | — | POST callback when task completes |
| storage_type | --storage-type | string | — | s3 or gs |
| storage_url | --storage-url | string | — | Destination: s3://bucket/prefix/ |
| compress | --storage-compress | bool | false | Gzip the stored output |
| custom_name | --storage-object-name | string | — | Custom filename instead of task_id |
CLI:
nimble agent run-async --agent amazon_pdp --params '{"asin": "B0CHWRXH8B"}' \
--callback-url "https://your.server/callback"
Python SDK:
resp = await nimble.agent.run_async(agent="amazon_pdp", params={"asin": "B0CHWRXH8B"})
task_id = resp.task["id"] # resp.task is a plain dict
Task states: pending → success or error — poll and fetch results via nimble-tasks reference.
Submit up to 1,000 agent requests in a single call. Uses an inputs + shared_inputs
pattern — shared config applies to all items, per-item params override.
Parameters:
| Parameter | CLI flag | Type | Default | Description |
| --------------- | ----------------- | ----- | -------- | ----------------------------------------------------- |
| inputs | --input | array | required | Array of per-item inputs (up to 1,000) |
| shared_inputs | --shared-inputs | JSON | required | Shared config: agent (required) + default params |
Each item in inputs contains a params object with agent-specific inputs (e.g. asin,
keyword). Per-item params are merged with shared_inputs.params — per-item values
take priority.
CLI:
nimble agent run-batch \
--shared-inputs 'agent: amazon_serp' \
--input '{"params": {"keyword": "iphone 15"}}' \
--input '{"params": {"keyword": "iphone 16"}}' \
--input '{"params": {"keyword": "iphone 16 pro"}}'
Python SDK:
resp = nimble.agent.batch(
inputs=[
{"params": {"keyword": "iphone 15"}},
{"params": {"keyword": "iphone 16"}},
{"params": {"keyword": "iphone 16 pro"}},
],
shared_inputs={"agent": "amazon_serp"},
)
batch_id = resp["batch_id"]
Node SDK:
const resp = await nimble.agent.batch({
inputs: [
{ params: { keyword: "iphone 15" } },
{ params: { keyword: "iphone 16" } },
{ params: { keyword: "iphone 16 pro" } },
],
sharedInputs: { agent: "amazon_serp" },
});
const batchId = resp.batch_id;
Response:
{
"batch_id": "b7e1a2f3-...",
"batch_size": 3,
"tasks": [
{ "id": "task-001-uuid", "state": "pending", "batch_id": "b7e1a2f3-..." }
]
}
Polling: Use nimble batches progress --batch-id <batch_id> to check completion,
then nimble batches get --batch-id <batch_id> to get all task IDs, then
nimble tasks results --task-id <id> for each successful task.
See nimble-tasks reference for the full polling flow.
Delivery options:
callback_url in shared_inputs; Nimble POSTs on completionstorage_type + storage_url in shared_inputs| Agent type | data.parsing shape | Notes |
| ---------------------------- | --------------------------------------------- | ------------------------------------------ |
| PDP (product/profile/detail) | flat dict | Access with .get("field") |
| SERP / list | array of objects | Iterate items; call .model_dump() in SDK |
| Google Search | {"entities": {"OrganicResult": [...], ...}} | Nested entities dict |
Note: Agent names containing date and random suffixes (e.g.
indeed_search_2026_02_23_vlgtrsgu) are Nimble-managed and may be updated. Always runnimble agent list --limit 100to confirm current names before use.
| Site | Agent | Key param |
| -------------------- | --------------------------------- | -------------- |
| Amazon product page | amazon_pdp | asin |
| Amazon search | amazon_serp | keyword |
| Amazon best sellers | amazon_best_sellers | — |
| Amazon category | amazon_plp | (see schema) |
| Walmart product | walmart_pdp | product_id |
| Walmart search | walmart_serp | keyword |
| Target product | target_pdp | tcin |
| Target search | target_serp | query |
| Best Buy product | best_buy_pdp | product_id |
| Home Depot product | homedepot_pdp | (see schema) |
| Home Depot search | homedepot_serp | (see schema) |
| Sam's Club product | sams_club_pdp | (see schema) |
| Sam's Club search | sams_club_plp | (see schema) |
| eBay search | ebay_search_2026_02_23_pbgj8oft | (see schema) |
| ASOS product | asos_pdp | (see schema) |
| ASOS search | asos_serp | (see schema) |
| Kroger product | kroger_pdp | (see schema) |
| Kroger search | kroger_serp | (see schema) |
| Foot Locker product | footlocker_pdp | (see schema) |
| Staples product | staples_pdp | (see schema) |
| Staples search | staples_serp | (see schema) |
| Office Depot product | office_depot_pdp | (see schema) |
| B&H search | b_and_h_serp | (see schema) |
| Slickdeals | slickdeals_pdp | (see schema) |
| Site | Agent |
| -------------------- | ---------------- |
| DoorDash restaurant | doordash_pdp |
| DoorDash search | doordash_serp |
| Uber Eats restaurant | uber_eats_pdp |
| Uber Eats search | uber_eats_serp |
| Site | Agent | Key params |
| ---------------- | -------------------------------------- | ----------------------------------------------- |
| Zillow listings | zillow_plp | zip_code, listing_type (sales/rentals/sold) |
| Zillow property | zillow_pdp | (see schema) |
| Rightmove search | rightmove_search_2026_02_23_pxo1ccrm | (see schema) |
| Site | Agent | Key params |
| ------------- | ----------------------------------------- | ------------------------- |
| Indeed search | indeed_search_2026_02_23_vlgtrsgu | location, search_term |
| ZipRecruiter | ziprecruiter_search_2026_02_23_8rtda7lg | (see schema) |
| Site | Agent | Key param |
| ------------------- | --------------------- | ------------------------------------- |
| Google search | google_search | query |
| Google Maps search | google_maps_search | query |
| Google Maps reviews | google_maps_reviews | place_id |
| Yelp search | yelp_serp | search_query, location (optional) |
| Site | Agent |
| ------------------- | ------------------------------------------------ |
| BBC article | bbc_info_2026_02_23_wexv71ke |
| BBC search | bbc_search_2026_02_23_t0gj94t2 |
| The Guardian search | guardian_search_2026_02_23_nair7e5i |
| NYTimes search | nytimes_search_2026_02_23_4zleml8l |
| Bloomberg search | bloomberg_search_2026_02_23_a9u4p1tv |
| Yahoo Finance | yahoo_finance_info_2026_02_23_fl3ij8ps |
| MarketWatch | marketwatch_info_2026_02_23_zpwkys0h |
| Morningstar | morningstar_search_2026_02_23_zicq0zdj |
| Polymarket | polymarket_prediction_data_2026_02_24_9zhwkle8 |
| Site | Agent |
| ------------------- | -------------------------------------- |
| Instagram post | instagram_post |
| Instagram profile | instagram_profile_by_account |
| Instagram reel | instagram_reel |
| TikTok account | tiktok_account |
| TikTok video | tiktok_video_page |
| TikTok Shop product | tiktok_shop_pdp |
| Facebook page | facebook_page |
| Facebook profile | facebook_profile_about_section |
| YouTube Shorts | youtube_shorts |
| Pinterest search | pinterest_search_2026_02_23_kxzd5awh |
| Quora topic | quora_info_2026_02_23_99baxvhr |
| Site | Agent |
| ------------------ | -------------------- |
| Skyscanner flights | skyscanner_flights |
| ChatGPT | chatgpt |
| Gemini | gemini |
| Grok | grok |
| Perplexity | perplexity |
open -a "Google Chrome" "https://online.nimbleway.com/pipeline-gallery"
open -a "Google Chrome" "https://online.nimbleway.com/pipeline-gallery/amazon_pdp/overview"
After a successful run, save to learned/examples.json so Step 0 matches faster next time:
python3 -c "
import json, pathlib, datetime
p = pathlib.Path.home() / '.claude/skills/nimble-web-expert/learned/examples.json'
data = json.loads(p.read_text()) if p.exists() else {'good': [], 'bad': [], 'agents': []}
data.setdefault('agents', [])
new_entry = {
'agent_name': 'amazon_pdp',
'tags': ['amazon', 'product', 'ecommerce', 'price', 'asin'],
'params_example': {'asin': 'B0CHWRXH8B'},
'last_used': str(datetime.date.today()),
'notes': 'Returns price, title, rating, availability.'
}
if not any(a['agent_name'] == new_entry['agent_name'] for a in data['agents']):
data['agents'].append(new_entry)
p.write_text(json.dumps(data, indent=2))
print('Saved.')
"
development
Builds Databricks data products from live web data, end to end: discovers the right Nimble web-data agents, scrapes into Delta tables, and produces an AI/BI dashboard and/or a deployed Databricks App — a table → dashboard → app workflow, for production data products or quick demos. Use whenever a request pairs live or scraped web data WITH a Databricks destination — e.g. "scrape Amazon/Walmart prices into a Delta table and build a dashboard", "load Zillow/Instagram/Maps/search results into Databricks and build a dashboard or app", "showcase Nimble + Databricks to a prospect". Prefer it over nimble-web-expert or competitor-intel when the data lands in Databricks. Do NOT use for one-off web fetches or CSV exports with no Databricks destination — use nimble-web-expert instead. Do NOT use for competitor or company research briefings — use competitor-intel or company-deep-dive instead. Do NOT use for generic Databricks work with no Nimble/web-data angle — use the official databricks-* skills instead.
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
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.
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.