UNPKG

@channel3/skills

Version:

Agent skills for product search, discovery, and API integration powered by Channel3

169 lines (115 loc) 6.74 kB
--- name: product-discovery description: | Use this skill when you need real product data to answer a user's question — finding products, comparing prices, recommending items, or checking availability across retailers. This skill gives you a search script that queries a catalog of millions of products and returns structured results. Trigger for: "find me X", "what's the best Y", "compare Z", "best X under $N", product recommendations, price lookups, "is this a good deal?", "where can I buy X", shopping queries, product comparisons, and any task where you need real product catalog data to answer the user. --- # Product Discovery You have access to a product search script that queries a catalog of millions of products across thousands of retailers. Use it whenever you need real product data to answer a user's question. ## Prerequisites - **API key:** This skill requires a `CHANNEL3_API_KEY` environment variable. Get a free key at [trychannel3.com](https://trychannel3.com). - **Dependencies:** `curl` and `jq` must be installed. ## Search Script **Location:** `product-discovery/scripts/search.sh` (relative to the skill root) Run it via the shell. The script requires `curl` and `jq`. ### Usage ``` search.sh [OPTIONS] "query text" ``` ### Options | Flag | Description | Example | |------|-------------|---------| | `-n NUM` | Number of results (default: 5, max: 30) | `-n 10` | | `-p MAX_PRICE` | Maximum price in dollars | `-p 100` | | `--min-price MIN` | Minimum price in dollars | `--min-price 50` | | `-g GENDER` | Gender filter (male/female/unisex) | `-g male` | | `-c CONDITION` | Product condition (new/refurbished/used) | `-c new` | | `-a AGE` | Comma-separated age groups (newborn/infant/toddler/kids/adult) | `-a "kids,toddler"` | | `--availability STATUS` | Comma-separated availability statuses (InStock/OutOfStock/PreOrder/BackOrder/LimitedAvailability/SoldOut/Discontinued) | `--availability "InStock"` | | `-i IMAGE_URL` | Search by image (visual similarity) | `-i "https://example.com/photo.jpg"` | | `-b BRAND_IDS` | Comma-separated brand IDs to include | `-b "brand_abc,brand_def"` | | `-w WEBSITE_IDS` | Comma-separated website IDs to include | `-w "website_abc"` | | `--categories IDS` | Comma-separated category IDs to include | `--categories "cat_abc"` | | `--exclude-brands IDS` | Comma-separated brand IDs to exclude | `--exclude-brands "brand_xyz"` | | `--exclude-websites IDS` | Comma-separated website IDs to exclude | `--exclude-websites "website_xyz"` | | `--exclude-categories IDS` | Comma-separated category IDs to exclude | `--exclude-categories "cat_xyz"` | | `--keyword-only` | Use exact keyword matching instead of semantic search | `--keyword-only` | | `--next TOKEN` | Pagination token from a previous search | `--next "tok_abc..."` | The query argument is optional when using `-i` for image-only search. Text and image can be combined. ### Examples ```bash # Basic text search search.sh "wireless noise cancelling headphones" # Price-filtered search search.sh -p 100 -n 10 "running shoes" # Price range search search.sh --min-price 50 -p 200 "winter boots" # Gendered search search.sh -g female -p 200 "winter jacket" # Condition filter search.sh -c used "macbook pro" # Kids products search.sh -a kids -p 50 "sneakers" # Only in-stock products search.sh --availability "InStock" "yoga mat" # Image-based visual similarity search search.sh -i "https://example.com/dress.jpg" # Combined text + image search search.sh -i "https://example.com/jacket.jpg" "similar but in blue" # Keyword-only (exact match, no semantic search) search.sh --keyword-only "Nike Air Max 90" # Paginate for more results search.sh --next "tok_abc123..." "running shoes" ``` ### Output Format The script outputs structured text, not raw JSON. Each product includes its ID, brands, and all merchant offers with prices and buy links: ``` Found 5 products (next_page: tok_abc123) 1. Nike Air Zoom Pegasus 41 ID: prod_abc123 Brands: Nike Offers: - nordstrom.com: $89.99 (InStock) https://buy.trychannel3.com/... - nike.com: $94.99 (InStock) https://buy.trychannel3.com/... 2. Adidas Ultraboost Light ID: prod_def456 Brands: Adidas Offers: - adidas.com: $97.00 (InStock) https://buy.trychannel3.com/... ``` If no results are found, the output is: `No products found.` If the API key is missing or invalid, the script prints instructions on how to get one. ## Workflow Patterns ### Find products User asks "find me running shoes under $100": 1. Run: `search.sh -p 100 "running shoes"` 2. Present the results as a clean numbered list with product name, price, merchant, and buy link. ### Compare products User asks "compare AirPods Pro vs Sony WF-1000XM5": 1. Run two searches: `search.sh -n 3 "AirPods Pro"` and `search.sh -n 3 "Sony WF-1000XM5"` 2. Build a markdown comparison table with columns for product, price, merchants, and availability. ### Best option under a budget User asks "what's the best laptop under $800": 1. Run: `search.sh -p 800 -n 10 "laptop"` 2. Review the results and recommend the top picks, explaining why based on the product details. ### Image-based search User shares an image URL and says "find me something like this": 1. Run: `search.sh -i "IMAGE_URL"` 2. Present visually similar products with prices and links. ### Get more results If the user wants more results after an initial search: 1. Copy the `next_page` token from the previous output. 2. Run: `search.sh --next "TOKEN" "original query"` 3. Present the additional results. ## How to Present Results to the User - Synthesize the script output into a clean response. Do NOT paste the raw script output. - Present products as a numbered list or markdown table — whichever fits the question better. - Always include: product name, price, merchant name, and the buy link URL. - For comparisons, use a markdown table with columns like Product, Price, Merchant, and Link. - If multiple merchants sell the same product at different prices, highlight the cheapest option. - Keep it concise — the user wants recommendations, not a data dump. ## About This Skill This skill queries the [Channel3](https://trychannel3.com) product catalog API (`api.trychannel3.com`). Search queries and any image URLs you provide are sent to this third-party API. Product buy links point to `buy.trychannel3.com`, which redirects to merchant sites with affiliate tracking. Avoid sending sensitive or private information in search queries. - **API docs:** [docs.trychannel3.com](https://docs.trychannel3.com) - **Source:** [github.com/channel3-ai/skills](https://github.com/channel3-ai/skills) - **Provider:** Channel3 ([trychannel3.com](https://trychannel3.com))