amazon-opportunity-discoverer
Installation
SKILL.md
Amazon Opportunity Discoverer — Niche Scanner & Scoring
Tell me your budget and experience. I find opportunities, score them, and rank.
Files
- Script:
{skill_base_dir}/scripts/zoodata.py— run--helpfor params - Reference:
{skill_base_dir}/references/reference.md(field names & response structure)
Credential
Required: ZOODATA_API_KEY. Get free key at zoodata.ai/api-keys
Capabilities & Data Flow
- Network: only
https://api.zoodata.ai(BearerZOODATA_API_KEY). SettingZOODATA_BASE_URLto an untrusted host (anything other thanapi.zoodata.ai/*.zoodata.ai/ localhost) makes the CLI refuse the request and withhold the key — the Bearer token is never sent to an untrusted host. - Execution: bundled shared ZooData CLI
{skill_base_dir}/scripts/zoodata.py(Python 3, stdlib-only). This skill allowsopportunity-scan,categories,market,products,product,check, plus the review fallback toolkit (reviews-raw/review-tag-prompt/review-reduce-prompt/review-aggregate). Do not invoke unrelated subcommands for this skill's tasks — the bundled manifest{skill_base_dir}/scripts/allowed-commands.jsonenforces this: the CLI refuses out-of-scope subcommands with a structuredCOMMAND_NOT_ALLOWEDerror before any API request. - Local files: a private temporary working dir (created with
mktemp -d, removed when the fallback completes) during the review fallback; reads the optional credential store~/.zoodata/config.json. - Sent to the API: keywords, category paths, ASINs, marketplace/date and numeric filter values only. Never sent: budget, experience level, risk tolerance, or any other user-profile text — profile inputs map client-side to numeric filters.
- Credits: every API call consumes account credits. For broad or ambiguous requests, state the estimated credit cost and confirm with the user before running multi-call scans. The composite
opportunity-scancommand executes ~15+ API calls across up to 9 loops (~25-30 credits observed) in ONE invocation and has NO skip/trim flags — under a credit cap, use the granular commands instead.