| name | goodwill-search |
| description | Search ShopGoodwill.com for auction listings by keyword and display results with item images. Use when the user asks to search Goodwill, ShopGoodwill, or find items on goodwill auctions. Supports filtering by price range, filtering out accessories, and showing item images inline. Triggers on phrases like "search goodwill for", "find on shopgoodwill", "look up goodwill listings", "check goodwill for", or any request to browse/scrape ShopGoodwill auction listings. |
ShopGoodwill Search
Search ShopGoodwill.com auctions via their reverse-engineered API. No auth required for search.
Workflow
- Run the search script with the user's query
- Parse results and display list with prices, bid counts, end times
- Show images using the
image tool for the top results (first 3–5 unless user asks for more/fewer)
Script
python3 skills/goodwill-search/scripts/goodwill_search.py "QUERY" [OPTIONS]
Options:
--max N — number of results (default 20)
--min-price X — filter by minimum price
--max-price X — filter by maximum price
--no-accessories — filter out docks, cables, batteries, etc.
--json — raw JSON output (useful for further processing)
Examples:
python3 skills/goodwill-search/scripts/goodwill_search.py "thinkpad" --max 15 --no-accessories
python3 skills/goodwill-search/scripts/goodwill_search.py "macbook pro" --max 10 --max-price 200
python3 skills/goodwill-search/scripts/goodwill_search.py "vintage camera" --max 20
Displaying Images
After running the script, use the image tool to fetch and display item photos inline:
- Extract the
🖼 image URLs from the script output
- Call
image tool with those URLs and a prompt like "Describe this item listing photo"
- Show images for the top 3–5 results by default (or as requested)
Notes
- API endpoint:
POST https://buyerapi.shopgoodwill.com/api/Search/ItemListing
- The script fixes backslash path separators in image URLs automatically
- End times are in Pacific Time (naive, no TZ info from API)
remainingTime field gives human-friendly countdown (e.g. "1d 3h")
- Results sorted by soonest-ending first (sortColumn=1)
- If you need raw item data (for bid sniping, price analysis, etc.), use
--json