Install
openclaw skills install amazon-opportunity-discovererAutomated product opportunity scanner for Amazon sellers. Scans categories using 14 preset selection strategies, validates candidates with real-time data, br...
openclaw skills install amazon-opportunity-discovererTell me your budget and experience. I find opportunities, score them, and rank.
{skill_base_dir}/scripts/apiclaw.py — run --help for params{skill_base_dir}/references/reference.md (field names & response structure)Required: APICLAW_API_KEY. Get free key at apiclaw.io/api-keys
categories, with fallback to top search result. If category_source is inferred_from_search, confirm with user — keyword-only queries contaminate results--category when lockedsampleAvgMonthlyRevenue directly. Sales = monthlySalesFloor (lower bound)reviews/analysis needs 50+ reviews| Profile | Primary Modes | Price | Max Reviews |
|---|---|---|---|
| Beginner + Conservative | beginner, long-tail, fbm-friendly | $15-60 | <50 |
| Beginner + Moderate | beginner, emerging, low-price | $10-50 | <100 |
| Intermediate + Moderate | fast-movers, underserved, single-variant | $15-80 | <200 |
| Intermediate + Aggressive | high-demand-low-barrier, speculative | $10-100 | <500 |
| Advanced + Aggressive | fast-movers, speculative, top-bsr | any | any |
Always translate: "300+ monthly sales" → --sales-min 300, "reviews <100" → --ratings-max 100, "$15-35" → --price-min 15 --price-max 35. If user has specific criteria, use custom filters (Approach B/C), NOT default modes.
Scan with market --keyword "{broad}" --topn 10, rank subcategories by: newSkuRate>10%, topBrandSalesRate<60%, fbaRate>50%, avgPrice $10-50, avgMonthlySales>200. Pick top 3-5.
| Dimension | Weight | Good | Medium | Warning |
|---|---|---|---|---|
| Demand Signal | 20% | sales>300, rev>$5K | 100-300 | <100 |
| Competition Gap | 20% | reviews<200, CR10<40% | 200-1K, 40-60% | >1K, >60% |
| Price Opportunity | 15% | in best opp band, opp>1.0 | 0.5-1.0 | <0.5 |
| Trend Momentum | 15% | BSR rising | stable | declining |
| Profit Margin | 15% | >30% | 15-30% | <15% |
| Differentiation | 10% | clear pain points | some gaps | none |
| Profile Fit | 5% | matches user profile | partial | mismatch |
| Score | Tier | Label |
|---|---|---|
| 80-100 | S | 🔥 Hot — act fast |
| 60-79 | A | ✅ Strong — worth pursuing |
| 40-59 | B | ⚠️ Moderate — needs differentiation |
| 0-39 | C | ❌ Weak — skip |
Quick-Scan Mode (~10 credits): 2 modes × 1 page, skip realtime/trend. Label as "directional only."
python3 {skill_base_dir}/scripts/apiclaw.py opportunity-scan --keyword "{kw}" --category "{path}" --modes "beginner,emerging,underserved"
Or with custom filters: --sales-min 300 --ratings-max 100 --price-min 15 --price-max 35
Respond in user's language.
Sections: Scan Summary → Top 10 Opportunities Table → Detailed Analysis (Top 3) → Category Heatmap → Risk Alerts → Next Steps (S: buy sample, A: deep-dive, B: watch) → Data Provenance → API Usage
If user provides COGS, calculate profit. User criteria override: ANY fail → CAUTION/AVOID.
Output language MUST match the user's input language. If the user asks in Chinese, the entire report is in Chinese. If in English, output in English. Exception: API field names (e.g. monthlySalesFloor, categoryPath), endpoint names, technical terms (e.g. ASIN, BSR, CR10, FBA, credits) remain in English.
Data is based on APIClaw API sampling as of [date]. Monthly sales (
monthlySalesFloor) are lower-bound estimates. This analysis is for reference only and should not be the sole basis for business decisions. Validate with additional sources before acting.
Rules: Strategy recommendations are NEVER 📊. Anomalies (>200% growth) are always 💡. User criteria override AI judgment.
Include a table at the end of every report:
| Data | Endpoint | Key Params | Notes |
|---|---|---|---|
| (e.g. Market Overview) | markets/search | categoryPath, topN=10 | 📊 Top N sampling, sales are lower-bound |
| ... | ... | ... | ... |
Extract endpoint and params from _query in JSON output. Add notes: sampling method, T+1 delay, realtime vs DB, minimum review threshold, etc.
| Endpoint | Calls | Credits |
|---|---|---|
| (each endpoint used) | N | N |
| Total | N | N |
Extract from meta.creditsConsumed per response. End with Credits remaining: N.