{"id":"e91f7663-a906-42ba-9de0-dd7e94376514","entityType":"agent","slug":"clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics","name":"亚马逊-机会筛选","canonicalUrl":"https://www.xpersona.co/agent/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics","canonicalPath":"/agent/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics","generatedAt":"2026-10-14T13:21:43.227Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T22:44:57.345Z","emptyReason":null},"description":"亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。 Skill: 亚马逊-机会筛选 Owner: linkfox-ai Summary: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentat","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 982 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-amazon-opportunity-search-by-metrics","sourceUrl":"https://clawhub.ai/linkfox-ai/linkfox-amazon-opportunity-search-by-metrics","homepage":"https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-opportunity-search-by-metrics","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/linkfox-ai/linkfox-amazon-opportunity-search-by-metrics","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-opportunity-search-by-metrics","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:44:57.345Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:44:57.345Z","emptyReason":null},"stars":null,"forks":null,"downloads":982,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.7","tractionLabel":"982 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:44:57.206Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T22:44:57.345Z","lastCrawledAt":"2026-10-11T22:44:57.206Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T22:44:57.206Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.7","createdAt":"2026-09-14T04:54:47.651Z","changelog":"Update from 1.0.6 to 1.0.7","fileCount":7,"zipByteSize":26733},{"version":"1.0.6","createdAt":"2026-08-14T14:42:55.792Z","changelog":"Update from 1.0.5 to 1.0.6","fileCount":7,"zipByteSize":26610},{"version":"1.0.5","createdAt":"2026-08-07T10:39:29.911Z","changelog":"Update from 1.0.4 to 1.0.5","fileCount":7,"zipByteSize":26826},{"version":"1.0.4","createdAt":"2026-07-13T12:02:56.506Z","changelog":"Update from 1.0.3 to 1.0.4","fileCount":5,"zipByteSize":17790},{"version":"1.0.3","createdAt":"2026-07-06T11:10:33.751Z","changelog":"Update from 1.0.2 to 1.0.3","fileCount":5,"zipByteSize":16850},{"version":"1.0.2","createdAt":"2026-07-03T08:09:57.133Z","changelog":"Update from 1.0.1 to 1.0.2","fileCount":4,"zipByteSize":15527},{"version":"1.0.1","createdAt":"2026-07-03T04:34:59.948Z","changelog":"Update from 1.0.0 to 1.0.1","fileCount":4,"zipByteSize":15508}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-amazon-opportunity-search-by-metrics","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-14T13:21:43.225Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-opportunity-search-by-metrics/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T22:44:57.345Z","emptyReason":null},"readme":"Skill: 亚马逊-机会筛选\n\nOwner: linkfox-ai\n\nSummary: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。\n\nTags: latest:1.0.7\n\nVersion history:\n\nv1.0.7 | 2026-09-14T04:54:47.651Z | user\n\nUpdate from 1.0.6 to 1.0.7\n\nv1.0.6 | 2026-08-14T14:42:55.792Z | user\n\nUpdate from 1.0.5 to 1.0.6\n\nv1.0.5 | 2026-08-07T10:39:29.911Z | user\n\nUpdate from 1.0.4 to 1.0.5\n\nv1.0.4 | 2026-07-13T12:02:56.506Z | user\n\nUpdate from 1.0.3 to 1.0.4\n\nv1.0.3 | 2026-07-06T11:10:33.751Z | user\n\nUpdate from 1.0.2 to 1.0.3\n\nv1.0.2 | 2026-07-03T08:09:57.133Z | user\n\nUpdate from 1.0.1 to 1.0.2\n\nv1.0.1 | 2026-07-03T04:34:59.948Z | user\n\nUpdate from 1.0.0 to 1.0.1\n\nArchive index:\n\nArchive v1.0.7: 7 files, 26733 bytes\n\nFiles: references/api.md (12533b), references/onboarding.md (1999b), scripts/amazon_opportunity_screener.py (12839b), scripts/onboarding.py (24027b), skill-card.md (2864b), SKILL.md (13459b), _meta.json (163b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: linkfox-amazon-opportunity-search-by-metrics\ndescription: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。\n---\n\n# Amazon Opportunity Screener by Metrics\n\nThis skill guides you on how to reverse-search Amazon niches and keywords from a metrics pool aggregated from historical opportunity reports, helping sellers turn vague selection ideas (low competition, growing demand, blue ocean, pain-point opportunity, etc.) into concrete niche candidates.\n\n## Core Concepts\n\nThis tool exposes a queryable pool of **niche-level metrics** (~37 fields per record) distilled from past Amazon opportunity reports. Instead of generating a fresh report (forward analysis), it lets you **reverse-filter** the existing pool by 30+ business dimensions and returns matching `(marketplace, keyword)` records ranked by collection time (most recent first).\n\nRecords are at the **niche / keyword** level, not ASIN level. Each record represents a niche snapshot — its market size, growth, competition, price tiers, demographics, top features, and review themes.\n\n**Forward vs. reverse**: Use `linkfox-amazon-opportunity-report` when the user has a keyword and wants a comprehensive AI report. Use this skill when the user has business criteria (filters) and wants to discover which keywords / niches fit.\n\n## Filter Dimensions\n\nFilters are grouped into six business dimensions. All filter parameters are optional, but **at least one of `keyword` / `nicheName` or any metric filter must be provided** — fully empty calls are rejected.\n\n| Dimension | Example Parameters | Typical User Intent |\n|-----------|---------------------|---------------------|\n| Market size & growth | `nicheRevenue360dMinUsdAtLeastGte`, `nichePeakSearchVolumeAtLeastGte`, `nicheSearchVolumeYoyChangePctAtLeastGte`, `nichePeakMonthGte/Lte` | \"Big enough market\", \"fast-growing\", \"Q4 seasonal\" |\n| Competition density | `nicheBrandCountLte`, `nicheBrandCountYoyChangePctAtLeastLte`, `nicheTop5ProductClickSharePctAtLeastLte`, `featureTop5BrandSharePctAtLeastLte` | \"Newcomer-friendly\", \"brands fragmented\", \"no oligopoly\", \"brands exiting\" |\n| Price & tier | `priceMinUsdGte`, `priceMaxUsdLte`, `priceSweetSpotMinUsdGte/Lte`, `priceEntryClickSharePctAtLeastGte`, `priceMidClickSharePctAtLeastLte`, `priceHighClickSharePctAtLeastGte` | \"Affordable focus\", \"premium-friendly\", \"mid-tier blue ocean\" |\n| Demographics | `demoPrimaryAgeMinGte`, `demoPrimaryAgeMaxLte`, `demoGenderDominant`, `demoPrimaryIncomeTier`, `demoLifeStageTagsContains` | \"Female-driven\", \"high-income\", \"parents\", \"fitness enthusiasts\" |\n| Product features | `featureNewAvgReviewCountAtLeastLte`, `featureEstablishedAvgReviewCountAtLeastLte`, `featureEmergingTrendTagsContains`, `featureUncommonFeatureTagsContains`, `searchTopCategory1Label` | \"New-product entry barrier low\", \"emerging trend\", \"uncommon feature edge\", \"set/kit niches\" |\n| Review insights | `reviewPositiveTop1Topic`, `reviewPositiveTop1PctAtLeastGte/Lte`, `reviewNegativeTop1Topic`, `reviewNegativeTop1PctAtLeastGte/Lte`, `reviewNegativeTop2Topic`, `reviewStrategicInsightTagsContains` | \"Pain-point niche\", \"comfort-driven sellers\", \"size-issue opportunity\" |\n\nSee `references/api.md` for the full parameter list, types, value ranges, and response field map.\n\n## Supported Marketplaces\n\nCurrently only **US** (United States) is supported. Always set `amazonDomain` to `US` (or omit). If a user requests other marketplaces, inform them this tool currently only covers the US market.\n\n## 调用方式\n\n- **API 端点**：`POST /amazon/opportunity/searchByMetrics`（完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/amazon_opportunity_screener.py '<JSON 参数>' [--inline]`\n- **成本约束**：本工具会消耗算力；同一会话同一参数组合默认只调用一次，脚本带 24h 本地缓存。失败/空结果不得自动换关键词、翻页或改邮编连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-opportunity-search-by-metrics-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和算力问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示算力或余额不足**：消息含\"算力余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## How to Build Queries\n\nThe user expresses business intent in natural language; you map it to **the smallest viable set of filters**. Principles:\n\n1. **Convert intent into specific bounds**: \"low competition\" → `nicheBrandCountLte: 20`; \"fast-growing\" → `nicheSearchVolumeYoyChangePctAtLeastGte: 100` (≥100% YoY); \"newcomer-friendly\" → `featureNewAvgReviewCountAtLeastLte: 500`.\n2. **Start narrow, then loosen**: First call usually with 2–4 strong filters and `limit=25`. If the result set is empty or too small, drop or widen the most aggressive filter rather than adding new ones.\n3. **Pair complementary signals**: Brand-level + product-level concentration (`featureTop5BrandSharePctAtLeastLte` + `nicheTop5ProductClickSharePctAtLeastGte`) reveals \"brands fragmented but products concentrated\" — a brand-extension entry signal.\n4. **Snake_case fragments for tag fields**: `featureEmergingTrendTagsContains`, `demoLifeStageTagsContains`, `reviewNegativeTop1Topic`, etc. accept snake_case word fragments and use LIKE matching. Pass a root word (`size`, `parent`, `cordless`) to cover normalized variants.\n5. **Faithful to user intent**: Don't silently add filters the user didn't ask for. If they only said \"growing\", just filter on growth — don't also constrain price unless they mentioned it.\n\n### Common Scenarios\n\n**1. Niche reverse-lookup by keyword**\n```json\n{\"keyword\": \"whoop band\", \"limit\": 25}\n```\n\n**2. Newcomer-friendly low-competition niches**\n```json\n{\"nicheBrandCountLte\": 20, \"featureNewAvgReviewCountAtLeastLte\": 500, \"limit\": 25}\n```\n\n**3. High-growth blue ocean (≥100% YoY, brands not yet flooding in)**\n```json\n{\"nicheSearchVolumeYoyChangePctAtLeastGte\": 100, \"nicheBrandCountYoyChangePctAtLeastLte\": 30, \"limit\": 25}\n```\n\n**4. Mid-tier price gap (low-price dominates, mid-tier scarce)**\n```json\n{\"priceEntryClickSharePctAtLeastGte\": 70, \"priceMidClickSharePctAtLeastLte\": 5, \"limit\": 25}\n```\n\n**5. Pain-point entry — strong size complaints**\n```json\n{\"reviewNegativeTop1Topic\": \"size\", \"reviewNegativeTop1PctAtLeastGte\": 70, \"limit\": 25}\n```\n\n**6. Premium-friendly female-driven niches**\n```json\n{\"demoGenderDominant\": \"female\", \"demoPrimaryIncomeTier\": \"high\", \"priceHighClickSharePctAtLeastGte\": 25, \"limit\": 25}\n```\n\n**7. Q4 seasonal niches with ≥100k peak search**\n```json\n{\"nichePeakMonthGte\": 11, \"nichePeakMonthLte\": 12, \"nichePeakSearchVolumeAtLeastGte\": 100000, \"limit\": 25}\n```\n\n**8. Track niches around a known competitor brand**\n```json\n{\"featureTopBrandsContains\": \"WHOOP\", \"limit\": 50}\n```\n\n## Display Rules\n\n1. **Present data only**: Render the returned niches as a clean comparison table — niche name / keyword, market size, growth, brand count, price range, key tags. No subjective business advice.\n2. **Surface the active filters**: Echo the filter set you used so the user can adjust (\"当前筛选：品牌数 ≤ 20 且搜索量同比 ≥ 100%\").\n3. **Time-snapshot reminder**: Records reflect data at collection time and are not continuously updated. Mention this when results look stale or contradict a user's external knowledge.\n4. **Empty / few-result handling**: If `data` is empty or very short, suggest widening the most aggressive filter rather than re-asking the user from scratch.\n5. **Error handling**: When a query fails, explain the reason based on the `msg` field (most often the \"fully empty parameters\" guard) and suggest adding at least one filter.\n6. **No secondary aggregation**: The results power frontend rendering and are not stored, so they cannot be fed into `@智能数据查询` (intelligent data query) for further aggregation. If users ask for grouped statistics across niches, do the calculation locally or pull a wider `limit` first.\n\n## Important Limitations\n\n- **US only**: Currently only supports the United States marketplace (`amazonDomain` = `US`).\n- **No pagination**: There is no `page` parameter. Increase `limit` (max 200) to widen the candidate pool; results are sorted by collection time (newest first).\n- **At least one filter required**: Calls with no `keyword` / `nicheName` and no metric filter are rejected.\n- **Snapshot data**: Records are aggregated from historical opportunity reports; new reports refresh the pool over time, but individual records are not real-time.\n- **Niche-level granularity**: The output is niche / keyword level, not ASIN level. To dig into specific products inside a niche, hand off to `linkfox-amazon-search`, `linkfox-keepa-product-search`, etc.\n\n## User Expression & Scenario Quick Reference\n\n**Applicable** — Niche-level reverse selection on the US Amazon market:\n\n| User Says | Scenario |\n|-----------|----------|\n| \"Low-competition niches\", \"newcomer-friendly\", \"brand-light\" | Brand-density filter |\n| \"Brands are exiting\", \"old players retreating\" | Negative brand-count YoY |\n| \"Fast-growing niche\", \"trending up\", \"≥100% YoY\" | Search-volume YoY filter |\n| \"Mid-tier blue ocean\", \"low-price dominates but mid is scarce\" | Price-tier share gap |\n| \"Premium-friendly\", \"high-income consumers\" | Income tier + high-tier share |\n| \"Female / male / mixed market\" | Gender dominance filter |\n| \"Parents / students / retirees / fitness enthusiasts\" | Life-stage tag |\n| \"Strong size / quality / durability pain point\" | Negative review topic + share |\n| \"Comfort-driven\", \"value-driven sellers\" | Positive review topic + share |\n| \"Track all niches around brand X\" | `featureTopBrandsContains` |\n| \"Q4 seasonal niches\", \"Prime Day window\" | Peak month + peak volume |\n\n**Not applicable** — Use other tools instead:\n- Need a comprehensive AI report on one keyword → `linkfox-amazon-opportunity-report`\n- ASIN-level competitor research, sales estimation → SellerSprite / Keepa / Sorftime tools\n- Real-time keyword ranking, search-term mining → ABA / SIF tools\n- Marketplaces other than US → not yet supported by this tool\n- Want to run group-by aggregation over niches via `@智能数据查询` → unsupported (data is not warehoused)\n\n**Boundary judgment**: When users describe selection criteria in business language and want matching candidate niches, this skill applies. When they hand you a specific keyword and want the full multi-dimensional analysis, use `linkfox-amazon-opportunity-report`. When they want to drill into ASINs / sellers within a niche, hand off to product-search tools.\n\n## 算力消耗规则\n\n按动态规则计费：消耗算力 = 1.5 × (N ≤ 25 ? 5 : 5 + ceil((N - 25) / 5))。N 是接口实际返回的数据条数；即使 N = 0，只要接口成功也按 15000 计费。\n\n> **重要**：本技能的服务按倍数动态计算，可能一次性消耗大量算力，必须提醒用户，由用户决定是否继续。\n\n**Feedback:**\n\nAuto-detect and report feedback via the Feedback API when any of the following apply:\n1. The functionality or purpose described in this skill does not match actual behavior\n2. The skill's results do not match the user's intent\n3. The user expresses dissatisfaction or praise about this skill\n4. Anything you believe could be improved\n\nCall the feedback API as specified in `references/api.md`. Do not interrupt the user's flow.\n\n\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-amazon-opportunity-search-by-metrics\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1789361687651\n}\n\nFile v1.0.7:references/api.md\n\n# 亚马逊商业洞察反向选品 API 参考\n\n## 调用规范\n\n- **请求地址**：`${LINKFOX_TOOL_GATEWAY}/amazon/opportunity/searchByMetrics`\n- **请求方式**：POST，Content-Type: application/json\n- **认证方式**：Header `Authorization: <api_key>`，api_key 从环境变量 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 读取（如未配置 按 SKILL.md 的 **## 解决认证和算力问题** 处理）\n- **User-Agent**：`LinkFox-Skill/1.0`\n\n## 请求参数\n\nPOST Body（JSON）。所有参数均为可选，但**必须至少提供 `keyword` / `nicheName` 或任意一个指标过滤字段**，禁止全部为空。\n\n### 站点与翻页\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| amazonDomain | string | 亚马逊站点代码（闭枚举），当前仅支持 `US`，未指定时默认仅查美国站 | `US` |\n| limit | integer | 返回条数上限（1-200），默认 25。无 page 参数，按采集时间倒序返回最近 N 条 | `25` |\n\n### 文本搜索\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| keyword | string | 搜索关键词文本片段（LIKE 模糊匹配） | `whoop band` |\n| nicheName | string | 赛道归一化名称片段（LIKE，snake_case 小写），适合赛道时序对比 | `wired_ribbon` |\n\n### 市场规模与增长\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheRevenue360dMinUsdAtLeastGte | number | 360 天市场营收下界（USD）的最小值 |\n| nicheRevenue360dMinUsdAtLeastLte | number | 360 天市场营收下界（USD）的最大值 |\n| nicheRevenue360dMaxUsdAtLeastGte | number | 360 天市场营收上界（USD）的最小值 |\n| nicheRevenue360dMaxUsdAtLeastLte | number | 360 天市场营收上界（USD）的最大值 |\n| nichePeakSearchVolumeAtLeastGte | integer | 峰值月搜索量下界（非负整数） |\n| nichePeakSearchVolumeAtLeastLte | integer | 峰值月搜索量上界（非负整数） |\n| nicheSearchVolumeYoyChangePctAtLeastGte | number | 搜索量同比变化率下限（%，带符号） |\n| nicheSearchVolumeYoyChangePctAtLeastLte | number | 搜索量同比变化率上限（%，带符号） |\n| nichePeakMonthGte | integer | 搜索峰值月份下限（1-12） |\n| nichePeakMonthLte | integer | 搜索峰值月份上限（1-12） |\n\n### 竞争格局（品牌 / 产品集中度）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheBrandCountGte | integer | 活跃品牌数下限 |\n| nicheBrandCountLte | integer | 活跃品牌数上限 |\n| nicheBrandCountYoyChangePctAtLeastGte | number | 品牌数同比变化率下限（%，带符号） |\n| nicheBrandCountYoyChangePctAtLeastLte | number | 品牌数同比变化率上限（%，带符号） |\n| nicheTop5ProductClickSharePctAtLeastGte | number | Top5 产品点击份额下限（0-100） |\n| nicheTop5ProductClickSharePctAtLeastLte | number | Top5 产品点击份额上限（0-100） |\n| featureTop5BrandSharePctAtLeastGte | number | Top5 品牌合计份额下限（0-100） |\n| featureTop5BrandSharePctAtLeastLte | number | Top5 品牌合计份额上限（0-100） |\n| featureTopBrandsContains | string | Top3 品牌名片段（原文 LIKE，区分大小写） |\n\n### 价格与档位\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceMinUsdGte | number | 赛道最低商品价格下限（USD） |\n| priceMinUsdLte | number | 赛道最低商品价格上限（USD） |\n| priceMaxUsdGte | number | 赛道最高商品价格下限（USD） |\n| priceMaxUsdLte | number | 赛道最高商品价格上限（USD） |\n| priceSweetSpotMinUsdGte | number | Sweet Spot 下限的下界（USD） |\n| priceSweetSpotMinUsdLte | number | Sweet Spot 下限的上界（USD） |\n| priceSweetSpotMaxUsdGte | number | Sweet Spot 上限的下界（USD） |\n| priceSweetSpotMaxUsdLte | number | Sweet Spot 上限的上界（USD） |\n| priceEntryClickSharePctAtLeastGte | number | 入门档点击份额下限（0-100） |\n| priceEntryClickSharePctAtLeastLte | number | 入门档点击份额上限（0-100） |\n| priceMidClickSharePctAtLeastGte | number | 中档点击份额下限（0-100） |\n| priceMidClickSharePctAtLeastLte | number | 中档点击份额上限（0-100） |\n| priceHighClickSharePctAtLeastGte | number | 高端档点击份额下限（0-100） |\n| priceHighClickSharePctAtLeastLte | number | 高端档点击份额上限（0-100） |\n\n### 客户画像（年龄 / 性别 / 收入 / 生命阶段）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| demoPrimaryAgeMinGte | integer | 主人群年龄下界的最小值（0-120 岁） |\n| demoPrimaryAgeMinLte | integer | 主人群年龄下界的最大值（0-120 岁） |\n| demoPrimaryAgeMaxGte | integer | 主人群年龄上界的最小值（0-120 岁） |\n| demoPrimaryAgeMaxLte | integer | 主人群年龄上界的最大值（0-120 岁） |\n| demoGenderDominant | string | 性别主导（闭枚举）：`female` / `male` / `mixed` / `unspecified` |\n| demoPrimaryIncomeTier | string | 收入档（闭枚举）：`low` / `middle_low` / `middle` / `middle_upper` / `upper_middle` / `high` |\n| demoLifeStageTagsContains | string | 生命阶段标签片段（snake_case，LIKE）：`parent`、`student`、`retiree`、`athlete` 等 |\n\n### 产品特征（成熟度 / 趋势 / 差异化 / 搜索形态）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| featureNewAvgReviewCountAtLeastGte | integer | 新品平均评论量下限（非负整数） |\n| featureNewAvgReviewCountAtLeastLte | integer | 新品平均评论量上限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastGte | integer | 成熟老品平均评论量下限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastLte | integer | 成熟老品平均评论量上限（非负整数） |\n| featureEmergingTrendTagsContains | string | 新兴趋势特征标签片段（snake_case，LIKE）：`cordless`、`portable`、`smart` 等 |\n| featureUncommonFeatureTagsContains | string | 稀有差异化特征标签片段（snake_case，LIKE）：`hema_free`、`medical_grade_silicone` 等 |\n| searchTopCategory1Label | string | 搜索流量第一类目标签片段（snake_case，LIKE）：`core_product_terms`、`set_kit_configurations` 等 |\n\n### 评论卖点 / 痛点\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| reviewPositiveTop1Topic | string | 好评 #1 主题片段（snake_case，LIKE）：`comfort`、`quality_overall_generic` 等 |\n| reviewPositiveTop1PctAtLeastGte | number | 好评 #1 主题占比下限（0-100，正面评论中占比） |\n| reviewPositiveTop1PctAtLeastLte | number | 好评 #1 主题占比上限（0-100） |\n| reviewNegativeTop1Topic | string | 差评 #1 主题片段（snake_case，LIKE）：`size`、`quality`、`durability` 等 |\n| reviewNegativeTop1PctAtLeastGte | number | 差评 #1 主题占比下限（0-100，负面评论中占比） |\n| reviewNegativeTop1PctAtLeastLte | number | 差评 #1 主题占比上限（0-100） |\n| reviewNegativeTop2Topic | string | 差评 #2 主题片段（snake_case，LIKE） |\n| reviewStrategicInsightTagsContains | string | 评论策略建议标签片段（snake_case，LIKE）：`sizing_clarity`、`material_transparency` 等 |\n\n## 响应结构\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| code | string | 响应码，`200` 为成功 |\n| msg | string | 提示信息，成功为 `ok`，失败为错误描述 |\n| data | array | 关键词指标记录数组，每条对应一个 (站点, 关键词) 组合，约 37 个字段，按采集时间倒序 |\n\n`data[]` 主要字段（节选）：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| amazonDomain | string | 站点代码（当前固定 `US`） |\n| keyword | string | 原始搜索关键词 |\n| nicheName | string | 赛道归一化名称（snake_case） |\n| nicheRevenue360dMinUsdAtLeast / nicheRevenue360dMaxUsdAtLeast | number | 近 360 天市场营收下界 / 上界（USD） |\n| nichePeakSearchVolumeAtLeast | integer | 峰值月搜索量 |\n| nichePeakMonth | integer | 搜索峰值月份（1-12） |\n| nicheSearchVolumeYoyChangePctAtLeast | number | 搜索量同比变化率（%，带符号） |\n| nicheBrandCount / nicheBrandCountYoyChangePctAtLeast | integer / number | 活跃品牌数及其同比变化率 |\n| nicheTop5ProductClickSharePctAtLeast | number | Top5 产品点击份额（0-100） |\n| featureTop5BrandSharePctAtLeast | number | Top5 品牌合计份额（0-100） |\n| featureTopBrands | array | Top 3 品牌名列表（原文） |\n| priceMinUsd / priceMaxUsd | number | 赛道整体最低 / 最高商品价 |\n| priceSweetSpotMinUsd / priceSweetSpotMaxUsd | number | Value Sweet Spot 价格区间下界 / 上界 |\n| priceEntryClickSharePctAtLeast / priceMidClickSharePctAtLeast / priceHighClickSharePctAtLeast | number | 入门 / 中 / 高档点击份额（0-100） |\n| demoPrimaryAgeMin / demoPrimaryAgeMax | integer | 核心人群年龄下界 / 上界 |\n| demoGenderDominant | string | 性别主导（`female` / `male` / `mixed` / `unspecified`） |\n| demoPrimaryIncomeTier | string | 核心人群收入档 |\n| demoLifeStageTags | array | 生命阶段标签列表 |\n| featureNewAvgReviewCountAtLeast / featureEstablishedAvgReviewCountAtLeast | integer | 新品 / 成熟老品平均评论量 |\n| featureEmergingTrendTags / featureUncommonFeatureTags | array | 新兴趋势 / 稀有差异化特征标签 |\n| searchTopCategory1Label | string | 流量第一类目归一化标签 |\n| reviewPositiveTop1Topic / reviewPositiveTop1PctAtLeast | string / number | 好评 #1 主题及在正面评论中的占比 |\n| reviewNegativeTop1Topic / reviewNegativeTop1PctAtLeast / reviewNegativeTop2Topic | string / number / string | 差评 #1 主题、占比及次因 |\n| reviewStrategicInsightTags | array | 评论策略建议标签 |\n\n## 错误码\n\n正常情况下，接口的 HTTP 状态码均为 200，业务的成功与否通过响应体中的 `code` 字段区分；未授权时 HTTP 状态码为 401。\n\n| 错误码 | 含义 | 处理建议 |\n|--------|------|----------|\n| 200 | 成功 | 正常解析 `data` 数组并展示给用户 |\n| 401 | 认证失败 | HTTP 401 或 authorized error：按 SKILL.md 的 **## 解决认证和算力问题** 处理。|\n| 402 | 算力不足 | HTTP 402：按 SKILL.md 的 **## 解决认证和算力问题** 处理。|\n| 其他非 200 值 | 业务异常 | 参考 `msg` 字段获取具体错误原因，常见为参数全空或参数取值非法 |\n\n错误响应示例：\n\n```json\n{\n    \"errcode\": 401,\n    \"errmsg\": \"authorized error\"\n}\n```\n\n## curl 示例\n\n按品牌密度低 + 同比高增长筛选新人友好赛道：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"nicheBrandCountLte\": 20,\n    \"nicheSearchVolumeYoyChangePctAtLeastGte\": 100,\n    \"featureNewAvgReviewCountAtLeastLte\": 500,\n    \"limit\": 25\n  }'\n```\n\n按关键词反向追溯赛道历史：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\"keyword\": \"whoop band\", \"limit\": 50}'\n```\n\n按差评痛点 + 中档稀缺锁定切入机会：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"reviewNegativeTop1Topic\": \"size\",\n    \"reviewNegativeTop1PctAtLeastGte\": 70,\n    \"priceMidClickSharePctAtLeastLte\": 5,\n    \"priceEntryClickSharePctAtLeastGte\": 70\n  }'\n```\n\n---\n\n## Feedback API\n\n> This endpoint is **separate** from the tool API above. Do not mix the two base URLs.\n\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\n- **Content-Type:** `application/json`\n\n```json\n{\n  \"skillName\": \"linkfox-amazon-opportunity-screener\",\n  \"sentiment\": \"POSITIVE\",\n  \"category\": \"OTHER\",\n  \"content\": \"Results were accurate, user was satisfied.\"\n}\n```\n\n**Field rules:**\n- `skillName`: Use this skill's `name` from the YAML frontmatter\n- `sentiment`: Choose ONE — `POSITIVE` (praise), `NEUTRAL` (suggestion without emotion), `NEGATIVE` (complaint or error)\n- `category`: Choose ONE — `BUG` (malfunction or wrong data), `COMPLAINT` (user dissatisfaction), `SUGGESTION` (improvement idea), `OTHER`\n- `content`: Include what the user said or intended, what actually happened, and why it is a problem or praise\n\nFile v1.0.7:references/onboarding.md\n\n# 解决认证和算力问题\n\n调用本 skill 时若网关返回 **auth** 或 **billing** 错误，走本 skill 自带的 `scripts/onboarding.py` 完成引导。\n\n**auth 场景**：`errcode=401` 或消息含 `authorized error`/`鉴权失败`/`未授权`/`unauthorized`；或 `LINKFOX_AGENT_API_KEY` 与 `LINKFOXAGENT_API_KEY` 均为空。\n1. 若已配置 key → 先让用户重启会话（最常见误判），仍失败让用户重新取 key 或换手机号重注册\n2. 未配置 → 询问：自助去 https://agent.linkfox.com/ 取 key，或提供手机号让脚本注册\n3. 手机号路径：\n   - `python scripts/onboarding.py send-code <phone>` → 展示 JSON 里的 phone/agreements\n   - 收到验证码后：`python scripts/onboarding.py login <phone> <code>`\n   - 拿到 `api_key` 后把下面三平台配置转发给用户，提示重启会话生效：\n     - Windows PowerShell（永久）：`setx LINKFOX_AGENT_API_KEY \"<key>\"`\n     - macOS zsh：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.zshrc && source ~/.zshrc`\n     - Linux bash：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.bashrc && source ~/.bashrc`\n     - 变量名 `LINKFOX_AGENT_API_KEY`（主推）或 `LINKFOXAGENT_API_KEY`（老规范）任一即可\n\n**billing 场景**：`errcode=402` 或消息含 `算力/余额/quota/insufficient/充值/套餐到期`。\n- `python scripts/onboarding.py list-plans` → 有 AskUserQuestion 就弹菜单，否则输出编号清单让用户选\n- 校验 `plan_id` ∈ 清单、支付方式 ∈ 该套餐 `available_methods`（通常 `wechat/alipay`）\n- `python scripts/onboarding.py order <plan_id> <method>` → 展示优先级 PNG > `pay_url` > `ascii_qr`（标注兜底）\n- 已付款可选调 `python scripts/onboarding.py query <order_id>`，不主动轮询\n\n排除 `errcode=403`（无权限，不归入这两类）。所有子命令输出 stdout JSON，`error` 字段已含阶段前缀，透传给用户即可。完整用法：`python scripts/onboarding.py --help`。\n\nFile v1.0.7:skill-card.md\n\n## Description:\n\nReverse-searches US Amazon niche and keyword opportunities from a historical metrics pool using business filters such as market size, growth, competition, pricing, demographics, product features, and review themes.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal sellers, ecommerce operators, and agent users use this skill to turn business criteria such as low competition, growth, pain points, demographics, or pricing gaps into matching US Amazon niche and keyword candidates.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill uses LinkFox account and API credentials to call opportunity-search and account workflows.\n\nMitigation: Install only when LinkFox account/API access is intended, keep API keys in a controlled secret store, and avoid adding long-lived keys to shell startup files when a safer store is available.\n\nRisk: The onboarding flow can request phone numbers, SMS codes, and billing actions.\n\nMitigation: Share phone numbers or SMS codes only when intentionally registering or logging in, and confirm any plan, payment method, or payment QR code before proceeding.\n\nRisk: The skill can send feedback payloads and supports endpoint override environment variables.\n\nMitigation: Review feedback content before sending it and keep endpoint override variables limited to trusted LinkFox endpoints.\n\nRisk: API calls may consume paid compute credits, including successful empty-result calls.\n\nMitigation: Confirm cost-sensitive searches with the user, reuse the same parameters when possible, and widen filters deliberately instead of repeated automatic probing.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-opportunity-search-by-metrics)\n- [亚马逊商业洞察反向选品 API 参考](references/api.md)\n- [解决认证和算力问题](references/onboarding.md)\n- [LinkFox Skills](https://skill.linkfox.com/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, JSON files, guidance]\n\n**Output Format:** [Markdown guidance with shell commands and JSON API parameters; script execution returns JSON or a summary plus a saved JSON file.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Full responses are saved under a linkfox session data directory; large responses are summarized unless inline output is requested.]\n\n## Skill Version(s):\n\n1.0.7 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.6: 7 files, 26610 bytes\n\nFiles: references/api.md (12533b), references/onboarding.md (2046b), scripts/amazon_opportunity_screener.py (12783b), scripts/onboarding.py (24089b), skill-card.md (2655b), SKILL.md (13459b), _meta.json (163b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: linkfox-amazon-opportunity-search-by-metrics\ndescription: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。\n---\n\n# Amazon Opportunity Screener by Metrics\n\nThis skill guides you on how to reverse-search Amazon niches and keywords from a metrics pool aggregated from historical opportunity reports, helping sellers turn vague selection ideas (low competition, growing demand, blue ocean, pain-point opportunity, etc.) into concrete niche candidates.\n\n## Core Concepts\n\nThis tool exposes a queryable pool of **niche-level metrics** (~37 fields per record) distilled from past Amazon opportunity reports. Instead of generating a fresh report (forward analysis), it lets you **reverse-filter** the existing pool by 30+ business dimensions and returns matching `(marketplace, keyword)` records ranked by collection time (most recent first).\n\nRecords are at the **niche / keyword** level, not ASIN level. Each record represents a niche snapshot — its market size, growth, competition, price tiers, demographics, top features, and review themes.\n\n**Forward vs. reverse**: Use `linkfox-amazon-opportunity-report` when the user has a keyword and wants a comprehensive AI report. Use this skill when the user has business criteria (filters) and wants to discover which keywords / niches fit.\n\n## Filter Dimensions\n\nFilters are grouped into six business dimensions. All filter parameters are optional, but **at least one of `keyword` / `nicheName` or any metric filter must be provided** — fully empty calls are rejected.\n\n| Dimension | Example Parameters | Typical User Intent |\n|-----------|---------------------|---------------------|\n| Market size & growth | `nicheRevenue360dMinUsdAtLeastGte`, `nichePeakSearchVolumeAtLeastGte`, `nicheSearchVolumeYoyChangePctAtLeastGte`, `nichePeakMonthGte/Lte` | \"Big enough market\", \"fast-growing\", \"Q4 seasonal\" |\n| Competition density | `nicheBrandCountLte`, `nicheBrandCountYoyChangePctAtLeastLte`, `nicheTop5ProductClickSharePctAtLeastLte`, `featureTop5BrandSharePctAtLeastLte` | \"Newcomer-friendly\", \"brands fragmented\", \"no oligopoly\", \"brands exiting\" |\n| Price & tier | `priceMinUsdGte`, `priceMaxUsdLte`, `priceSweetSpotMinUsdGte/Lte`, `priceEntryClickSharePctAtLeastGte`, `priceMidClickSharePctAtLeastLte`, `priceHighClickSharePctAtLeastGte` | \"Affordable focus\", \"premium-friendly\", \"mid-tier blue ocean\" |\n| Demographics | `demoPrimaryAgeMinGte`, `demoPrimaryAgeMaxLte`, `demoGenderDominant`, `demoPrimaryIncomeTier`, `demoLifeStageTagsContains` | \"Female-driven\", \"high-income\", \"parents\", \"fitness enthusiasts\" |\n| Product features | `featureNewAvgReviewCountAtLeastLte`, `featureEstablishedAvgReviewCountAtLeastLte`, `featureEmergingTrendTagsContains`, `featureUncommonFeatureTagsContains`, `searchTopCategory1Label` | \"New-product entry barrier low\", \"emerging trend\", \"uncommon feature edge\", \"set/kit niches\" |\n| Review insights | `reviewPositiveTop1Topic`, `reviewPositiveTop1PctAtLeastGte/Lte`, `reviewNegativeTop1Topic`, `reviewNegativeTop1PctAtLeastGte/Lte`, `reviewNegativeTop2Topic`, `reviewStrategicInsightTagsContains` | \"Pain-point niche\", \"comfort-driven sellers\", \"size-issue opportunity\" |\n\nSee `references/api.md` for the full parameter list, types, value ranges, and response field map.\n\n## Supported Marketplaces\n\nCurrently only **US** (United States) is supported. Always set `amazonDomain` to `US` (or omit). If a user requests other marketplaces, inform them this tool currently only covers the US market.\n\n## 调用方式\n\n- **API 端点**：`POST /amazon/opportunity/searchByMetrics`（完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/amazon_opportunity_screener.py '<JSON 参数>' [--inline]`\n- **成本约束**：本工具会消耗积分；同一会话同一参数组合默认只调用一次，脚本带 24h 本地缓存。失败/空结果不得自动换关键词、翻页或改邮编连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-opportunity-search-by-metrics-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## How to Build Queries\n\nThe user expresses business intent in natural language; you map it to **the smallest viable set of filters**. Principles:\n\n1. **Convert intent into specific bounds**: \"low competition\" → `nicheBrandCountLte: 20`; \"fast-growing\" → `nicheSearchVolumeYoyChangePctAtLeastGte: 100` (≥100% YoY); \"newcomer-friendly\" → `featureNewAvgReviewCountAtLeastLte: 500`.\n2. **Start narrow, then loosen**: First call usually with 2–4 strong filters and `limit=25`. If the result set is empty or too small, drop or widen the most aggressive filter rather than adding new ones.\n3. **Pair complementary signals**: Brand-level + product-level concentration (`featureTop5BrandSharePctAtLeastLte` + `nicheTop5ProductClickSharePctAtLeastGte`) reveals \"brands fragmented but products concentrated\" — a brand-extension entry signal.\n4. **Snake_case fragments for tag fields**: `featureEmergingTrendTagsContains`, `demoLifeStageTagsContains`, `reviewNegativeTop1Topic`, etc. accept snake_case word fragments and use LIKE matching. Pass a root word (`size`, `parent`, `cordless`) to cover normalized variants.\n5. **Faithful to user intent**: Don't silently add filters the user didn't ask for. If they only said \"growing\", just filter on growth — don't also constrain price unless they mentioned it.\n\n### Common Scenarios\n\n**1. Niche reverse-lookup by keyword**\n```json\n{\"keyword\": \"whoop band\", \"limit\": 25}\n```\n\n**2. Newcomer-friendly low-competition niches**\n```json\n{\"nicheBrandCountLte\": 20, \"featureNewAvgReviewCountAtLeastLte\": 500, \"limit\": 25}\n```\n\n**3. High-growth blue ocean (≥100% YoY, brands not yet flooding in)**\n```json\n{\"nicheSearchVolumeYoyChangePctAtLeastGte\": 100, \"nicheBrandCountYoyChangePctAtLeastLte\": 30, \"limit\": 25}\n```\n\n**4. Mid-tier price gap (low-price dominates, mid-tier scarce)**\n```json\n{\"priceEntryClickSharePctAtLeastGte\": 70, \"priceMidClickSharePctAtLeastLte\": 5, \"limit\": 25}\n```\n\n**5. Pain-point entry — strong size complaints**\n```json\n{\"reviewNegativeTop1Topic\": \"size\", \"reviewNegativeTop1PctAtLeastGte\": 70, \"limit\": 25}\n```\n\n**6. Premium-friendly female-driven niches**\n```json\n{\"demoGenderDominant\": \"female\", \"demoPrimaryIncomeTier\": \"high\", \"priceHighClickSharePctAtLeastGte\": 25, \"limit\": 25}\n```\n\n**7. Q4 seasonal niches with ≥100k peak search**\n```json\n{\"nichePeakMonthGte\": 11, \"nichePeakMonthLte\": 12, \"nichePeakSearchVolumeAtLeastGte\": 100000, \"limit\": 25}\n```\n\n**8. Track niches around a known competitor brand**\n```json\n{\"featureTopBrandsContains\": \"WHOOP\", \"limit\": 50}\n```\n\n## Display Rules\n\n1. **Present data only**: Render the returned niches as a clean comparison table — niche name / keyword, market size, growth, brand count, price range, key tags. No subjective business advice.\n2. **Surface the active filters**: Echo the filter set you used so the user can adjust (\"当前筛选：品牌数 ≤ 20 且搜索量同比 ≥ 100%\").\n3. **Time-snapshot reminder**: Records reflect data at collection time and are not continuously updated. Mention this when results look stale or contradict a user's external knowledge.\n4. **Empty / few-result handling**: If `data` is empty or very short, suggest widening the most aggressive filter rather than re-asking the user from scratch.\n5. **Error handling**: When a query fails, explain the reason based on the `msg` field (most often the \"fully empty parameters\" guard) and suggest adding at least one filter.\n6. **No secondary aggregation**: The results power frontend rendering and are not stored, so they cannot be fed into `@智能数据查询` (intelligent data query) for further aggregation. If users ask for grouped statistics across niches, do the calculation locally or pull a wider `limit` first.\n\n## Important Limitations\n\n- **US only**: Currently only supports the United States marketplace (`amazonDomain` = `US`).\n- **No pagination**: There is no `page` parameter. Increase `limit` (max 200) to widen the candidate pool; results are sorted by collection time (newest first).\n- **At least one filter required**: Calls with no `keyword` / `nicheName` and no metric filter are rejected.\n- **Snapshot data**: Records are aggregated from historical opportunity reports; new reports refresh the pool over time, but individual records are not real-time.\n- **Niche-level granularity**: The output is niche / keyword level, not ASIN level. To dig into specific products inside a niche, hand off to `linkfox-amazon-search`, `linkfox-keepa-product-search`, etc.\n\n## User Expression & Scenario Quick Reference\n\n**Applicable** — Niche-level reverse selection on the US Amazon market:\n\n| User Says | Scenario |\n|-----------|----------|\n| \"Low-competition niches\", \"newcomer-friendly\", \"brand-light\" | Brand-density filter |\n| \"Brands are exiting\", \"old players retreating\" | Negative brand-count YoY |\n| \"Fast-growing niche\", \"trending up\", \"≥100% YoY\" | Search-volume YoY filter |\n| \"Mid-tier blue ocean\", \"low-price dominates but mid is scarce\" | Price-tier share gap |\n| \"Premium-friendly\", \"high-income consumers\" | Income tier + high-tier share |\n| \"Female / male / mixed market\" | Gender dominance filter |\n| \"Parents / students / retirees / fitness enthusiasts\" | Life-stage tag |\n| \"Strong size / quality / durability pain point\" | Negative review topic + share |\n| \"Comfort-driven\", \"value-driven sellers\" | Positive review topic + share |\n| \"Track all niches around brand X\" | `featureTopBrandsContains` |\n| \"Q4 seasonal niches\", \"Prime Day window\" | Peak month + peak volume |\n\n**Not applicable** — Use other tools instead:\n- Need a comprehensive AI report on one keyword → `linkfox-amazon-opportunity-report`\n- ASIN-level competitor research, sales estimation → SellerSprite / Keepa / Sorftime tools\n- Real-time keyword ranking, search-term mining → ABA / SIF tools\n- Marketplaces other than US → not yet supported by this tool\n- Want to run group-by aggregation over niches via `@智能数据查询` → unsupported (data is not warehoused)\n\n**Boundary judgment**: When users describe selection criteria in business language and want matching candidate niches, this skill applies. When they hand you a specific keyword and want the full multi-dimensional analysis, use `linkfox-amazon-opportunity-report`. When they want to drill into ASINs / sellers within a niche, hand off to product-search tools.\n\n## 积分消耗规则\n\n按动态规则计费：消耗积分 = 1.5 × (N ≤ 25 ? 5 : 5 + ceil((N - 25) / 5))。N 是接口实际返回的数据条数；即使 N = 0，只要接口成功也按 15000 计费。\n\n> **重要**：本技能的服务按倍数动态计算，可能一次性消耗大量积分，必须提醒用户，由用户决定是否继续。\n\n**Feedback:**\n\nAuto-detect and report feedback via the Feedback API when any of the following apply:\n1. The functionality or purpose described in this skill does not match actual behavior\n2. The skill's results do not match the user's intent\n3. The user expresses dissatisfaction or praise about this skill\n4. Anything you believe could be improved\n\nCall the feedback API as specified in `references/api.md`. Do not interrupt the user's flow.\n\n\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-amazon-opportunity-search-by-metrics\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1786718575792\n}\n\nFile v1.0.6:references/api.md\n\n# 亚马逊商业洞察反向选品 API 参考\n\n## 调用规范\n\n- **请求地址**：`${LINKFOX_TOOL_GATEWAY}/amazon/opportunity/searchByMetrics`\n- **请求方式**：POST，Content-Type: application/json\n- **认证方式**：Header `Authorization: <api_key>`，api_key 从环境变量 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 读取（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n- **User-Agent**：`LinkFox-Skill/1.0`\n\n## 请求参数\n\nPOST Body（JSON）。所有参数均为可选，但**必须至少提供 `keyword` / `nicheName` 或任意一个指标过滤字段**，禁止全部为空。\n\n### 站点与翻页\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| amazonDomain | string | 亚马逊站点代码（闭枚举），当前仅支持 `US`，未指定时默认仅查美国站 | `US` |\n| limit | integer | 返回条数上限（1-200），默认 25。无 page 参数，按采集时间倒序返回最近 N 条 | `25` |\n\n### 文本搜索\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| keyword | string | 搜索关键词文本片段（LIKE 模糊匹配） | `whoop band` |\n| nicheName | string | 赛道归一化名称片段（LIKE，snake_case 小写），适合赛道时序对比 | `wired_ribbon` |\n\n### 市场规模与增长\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheRevenue360dMinUsdAtLeastGte | number | 360 天市场营收下界（USD）的最小值 |\n| nicheRevenue360dMinUsdAtLeastLte | number | 360 天市场营收下界（USD）的最大值 |\n| nicheRevenue360dMaxUsdAtLeastGte | number | 360 天市场营收上界（USD）的最小值 |\n| nicheRevenue360dMaxUsdAtLeastLte | number | 360 天市场营收上界（USD）的最大值 |\n| nichePeakSearchVolumeAtLeastGte | integer | 峰值月搜索量下界（非负整数） |\n| nichePeakSearchVolumeAtLeastLte | integer | 峰值月搜索量上界（非负整数） |\n| nicheSearchVolumeYoyChangePctAtLeastGte | number | 搜索量同比变化率下限（%，带符号） |\n| nicheSearchVolumeYoyChangePctAtLeastLte | number | 搜索量同比变化率上限（%，带符号） |\n| nichePeakMonthGte | integer | 搜索峰值月份下限（1-12） |\n| nichePeakMonthLte | integer | 搜索峰值月份上限（1-12） |\n\n### 竞争格局（品牌 / 产品集中度）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheBrandCountGte | integer | 活跃品牌数下限 |\n| nicheBrandCountLte | integer | 活跃品牌数上限 |\n| nicheBrandCountYoyChangePctAtLeastGte | number | 品牌数同比变化率下限（%，带符号） |\n| nicheBrandCountYoyChangePctAtLeastLte | number | 品牌数同比变化率上限（%，带符号） |\n| nicheTop5ProductClickSharePctAtLeastGte | number | Top5 产品点击份额下限（0-100） |\n| nicheTop5ProductClickSharePctAtLeastLte | number | Top5 产品点击份额上限（0-100） |\n| featureTop5BrandSharePctAtLeastGte | number | Top5 品牌合计份额下限（0-100） |\n| featureTop5BrandSharePctAtLeastLte | number | Top5 品牌合计份额上限（0-100） |\n| featureTopBrandsContains | string | Top3 品牌名片段（原文 LIKE，区分大小写） |\n\n### 价格与档位\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceMinUsdGte | number | 赛道最低商品价格下限（USD） |\n| priceMinUsdLte | number | 赛道最低商品价格上限（USD） |\n| priceMaxUsdGte | number | 赛道最高商品价格下限（USD） |\n| priceMaxUsdLte | number | 赛道最高商品价格上限（USD） |\n| priceSweetSpotMinUsdGte | number | Sweet Spot 下限的下界（USD） |\n| priceSweetSpotMinUsdLte | number | Sweet Spot 下限的上界（USD） |\n| priceSweetSpotMaxUsdGte | number | Sweet Spot 上限的下界（USD） |\n| priceSweetSpotMaxUsdLte | number | Sweet Spot 上限的上界（USD） |\n| priceEntryClickSharePctAtLeastGte | number | 入门档点击份额下限（0-100） |\n| priceEntryClickSharePctAtLeastLte | number | 入门档点击份额上限（0-100） |\n| priceMidClickSharePctAtLeastGte | number | 中档点击份额下限（0-100） |\n| priceMidClickSharePctAtLeastLte | number | 中档点击份额上限（0-100） |\n| priceHighClickSharePctAtLeastGte | number | 高端档点击份额下限（0-100） |\n| priceHighClickSharePctAtLeastLte | number | 高端档点击份额上限（0-100） |\n\n### 客户画像（年龄 / 性别 / 收入 / 生命阶段）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| demoPrimaryAgeMinGte | integer | 主人群年龄下界的最小值（0-120 岁） |\n| demoPrimaryAgeMinLte | integer | 主人群年龄下界的最大值（0-120 岁） |\n| demoPrimaryAgeMaxGte | integer | 主人群年龄上界的最小值（0-120 岁） |\n| demoPrimaryAgeMaxLte | integer | 主人群年龄上界的最大值（0-120 岁） |\n| demoGenderDominant | string | 性别主导（闭枚举）：`female` / `male` / `mixed` / `unspecified` |\n| demoPrimaryIncomeTier | string | 收入档（闭枚举）：`low` / `middle_low` / `middle` / `middle_upper` / `upper_middle` / `high` |\n| demoLifeStageTagsContains | string | 生命阶段标签片段（snake_case，LIKE）：`parent`、`student`、`retiree`、`athlete` 等 |\n\n### 产品特征（成熟度 / 趋势 / 差异化 / 搜索形态）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| featureNewAvgReviewCountAtLeastGte | integer | 新品平均评论量下限（非负整数） |\n| featureNewAvgReviewCountAtLeastLte | integer | 新品平均评论量上限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastGte | integer | 成熟老品平均评论量下限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastLte | integer | 成熟老品平均评论量上限（非负整数） |\n| featureEmergingTrendTagsContains | string | 新兴趋势特征标签片段（snake_case，LIKE）：`cordless`、`portable`、`smart` 等 |\n| featureUncommonFeatureTagsContains | string | 稀有差异化特征标签片段（snake_case，LIKE）：`hema_free`、`medical_grade_silicone` 等 |\n| searchTopCategory1Label | string | 搜索流量第一类目标签片段（snake_case，LIKE）：`core_product_terms`、`set_kit_configurations` 等 |\n\n### 评论卖点 / 痛点\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| reviewPositiveTop1Topic | string | 好评 #1 主题片段（snake_case，LIKE）：`comfort`、`quality_overall_generic` 等 |\n| reviewPositiveTop1PctAtLeastGte | number | 好评 #1 主题占比下限（0-100，正面评论中占比） |\n| reviewPositiveTop1PctAtLeastLte | number | 好评 #1 主题占比上限（0-100） |\n| reviewNegativeTop1Topic | string | 差评 #1 主题片段（snake_case，LIKE）：`size`、`quality`、`durability` 等 |\n| reviewNegativeTop1PctAtLeastGte | number | 差评 #1 主题占比下限（0-100，负面评论中占比） |\n| reviewNegativeTop1PctAtLeastLte | number | 差评 #1 主题占比上限（0-100） |\n| reviewNegativeTop2Topic | string | 差评 #2 主题片段（snake_case，LIKE） |\n| reviewStrategicInsightTagsContains | string | 评论策略建议标签片段（snake_case，LIKE）：`sizing_clarity`、`material_transparency` 等 |\n\n## 响应结构\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| code | string | 响应码，`200` 为成功 |\n| msg | string | 提示信息，成功为 `ok`，失败为错误描述 |\n| data | array | 关键词指标记录数组，每条对应一个 (站点, 关键词) 组合，约 37 个字段，按采集时间倒序 |\n\n`data[]` 主要字段（节选）：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| amazonDomain | string | 站点代码（当前固定 `US`） |\n| keyword | string | 原始搜索关键词 |\n| nicheName | string | 赛道归一化名称（snake_case） |\n| nicheRevenue360dMinUsdAtLeast / nicheRevenue360dMaxUsdAtLeast | number | 近 360 天市场营收下界 / 上界（USD） |\n| nichePeakSearchVolumeAtLeast | integer | 峰值月搜索量 |\n| nichePeakMonth | integer | 搜索峰值月份（1-12） |\n| nicheSearchVolumeYoyChangePctAtLeast | number | 搜索量同比变化率（%，带符号） |\n| nicheBrandCount / nicheBrandCountYoyChangePctAtLeast | integer / number | 活跃品牌数及其同比变化率 |\n| nicheTop5ProductClickSharePctAtLeast | number | Top5 产品点击份额（0-100） |\n| featureTop5BrandSharePctAtLeast | number | Top5 品牌合计份额（0-100） |\n| featureTopBrands | array | Top 3 品牌名列表（原文） |\n| priceMinUsd / priceMaxUsd | number | 赛道整体最低 / 最高商品价 |\n| priceSweetSpotMinUsd / priceSweetSpotMaxUsd | number | Value Sweet Spot 价格区间下界 / 上界 |\n| priceEntryClickSharePctAtLeast / priceMidClickSharePctAtLeast / priceHighClickSharePctAtLeast | number | 入门 / 中 / 高档点击份额（0-100） |\n| demoPrimaryAgeMin / demoPrimaryAgeMax | integer | 核心人群年龄下界 / 上界 |\n| demoGenderDominant | string | 性别主导（`female` / `male` / `mixed` / `unspecified`） |\n| demoPrimaryIncomeTier | string | 核心人群收入档 |\n| demoLifeStageTags | array | 生命阶段标签列表 |\n| featureNewAvgReviewCountAtLeast / featureEstablishedAvgReviewCountAtLeast | integer | 新品 / 成熟老品平均评论量 |\n| featureEmergingTrendTags / featureUncommonFeatureTags | array | 新兴趋势 / 稀有差异化特征标签 |\n| searchTopCategory1Label | string | 流量第一类目归一化标签 |\n| reviewPositiveTop1Topic / reviewPositiveTop1PctAtLeast | string / number | 好评 #1 主题及在正面评论中的占比 |\n| reviewNegativeTop1Topic / reviewNegativeTop1PctAtLeast / reviewNegativeTop2Topic | string / number / string | 差评 #1 主题、占比及次因 |\n| reviewStrategicInsightTags | array | 评论策略建议标签 |\n\n## 错误码\n\n正常情况下，接口的 HTTP 状态码均为 200，业务的成功与否通过响应体中的 `code` 字段区分；未授权时 HTTP 状态码为 401。\n\n| 错误码 | 含义 | 处理建议 |\n|--------|------|----------|\n| 200 | 成功 | 正常解析 `data` 数组并展示给用户 |\n| 401 | 认证失败 | HTTP 401 或 authorized error：按 SKILL.md 的 **## 解决认证和积分问题** 处理。|\n| 402 | 积分不足 | HTTP 402：按 SKILL.md 的 **## 解决认证和积分问题** 处理。|\n| 其他非 200 值 | 业务异常 | 参考 `msg` 字段获取具体错误原因，常见为参数全空或参数取值非法 |\n\n错误响应示例：\n\n```json\n{\n    \"errcode\": 401,\n    \"errmsg\": \"authorized error\"\n}\n```\n\n## curl 示例\n\n按品牌密度低 + 同比高增长筛选新人友好赛道：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"nicheBrandCountLte\": 20,\n    \"nicheSearchVolumeYoyChangePctAtLeastGte\": 100,\n    \"featureNewAvgReviewCountAtLeastLte\": 500,\n    \"limit\": 25\n  }'\n```\n\n按关键词反向追溯赛道历史：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\"keyword\": \"whoop band\", \"limit\": 50}'\n```\n\n按差评痛点 + 中档稀缺锁定切入机会：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"reviewNegativeTop1Topic\": \"size\",\n    \"reviewNegativeTop1PctAtLeastGte\": 70,\n    \"priceMidClickSharePctAtLeastLte\": 5,\n    \"priceEntryClickSharePctAtLeastGte\": 70\n  }'\n```\n\n---\n\n## Feedback API\n\n> This endpoint is **separate** from the tool API above. Do not mix the two base URLs.\n\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\n- **Content-Type:** `application/json`\n\n```json\n{\n  \"skillName\": \"linkfox-amazon-opportunity-screener\",\n  \"sentiment\": \"POSITIVE\",\n  \"category\": \"OTHER\",\n  \"content\": \"Results were accurate, user was satisfied.\"\n}\n```\n\n**Field rules:**\n- `skillName`: Use this skill's `name` from the YAML frontmatter\n- `sentiment`: Choose ONE — `POSITIVE` (praise), `NEUTRAL` (suggestion without emotion), `NEGATIVE` (complaint or error)\n- `category`: Choose ONE — `BUG` (malfunction or wrong data), `COMPLAINT` (user dissatisfaction), `SUGGESTION` (improvement idea), `OTHER`\n- `content`: Include what the user said or intended, what actually happened, and why it is a problem or praise\n\nFile v1.0.6:references/onboarding.md\n\n# 解决认证和积分问题\n\n调用本 skill 时若网关返回 **auth** 或 **billing** 错误，走本 skill 自带的 `scripts/onboarding.py` 完成引导。\n\n**auth 场景**：`errcode=401` 或消息含 `authorized error`/`鉴权失败`/`未授权`/`unauthorized`；或 `LINKFOX_AGENT_API_KEY` 与 `LINKFOXAGENT_API_KEY` 均为空。\n1. 若已配置 key → 先让用户重启会话（最常见误判），仍失败让用户重新取 key 或换手机号重注册\n2. 未配置 → 询问：自助去 https://agent.linkfox.com/ 取 key，或提供手机号让脚本注册\n3. 手机号路径：\n   - `python scripts/onboarding.py send-code <phone>` → 展示 JSON 里的 phone/agreements\n   - 收到验证码后：`python scripts/onboarding.py login <phone> <code>`（workbuddy 宿主加 `--channel workbuddy`）\n   - 拿到 `api_key` 后把下面三平台配置转发给用户，提示重启会话生效：\n     - Windows PowerShell（永久）：`setx LINKFOX_AGENT_API_KEY \"<key>\"`\n     - macOS zsh：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.zshrc && source ~/.zshrc`\n     - Linux bash：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.bashrc && source ~/.bashrc`\n     - 变量名 `LINKFOX_AGENT_API_KEY`（主推）或 `LINKFOXAGENT_API_KEY`（老规范）任一即可\n\n**billing 场景**：`errcode=402` 或消息含 `积分/余额/quota/insufficient/充值/套餐到期`。\n- `python scripts/onboarding.py list-plans` → 有 AskUserQuestion 就弹菜单，否则输出编号清单让用户选\n- 校验 `plan_id` ∈ 清单、支付方式 ∈ 该套餐 `available_methods`（通常 `wechat/alipay`）\n- `python scripts/onboarding.py order <plan_id> <method>` → 展示优先级 PNG > `pay_url` > `ascii_qr`（标注兜底）\n- 已付款可选调 `python scripts/onboarding.py query <order_id>`，不主动轮询\n\n排除 `errcode=403`（无权限，不归入这两类）。所有子命令输出 stdout JSON，`error` 字段已含阶段前缀，透传给用户即可。完整用法：`python scripts/onboarding.py --help`。\n\nFile v1.0.6:skill-card.md\n\n## Description:\n\nSearches LinkFox's historical Amazon opportunity metrics pool to reverse-filter US Amazon niches and keywords by market size, growth, competition, price tier, demographics, product features, and review themes.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal Amazon sellers and e-commerce analysts use this skill to turn business criteria such as low competition, fast growth, price-tier gaps, demographics, or review pain points into candidate US Amazon niches and keywords. Agents can map natural-language selection criteria to the smallest viable filter set, run the LinkFox search, and present returned niche snapshots for comparison.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill requires a LinkFox API key and may involve account, billing, phone-number login, or payment recovery flows.\n\nMitigation: Install only in environments where those credentials and flows are acceptable, scope API keys carefully, and confirm gateway-related environment variables point to legitimate LinkFox domains.\n\nRisk: Search responses and potentially sensitive query data are persisted locally by the skill.\n\nMitigation: Keep generated LinkFox data out of shared repositories and review saved files before sharing workspaces or logs.\n\nRisk: Automatic feedback reporting can send external telemetry.\n\nMitigation: Treat feedback reporting as external telemetry and disable or control it through the host environment when needed.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-opportunity-search-by-metrics)\n- [API Reference](references/api.md)\n- [Authentication and Billing Onboarding](references/onboarding.md)\n- [LinkFox Skills](https://skill.linkfox.com/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, JSON, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown comparison tables and JSON API responses saved to local files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Search calls require at least one keyword, niche name, or metric filter; the skill currently covers the US Amazon marketplace and successful calls consume LinkFox credits.]\n\n## Skill Version(s):\n\n1.0.6 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.5: 7 files, 26826 bytes\n\nFiles: references/api.md (12533b), references/onboarding.md (2046b), scripts/amazon_opportunity_screener.py (12783b), scripts/onboarding.py (24089b), skill-card.md (3209b), SKILL.md (13459b), _meta.json (163b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: linkfox-amazon-opportunity-search-by-metrics\ndescription: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。\n---\n\n# Amazon Opportunity Screener by Metrics\n\nThis skill guides you on how to reverse-search Amazon niches and keywords from a metrics pool aggregated from historical opportunity reports, helping sellers turn vague selection ideas (low competition, growing demand, blue ocean, pain-point opportunity, etc.) into concrete niche candidates.\n\n## Core Concepts\n\nThis tool exposes a queryable pool of **niche-level metrics** (~37 fields per record) distilled from past Amazon opportunity reports. Instead of generating a fresh report (forward analysis), it lets you **reverse-filter** the existing pool by 30+ business dimensions and returns matching `(marketplace, keyword)` records ranked by collection time (most recent first).\n\nRecords are at the **niche / keyword** level, not ASIN level. Each record represents a niche snapshot — its market size, growth, competition, price tiers, demographics, top features, and review themes.\n\n**Forward vs. reverse**: Use `linkfox-amazon-opportunity-report` when the user has a keyword and wants a comprehensive AI report. Use this skill when the user has business criteria (filters) and wants to discover which keywords / niches fit.\n\n## Filter Dimensions\n\nFilters are grouped into six business dimensions. All filter parameters are optional, but **at least one of `keyword` / `nicheName` or any metric filter must be provided** — fully empty calls are rejected.\n\n| Dimension | Example Parameters | Typical User Intent |\n|-----------|---------------------|---------------------|\n| Market size & growth | `nicheRevenue360dMinUsdAtLeastGte`, `nichePeakSearchVolumeAtLeastGte`, `nicheSearchVolumeYoyChangePctAtLeastGte`, `nichePeakMonthGte/Lte` | \"Big enough market\", \"fast-growing\", \"Q4 seasonal\" |\n| Competition density | `nicheBrandCountLte`, `nicheBrandCountYoyChangePctAtLeastLte`, `nicheTop5ProductClickSharePctAtLeastLte`, `featureTop5BrandSharePctAtLeastLte` | \"Newcomer-friendly\", \"brands fragmented\", \"no oligopoly\", \"brands exiting\" |\n| Price & tier | `priceMinUsdGte`, `priceMaxUsdLte`, `priceSweetSpotMinUsdGte/Lte`, `priceEntryClickSharePctAtLeastGte`, `priceMidClickSharePctAtLeastLte`, `priceHighClickSharePctAtLeastGte` | \"Affordable focus\", \"premium-friendly\", \"mid-tier blue ocean\" |\n| Demographics | `demoPrimaryAgeMinGte`, `demoPrimaryAgeMaxLte`, `demoGenderDominant`, `demoPrimaryIncomeTier`, `demoLifeStageTagsContains` | \"Female-driven\", \"high-income\", \"parents\", \"fitness enthusiasts\" |\n| Product features | `featureNewAvgReviewCountAtLeastLte`, `featureEstablishedAvgReviewCountAtLeastLte`, `featureEmergingTrendTagsContains`, `featureUncommonFeatureTagsContains`, `searchTopCategory1Label` | \"New-product entry barrier low\", \"emerging trend\", \"uncommon feature edge\", \"set/kit niches\" |\n| Review insights | `reviewPositiveTop1Topic`, `reviewPositiveTop1PctAtLeastGte/Lte`, `reviewNegativeTop1Topic`, `reviewNegativeTop1PctAtLeastGte/Lte`, `reviewNegativeTop2Topic`, `reviewStrategicInsightTagsContains` | \"Pain-point niche\", \"comfort-driven sellers\", \"size-issue opportunity\" |\n\nSee `references/api.md` for the full parameter list, types, value ranges, and response field map.\n\n## Supported Marketplaces\n\nCurrently only **US** (United States) is supported. Always set `amazonDomain` to `US` (or omit). If a user requests other marketplaces, inform them this tool currently only covers the US market.\n\n## 调用方式\n\n- **API 端点**：`POST /amazon/opportunity/searchByMetrics`（完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/amazon_opportunity_screener.py '<JSON 参数>' [--inline]`\n- **成本约束**：本工具会消耗积分；同一会话同一参数组合默认只调用一次，脚本带 24h 本地缓存。失败/空结果不得自动换关键词、翻页或改邮编连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-opportunity-search-by-metrics-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## How to Build Queries\n\nThe user expresses business intent in natural language; you map it to **the smallest viable set of filters**. Principles:\n\n1. **Convert intent into specific bounds**: \"low competition\" → `nicheBrandCountLte: 20`; \"fast-growing\" → `nicheSearchVolumeYoyChangePctAtLeastGte: 100` (≥100% YoY); \"newcomer-friendly\" → `featureNewAvgReviewCountAtLeastLte: 500`.\n2. **Start narrow, then loosen**: First call usually with 2–4 strong filters and `limit=25`. If the result set is empty or too small, drop or widen the most aggressive filter rather than adding new ones.\n3. **Pair complementary signals**: Brand-level + product-level concentration (`featureTop5BrandSharePctAtLeastLte` + `nicheTop5ProductClickSharePctAtLeastGte`) reveals \"brands fragmented but products concentrated\" — a brand-extension entry signal.\n4. **Snake_case fragments for tag fields**: `featureEmergingTrendTagsContains`, `demoLifeStageTagsContains`, `reviewNegativeTop1Topic`, etc. accept snake_case word fragments and use LIKE matching. Pass a root word (`size`, `parent`, `cordless`) to cover normalized variants.\n5. **Faithful to user intent**: Don't silently add filters the user didn't ask for. If they only said \"growing\", just filter on growth — don't also constrain price unless they mentioned it.\n\n### Common Scenarios\n\n**1. Niche reverse-lookup by keyword**\n```json\n{\"keyword\": \"whoop band\", \"limit\": 25}\n```\n\n**2. Newcomer-friendly low-competition niches**\n```json\n{\"nicheBrandCountLte\": 20, \"featureNewAvgReviewCountAtLeastLte\": 500, \"limit\": 25}\n```\n\n**3. High-growth blue ocean (≥100% YoY, brands not yet flooding in)**\n```json\n{\"nicheSearchVolumeYoyChangePctAtLeastGte\": 100, \"nicheBrandCountYoyChangePctAtLeastLte\": 30, \"limit\": 25}\n```\n\n**4. Mid-tier price gap (low-price dominates, mid-tier scarce)**\n```json\n{\"priceEntryClickSharePctAtLeastGte\": 70, \"priceMidClickSharePctAtLeastLte\": 5, \"limit\": 25}\n```\n\n**5. Pain-point entry — strong size complaints**\n```json\n{\"reviewNegativeTop1Topic\": \"size\", \"reviewNegativeTop1PctAtLeastGte\": 70, \"limit\": 25}\n```\n\n**6. Premium-friendly female-driven niches**\n```json\n{\"demoGenderDominant\": \"female\", \"demoPrimaryIncomeTier\": \"high\", \"priceHighClickSharePctAtLeastGte\": 25, \"limit\": 25}\n```\n\n**7. Q4 seasonal niches with ≥100k peak search**\n```json\n{\"nichePeakMonthGte\": 11, \"nichePeakMonthLte\": 12, \"nichePeakSearchVolumeAtLeastGte\": 100000, \"limit\": 25}\n```\n\n**8. Track niches around a known competitor brand**\n```json\n{\"featureTopBrandsContains\": \"WHOOP\", \"limit\": 50}\n```\n\n## Display Rules\n\n1. **Present data only**: Render the returned niches as a clean comparison table — niche name / keyword, market size, growth, brand count, price range, key tags. No subjective business advice.\n2. **Surface the active filters**: Echo the filter set you used so the user can adjust (\"当前筛选：品牌数 ≤ 20 且搜索量同比 ≥ 100%\").\n3. **Time-snapshot reminder**: Records reflect data at collection time and are not continuously updated. Mention this when results look stale or contradict a user's external knowledge.\n4. **Empty / few-result handling**: If `data` is empty or very short, suggest widening the most aggressive filter rather than re-asking the user from scratch.\n5. **Error handling**: When a query fails, explain the reason based on the `msg` field (most often the \"fully empty parameters\" guard) and suggest adding at least one filter.\n6. **No secondary aggregation**: The results power frontend rendering and are not stored, so they cannot be fed into `@智能数据查询` (intelligent data query) for further aggregation. If users ask for grouped statistics across niches, do the calculation locally or pull a wider `limit` first.\n\n## Important Limitations\n\n- **US only**: Currently only supports the United States marketplace (`amazonDomain` = `US`).\n- **No pagination**: There is no `page` parameter. Increase `limit` (max 200) to widen the candidate pool; results are sorted by collection time (newest first).\n- **At least one filter required**: Calls with no `keyword` / `nicheName` and no metric filter are rejected.\n- **Snapshot data**: Records are aggregated from historical opportunity reports; new reports refresh the pool over time, but individual records are not real-time.\n- **Niche-level granularity**: The output is niche / keyword level, not ASIN level. To dig into specific products inside a niche, hand off to `linkfox-amazon-search`, `linkfox-keepa-product-search`, etc.\n\n## User Expression & Scenario Quick Reference\n\n**Applicable** — Niche-level reverse selection on the US Amazon market:\n\n| User Says | Scenario |\n|-----------|----------|\n| \"Low-competition niches\", \"newcomer-friendly\", \"brand-light\" | Brand-density filter |\n| \"Brands are exiting\", \"old players retreating\" | Negative brand-count YoY |\n| \"Fast-growing niche\", \"trending up\", \"≥100% YoY\" | Search-volume YoY filter |\n| \"Mid-tier blue ocean\", \"low-price dominates but mid is scarce\" | Price-tier share gap |\n| \"Premium-friendly\", \"high-income consumers\" | Income tier + high-tier share |\n| \"Female / male / mixed market\" | Gender dominance filter |\n| \"Parents / students / retirees / fitness enthusiasts\" | Life-stage tag |\n| \"Strong size / quality / durability pain point\" | Negative review topic + share |\n| \"Comfort-driven\", \"value-driven sellers\" | Positive review topic + share |\n| \"Track all niches around brand X\" | `featureTopBrandsContains` |\n| \"Q4 seasonal niches\", \"Prime Day window\" | Peak month + peak volume |\n\n**Not applicable** — Use other tools instead:\n- Need a comprehensive AI report on one keyword → `linkfox-amazon-opportunity-report`\n- ASIN-level competitor research, sales estimation → SellerSprite / Keepa / Sorftime tools\n- Real-time keyword ranking, search-term mining → ABA / SIF tools\n- Marketplaces other than US → not yet supported by this tool\n- Want to run group-by aggregation over niches via `@智能数据查询` → unsupported (data is not warehoused)\n\n**Boundary judgment**: When users describe selection criteria in business language and want matching candidate niches, this skill applies. When they hand you a specific keyword and want the full multi-dimensional analysis, use `linkfox-amazon-opportunity-report`. When they want to drill into ASINs / sellers within a niche, hand off to product-search tools.\n\n## 积分消耗规则\n\n按动态规则计费：消耗积分 = 1.5 × (N ≤ 25 ? 5 : 5 + ceil((N - 25) / 5))。N 是接口实际返回的数据条数；即使 N = 0，只要接口成功也按 15000 计费。\n\n> **重要**：本技能的服务按倍数动态计算，可能一次性消耗大量积分，必须提醒用户，由用户决定是否继续。\n\n**Feedback:**\n\nAuto-detect and report feedback via the Feedback API when any of the following apply:\n1. The functionality or purpose described in this skill does not match actual behavior\n2. The skill's results do not match the user's intent\n3. The user expresses dissatisfaction or praise about this skill\n4. Anything you believe could be improved\n\nCall the feedback API as specified in `references/api.md`. Do not interrupt the user's flow.\n\n\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-amazon-opportunity-search-by-metrics\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1786099169911\n}\n\nFile v1.0.5:references/api.md\n\n# 亚马逊商业洞察反向选品 API 参考\n\n## 调用规范\n\n- **请求地址**：`${LINKFOX_TOOL_GATEWAY}/amazon/opportunity/searchByMetrics`\n- **请求方式**：POST，Content-Type: application/json\n- **认证方式**：Header `Authorization: <api_key>`，api_key 从环境变量 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 读取（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n- **User-Agent**：`LinkFox-Skill/1.0`\n\n## 请求参数\n\nPOST Body（JSON）。所有参数均为可选，但**必须至少提供 `keyword` / `nicheName` 或任意一个指标过滤字段**，禁止全部为空。\n\n### 站点与翻页\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| amazonDomain | string | 亚马逊站点代码（闭枚举），当前仅支持 `US`，未指定时默认仅查美国站 | `US` |\n| limit | integer | 返回条数上限（1-200），默认 25。无 page 参数，按采集时间倒序返回最近 N 条 | `25` |\n\n### 文本搜索\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| keyword | string | 搜索关键词文本片段（LIKE 模糊匹配） | `whoop band` |\n| nicheName | string | 赛道归一化名称片段（LIKE，snake_case 小写），适合赛道时序对比 | `wired_ribbon` |\n\n### 市场规模与增长\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheRevenue360dMinUsdAtLeastGte | number | 360 天市场营收下界（USD）的最小值 |\n| nicheRevenue360dMinUsdAtLeastLte | number | 360 天市场营收下界（USD）的最大值 |\n| nicheRevenue360dMaxUsdAtLeastGte | number | 360 天市场营收上界（USD）的最小值 |\n| nicheRevenue360dMaxUsdAtLeastLte | number | 360 天市场营收上界（USD）的最大值 |\n| nichePeakSearchVolumeAtLeastGte | integer | 峰值月搜索量下界（非负整数） |\n| nichePeakSearchVolumeAtLeastLte | integer | 峰值月搜索量上界（非负整数） |\n| nicheSearchVolumeYoyChangePctAtLeastGte | number | 搜索量同比变化率下限（%，带符号） |\n| nicheSearchVolumeYoyChangePctAtLeastLte | number | 搜索量同比变化率上限（%，带符号） |\n| nichePeakMonthGte | integer | 搜索峰值月份下限（1-12） |\n| nichePeakMonthLte | integer | 搜索峰值月份上限（1-12） |\n\n### 竞争格局（品牌 / 产品集中度）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheBrandCountGte | integer | 活跃品牌数下限 |\n| nicheBrandCountLte | integer | 活跃品牌数上限 |\n| nicheBrandCountYoyChangePctAtLeastGte | number | 品牌数同比变化率下限（%，带符号） |\n| nicheBrandCountYoyChangePctAtLeastLte | number | 品牌数同比变化率上限（%，带符号） |\n| nicheTop5ProductClickSharePctAtLeastGte | number | Top5 产品点击份额下限（0-100） |\n| nicheTop5ProductClickSharePctAtLeastLte | number | Top5 产品点击份额上限（0-100） |\n| featureTop5BrandSharePctAtLeastGte | number | Top5 品牌合计份额下限（0-100） |\n| featureTop5BrandSharePctAtLeastLte | number | Top5 品牌合计份额上限（0-100） |\n| featureTopBrandsContains | string | Top3 品牌名片段（原文 LIKE，区分大小写） |\n\n### 价格与档位\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceMinUsdGte | number | 赛道最低商品价格下限（USD） |\n| priceMinUsdLte | number | 赛道最低商品价格上限（USD） |\n| priceMaxUsdGte | number | 赛道最高商品价格下限（USD） |\n| priceMaxUsdLte | number | 赛道最高商品价格上限（USD） |\n| priceSweetSpotMinUsdGte | number | Sweet Spot 下限的下界（USD） |\n| priceSweetSpotMinUsdLte | number | Sweet Spot 下限的上界（USD） |\n| priceSweetSpotMaxUsdGte | number | Sweet Spot 上限的下界（USD） |\n| priceSweetSpotMaxUsdLte | number | Sweet Spot 上限的上界（USD） |\n| priceEntryClickSharePctAtLeastGte | number | 入门档点击份额下限（0-100） |\n| priceEntryClickSharePctAtLeastLte | number | 入门档点击份额上限（0-100） |\n| priceMidClickSharePctAtLeastGte | number | 中档点击份额下限（0-100） |\n| priceMidClickSharePctAtLeastLte | number | 中档点击份额上限（0-100） |\n| priceHighClickSharePctAtLeastGte | number | 高端档点击份额下限（0-100） |\n| priceHighClickSharePctAtLeastLte | number | 高端档点击份额上限（0-100） |\n\n### 客户画像（年龄 / 性别 / 收入 / 生命阶段）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| demoPrimaryAgeMinGte | integer | 主人群年龄下界的最小值（0-120 岁） |\n| demoPrimaryAgeMinLte | integer | 主人群年龄下界的最大值（0-120 岁） |\n| demoPrimaryAgeMaxGte | integer | 主人群年龄上界的最小值（0-120 岁） |\n| demoPrimaryAgeMaxLte | integer | 主人群年龄上界的最大值（0-120 岁） |\n| demoGenderDominant | string | 性别主导（闭枚举）：`female` / `male` / `mixed` / `unspecified` |\n| demoPrimaryIncomeTier | string | 收入档（闭枚举）：`low` / `middle_low` / `middle` / `middle_upper` / `upper_middle` / `high` |\n| demoLifeStageTagsContains | string | 生命阶段标签片段（snake_case，LIKE）：`parent`、`student`、`retiree`、`athlete` 等 |\n\n### 产品特征（成熟度 / 趋势 / 差异化 / 搜索形态）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| featureNewAvgReviewCountAtLeastGte | integer | 新品平均评论量下限（非负整数） |\n| featureNewAvgReviewCountAtLeastLte | integer | 新品平均评论量上限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastGte | integer | 成熟老品平均评论量下限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastLte | integer | 成熟老品平均评论量上限（非负整数） |\n| featureEmergingTrendTagsContains | string | 新兴趋势特征标签片段（snake_case，LIKE）：`cordless`、`portable`、`smart` 等 |\n| featureUncommonFeatureTagsContains | string | 稀有差异化特征标签片段（snake_case，LIKE）：`hema_free`、`medical_grade_silicone` 等 |\n| searchTopCategory1Label | string | 搜索流量第一类目标签片段（snake_case，LIKE）：`core_product_terms`、`set_kit_configurations` 等 |\n\n### 评论卖点 / 痛点\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| reviewPositiveTop1Topic | string | 好评 #1 主题片段（snake_case，LIKE）：`comfort`、`quality_overall_generic` 等 |\n| reviewPositiveTop1PctAtLeastGte | number | 好评 #1 主题占比下限（0-100，正面评论中占比） |\n| reviewPositiveTop1PctAtLeastLte | number | 好评 #1 主题占比上限（0-100） |\n| reviewNegativeTop1Topic | string | 差评 #1 主题片段（snake_case，LIKE）：`size`、`quality`、`durability` 等 |\n| reviewNegativeTop1PctAtLeastGte | number | 差评 #1 主题占比下限（0-100，负面评论中占比） |\n| reviewNegativeTop1PctAtLeastLte | number | 差评 #1 主题占比上限（0-100） |\n| reviewNegativeTop2Topic | string | 差评 #2 主题片段（snake_case，LIKE） |\n| reviewStrategicInsightTagsContains | string | 评论策略建议标签片段（snake_case，LIKE）：`sizing_clarity`、`material_transparency` 等 |\n\n## 响应结构\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| code | string | 响应码，`200` 为成功 |\n| msg | string | 提示信息，成功为 `ok`，失败为错误描述 |\n| data | array | 关键词指标记录数组，每条对应一个 (站点, 关键词) 组合，约 37 个字段，按采集时间倒序 |\n\n`data[]` 主要字段（节选）：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| amazonDomain | string | 站点代码（当前固定 `US`） |\n| keyword | string | 原始搜索关键词 |\n| nicheName | string | 赛道归一化名称（snake_case） |\n| nicheRevenue360dMinUsdAtLeast / nicheRevenue360dMaxUsdAtLeast | number | 近 360 天市场营收下界 / 上界（USD） |\n| nichePeakSearchVolumeAtLeast | integer | 峰值月搜索量 |\n| nichePeakMonth | integer | 搜索峰值月份（1-12） |\n| nicheSearchVolumeYoyChangePctAtLeast | number | 搜索量同比变化率（%，带符号） |\n| nicheBrandCount / nicheBrandCountYoyChangePctAtLeast | integer / number | 活跃品牌数及其同比变化率 |\n| nicheTop5ProductClickSharePctAtLeast | number | Top5 产品点击份额（0-100） |\n| featureTop5BrandSharePctAtLeast | number | Top5 品牌合计份额（0-100） |\n| featureTopBrands | array | Top 3 品牌名列表（原文） |\n| priceMinUsd / priceMaxUsd | number | 赛道整体最低 / 最高商品价 |\n| priceSweetSpotMinUsd / priceSweetSpotMaxUsd | number | Value Sweet Spot 价格区间下界 / 上界 |\n| priceEntryClickSharePctAtLeast / priceMidClickSharePctAtLeast / priceHighClickSharePctAtLeast | number | 入门 / 中 / 高档点击份额（0-100） |\n| demoPrimaryAgeMin / demoPrimaryAgeMax | integer | 核心人群年龄下界 / 上界 |\n| demoGenderDominant | string | 性别主导（`female` / `male` / `mixed` / `unspecified`） |\n| demoPrimaryIncomeTier | string | 核心人群收入档 |\n| demoLifeStageTags | array | 生命阶段标签列表 |\n| featureNewAvgReviewCountAtLeast / featureEstablishedAvgReviewCountAtLeast | integer | 新品 / 成熟老品平均评论量 |\n| featureEmergingTrendTags / featureUncommonFeatureTags | array | 新兴趋势 / 稀有差异化特征标签 |\n| searchTopCategory1Label | string | 流量第一类目归一化标签 |\n| reviewPositiveTop1Topic / reviewPositiveTop1PctAtLeast | string / number | 好评 #1 主题及在正面评论中的占比 |\n| reviewNegativeTop1Topic / reviewNegativeTop1PctAtLeast / reviewNegativeTop2Topic | string / number / string | 差评 #1 主题、占比及次因 |\n| reviewStrategicInsightTags | array | 评论策略建议标签 |\n\n## 错误码\n\n正常情况下，接口的 HTTP 状态码均为 200，业务的成功与否通过响应体中的 `code` 字段区分；未授权时 HTTP 状态码为 401。\n\n| 错误码 | 含义 | 处理建议 |\n|--------|------|----------|\n| 200 | 成功 | 正常解析 `data` 数组并展示给用户 |\n| 401 | 认证失败 | HTTP 401 或 authorized error：按 SKILL.md 的 **## 解决认证和积分问题** 处理。|\n| 402 | 积分不足 | HTTP 402：按 SKILL.md 的 **## 解决认证和积分问题** 处理。|\n| 其他非 200 值 | 业务异常 | 参考 `msg` 字段获取具体错误原因，常见为参数全空或参数取值非法 |\n\n错误响应示例：\n\n```json\n{\n    \"errcode\": 401,\n    \"errmsg\": \"authorized error\"\n}\n```\n\n## curl 示例\n\n按品牌密度低 + 同比高增长筛选新人友好赛道：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"nicheBrandCountLte\": 20,\n    \"nicheSearchVolumeYoyChangePctAtLeastGte\": 100,\n    \"featureNewAvgReviewCountAtLeastLte\": 500,\n    \"limit\": 25\n  }'\n```\n\n按关键词反向追溯赛道历史：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\"keyword\": \"whoop band\", \"limit\": 50}'\n```\n\n按差评痛点 + 中档稀缺锁定切入机会：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"reviewNegativeTop1Topic\": \"size\",\n    \"reviewNegativeTop1PctAtLeastGte\": 70,\n    \"priceMidClickSharePctAtLeastLte\": 5,\n    \"priceEntryClickSharePctAtLeastGte\": 70\n  }'\n```\n\n---\n\n## Feedback API\n\n> This endpoint is **separate** from the tool API above. Do not mix the two base URLs.\n\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\n- **Content-Type:** `application/json`\n\n```json\n{\n  \"skillName\": \"linkfox-amazon-opportunity-screener\",\n  \"sentiment\": \"POSITIVE\",\n  \"category\": \"OTHER\",\n  \"content\": \"Results were accurate, user was satisfied.\"\n}\n```\n\n**Field rules:**\n- `skillName`: Use this skill's `name` from the YAML frontmatter\n- `sentiment`: Choose ONE — `POSITIVE` (praise), `NEUTRAL` (suggestion without emotion), `NEGATIVE` (complaint or error)\n- `category`: Choose ONE — `BUG` (malfunction or wrong data), `COMPLAINT` (user dissatisfaction), `SUGGESTION` (improvement idea), `OTHER`\n- `content`: Include what the user said or intended, what actually happened, and why it is a problem or praise\n\nFile v1.0.5:references/onboarding.md\n\n# 解决认证和积分问题\n\n调用本 skill 时若网关返回 **auth** 或 **billing** 错误，走本 skill 自带的 `scripts/onboarding.py` 完成引导。\n\n**auth 场景**：`errcode=401` 或消息含 `authorized error`/`鉴权失败`/`未授权`/`unauthorized`；或 `LINKFOX_AGENT_API_KEY` 与 `LINKFOXAGENT_API_KEY` 均为空。\n1. 若已配置 key → 先让用户重启会话（最常见误判），仍失败让用户重新取 key 或换手机号重注册\n2. 未配置 → 询问：自助去 https://agent.linkfox.com/ 取 key，或提供手机号让脚本注册\n3. 手机号路径：\n   - `python scripts/onboarding.py send-code <phone>` → 展示 JSON 里的 phone/agreements\n   - 收到验证码后：`python scripts/onboarding.py login <phone> <code>`（workbuddy 宿主加 `--channel workbuddy`）\n   - 拿到 `api_key` 后把下面三平台配置转发给用户，提示重启会话生效：\n     - Windows PowerShell（永久）：`setx LINKFOX_AGENT_API_KEY \"<key>\"`\n     - macOS zsh：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.zshrc && source ~/.zshrc`\n     - Linux bash：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.bashrc && source ~/.bashrc`\n     - 变量名 `LINKFOX_AGENT_API_KEY`（主推）或 `LINKFOXAGENT_API_KEY`（老规范）任一即可\n\n**billing 场景**：`errcode=402` 或消息含 `积分/余额/quota/insufficient/充值/套餐到期`。\n- `python scripts/onboarding.py list-plans` → 有 AskUserQuestion 就弹菜单，否则输出编号清单让用户选\n- 校验 `plan_id` ∈ 清单、支付方式 ∈ 该套餐 `available_methods`（通常 `wechat/alipay`）\n- `python scripts/onboarding.py order <plan_id> <method>` → 展示优先级 PNG > `pay_url` > `ascii_qr`（标注兜底）\n- 已付款可选调 `python scripts/onboarding.py query <order_id>`，不主动轮询\n\n排除 `errcode=403`（无权限，不归入这两类）。所有子命令输出 stdout JSON，`error` 字段已含阶段前缀，透传给用户即可。完整用法：`python scripts/onboarding.py --help`。\n\nFile v1.0.5:skill-card.md\n\n## Description:\n\nFilters a historical LinkFox Amazon opportunity metrics pool to find US niche and keyword candidates by market size, growth, competition, pricing, demographics, product features, and review themes.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal Amazon sellers and ecommerce researchers use this skill to translate business criteria such as low competition, fast growth, pricing gaps, demographics, or review pain points into candidate US Amazon niches and keywords. The skill is for reverse discovery from historical niche-level metrics, not real-time ASIN-level product research.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill handles LinkFox API keys, SMS login, account tokens, payment-order creation, and Amazon research queries.\n\nMitigation: Use it only when the publisher is trusted, prefer managed or session-scoped secret storage, and avoid exposing API keys or account tokens in shared shell history, logs, or project files.\n\nRisk: Endpoint environment variables can redirect LinkFox API traffic.\n\nMitigation: Keep default LinkFox endpoints unless there is a reviewed operational reason to override them, and inspect environment overrides before running the scripts.\n\nRisk: Feedback reporting may include private user intent or business context if copied directly from a session.\n\nMitigation: Review feedback content before submission and remove confidential customer, product, keyword, or strategy details.\n\nRisk: Successful searches and onboarding flows can consume credits or create payment orders.\n\nMitigation: Get explicit user confirmation before paid calls or order creation, avoid automatic repeated queries, and use the built-in cache for repeated identical searches.\n\nRisk: The screener writes full API responses and cache files under the current working directory.\n\nMitigation: Run it from an appropriate workspace, review saved files before sharing the project, and remove stored response data when it is no longer needed.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-opportunity-search-by-metrics)\n- [API Reference](references/api.md)\n- [Authentication and Billing Onboarding](references/onboarding.md)\n- [LinkFox Skills](https://skill.linkfox.com/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance, JSON]\n\n**Output Format:** [Markdown guidance, JSON API parameters, shell commands, and saved JSON response files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Queries must include at least one keyword, niche name, or metric filter; results are US-only, niche-level snapshots and may be cached or written under the working directory.]\n\n## Skill Version(s):\n\n1.0.5 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.4: 5 files, 17790 bytes\n\nFiles: references/api.md (12533b), scripts/amazon_opportunity_screener.py (12783b), skill-card.md (2902b), SKILL.md (14076b), _meta.json (163b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: linkfox-amazon-opportunity-search-by-metrics\ndescription: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。\n---\n\n# Amazon Opportunity Screener by Metrics\n\nThis skill guides you on how to reverse-search Amazon niches and keywords from a metrics pool aggregated from historical opportunity reports, helping sellers turn vague selection ideas (low competition, growing demand, blue ocean, pain-point opportunity, etc.) into concrete niche candidates.\n\n## Core Concepts\n\nThis tool exposes a queryable pool of **niche-level metrics** (~37 fields per record) distilled from past Amazon opportunity reports. Instead of generating a fresh report (forward analysis), it lets you **reverse-filter** the existing pool by 30+ business dimensions and returns matching `(marketplace, keyword)` records ranked by collection time (most recent first).\n\nRecords are at the **niche / keyword** level, not ASIN level. Each record represents a niche snapshot — its market size, growth, competition, price tiers, demographics, top features, and review themes.\n\n**Forward vs. reverse**: Use `linkfox-amazon-opportunity-report` when the user has a keyword and wants a comprehensive AI report. Use this skill when the user has business criteria (filters) and wants to discover which keywords / niches fit.\n\n## Filter Dimensions\n\nFilters are grouped into six business dimensions. All filter parameters are optional, but **at least one of `keyword` / `nicheName` or any metric filter must be provided** — fully empty calls are rejected.\n\n| Dimension | Example Parameters | Typical User Intent |\n|-----------|---------------------|---------------------|\n| Market size & growth | `nicheRevenue360dMinUsdAtLeastGte`, `nichePeakSearchVolumeAtLeastGte`, `nicheSearchVolumeYoyChangePctAtLeastGte`, `nichePeakMonthGte/Lte` | \"Big enough market\", \"fast-growing\", \"Q4 seasonal\" |\n| Competition density | `nicheBrandCountLte`, `nicheBrandCountYoyChangePctAtLeastLte`, `nicheTop5ProductClickSharePctAtLeastLte`, `featureTop5BrandSharePctAtLeastLte` | \"Newcomer-friendly\", \"brands fragmented\", \"no oligopoly\", \"brands exiting\" |\n| Price & tier | `priceMinUsdGte`, `priceMaxUsdLte`, `priceSweetSpotMinUsdGte/Lte`, `priceEntryClickSharePctAtLeastGte`, `priceMidClickSharePctAtLeastLte`, `priceHighClickSharePctAtLeastGte` | \"Affordable focus\", \"premium-friendly\", \"mid-tier blue ocean\" |\n| Demographics | `demoPrimaryAgeMinGte`, `demoPrimaryAgeMaxLte`, `demoGenderDominant`, `demoPrimaryIncomeTier`, `demoLifeStageTagsContains` | \"Female-driven\", \"high-income\", \"parents\", \"fitness enthusiasts\" |\n| Product features | `featureNewAvgReviewCountAtLeastLte`, `featureEstablishedAvgReviewCountAtLeastLte`, `featureEmergingTrendTagsContains`, `featureUncommonFeatureTagsContains`, `searchTopCategory1Label` | \"New-product entry barrier low\", \"emerging trend\", \"uncommon feature edge\", \"set/kit niches\" |\n| Review insights | `reviewPositiveTop1Topic`, `reviewPositiveTop1PctAtLeastGte/Lte`, `reviewNegativeTop1Topic`, `reviewNegativeTop1PctAtLeastGte/Lte`, `reviewNegativeTop2Topic`, `reviewStrategicInsightTagsContains` | \"Pain-point niche\", \"comfort-driven sellers\", \"size-issue opportunity\" |\n\nSee `references/api.md` for the full parameter list, types, value ranges, and response field map.\n\n## Supported Marketplaces\n\nCurrently only **US** (United States) is supported. Always set `amazonDomain` to `US` (or omit). If a user requests other marketplaces, inform them this tool currently only covers the US market.\n\n## 调用方式\n\n- **API 端点**：`POST /amazon/opportunity/searchByMetrics`（完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/amazon_opportunity_screener.py '<JSON 参数>' [--inline]`\n- **成本约束**：本工具会消耗积分；同一会话同一参数组合默认只调用一次，脚本带 24h 本地缓存。失败/空结果不得自动换关键词、翻页或改邮编连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-opportunity-search-by-metrics-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## 解决认证和积分问题\n发生以下异常情况时，采用以下措施来处理：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n### 措施\n- 优先采用skill内的 onboarding.md 引导解决问题。\n- 如找不到 onboarding.md 文件，则加载 /linkfox-onboarding 这个skill并根据它的引导来处理。如未安装请先安装：\n    - 下载 https://agent-files.linkfox.com/skills/linkfox-onboarding/release.zip，解压后安装这个skill。如需用户授权才可下载，要询问用户获得授权，你不能自己放弃下载。\n- 兜底措施：仅当前面两个措施经过所有努力都走不通时，才提示用户依据 https://skill.linkfox.com/linkfoxskills/guide.htm 指引获取API Key，或去 https://os.linkfox.com/ 补充积分。\n\n## How to Build Queries\n\nThe user expresses business intent in natural language; you map it to **the smallest viable set of filters**. Principles:\n\n1. **Convert intent into specific bounds**: \"low competition\" → `nicheBrandCountLte: 20`; \"fast-growing\" → `nicheSearchVolumeYoyChangePctAtLeastGte: 100` (≥100% YoY); \"newcomer-friendly\" → `featureNewAvgReviewCountAtLeastLte: 500`.\n2. **Start narrow, then loosen**: First call usually with 2–4 strong filters and `limit=25`. If the result set is empty or too small, drop or widen the most aggressive filter rather than adding new ones.\n3. **Pair complementary signals**: Brand-level + product-level concentration (`featureTop5BrandSharePctAtLeastLte` + `nicheTop5ProductClickSharePctAtLeastGte`) reveals \"brands fragmented but products concentrated\" — a brand-extension entry signal.\n4. **Snake_case fragments for tag fields**: `featureEmergingTrendTagsContains`, `demoLifeStageTagsContains`, `reviewNegativeTop1Topic`, etc. accept snake_case word fragments and use LIKE matching. Pass a root word (`size`, `parent`, `cordless`) to cover normalized variants.\n5. **Faithful to user intent**: Don't silently add filters the user didn't ask for. If they only said \"growing\", just filter on growth — don't also constrain price unless they mentioned it.\n\n### Common Scenarios\n\n**1. Niche reverse-lookup by keyword**\n```json\n{\"keyword\": \"whoop band\", \"limit\": 25}\n```\n\n**2. Newcomer-friendly low-competition niches**\n```json\n{\"nicheBrandCountLte\": 20, \"featureNewAvgReviewCountAtLeastLte\": 500, \"limit\": 25}\n```\n\n**3. High-growth blue ocean (≥100% YoY, brands not yet flooding in)**\n```json\n{\"nicheSearchVolumeYoyChangePctAtLeastGte\": 100, \"nicheBrandCountYoyChangePctAtLeastLte\": 30, \"limit\": 25}\n```\n\n**4. Mid-tier price gap (low-price dominates, mid-tier scarce)**\n```json\n{\"priceEntryClickSharePctAtLeastGte\": 70, \"priceMidClickSharePctAtLeastLte\": 5, \"limit\": 25}\n```\n\n**5. Pain-point entry — strong size complaints**\n```json\n{\"reviewNegativeTop1Topic\": \"size\", \"reviewNegativeTop1PctAtLeastGte\": 70, \"limit\": 25}\n```\n\n**6. Premium-friendly female-driven niches**\n```json\n{\"demoGenderDominant\": \"female\", \"demoPrimaryIncomeTier\": \"high\", \"priceHighClickSharePctAtLeastGte\": 25, \"limit\": 25}\n```\n\n**7. Q4 seasonal niches with ≥100k peak search**\n```json\n{\"nichePeakMonthGte\": 11, \"nichePeakMonthLte\": 12, \"nichePeakSearchVolumeAtLeastGte\": 100000, \"limit\": 25}\n```\n\n**8. Track niches around a known competitor brand**\n```json\n{\"featureTopBrandsContains\": \"WHOOP\", \"limit\": 50}\n```\n\n## Display Rules\n\n1. **Present data only**: Render the returned niches as a clean comparison table — niche name / keyword, market size, growth, brand count, price range, key tags. No subjective business advice.\n2. **Surface the active filters**: Echo the filter set you used so the user can adjust (\"当前筛选：品牌数 ≤ 20 且搜索量同比 ≥ 100%\").\n3. **Time-snapshot reminder**: Records reflect data at collection time and are not continuously updated. Mention this when results look stale or contradict a user's external knowledge.\n4. **Empty / few-result handling**: If `data` is empty or very short, suggest widening the most aggressive filter rather than re-asking the user from scratch.\n5. **Error handling**: When a query fails, explain the reason based on the `msg` field (most often the \"fully empty parameters\" guard) and suggest adding at least one filter.\n6. **No secondary aggregation**: The results power frontend rendering and are not stored, so they cannot be fed into `@智能数据查询` (intelligent data query) for further aggregation. If users ask for grouped statistics across niches, do the calculation locally or pull a wider `limit` first.\n\n## Important Limitations\n\n- **US only**: Currently only supports the United States marketplace (`amazonDomain` = `US`).\n- **No pagination**: There is no `page` parameter. Increase `limit` (max 200) to widen the candidate pool; results are sorted by collection time (newest first).\n- **At least one filter required**: Calls with no `keyword` / `nicheName` and no metric filter are rejected.\n- **Snapshot data**: Records are aggregated from historical opportunity reports; new reports refresh the pool over time, but individual records are not real-time.\n- **Niche-level granularity**: The output is niche / keyword level, not ASIN level. To dig into specific products inside a niche, hand off to `linkfox-amazon-search`, `linkfox-keepa-product-search`, etc.\n\n## User Expression & Scenario Quick Reference\n\n**Applicable** — Niche-level reverse selection on the US Amazon market:\n\n| User Says | Scenario |\n|-----------|----------|\n| \"Low-competition niches\", \"newcomer-friendly\", \"brand-light\" | Brand-density filter |\n| \"Brands are exiting\", \"old players retreating\" | Negative brand-count YoY |\n| \"Fast-growing niche\", \"trending up\", \"≥100% YoY\" | Search-volume YoY filter |\n| \"Mid-tier blue ocean\", \"low-price dominates but mid is scarce\" | Price-tier share gap |\n| \"Premium-friendly\", \"high-income consumers\" | Income tier + high-tier share |\n| \"Female / male / mixed market\" | Gender dominance filter |\n| \"Parents / students / retirees / fitness enthusiasts\" | Life-stage tag |\n| \"Strong size / quality / durability pain point\" | Negative review topic + share |\n| \"Comfort-driven\", \"value-driven sellers\" | Positive review topic + share |\n| \"Track all niches around brand X\" | `featureTopBrandsContains` |\n| \"Q4 seasonal niches\", \"Prime Day window\" | Peak month + peak volume |\n\n**Not applicable** — Use other tools instead:\n- Need a comprehensive AI report on one keyword → `linkfox-amazon-opportunity-report`\n- ASIN-level competitor research, sales estimation → SellerSprite / Keepa / Sorftime tools\n- Real-time keyword ranking, search-term mining → ABA / SIF tools\n- Marketplaces other than US → not yet supported by this tool\n- Want to run group-by aggregation over niches via `@智能数据查询` → unsupported (data is not warehoused)\n\n**Boundary judgment**: When users describe selection criteria in business language and want matching candidate niches, this skill applies. When they hand you a specific keyword and want the full multi-dimensional analysis, use `linkfox-amazon-opportunity-report`. When they want to drill into ASINs / sellers within a niche, hand off to product-search tools.\n\n## 积分消耗规则\n\n按动态规则计费：消耗积分 = 1.5 × (N ≤ 25 ? 5 : 5 + ceil((N - 25) / 5))。N 是接口实际返回的数据条数；即使 N = 0，只要接口成功也按 15000 计费。\n\n> **重要**：本技能的服务按倍数动态计算，可能一次性消耗大量积分，必须提醒用户，由用户决定是否继续。\n\n**Feedback:**\n\nAuto-detect and report feedback via the Feedback API when any of the following apply:\n1. The functionality or purpose described in this skill does not match actual behavior\n2. The skill's results do not match the user's intent\n3. The user expresses dissatisfaction or praise about this skill\n4. Anything you believe could be improved\n\nCall the feedback API as specified in `references/api.md`. Do not interrupt the user's flow.\n\n\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-amazon-opportunity-search-by-metrics\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1783944176506\n}\n\nFile v1.0.4:references/api.md\n\n# 亚马逊商业洞察反向选品 API 参考\n\n## 调用规范\n\n- **请求地址**：`${LINKFOX_TOOL_GATEWAY}/amazon/opportunity/searchByMetrics`\n- **请求方式**：POST，Content-Type: application/json\n- **认证方式**：Header `Authorization: <api_key>`，api_key 从环境变量 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 读取（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n- **User-Agent**：`LinkFox-Skill/1.0`\n\n## 请求参数\n\nPOST Body（JSON）。所有参数均为可选，但**必须至少提供 `keyword` / `nicheName` 或任意一个指标过滤字段**，禁止全部为空。\n\n### 站点与翻页\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| amazonDomain | string | 亚马逊站点代码（闭枚举），当前仅支持 `US`，未指定时默认仅查美国站 | `US` |\n| limit | integer | 返回条数上限（1-200），默认 25。无 page 参数，按采集时间倒序返回最近 N 条 | `25` |\n\n### 文本搜索\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| keyword | string | 搜索关键词文本片段（LIKE 模糊匹配） | `whoop band` |\n| nicheName | string | 赛道归一化名称片段（LIKE，snake_case 小写），适合赛道时序对比 | `wired_ribbon` |\n\n### 市场规模与增长\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheRevenue360dMinUsdAtLeastGte | number | 360 天市场营收下界（USD）的最小值 |\n| nicheRevenue360dMinUsdAtLeastLte | number | 360 天市场营收下界（USD）的最大值 |\n| nicheRevenue360dMaxUsdAtLeastGte | number | 360 天市场营收上界（USD）的最小值 |\n| nicheRevenue360dMaxUsdAtLeastLte | number | 360 天市场营收上界（USD）的最大值 |\n| nichePeakSearchVolumeAtLeastGte | integer | 峰值月搜索量下界（非负整数） |\n| nichePeakSearchVolumeAtLeastLte | integer | 峰值月搜索量上界（非负整数） |\n| nicheSearchVolumeYoyChangePctAtLeastGte | number | 搜索量同比变化率下限（%，带符号） |\n| nicheSearchVolumeYoyChangePctAtLeastLte | number | 搜索量同比变化率上限（%，带符号） |\n| nichePeakMonthGte | integer | 搜索峰值月份下限（1-12） |\n| nichePeakMonthLte | integer | 搜索峰值月份上限（1-12） |\n\n### 竞争格局（品牌 / 产品集中度）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheBrandCountGte | integer | 活跃品牌数下限 |\n| nicheBrandCountLte | integer | 活跃品牌数上限 |\n| nicheBrandCountYoyChangePctAtLeastGte | number | 品牌数同比变化率下限（%，带符号） |\n| nicheBrandCountYoyChangePctAtLeastLte | number | 品牌数同比变化率上限（%，带符号） |\n| nicheTop5ProductClickSharePctAtLeastGte | number | Top5 产品点击份额下限（0-100） |\n| nicheTop5ProductClickSharePctAtLeastLte | number | Top5 产品点击份额上限（0-100） |\n| featureTop5BrandSharePctAtLeastGte | number | Top5 品牌合计份额下限（0-100） |\n| featureTop5BrandSharePctAtLeastLte | number | Top5 品牌合计份额上限（0-100） |\n| featureTopBrandsContains | string | Top3 品牌名片段（原文 LIKE，区分大小写） |\n\n### 价格与档位\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceMinUsdGte | number | 赛道最低商品价格下限（USD） |\n| priceMinUsdLte | number | 赛道最低商品价格上限（USD） |\n| priceMaxUsdGte | number | 赛道最高商品价格下限（USD） |\n| priceMaxUsdLte | number | 赛道最高商品价格上限（USD） |\n| priceSweetSpotMinUsdGte | number | Sweet Spot 下限的下界（USD） |\n| priceSweetSpotMinUsdLte | number | Sweet Spot 下限的上界（USD） |\n| priceSweetSpotMaxUsdGte | number | Sweet Spot 上限的下界（USD） |\n| priceSweetSpotMaxUsdLte | number | Sweet Spot 上限的上界（USD） |\n| priceEntryClickSharePctAtLeastGte | number | 入门档点击份额下限（0-100） |\n| priceEntryClickSharePctAtLeastLte | number | 入门档点击份额上限（0-100） |\n| priceMidClickSharePctAtLeastGte | number | 中档点击份额下限（0-100） |\n| priceMidClickSharePctAtLeastLte | number | 中档点击份额上限（0-100） |\n| priceHighClickSharePctAtLeastGte | number | 高端档点击份额下限（0-100） |\n| priceHighClickSharePctAtLeastLte | number | 高端档点击份额上限（0-100） |\n\n### 客户画像（年龄 / 性别 / 收入 / 生命阶段）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| demoPrimaryAgeMinGte | integer | 主人群年龄下界的最小值（0-120 岁） |\n| demoPrimaryAgeMinLte | integer | 主人群年龄下界的最大值（0-120 岁） |\n| demoPrimaryAgeMaxGte | integer | 主人群年龄上界的最小值（0-120 岁） |\n| demoPrimaryAgeMaxLte | integer | 主人群年龄上界的最大值（0-120 岁） |\n| demoGenderDominant | string | 性别主导（闭枚举）：`female` / `male` / `mixed` / `unspecified` |\n| demoPrimaryIncomeTier | string | 收入档（闭枚举）：`low` / `middle_low` / `middle` / `middle_upper` / `upper_middle` / `high` |\n| demoLifeStageTagsContains | string | 生命阶段标签片段（snake_case，LIKE）：`parent`、`student`、`retiree`、`athlete` 等 |\n\n### 产品特征（成熟度 / 趋势 / 差异化 / 搜索形态）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| featureNewAvgReviewCountAtLeastGte | integer | 新品平均评论量下限（非负整数） |\n| featureNewAvgReviewCountAtLeastLte | integer | 新品平均评论量上限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastGte | integer | 成熟老品平均评论量下限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastLte | integer | 成熟老品平均评论量上限（非负整数） |\n| featureEmergingTrendTagsContains | string | 新兴趋势特征标签片段（snake_case，LIKE）：`cordless`、`portable`、`smart` 等 |\n| featureUncommonFeatureTagsContains | string | 稀有差异化特征标签片段（snake_case，LIKE）：`hema_free`、`medical_grade_silicone` 等 |\n| searchTopCategory1Label | string | 搜索流量第一类目标签片段（snake_case，LIKE）：`core_product_terms`、`set_kit_configurations` 等 |\n\n### 评论卖点 / 痛点\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| reviewPositiveTop1Topic | string | 好评 #1 主题片段（snake_case，LIKE）：`comfort`、`quality_overall_generic` 等 |\n| reviewPositiveTop1PctAtLeastGte | number | 好评 #1 主题占比下限（0-100，正面评论中占比） |\n| reviewPositiveTop1PctAtLeastLte | number | 好评 #1 主题占比上限（0-100） |\n| reviewNegativeTop1Topic | string | 差评 #1 主题片段（snake_case，LIKE）：`size`、`quality`、`durability` 等 |\n| reviewNegativeTop1PctAtLeastGte | number | 差评 #1 主题占比下限（0-100，负面评论中占比） |\n| reviewNegativeTop1PctAtLeastLte | number | 差评 #1 主题占比上限（0-100） |\n| reviewNegativeTop2Topic | string | 差评 #2 主题片段（snake_case，LIKE） |\n| reviewStrategicInsightTagsContains | string | 评论策略建议标签片段（snake_case，LIKE）：`sizing_clarity`、`material_transparency` 等 |\n\n## 响应结构\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| code | string | 响应码，`200` 为成功 |\n| msg | string | 提示信息，成功为 `ok`，失败为错误描述 |\n| data | array | 关键词指标记录数组，每条对应一个 (站点, 关键词) 组合，约 37 个字段，按采集时间倒序 |\n\n`data[]` 主要字段（节选）：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| amazonDomain | string | 站点代码（当前固定 `US`） |\n| keyword | string | 原始搜索关键词 |\n| nicheName | string | 赛道归一化名称（snake_case） |\n| nicheRevenue360dMinUsdAtLeast / nicheRevenue360dMaxUsdAtLeast | number | 近 360 天市场营收下界 / 上界（USD） |\n| nichePeakSearchVolumeAtLeast | integer | 峰值月搜索量 |\n| nichePeakMonth | integer | 搜索峰值月份（1-12） |\n| nicheSearchVolumeYoyChangePctAtLeast | number | 搜索量同比变化率（%，带符号） |\n| nicheBrandCount / nicheBrandCountYoyChangePctAtLeast | integer / number | 活跃品牌数及其同比变化率 |\n| nicheTop5ProductClickSharePctAtLeast | number | Top5 产品点击份额（0-100） |\n| featureTop5BrandSharePctAtLeast | number | Top5 品牌合计份额（0-100） |\n| featureTopBrands | array | Top 3 品牌名列表（原文） |\n| priceMinUsd / priceMaxUsd | number | 赛道整体最低 / 最高商品价 |\n| priceSweetSpotMinUsd / priceSweetSpotMaxUsd | number | Value Sweet Spot 价格区间下界 / 上界 |\n| priceEntryClickSharePctAtLeast / priceMidClickSharePctAtLeast / priceHighClickSharePctAtLeast | number | 入门 / 中 / 高档点击份额（0-100） |\n| demoPrimaryAgeMin / demoPrimaryAgeMax | integer | 核心人群年龄下界 / 上界 |\n| demoGenderDominant | string | 性别主导（`female` / `male` / `mixed` / `unspecified`） |\n| demoPrimaryIncomeTier | string | 核心人群收入档 |\n| demoLifeStageTags | array | 生命阶段标签列表 |\n| featureNewAvgReviewCountAtLeast / featureEstablishedAvgReviewCountAtLeast | integer | 新品 / 成熟老品平均评论量 |\n| featureEmergingTrendTags / featureUncommonFeatureTags | array | 新兴趋势 / 稀有差异化特征标签 |\n| searchTopCategory1Label | string | 流量第一类目归一化标签 |\n| reviewPositiveTop1Topic / reviewPositiveTop1PctAtLeast | string / number | 好评 #1 主题及在正面评论中的占比 |\n| reviewNegativeTop1Topic / reviewNegativeTop1PctAtLeast / reviewNegativeTop2Topic | string / number / string | 差评 #1 主题、占比及次因 |\n| reviewStrategicInsightTags | array | 评论策略建议标签 |\n\n## 错误码\n\n正常情况下，接口的 HTTP 状态码均为 200，业务的成功与否通过响应体中的 `code` 字段区分；未授权时 HTTP 状态码为 401。\n\n| 错误码 | 含义 | 处理建议 |\n|--------|------|----------|\n| 200 | 成功 | 正常解析 `data` 数组并展示给用户 |\n| 401 | 认证失败 | HTTP 401 或 authorized error：按 SKILL.md 的 **## 解决认证和积分问题** 处理。|\n| 402 | 积分不足 | HTTP 402：按 SKILL.md 的 **## 解决认证和积分问题** 处理。|\n| 其他非 200 值 | 业务异常 | 参考 `msg` 字段获取具体错误原因，常见为参数全空或参数取值非法 |\n\n错误响应示例：\n\n```json\n{\n    \"errcode\": 401,\n    \"errmsg\": \"authorized error\"\n}\n```\n\n## curl 示例\n\n按品牌密度低 + 同比高增长筛选新人友好赛道：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"nicheBrandCountLte\": 20,\n    \"nicheSearchVolumeYoyChangePctAtLeastGte\": 100,\n    \"featureNewAvgReviewCountAtLeastLte\": 500,\n    \"limit\": 25\n  }'\n```\n\n按关键词反向追溯赛道历史：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\"keyword\": \"whoop band\", \"limit\": 50}'\n```\n\n按差评痛点 + 中档稀缺锁定切入机会：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"reviewNegativeTop1Topic\": \"size\",\n    \"reviewNegativeTop1PctAtLeastGte\": 70,\n    \"priceMidClickSharePctAtLeastLte\": 5,\n    \"priceEntryClickSharePctAtLeastGte\": 70\n  }'\n```\n\n---\n\n## Feedback API\n\n> This endpoint is **separate** from the tool API above. Do not mix the two base URLs.\n\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\n- **Content-Type:** `application/json`\n\n```json\n{\n  \"skillName\": \"linkfox-amazon-opportunity-screener\",\n  \"sentiment\": \"POSITIVE\",\n  \"category\": \"OTHER\",\n  \"content\": \"Results were accurate, user was satisfied.\"\n}\n```\n\n**Field rules:**\n- `skillName`: Use this skill's `name` from the YAML frontmatter\n- `sentiment`: Choose ONE — `POSITIVE` (praise), `NEUTRAL` (suggestion without emotion), `NEGATIVE` (complaint or error)\n- `category`: Choose ONE — `BUG` (malfunction or wrong data), `COMPLAINT` (user dissatisfaction), `SUGGESTION` (improvement idea), `OTHER`\n- `content`: Include what the user said or intended, what actually happened, and why it is a problem or praise\n\nFile v1.0.4:skill-card.md\n\n## Description: <br>\nHelps agents reverse-search US Amazon niches and keywords by filtering historical opportunity metrics such as market size, growth, competition, price tiers, demographics, product features, and review themes. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nAmazon sellers, e-commerce operators, and agents use this skill to turn selection criteria such as low competition, growth, price gaps, demographics, and review pain points into concrete US Amazon niche or keyword candidates. <br>\n\n### Deployment Geography for Use: <br>\nGlobal; data coverage is limited to the United States Amazon marketplace. <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill sends the LinkFox API key, query parameters, session metadata, and Amazon opportunity results to LinkFox-controlled endpoints. <br>\nMitigation: Install and run it only when the user trusts LinkFox with that data, and verify LINKFOX_TOOL_GATEWAY is unset or points to the official LinkFox gateway before use. <br>\nRisk: Full API responses and cache files can be saved in local linkfox data directories. <br>\nMitigation: Monitor the generated linkfox data and cache folders, avoid running from sensitive working directories, and delete stored results when they are no longer needed. <br>\nRisk: Successful searches consume LinkFox credits, including empty-result searches. <br>\nMitigation: Warn the user before use, avoid repeated automatic retries or broadening without consent, and rely on the 24-hour cache for repeated identical queries. <br>\nRisk: Feedback behavior can send user context to a separate feedback endpoint. <br>\nMitigation: Require explicit user consent before submitting feedback or downloading and installing the separate onboarding skill. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-opportunity-search-by-metrics) <br>\n- [API reference](artifact/references/api.md) <br>\n- [LinkFox Skills](https://skill.linkfox.com/) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, JSON, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown guidance with JSON API parameters, shell command examples, and saved JSON API responses.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires a LinkFox API key; writes full API responses and a 24-hour cache under a linkfox data directory.] <br>\n\n## Skill Version(s): <br>\n1.0.4 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.3: 5 files, 16850 bytes\n\nFiles: references/api.md (12506b), scripts/amazon_opportunity_screener.py (12876b), skill-card.md (2526b), SKILL.md (12634b), _meta.json (163b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: linkfox-amazon-opportunity-search-by-metrics\ndescription: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。\n---\n\n# Amazon Opportunity Screener by Metrics\n\nThis skill guides you on how to reverse-search Amazon niches and keywords from a metrics pool aggregated from historical opportunity reports, helping sellers turn vague selection ideas (low competition, growing demand, blue ocean, pain-point opportunity, etc.) into concrete niche candidates.\n\n## Core Concepts\n\nThis tool exposes a queryable pool of **niche-level metrics** (~37 fields per record) distilled from past Amazon opportunity reports. Instead of generating a fresh report (forward analysis), it lets you **reverse-filter** the existing pool by 30+ business dimensions and returns matching `(marketplace, keyword)` records ranked by collection time (most recent first).\n\nRecords are at the **niche / keyword** level, not ASIN level. Each record represents a niche snapshot — its market size, growth, competition, price tiers, demographics, top features, and review themes.\n\n**Forward vs. reverse**: Use `linkfox-amazon-opportunity-report` when the user has a keyword and wants a comprehensive AI report. Use this skill when the user has business criteria (filters) and wants to discover which keywords / niches fit.\n\n## Filter Dimensions\n\nFilters are grouped into six business dimensions. All filter parameters are optional, but **at least one of `keyword` / `nicheName` or any metric filter must be provided** — fully empty calls are rejected.\n\n| Dimension | Example Parameters | Typical User Intent |\n|-----------|---------------------|---------------------|\n| Market size & growth | `nicheRevenue360dMinUsdAtLeastGte`, `nichePeakSearchVolumeAtLeastGte`, `nicheSearchVolumeYoyChangePctAtLeastGte`, `nichePeakMonthGte/Lte` | \"Big enough market\", \"fast-growing\", \"Q4 seasonal\" |\n| Competition density | `nicheBrandCountLte`, `nicheBrandCountYoyChangePctAtLeastLte`, `nicheTop5ProductClickSharePctAtLeastLte`, `featureTop5BrandSharePctAtLeastLte` | \"Newcomer-friendly\", \"brands fragmented\", \"no oligopoly\", \"brands exiting\" |\n| Price & tier | `priceMinUsdGte`, `priceMaxUsdLte`, `priceSweetSpotMinUsdGte/Lte`, `priceEntryClickSharePctAtLeastGte`, `priceMidClickSharePctAtLeastLte`, `priceHighClickSharePctAtLeastGte` | \"Affordable focus\", \"premium-friendly\", \"mid-tier blue ocean\" |\n| Demographics | `demoPrimaryAgeMinGte`, `demoPrimaryAgeMaxLte`, `demoGenderDominant`, `demoPrimaryIncomeTier`, `demoLifeStageTagsContains` | \"Female-driven\", \"high-income\", \"parents\", \"fitness enthusiasts\" |\n| Product features | `featureNewAvgReviewCountAtLeastLte`, `featureEstablishedAvgReviewCountAtLeastLte`, `featureEmergingTrendTagsContains`, `featureUncommonFeatureTagsContains`, `searchTopCategory1Label` | \"New-product entry barrier low\", \"emerging trend\", \"uncommon feature edge\", \"set/kit niches\" |\n| Review insights | `reviewPositiveTop1Topic`, `reviewPositiveTop1PctAtLeastGte/Lte`, `reviewNegativeTop1Topic`, `reviewNegativeTop1PctAtLeastGte/Lte`, `reviewNegativeTop2Topic`, `reviewStrategicInsightTagsContains` | \"Pain-point niche\", \"comfort-driven sellers\", \"size-issue opportunity\" |\n\nSee `references/api.md` for the full parameter list, types, value ranges, and response field map.\n\n## Supported Marketplaces\n\nCurrently only **US** (United States) is supported. Always set `amazonDomain` to `US` (or omit). If a user requests other marketplaces, inform them this tool currently only covers the US market.\n\n## 调用方式\n\n- **API 端点**：`POST /amazon/opportunity/searchByMetrics`（完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/amazon_opportunity_screener.py '<JSON 参数>' [--inline]`\n- **成本约束**：本工具会消耗积分；同一会话同一参数组合默认只调用一次，脚本带 24h 本地缓存。失败/空结果不得自动换关键词、翻页或改邮编连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-opportunity-search-by-metrics-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## How to Build Queries\n\nThe user expresses business intent in natural language; you map it to **the smallest viable set of filters**. Principles:\n\n1. **Convert intent into specific bounds**: \"low competition\" → `nicheBrandCountLte: 20`; \"fast-growing\" → `nicheSearchVolumeYoyChangePctAtLeastGte: 100` (≥100% YoY); \"newcomer-friendly\" → `featureNewAvgReviewCountAtLeastLte: 500`.\n2. **Start narrow, then loosen**: First call usually with 2–4 strong filters and `limit=25`. If the result set is empty or too small, drop or widen the most aggressive filter rather than adding new ones.\n3. **Pair complementary signals**: Brand-level + product-level concentration (`featureTop5BrandSharePctAtLeastLte` + `nicheTop5ProductClickSharePctAtLeastGte`) reveals \"brands fragmented but products concentrated\" — a brand-extension entry signal.\n4. **Snake_case fragments for tag fields**: `featureEmergingTrendTagsContains`, `demoLifeStageTagsContains`, `reviewNegativeTop1Topic`, etc. accept snake_case word fragments and use LIKE matching. Pass a root word (`size`, `parent`, `cordless`) to cover normalized variants.\n5. **Faithful to user intent**: Don't silently add filters the user didn't ask for. If they only said \"growing\", just filter on growth — don't also constrain price unless they mentioned it.\n\n### Common Scenarios\n\n**1. Niche reverse-lookup by keyword**\n```json\n{\"keyword\": \"whoop band\", \"limit\": 25}\n```\n\n**2. Newcomer-friendly low-competition niches**\n```json\n{\"nicheBrandCountLte\": 20, \"featureNewAvgReviewCountAtLeastLte\": 500, \"limit\": 25}\n```\n\n**3. High-growth blue ocean (≥100% YoY, brands not yet flooding in)**\n```json\n{\"nicheSearchVolumeYoyChangePctAtLeastGte\": 100, \"nicheBrandCountYoyChangePctAtLeastLte\": 30, \"limit\": 25}\n```\n\n**4. Mid-tier price gap (low-price dominates, mid-tier scarce)**\n```json\n{\"priceEntryClickSharePctAtLeastGte\": 70, \"priceMidClickSharePctAtLeastLte\": 5, \"limit\": 25}\n```\n\n**5. Pain-point entry — strong size complaints**\n```json\n{\"reviewNegativeTop1Topic\": \"size\", \"reviewNegativeTop1PctAtLeastGte\": 70, \"limit\": 25}\n```\n\n**6. Premium-friendly female-driven niches**\n```json\n{\"demoGenderDominant\": \"female\", \"demoPrimaryIncomeTier\": \"high\", \"priceHighClickSharePctAtLeastGte\": 25, \"limit\": 25}\n```\n\n**7. Q4 seasonal niches with ≥100k peak search**\n```json\n{\"nichePeakMonthGte\": 11, \"nichePeakMonthLte\": 12, \"nichePeakSearchVolumeAtLeastGte\": 100000, \"limit\": 25}\n```\n\n**8. Track niches around a known competitor brand**\n```json\n{\"featureTopBrandsContains\": \"WHOOP\", \"limit\": 50}\n```\n\n## Display Rules\n\n1. **Present data only**: Render the returned niches as a clean comparison table — niche name / keyword, market size, growth, brand count, price range, key tags. No subjective business advice.\n2. **Surface the active filters**: Echo the filter set you used so the user can adjust (\"当前筛选：品牌数 ≤ 20 且搜索量同比 ≥ 100%\").\n3. **Time-snapshot reminder**: Records reflect data at collection time and are not continuously updated. Mention this when results look stale or contradict a user's external knowledge.\n4. **Empty / few-result handling**: If `data` is empty or very short, suggest widening the most aggressive filter rather than re-asking the user from scratch.\n5. **Error handling**: When a query fails, explain the reason based on the `msg` field (most often the \"fully empty parameters\" guard) and suggest adding at least one filter.\n6. **No secondary aggregation**: The results power frontend rendering and are not stored, so they cannot be fed into `@智能数据查询` (intelligent data query) for further aggregation. If users ask for grouped statistics across niches, do the calculation locally or pull a wider `limit` first.\n\n## Important Limitations\n\n- **US only**: Currently only supports the United States marketplace (`amazonDomain` = `US`).\n- **No pagination**: There is no `page` parameter. Increase `limit` (max 200) to widen the candidate pool; results are sorted by collection time (newest first).\n- **At least one filter required**: Calls with no `keyword` / `nicheName` and no metric filter are rejected.\n- **Snapshot data**: Records are aggregated from historical opportunity reports; new reports refresh the pool over time, but individual records are not real-time.\n- **Niche-level granularity**: The output is niche / keyword level, not ASIN level. To dig into specific products inside a niche, hand off to `linkfox-amazon-search`, `linkfox-keepa-product-search`, etc.\n\n## User Expression & Scenario Quick Reference\n\n**Applicable** — Niche-level reverse selection on the US Amazon market:\n\n| User Says | Scenario |\n|-----------|----------|\n| \"Low-competition niches\", \"newcomer-friendly\", \"brand-light\" | Brand-density filter |\n| \"Brands are exiting\", \"old players retreating\" | Negative brand-count YoY |\n| \"Fast-growing niche\", \"trending up\", \"≥100% YoY\" | Search-volume YoY filter |\n| \"Mid-tier blue ocean\", \"low-price dominates but mid is scarce\" | Price-tier share gap |\n| \"Premium-friendly\", \"high-income consumers\" | Income tier + high-tier share |\n| \"Female / male / mixed market\" | Gender dominance filter |\n| \"Parents / students / retirees / fitness enthusiasts\" | Life-stage tag |\n| \"Strong size / quality / durability pain point\" | Negative review topic + share |\n| \"Comfort-driven\", \"value-driven sellers\" | Positive review topic + share |\n| \"Track all niches around brand X\" | `featureTopBrandsContains` |\n| \"Q4 seasonal niches\", \"Prime Day window\" | Peak month + peak volume |\n\n**Not applicable** — Use other tools instead:\n- Need a comprehensive AI report on one keyword → `linkfox-amazon-opportunity-report`\n- ASIN-level competitor research, sales estimation → SellerSprite / Keepa / Sorftime tools\n- Real-time keyword ranking, search-term mining → ABA / SIF tools\n- Marketplaces other than US → not yet supported by this tool\n- Want to run group-by aggregation over niches via `@智能数据查询` → unsupported (data is not warehoused)\n\n**Boundary judgment**: When users describe selection criteria in business language and want matching candidate niches, this skill applies. When they hand you a specific keyword and want the full multi-dimensional analysis, use `linkfox-amazon-opportunity-report`. When they want to drill into ASINs / sellers within a niche, hand off to product-search tools.\n\n\n**Feedback:**\n\nAuto-detect and report feedback via the Feedback API when any of the following apply:\n1. The functionality or purpose described in this skill does not match actual behavior\n2. The skill's results do not match the user's intent\n3. The user expresses dissatisfaction or praise about this skill\n4. Anything you believe could be improved\n\nCall the feedback API as specified in `references/api.md`. Do not interrupt the user's flow.\n\n\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-amazon-opportunity-search-by-metrics\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1783336233751\n}\n\nFile v1.0.3:references/api.md\n\n# 亚马逊商业洞察反向选品 API 参考\n\n## 调用规范\n\n- **请求地址**：`${LINKFOX_TOOL_GATEWAY}/amazon/opportunity/searchByMetrics`\n- **请求方式**：POST，Content-Type: application/json\n- **认证方式**：Header `Authorization: <api_key>`，api_key 从环境变量 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 读取（如未配置，提示用户前往 https://skill.linkfox.com/linkfoxskills/guide.htm 申请）\n- **User-Agent**：`LinkFox-Skill/1.0`\n\n## 请求参数\n\nPOST Body（JSON）。所有参数均为可选，但**必须至少提供 `keyword` / `nicheName` 或任意一个指标过滤字段**，禁止全部为空。\n\n### 站点与翻页\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| amazonDomain | string | 亚马逊站点代码（闭枚举），当前仅支持 `US`，未指定时默认仅查美国站 | `US` |\n| limit | integer | 返回条数上限（1-200），默认 25。无 page 参数，按采集时间倒序返回最近 N 条 | `25` |\n\n### 文本搜索\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| keyword | string | 搜索关键词文本片段（LIKE 模糊匹配） | `whoop band` |\n| nicheName | string | 赛道归一化名称片段（LIKE，snake_case 小写），适合赛道时序对比 | `wired_ribbon` |\n\n### 市场规模与增长\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheRevenue360dMinUsdAtLeastGte | number | 360 天市场营收下界（USD）的最小值 |\n| nicheRevenue360dMinUsdAtLeastLte | number | 360 天市场营收下界（USD）的最大值 |\n| nicheRevenue360dMaxUsdAtLeastGte | number | 360 天市场营收上界（USD）的最小值 |\n| nicheRevenue360dMaxUsdAtLeastLte | number | 360 天市场营收上界（USD）的最大值 |\n| nichePeakSearchVolumeAtLeastGte | integer | 峰值月搜索量下界（非负整数） |\n| nichePeakSearchVolumeAtLeastLte | integer | 峰值月搜索量上界（非负整数） |\n| nicheSearchVolumeYoyChangePctAtLeastGte | number | 搜索量同比变化率下限（%，带符号） |\n| nicheSearchVolumeYoyChangePctAtLeastLte | number | 搜索量同比变化率上限（%，带符号） |\n| nichePeakMonthGte | integer | 搜索峰值月份下限（1-12） |\n| nichePeakMonthLte | integer | 搜索峰值月份上限（1-12） |\n\n### 竞争格局（品牌 / 产品集中度）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheBrandCountGte | integer | 活跃品牌数下限 |\n| nicheBrandCountLte | integer | 活跃品牌数上限 |\n| nicheBrandCountYoyChangePctAtLeastGte | number | 品牌数同比变化率下限（%，带符号） |\n| nicheBrandCountYoyChangePctAtLeastLte | number | 品牌数同比变化率上限（%，带符号） |\n| nicheTop5ProductClickSharePctAtLeastGte | number | Top5 产品点击份额下限（0-100） |\n| nicheTop5ProductClickSharePctAtLeastLte | number | Top5 产品点击份额上限（0-100） |\n| featureTop5BrandSharePctAtLeastGte | number | Top5 品牌合计份额下限（0-100） |\n| featureTop5BrandSharePctAtLeastLte | number | Top5 品牌合计份额上限（0-100） |\n| featureTopBrandsContains | string | Top3 品牌名片段（原文 LIKE，区分大小写） |\n\n### 价格与档位\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceMinUsdGte | number | 赛道最低商品价格下限（USD） |\n| priceMinUsdLte | number | 赛道最低商品价格上限（USD） |\n| priceMaxUsdGte | number | 赛道最高商品价格下限（USD） |\n| priceMaxUsdLte | number | 赛道最高商品价格上限（USD） |\n| priceSweetSpotMinUsdGte | number | Sweet Spot 下限的下界（USD） |\n| priceSweetSpotMinUsdLte | number | Sweet Spot 下限的上界（USD） |\n| priceSweetSpotMaxUsdGte | number | Sweet Spot 上限的下界（USD） |\n| priceSweetSpotMaxUsdLte | number | Sweet Spot 上限的上界（USD） |\n| priceEntryClickSharePctAtLeastGte | number | 入门档点击份额下限（0-100） |\n| priceEntryClickSharePctAtLeastLte | number | 入门档点击份额上限（0-100） |\n| priceMidClickSharePctAtLeastGte | number | 中档点击份额下限（0-100） |\n| priceMidClickSharePctAtLeastLte | number | 中档点击份额上限（0-100） |\n| priceHighClickSharePctAtLeastGte | number | 高端档点击份额下限（0-100） |\n| priceHighClickSharePctAtLeastLte | number | 高端档点击份额上限（0-100） |\n\n### 客户画像（年龄 / 性别 / 收入 / 生命阶段）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| demoPrimaryAgeMinGte | integer | 主人群年龄下界的最小值（0-120 岁） |\n| demoPrimaryAgeMinLte | integer | 主人群年龄下界的最大值（0-120 岁） |\n| demoPrimaryAgeMaxGte | integer | 主人群年龄上界的最小值（0-120 岁） |\n| demoPrimaryAgeMaxLte | integer | 主人群年龄上界的最大值（0-120 岁） |\n| demoGenderDominant | string | 性别主导（闭枚举）：`female` / `male` / `mixed` / `unspecified` |\n| demoPrimaryIncomeTier | string | 收入档（闭枚举）：`low` / `middle_low` / `middle` / `middle_upper` / `upper_middle` / `high` |\n| demoLifeStageTagsContains | string | 生命阶段标签片段（snake_case，LIKE）：`parent`、`student`、`retiree`、`athlete` 等 |\n\n### 产品特征（成熟度 / 趋势 / 差异化 / 搜索形态）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| featureNewAvgReviewCountAtLeastGte | integer | 新品平均评论量下限（非负整数） |\n| featureNewAvgReviewCountAtLeastLte | integer | 新品平均评论量上限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastGte | integer | 成熟老品平均评论量下限（非负整数） |\n| featureEstablishedAvgReviewCountAtLeastLte | integer | 成熟老品平均评论量上限（非负整数） |\n| featureEmergingTrendTagsContains | string | 新兴趋势特征标签片段（snake_case，LIKE）：`cordless`、`portable`、`smart` 等 |\n| featureUncommonFeatureTagsContains | string | 稀有差异化特征标签片段（snake_case，LIKE）：`hema_free`、`medical_grade_silicone` 等 |\n| searchTopCategory1Label | string | 搜索流量第一类目标签片段（snake_case，LIKE）：`core_product_terms`、`set_kit_configurations` 等 |\n\n### 评论卖点 / 痛点\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| reviewPositiveTop1Topic | string | 好评 #1 主题片段（snake_case，LIKE）：`comfort`、`quality_overall_generic` 等 |\n| reviewPositiveTop1PctAtLeastGte | number | 好评 #1 主题占比下限（0-100，正面评论中占比） |\n| reviewPositiveTop1PctAtLeastLte | number | 好评 #1 主题占比上限（0-100） |\n| reviewNegativeTop1Topic | string | 差评 #1 主题片段（snake_case，LIKE）：`size`、`quality`、`durability` 等 |\n| reviewNegativeTop1PctAtLeastGte | number | 差评 #1 主题占比下限（0-100，负面评论中占比） |\n| reviewNegativeTop1PctAtLeastLte | number | 差评 #1 主题占比上限（0-100） |\n| reviewNegativeTop2Topic | string | 差评 #2 主题片段（snake_case，LIKE） |\n| reviewStrategicInsightTagsContains | string | 评论策略建议标签片段（snake_case，LIKE）：`sizing_clarity`、`material_transparency` 等 |\n\n## 响应结构\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| code | string | 响应码，`200` 为成功 |\n| msg | string | 提示信息，成功为 `ok`，失败为错误描述 |\n| data | array | 关键词指标记录数组，每条对应一个 (站点, 关键词) 组合，约 37 个字段，按采集时间倒序 |\n\n`data[]` 主要字段（节选）：\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| amazonDomain | string | 站点代码（当前固定 `US`） |\n| keyword | string | 原始搜索关键词 |\n| nicheName | string | 赛道归一化名称（snake_case） |\n| nicheRevenue360dMinUsdAtLeast / nicheRevenue360dMaxUsdAtLeast | number | 近 360 天市场营收下界 / 上界（USD） |\n| nichePeakSearchVolumeAtLeast | integer | 峰值月搜索量 |\n| nichePeakMonth | integer | 搜索峰值月份（1-12） |\n| nicheSearchVolumeYoyChangePctAtLeast | number | 搜索量同比变化率（%，带符号） |\n| nicheBrandCount / nicheBrandCountYoyChangePctAtLeast | integer / number | 活跃品牌数及其同比变化率 |\n| nicheTop5ProductClickSharePctAtLeast | number | Top5 产品点击份额（0-100） |\n| featureTop5BrandSharePctAtLeast | number | Top5 品牌合计份额（0-100） |\n| featureTopBrands | array | Top 3 品牌名列表（原文） |\n| priceMinUsd / priceMaxUsd | number | 赛道整体最低 / 最高商品价 |\n| priceSweetSpotMinUsd / priceSweetSpotMaxUsd | number | Value Sweet Spot 价格区间下界 / 上界 |\n| priceEntryClickSharePctAtLeast / priceMidClickSharePctAtLeast / priceHighClickSharePctAtLeast | number | 入门 / 中 / 高档点击份额（0-100） |\n| demoPrimaryAgeMin / demoPrimaryAgeMax | integer | 核心人群年龄下界 / 上界 |\n| demoGenderDominant | string | 性别主导（`female` / `male` / `mixed` / `unspecified`） |\n| demoPrimaryIncomeTier | string | 核心人群收入档 |\n| demoLifeStageTags | array | 生命阶段标签列表 |\n| featureNewAvgReviewCountAtLeast / featureEstablishedAvgReviewCountAtLeast | integer | 新品 / 成熟老品平均评论量 |\n| featureEmergingTrendTags / featureUncommonFeatureTags | array | 新兴趋势 / 稀有差异化特征标签 |\n| searchTopCategory1Label | string | 流量第一类目归一化标签 |\n| reviewPositiveTop1Topic / reviewPositiveTop1PctAtLeast | string / number | 好评 #1 主题及在正面评论中的占比 |\n| reviewNegativeTop1Topic / reviewNegativeTop1PctAtLeast / reviewNegativeTop2Topic | string / number / string | 差评 #1 主题、占比及次因 |\n| reviewStrategicInsightTags | array | 评论策略建议标签 |\n\n## 错误码\n\n正常情况下，接口的 HTTP 状态码均为 200，业务的成功与否通过响应体中的 `code` 字段区分；未授权时 HTTP 状态码为 401。\n\n| 错误码 | 含义 | 处理建议 |\n|--------|------|----------|\n| 200 | 成功 | 正常解析 `data` 数组并展示给用户 |\n| 401 | 认证失败 | 检查请求头 `Authorization` 是否正确携带 API Key；API Key 申请方式请参考上述[调用规范](#调用规范)下的认证方式 |\n| 其他非 200 值 | 业务异常 | 参考 `msg` 字段获取具体错误原因，常见为参数全空或参数取值非法 |\n\n错误响应示例：\n\n```json\n{\n    \"errcode\": 401,\n    \"errmsg\": \"authorized error\"\n}\n```\n\n## curl 示例\n\n按品牌密度低 + 同比高增长筛选新人友好赛道：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"nicheBrandCountLte\": 20,\n    \"nicheSearchVolumeYoyChangePctAtLeastGte\": 100,\n    \"featureNewAvgReviewCountAtLeastLte\": 500,\n    \"limit\": 25\n  }'\n```\n\n按关键词反向追溯赛道历史：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\"keyword\": \"whoop band\", \"limit\": 50}'\n```\n\n按差评痛点 + 中档稀缺锁定切入机会：\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/amazon/opportunity/searchByMetrics \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"User-Agent: LinkFox-Skill/1.0\" \\\n  -d '{\n    \"reviewNegativeTop1Topic\": \"size\",\n    \"reviewNegativeTop1PctAtLeastGte\": 70,\n    \"priceMidClickSharePctAtLeastLte\": 5,\n    \"priceEntryClickSharePctAtLeastGte\": 70\n  }'\n```\n\n---\n\n## Feedback API\n\n> This endpoint is **separate** from the tool API above. Do not mix the two base URLs.\n\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\n- **Content-Type:** `application/json`\n\n```json\n{\n  \"skillName\": \"linkfox-amazon-opportunity-screener\",\n  \"sentiment\": \"POSITIVE\",\n  \"category\": \"OTHER\",\n  \"content\": \"Results were accurate, user was satisfied.\"\n}\n```\n\n**Field rules:**\n- `skillName`: Use this skill's `name` from the YAML frontmatter\n- `sentiment`: Choose ONE — `POSITIVE` (praise), `NEUTRAL` (suggestion without emotion), `NEGATIVE` (complaint or error)\n- `category`: Choose ONE — `BUG` (malfunction or wrong data), `COMPLAINT` (user dissatisfaction), `SUGGESTION` (improvement idea), `OTHER`\n- `content`: Include what the user said or intended, what actually happened, and why it is a problem or praise\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nScreens US Amazon niche and keyword opportunities by reverse-filtering historical opportunity metrics across market size, growth, competition, pricing, demographics, product features, and review themes. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nAmazon sellers and ecommerce operators use this skill to discover US Amazon niche candidates that match business filters such as low competition, growth, price tier, demographics, product features, and review pain points. <br>\n\n### Deployment Geography for Use: <br>\nUnited States Amazon marketplace data only <br>\n\n## Known Risks and Mitigations: <br>\nRisk: LinkFox may receive search filters, API-key-backed requests, and session or app metadata. <br>\nMitigation: Install and use the skill only when that data sharing is acceptable, and avoid submitting sensitive filters or identifiers. <br>\nRisk: The skill includes automatic feedback reporting behavior. <br>\nMitigation: Review the feedback behavior before deployment and disable or avoid it where policy requires explicit user approval. <br>\nRisk: Full API responses may be cached or saved locally, with fallback locations outside the current project if preferred directories are not writable. <br>\nMitigation: Review local output and cache paths, protect generated JSON files, and clear cached responses when they contain sensitive business data. <br>\n\n\n## Reference(s): <br>\n- [API Reference](references/api.md) <br>\n- [ClawHub Skill Page](https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-opportunity-search-by-metrics) <br>\n- [LinkFox API Key Guide](https://skill.linkfox.com/linkfoxskills/guide.htm) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown summaries, comparison tables, JSON API responses, and saved JSON files] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Large API responses may be summarized while full JSON responses are saved for inspection.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.2: 4 files, 15527 bytes\n\nFiles: references/api.md (12506b), scripts/amazon_opportunity_screener.py (12876b), SKILL.md (12634b), _meta.json (163b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: linkfox-amazon-opportunity-search-by-metrics\ndescription: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。\n---\n\n# Amazon Opportunity Screener by Metrics\n\nThis skill guides you on how to reverse-search Amazon niches and keywords from a metrics pool aggregated from historical opportunity reports, helping sellers turn vague selection ideas (low competition, growing demand, blue ocean, pain-point opportunity, etc.) into concrete niche candidates.\n\n## Core Concepts\n\nThis tool exposes a queryable pool of **niche-level metrics** (~37 fields per record) distilled from past Amazon opportunity reports. Instead of generating a fresh report (forward analysis), it lets you **reverse-filter** the existing pool by 30+ business dimensions and returns matching `(marketplace, keyword)` records ranked by collection time (most recent first).\n\nRecords are at the **niche / keyword** level, not ASIN level. Each record represents a niche snapshot — its market size, growth, competition, price tiers, demographics, top features, and review themes.\n\n**Forward vs. reverse**: Use `linkfox-amazon-opportunity-report` when the user has a keyword and wants a comprehensive AI report. Use this skill when the user has business criteria (filters) and wants to discover which keywords / niches fit.\n\n## Filter Dimensions\n\nFilters are grouped into six business dimensions. All filter parameters are optional, but **at least one of `keyword` / `nicheName` or any metric filter must be provided** — fully empty calls are rejected.\n\n| Dimension | Example Parameters | Typical User Intent |\n|-----------|---------------------|---------------------|\n| Market size & growth | `nicheRevenue360dMinUsdAtLeastGte`, `nichePeakSearchVolumeAtLeastGte`, `nicheSearchVolumeYoyChangePctAtLeastGte`, `nichePeakMonthGte/Lte` | \"Big enough market\", \"fast-growing\", \"Q4 seasonal\" |\n| Competition density | `nicheBrandCountLte`, `nicheBrandCountYoyChangePctAtLeastLte`, `nicheTop5ProductClickSharePctAtLeastLte`, `featureTop5BrandSharePctAtLeastLte` | \"Newcomer-friendly\", \"brands fragmented\", \"no oligopoly\", \"brands exiting\" |\n| Price & tier | `priceMinUsdGte`, `priceMaxUsdLte`, `priceSweetSpotMinUsdGte/Lte`, `priceEntryClickSharePctAtLeastGte`, `priceMidClickSharePctAtLeastLte`, `priceHighClickSharePctAtLeastGte` | \"Affordable focus\", \"premium-friendly\", \"mid-tier blue ocean\" |\n| Demographics | `demoPrimaryAgeMinGte`, `demoPrimaryAgeMaxLte`, `demoGenderDominant`, `demoPrimaryIncomeTier`, `demoLifeStageTagsContains` | \"Female-driven\", \"high-income\", \"parents\", \"fitness enthusiasts\" |\n| Product features | `featureNewAvgReviewCountAtLeastLte`, `featureEstablishedAvgReviewCountAtLeastLte`, `featureEmergingTrendTagsContains`, `featureUncommonFeatureTagsContains`, `searchTopCategory1Label` | \"New-product entry barrier low\", \"emerging trend\", \"uncommon feature edge\", \"set/kit niches\" |\n| Review insights | `reviewPositiveTop1Topic`, `reviewPositiveTop1PctAtLeastGte/Lte`, `reviewNegativeTop1Topic`, `reviewNegativeTop1PctAtLeastGte/Lte`, `reviewNegativeTop2Topic`, `reviewStrategicInsightTagsContains` | \"Pain-point niche\", \"comfort-driven sellers\", \"size-issue opportunity\" |\n\nSee `references/api.md` for the full parameter list, types, value ranges, and response field map.\n\n## Supported Marketplaces\n\nCurrently only **US** (United States) is supported. Always set `amazonDomain` to `US` (or omit). If a user requests other marketplaces, inform them this tool currently only covers the US market.\n\n## 调用方式\n\n- **API 端点**：`POST /amazon/opportunity/searchByMetrics`（完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/amazon_opportunity_screener.py '<JSON 参数>' [--inline]`\n- **成本约束**：本工具会消耗积分；同一会话同一参数组合默认只调用一次，脚本带 24h 本地缓存。失败/空结果不得自动换关键词、翻页或改邮编连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/linkfox-amazon-opportunity-search-by-metrics-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n## How to Build Queries\n\nThe user expresses business intent in natural language; you map it to **the smallest viable set of filters**. Principles:\n\n1. **Convert intent into specific bounds**: \"low competition\" → `nicheBrandCountLte: 20`; \"fast-growing\" → `nicheSearchVolumeYoyChangePctAtLeastGte: 100` (≥100% YoY); \"newcomer-friendly\" → `featureNewAvgReviewCountAtLeastLte: 500`.\n2. **Start narrow, then loosen**: First call usually with 2–4 strong filters and `limit=25`. If the result set is empty or too small, drop or widen the most aggressive filter rather than adding new ones.\n3. **Pair complementary signals**: Brand-level + product-level concentration (`featureTop5BrandSharePctAtLeastLte` + `nicheTop5ProductClickSharePctAtLeastGte`) reveals \"brands fragmented but products concentrated\" — a brand-extension entry signal.\n4. **Snake_case fragments for tag fields**: `featureEmergingTrendTagsContains`, `demoLifeStageTagsContains`, `reviewNegativeTop1Topic`, etc. accept snake_case word fragments and use LIKE matching. Pass a root word (`size`, `parent`, `cordless`) to cover normalized variants.\n5. **Faithful to user intent**: Don't silently add filters the user didn't ask for. If they only said \"growing\", just filter on growth — don't also constrain price unless they mentioned it.\n\n### Common Scenarios\n\n**1. Niche reverse-lookup by keyword**\n```json\n{\"keyword\": \"whoop band\", \"limit\": 25}\n```\n\n**2. Newcomer-friendly low-competition niches**\n```json\n{\"nicheBrandCountLte\": 20, \"featureNewAvgReviewCountAtLeastLte\": 500, \"limit\": 25}\n```\n\n**3. High-growth blue ocean (≥100% YoY, brands not yet flooding in)**\n```json\n{\"nicheSearchVolumeYoyChangePctAtLeastGte\": 100, \"nicheBrandCountYoyChangePctAtLeastLte\": 30, \"limit\": 25}\n```\n\n**4. Mid-tier price gap (low-price dominates, mid-tier scarce)**\n```json\n{\"priceEntryClickSharePctAtLeastGte\": 70, \"priceMidClickSharePctAtLeastLte\": 5, \"limit\": 25}\n```\n\n**5. Pain-point entry — strong size complaints**\n```json\n{\"reviewNegativeTop1Topic\": \"size\", \"reviewNegativeTop1PctAtLeastGte\": 70, \"limit\": 25}\n```\n\n**6. Premium-friendly female-driven niches**\n```json\n{\"demoGenderDominant\": \"female\", \"demoPrimaryIncomeTier\": \"high\", \"priceHighClickSharePctAtLeastGte\": 25, \"limit\": 25}\n```\n\n**7. Q4 seasonal niches with ≥100k peak search**\n```json\n{\"nichePeakMonthGte\": 11, \"nichePeakMonthLte\": 12, \"nichePeakSearchVolumeAtLeastGte\": 100000, \"limit\": 25}\n```\n\n**8. Track niches around a known competitor brand**\n```json\n{\"featureTopBrandsContains\": \"WHOOP\", \"limit\": 50}\n```\n\n## Display Rules\n\n1. **Present data only**: Render the returned niches as a clean comparison table — niche name / keyword, market size, growth, brand count, price range, key tags. No subjective business advice.\n2. **Surface the active filters**: Echo the filter set you used so the user can adjust (\"当前筛选：品牌数 ≤ 20 且搜索量同比 ≥ 100%\").\n3. **Time-snapshot reminder**: Records reflect data at collection time and are not continuously updated. Mention this when results look stale or contradict a user's external knowledge.\n4. **Empty / few-result handling**: If `data` is empty or very short, suggest widening the most aggressive filter rather than re-asking the user from scratch.\n5. **Error handling**: When a query fails, explain the reason based on the `msg` field (most often the \"fully empty parameters\" guard) and suggest adding at least one filter.\n6. **No secondary aggregation**: The results power frontend rendering and are not stored, so they cannot be fed into `@智能数据查询` (intelligent data query) for further aggregation. If users ask for grouped statistics across niches, do the calculation locally or pull a wider `limit` first.\n\n## Important Limitations\n\n- **US only**: Currently only supports the United States marketplace (`amazonDomain` = `US`).\n- **No pagination**: There is no `page` parameter. Increase `limit` (max 200) to widen the candidate pool; results are sorted by collection time (newest first).\n- **At least one filter required**: Calls with no `keyword` / `nicheName` and no metric filter are rejected.\n- **Snapshot data**: Records are aggregated from historical opportunity reports; new reports refresh the pool over time, but individual records are not real-time.\n- **Niche-level granularity**: The output is niche / keyword level, not ASIN level. To dig into specific products inside a niche, hand off to `linkfox-amazon-search`, `linkfox-keepa-product-search`, etc.\n\n## User Expression & Scenario Quick Reference\n\n**Applicable** — Niche-level reverse selection on the US Amazon market:\n\n| User Says | Scenario |\n|-----------|----------|\n| \"Low-competition niches\", \"newcomer-friendly\", \"brand-light\" | Brand-density filter |\n| \"Brands are exiting\", \"old players retreating\" | Negative brand-count YoY |\n| \"Fast-growing niche\", \"trending up\", \"≥100% YoY\" | Search-volume YoY filter |\n| \"Mid-tier blue ocean\", \"low-price dominates but mid is scarce\" | Price-tier share gap |\n| \"Premium-friendly\", \"high-income consumers\" | Income tier + high-tier share |\n| \"Female / male / mixed market\" | Gender dominance filter |\n| \"Parents / students / retirees / fitness enthusiasts\" | Life-stage tag |\n| \"Strong size / quality / durability pain point\" | Negative review topic + share |\n| \"Comfort-driven\", \"value-driven sellers\" | Positive review topic + share |\n| \"Track all niches around brand X\" | `featureTopBrandsContains` |\n| \"Q4 seasonal niches\", \"Prime Day window\" | Peak month + peak volume |\n\n**Not applicable** — Use other tools instead:\n- Need a comprehensive AI report on one keyword → `linkfox-amazon-opportunity-report`\n- ASIN-level competitor research, sales estimation → SellerSprite / Keepa / Sorftime tools\n- Real-time keyword ranking, search-term mining → ABA / SIF tools\n- Marketplaces other than US → not yet supported by this tool\n- Want to run group-by aggregation over niches via `@智能数据查询` → unsupported (data is not warehoused)\n\n**Boundary judgment**: When users describe selection criteria in business language and want matching candidate niches, this skill applies. When they hand you a specific keyword and want the full multi-dimensional analysis, use `linkfox-amazon-opportunity-report`. When they want to drill into ASINs / sellers within a niche, hand off to product-search tools.\n\n\n**Feedback:**\n\nAuto-detect and report feedback via the Feedback API when any of the following apply:\n1. The functionality or purpose described in this skill does not match actual behavior\n2. The skill's results do not match the user's intent\n3. The user expresses dissatisfaction or praise about this skill\n4. Anything you believe could be improved\n\nCall the feedback API as specified in `references/api.md`. Do not interrupt the user's flow.\n\n\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-amazon-opportunity-search-by-metrics\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1783066197133\n}\n\nFile v1.0.2:references/api.md\n\n# 亚马逊商业洞察反向选品 API 参考\n\n## 调用规范\n\n- **请求地址**：`${LINKFOX_TOOL_GATEWAY}/amazon/opportunity/searchByMetrics`\n- **请求方式**：POST，Content-Type: application/json\n- **认证方式**：Header `Authorization: <api_key>`，api_key 从环境变量 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 读取（如未配置，提示用户前往 https://skill.linkfox.com/linkfoxskills/guide.htm 申请）\n- **User-Agent**：`LinkFox-Skill/1.0`\n\n## 请求参数\n\nPOST Body（JSON）。所有参数均为可选，但**必须至少提供 `keyword` / `nicheName` 或任意一个指标过滤字段**，禁止全部为空。\n\n### 站点与翻页\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| amazonDomain | string | 亚马逊站点代码（闭枚举），当前仅支持 `US`，未指定时默认仅查美国站 | `US` |\n| limit | integer | 返回条数上限（1-200），默认 25。无 page 参数，按采集时间倒序返回最近 N 条 | `25` |\n\n### 文本搜索\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| keyword | string | 搜索关键词文本片段（LIKE 模糊匹配） | `whoop band` |\n| nicheName | string | 赛道归一化名称片段（LIKE，snake_case 小写），适合赛道时序对比 | `wired_ribbon` |\n\n### 市场规模与增长\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheRevenue360dMinUsdAtLeastGte | number | 360 天市场营收下界（USD）的最小值 |\n| nicheRevenue360dMinUsdAtLeastLte | number | 360 天市场营收下界（USD）的最大值 |\n| nicheRevenue360dMaxUsdAtLeastGte | number | 360 天市场营收上界（USD）的最小值 |\n| nicheRevenue360dMaxUsdAtLeastLte | number | 360 天市场营收上界（USD）的最大值 |\n| nichePeakSearchVolumeAtLeastGte | integer | 峰值月搜索量下界（非负整数） |\n| nichePeakSearchVolumeAtLeastLte | integer | 峰值月搜索量上界（非负整数） |\n| nicheSearchVolumeYoyChangePctAtLeastGte | number | 搜索量同比变化率下限（%，带符号） |\n| nicheSearchVolumeYoyChangePctAtLeastLte | number | 搜索量同比变化率上限（%，带符号） |\n| nichePeakMonthGte | integer | 搜索峰值月份下限（1-12） |\n| nichePeakMonthLte | integer | 搜索峰值月份上限（1-12） |\n\n### 竞争格局（品牌 / 产品集中度）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheBrandCountGte | integer | 活跃品牌数下限 |\n| nicheBrandCountLte | integer | 活跃品牌数上限 |\n| nicheBrandCountYoyChangePctAtLeastGte | number | 品牌数同比变化率下限（%，带符号） |\n| nicheBrandCountYoyChangePctAtLeastLte | number | 品牌数同比变化率上限（%，带符号） |\n| nicheTop5ProductClickSharePctAtLeastGte | number | Top5 产品点击份额下限（0-100） |\n| nicheTop5ProductClickSharePctAtLeastLte | number | Top5 产品点击份额上限（0-100） |\n| featureTop5BrandSharePctAtLeastGte | number | Top5 品牌合计份额下限（0-100） |\n| featureTop5BrandSharePctAtLeastLte | number | Top5 品牌合计份额上限（0-100） |\n| featureTopBrandsContains | string | Top3 品牌名片段（原文 LIKE，区分大小写） |\n\n### 价格与档位\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceMinUsdGte | number | 赛道最低商品价格下限（USD） |\n| priceMinUsdLte | number | 赛道最低商品价格上限（USD） |\n| priceMaxUsdGte | nu\n\nArchive v1.0.1: 4 files, 15508 bytes\n\nFiles: references/api.md (12507b), scripts/amazon_opportunity_screener.py (12878b), SKILL.md (12634b), _meta.json (163b)","readmeExcerpt":"Skill: 亚马逊-机会筛选 Owner: linkfox-ai Summary: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentat","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\"keyword\": \"whoop band\", \"limit\": 25}"},{"language":"json","snippet":"{\"nicheBrandCountLte\": 20, \"featureNewAvgReviewCountAtLeastLte\": 500, \"limit\": 25}"},{"language":"json","snippet":"{\"nicheSearchVolumeYoyChangePctAtLeastGte\": 100, \"nicheBrandCountYoyChangePctAtLeastLte\": 30, \"limit\": 25}"},{"language":"json","snippet":"{\"priceEntryClickSharePctAtLeastGte\": 70, \"priceMidClickSharePctAtLeastLte\": 5, \"limit\": 25}"},{"language":"json","snippet":"{\"reviewNegativeTop1Topic\": \"size\", \"reviewNegativeTop1PctAtLeastGte\": 70, \"limit\": 25}"},{"language":"json","snippet":"{\"demoGenderDominant\": \"female\", \"demoPrimaryIncomeTier\": \"high\", \"priceHighClickSharePctAtLeastGte\": 25, \"limit\": 25}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: linkfox-amazon-opportunity-search-by-metrics\ndescription: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。\n---\n\n# Amazon Opportunity Screener by Metrics\n\nThis skill guides you on how to reverse-search Amazon niches and keywords from a metrics pool aggregated from historical opportunity reports, helping sellers turn vague selection ideas (low competition, growing demand, blue ocean, pain-point opportunity, etc.) into concrete niche candidates.\n\n## Core Concepts\n\nThis tool exposes a queryable pool of **niche-level metrics** (~37 fields per record) distilled from past Amazon opportunity reports. Instead of generating a fresh report (forward analysis), it lets you **reverse-filter** the existing pool by 30+ business dimensions and returns matching `(marketplace, keyword)` records ranked by collection time (most recent first).\n\nRecords are at the **niche / keyword** level, not ASIN level. Each record represents a niche snapshot — its market size, growth, competition, price tiers, demographics, top features, and review themes.\n\n**Forward vs. reverse**: Use `linkfox-amazon-opportunity-report` when the user has a keyword and wants a comprehensive AI report. Use this skill when the user has business criteria (filters) and wants to discover which keywords / niches fit.\n\n## Filter Dimensions\n\nFilters are grouped into six business dimensions. All filter parameters are optional, but **at least one of `keyword` / `nicheName` or any metric filter must be provided** — fully empty calls are rejected.\n\n| Dimension | Example Parameters | Typical User Intent |\n|-----------|---------------------|---------------------|\n| Market size & growth | `nicheRevenue360dMinUsdAtLeastGte`, `nichePeakSearchVolumeAtLeastGte`, `nicheSearchVolumeYoyChangePctAtLeastGte`, `nichePeakMonthGte/Lte` | \"Big enough market\", \"fast-growing\", \"Q4 seasonal\" |\n| Competition density | `nicheBrandCountLte`, `nicheBrandCountYoyChangePctAtLeastLte`, `nicheTop5ProductClickSharePctAtLeastLte`, `featureTop5BrandSharePctAtLeastLte` | \"Newcomer-friendly\", \"brands fragmented\", \"no oligopoly\", \"brands exiting\" |\n| Price & tier | `priceMinUsdGte`, `priceMaxUsdLte`, `priceSweetSpotMinUsdGte/Lte`, `priceEntryClickSharePctAtLeastGte`, `priceMidClickSharePctAtLeastLte`, `priceHighClickSharePctAtLeastGte` | \"Affordable focus\", \"premium-friendly\", \"mid-tier blue ocean\" |\n| Demographics | `demoPrimaryAgeMinGte`, `demoPrimaryAgeMaxLte`, `demoGenderDominant`, `demoPrimaryIncomeTier`, `demoLifeStageTagsContains` | \"Female-driven\", \"high-income\", \"parents\", \"fitness enthusiasts\" |\n| Product features | `featureNewAvgReviewCountAtL"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-amazon-opportunity-search-by-metrics\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1789361687651\n}"},{"path":"references/api.md","content":"# 亚马逊商业洞察反向选品 API 参考\n\n## 调用规范\n\n- **请求地址**：`${LINKFOX_TOOL_GATEWAY}/amazon/opportunity/searchByMetrics`\n- **请求方式**：POST，Content-Type: application/json\n- **认证方式**：Header `Authorization: <api_key>`，api_key 从环境变量 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY` 读取（如未配置 按 SKILL.md 的 **## 解决认证和算力问题** 处理）\n- **User-Agent**：`LinkFox-Skill/1.0`\n\n## 请求参数\n\nPOST Body（JSON）。所有参数均为可选，但**必须至少提供 `keyword` / `nicheName` 或任意一个指标过滤字段**，禁止全部为空。\n\n### 站点与翻页\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| amazonDomain | string | 亚马逊站点代码（闭枚举），当前仅支持 `US`，未指定时默认仅查美国站 | `US` |\n| limit | integer | 返回条数上限（1-200），默认 25。无 page 参数，按采集时间倒序返回最近 N 条 | `25` |\n\n### 文本搜索\n\n| 参数 | 类型 | 说明 | 示例 |\n|------|------|------|------|\n| keyword | string | 搜索关键词文本片段（LIKE 模糊匹配） | `whoop band` |\n| nicheName | string | 赛道归一化名称片段（LIKE，snake_case 小写），适合赛道时序对比 | `wired_ribbon` |\n\n### 市场规模与增长\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheRevenue360dMinUsdAtLeastGte | number | 360 天市场营收下界（USD）的最小值 |\n| nicheRevenue360dMinUsdAtLeastLte | number | 360 天市场营收下界（USD）的最大值 |\n| nicheRevenue360dMaxUsdAtLeastGte | number | 360 天市场营收上界（USD）的最小值 |\n| nicheRevenue360dMaxUsdAtLeastLte | number | 360 天市场营收上界（USD）的最大值 |\n| nichePeakSearchVolumeAtLeastGte | integer | 峰值月搜索量下界（非负整数） |\n| nichePeakSearchVolumeAtLeastLte | integer | 峰值月搜索量上界（非负整数） |\n| nicheSearchVolumeYoyChangePctAtLeastGte | number | 搜索量同比变化率下限（%，带符号） |\n| nicheSearchVolumeYoyChangePctAtLeastLte | number | 搜索量同比变化率上限（%，带符号） |\n| nichePeakMonthGte | integer | 搜索峰值月份下限（1-12） |\n| nichePeakMonthLte | integer | 搜索峰值月份上限（1-12） |\n\n### 竞争格局（品牌 / 产品集中度）\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| nicheBrandCountGte | integer | 活跃品牌数下限 |\n| nicheBrandCountLte | integer | 活跃品牌数上限 |\n| nicheBrandCountYoyChangePctAtLeastGte | number | 品牌数同比变化率下限（%，带符号） |\n| nicheBrandCountYoyChangePctAtLeastLte | number | 品牌数同比变化率上限（%，带符号） |\n| nicheTop5ProductClickSharePctAtLeastGte | number | Top5 产品点击份额下限（0-100） |\n| nicheTop5ProductClickSharePctAtLeastLte | number | Top5 产品点击份额上限（0-100） |\n| featureTop5BrandSharePctAtLeastGte | number | Top5 品牌合计份额下限（0-100） |\n| featureTop5BrandSharePctAtLeastLte | number | Top5 品牌合计份额上限（0-100） |\n| featureTopBrandsContains | string | Top3 品牌名片段（原文 LIKE，区分大小写） |\n\n### 价格与档位\n\n| 参数 | 类型 | 说明 |\n|------|------|------|\n| priceMinUsdGte | number | 赛道最低商品价格下限（USD） |\n| priceMinUsdLte | number | 赛道最低商品价格上限（USD） |\n| priceMaxUsdGte | number | 赛道最高商品价格下限（USD） |\n| priceMaxUsdLte | number | 赛道最高商品价格上限（USD） |\n| priceSweetSpotMinUsdGte | number | Sweet Spot 下限的下界（USD） |\n| priceSweetSpotMinUsdLte | number | Sweet Spot 下限的上界（USD） |\n| priceSweetSpotMaxUsdGte | number | Sweet Spot 上限的下界（USD） |\n| priceSweetSpotMaxUsdLte | number | Sweet Spot 上限的上界（USD） |\n| priceEntryClickSharePctAtLeastGte | number | 入门档点击份额下限（0-100） |\n| priceEntryClickSharePctAtLeastLte | number | 入门档点击份额上限（0-100） |\n| priceMidClickSharePctAtLeastGte | number | 中档点击份额下限（0-100） |\n| priceMidClickSharePctAtLeastLte | number | 中档点击份额上限（0-100） |\n| priceHighClickSharePctAtLeastGte | number | 高端档点击份额下限（0-100） |\n| pri"},{"path":"references/onboarding.md","content":"# 解决认证和算力问题\n\n调用本 skill 时若网关返回 **auth** 或 **billing** 错误，走本 skill 自带的 `scripts/onboarding.py` 完成引导。\n\n**auth 场景**：`errcode=401` 或消息含 `authorized error`/`鉴权失败`/`未授权`/`unauthorized`；或 `LINKFOX_AGENT_API_KEY` 与 `LINKFOXAGENT_API_KEY` 均为空。\n1. 若已配置 key → 先让用户重启会话（最常见误判），仍失败让用户重新取 key 或换手机号重注册\n2. 未配置 → 询问：自助去 https://agent.linkfox.com/ 取 key，或提供手机号让脚本注册\n3. 手机号路径：\n   - `python scripts/onboarding.py send-code <phone>` → 展示 JSON 里的 phone/agreements\n   - 收到验证码后：`python scripts/onboarding.py login <phone> <code>`\n   - 拿到 `api_key` 后把下面三平台配置转发给用户，提示重启会话生效：\n     - Windows PowerShell（永久）：`setx LINKFOX_AGENT_API_KEY \"<key>\"`\n     - macOS zsh：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.zshrc && source ~/.zshrc`\n     - Linux bash：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.bashrc && source ~/.bashrc`\n     - 变量名 `LINKFOX_AGENT_API_KEY`（主推）或 `LINKFOXAGENT_API_KEY`（老规范）任一即可\n\n**billing 场景**：`errcode=402` 或消息含 `算力/余额/quota/insufficient/充值/套餐到期`。\n- `python scripts/onboarding.py list-plans` → 有 AskUserQuestion 就弹菜单，否则输出编号清单让用户选\n- 校验 `plan_id` ∈ 清单、支付方式 ∈ 该套餐 `available_methods`（通常 `wechat/alipay`）\n- `python scripts/onboarding.py order <plan_id> <method>` → 展示优先级 PNG > `pay_url` > `ascii_qr`（标注兜底）\n- 已付款可选调 `python scripts/onboarding.py query <order_id>`，不主动轮询\n\n排除 `errcode=403`（无权限，不归入这两类）。所有子命令输出 stdout JSON，`error` 字段已含阶段前缀，透传给用户即可。完整用法：`python scripts/onboarding.py --help`。"},{"path":"skill-card.md","content":"## Description:\n\nReverse-searches US Amazon niche and keyword opportunities from a historical metrics pool using business filters such as market size, growth, competition, pricing, demographics, product features, and review themes.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[linkfox-ai](https://clawhub.ai/user/linkfox-ai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal sellers, ecommerce operators, and agent users use this skill to turn business criteria such as low competition, growth, pain points, demographics, or pricing gaps into matching US Amazon niche and keyword candidates.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill uses LinkFox account and API credentials to call opportunity-search and account workflows.\n\nMitigation: Install only when LinkFox account/API access is intended, keep API keys in a controlled secret store, and avoid adding long-lived keys to shell startup files when a safer store is available.\n\nRisk: The onboarding flow can request phone numbers, SMS codes, and billing actions.\n\nMitigation: Share phone numbers or SMS codes only when intentionally registering or logging in, and confirm any plan, payment method, or payment QR code before proceeding.\n\nRisk: The skill can send feedback payloads and supports endpoint override environment variables.\n\nMitigation: Review feedback content before sending it and keep endpoint override variables limited to trusted LinkFox endpoints.\n\nRisk: API calls may consume paid compute credits, including successful empty-result calls.\n\nMitigation: Confirm cost-sensitive searches with the user, reuse the same parameters when possible, and widen filters deliberately instead of repeated automatic probing.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-opportunity-search-by-metrics)\n- [亚马逊商业洞察反向选品 API 参考](references/api.md)\n- [解决认证和算力问题](references/onboarding.md)\n- [LinkFox Skills](https://skill.linkfox.com/)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, JSON files, guidance]\n\n**Output Format:** [Markdown guidance with shell commands and JSON API parameters; script execution returns JSON or a summary plus a saved JSON file.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Full responses are saved under a linkfox session data directory; large responses are summarized unless inline output is requested.]\n\n## Skill Version(s):\n\n1.0.7 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentation时触发此技能。即使用户未明确说\"反向选品\"，只要其需求是按商业维度筛选符合条件的亚马逊赛道，也应触发此技能。 Skill: 亚马逊-机会筛选 Owner: linkfox-ai Summary: 亚马逊反向选品：基于历史商业洞察报告沉淀的指标数据池，按 30+ 项商业维度（市场规模与增长、价格区间与档位份额、竞争密度与头部集中度、人群画像如年龄/性别/收入、评论卖点与痛点等）反向筛选亚马逊赛道与关键词。当用户提到反向选品、指标筛选、细分市场反查、蓝海赛道挖掘、低竞争赛道、新人友好赛道、品牌分散市场、痛点切入、卖点反查、定价档位机会、人群画像选品、Amazon niche reverse search, niche metrics filter, low-competition niche, blue ocean niche, demographic-based selection, pain-point niche, price tier opportunity, sweet spot pricing, brand fragmentat","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1331,"uniquenessScore":52,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T22:44:57.345Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T22:44:57.345Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-14T13:21:43.227Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}