Price Comparison logo

Price Comparison

Organization
brightdata
price-comparison

Shopping price comparison using Bright Data's web scraping infrastructure. Finds where a product is sold, for how much, and whether it's in stock — across Amazon, Walmart, eBay, Best Buy, Google Shopping, and any retailer URL — then ranks the offers into a single buy-recommendation table. Use this skill when the user wants to compare prices, find the cheapest place to buy something, do a price check, see "how much does X cost on Amazon vs Walmart", track an item's price, or decide where to buy a product. Handles product names, ASINs, and direct URLs, and is region-aware (country affects price, availability, and which retailers apply). This is consumer purchase-decision research — for analyzing a competitor's pricing *strategy*, use competitive-intel instead.

Overview

Publisherbrightdata
Repositoryskills
Skill nameprice-comparison
Stars
268
Forks
36
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by brightdata on GitHub. Read the source before you install it.

Installation

Install the Price Comparison AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/brightdata/skills/tree/main/skills/price-comparison
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/brightdata/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/skills/price-comparison .claude/skills/price-comparison
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Price Comparison in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Price Comparison on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Price Comparison is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Price Comparison

Find the best place to actually buy a product — lowest price, in stock, from a reputable seller — using live retailer data, not stale training knowledge. Combines the Bright Data CLI (bdata) for collection with a normalization + ranking layer to deliver a single cited comparison table and a clear buy recommendation.

Never quote prices from training knowledge. Prices and stock change hourly. Always pull live data first, then compare. If a source fails, say so — never fill a price gap with a guess.

Prerequisites

  1. Bright Data CLI installed:
    bash
    curl -fsSL https://cli.brightdata.com/install.sh | bash
  2. One-time login completed:
    bash
    bdata login    # or: bdata login --device  (SSH / headless)

Verify before collecting:

bash
if ! command -v bdata >/dev/null 2>&1; then
    echo "bdata CLI not installed — see skills/bright-data-best-practices/references/cli-setup.md"
elif ! bdata zones >/dev/null 2>&1; then
    echo "bdata not authenticated — run: bdata login"
fi

Halt and route to setup if either check fails.

Core Workflow

  1. Clarify scope — What product (name, ASIN, or URL)? Which retailers (default: Amazon + Google Shopping)? Which country/region (default: US — it changes price, currency, availability, and which retailers apply)? What matters beyond price (reviews, shipping/Prime, new vs refurbished)?
  2. Resolve, then collect — If you only have a product name, use a retailer's discover_by_* scraper and bdata search --type shopping to resolve it to concrete product URLs/offers, then pull each retailer's structured data. Parallelize independent calls.
  3. Normalize — Collapse every result into the single offer schema in references/output-and-pricing.md before comparing. Convert all prices to one currency and note the rate + date used.
  4. Rank & flag — Sort by total landed cost (price + shipping). Flag out-of-stock, refurbished/used, and third-party-seller offers — a lower price that's unavailable or used is not the winner by default.
  5. Deliver — Produce the comparison table (Output A), then the explicit "Best buy" recommendation. Every report names the cheapest in-stock option and any meaningful trade-offs.

Data Collection Rules

  • Resolve names to URLs first. You rarely have clean URLs up front. Use a retailer's keyword discovery scraper and bdata search "<product>" --type shopping --json to find the exact items, then feed those URLs to product pipelines.
  • Prefer pipelines over scraping for supported retailers. Amazon, Walmart, eBay, Best Buy, Google Shopping all have pre-built scrapers that return clean price/availability/rating JSON. Never bdata scrape amazon.com — Amazon blocks scrapers; the pipeline bypasses that reliably.
  • Look up scrapers, never guess them. bdata pipelines search, then bdata pipelines info <dataset_id> <method>, then bdata pipelines run. Never guess a dataset_id or field names. Full workflow: the brightdata-cli skill, pipelines reference.
  • Always pass --json when you need to parse or compare output.
  • Be cost-efficient — a standard comparison is ~3–8 bdata calls, not 50. Pull the offers the user asked about, not every seller on the page.
  • Parallelize independent calls across multiple Bash tool calls in one response — don't wait for Amazon before starting Walmart.
  • Every price needs a source URL and a collection timestamp. No unattributed or undated prices, ever.
  • Never fabricate a price or fill gaps. If a retailer returns nothing, report it in "Gaps & caveats".

Retailer Modules

Pick the retailers that fit the product and region. US electronics → Amazon + Best Buy + Walmart + Google Shopping; marketplace/used → eBay; non-US → confirm the local Amazon domain and add region-relevant retailers.

Supported retailer: by product URL

bash
bdata pipelines search "<retailer> product"        # pick the dataset_id for the right domain
bdata pipelines info <dataset_id> collect_by_url   # check required fields
bdata pipelines run <dataset_id> collect_by_url "<product-url>" -o <retailer>.json

One record per URL, with price, title, availability, rating and seller. Pass several URLs from the same retailer in one run. Use the right retailer domain for the region (for Amazon: amazon.com, amazon.de, amazon.co.uk, …).

Discover by keyword (when you only have a name)

bash
bdata pipelines info <dataset_id>                  # look for a discover_by_* method
bdata pipelines info <dataset_id> <method>         # see its input fields
bdata pipelines run <dataset_id> <method> --<field> "<product name>" --limit-per-input 5

Resolve the right product URL from the results, then run collect_by_url on it. Every returned record is billed, so keep --limit-per-input small.

Google Shopping — cross-retailer overview

bash
bdata pipelines search "google shopping"
bdata pipelines run <dataset_id> collect_by_url "<google-shopping-product-url>" -o gshopping.json

Best for a fast multi-seller view once you have a Shopping product URL. To find that URL (and a quick price spread) from a name, use SERP shopping:

bash
bdata search "iPhone 17 Pro 256GB" --type shopping --country us --json

Unknown / local retailer — scrape the page

bash
bdata scrape "https://retailer.example/product-page"

Then extract price, currency, and stock from the markdown. Use this for local retailers without a dedicated pipeline (e.g. regional electronics chains).

Never hardcode a scraper. Pick the dataset_id from bdata pipelines search and the input fields from bdata pipelines info. Two scrapers can share a name, so check the domain. Missing or unknown fields fail before anything is billed.

Region Handling

  • Country changes everything — price, currency, stock, and which retailers exist. Always confirm the region before running; default US only if the user doesn't say.
  • Pass --country <code> to bdata search for localized SERP/shopping results (e.g. --country il for Israel, de, uk).
  • Use the local Amazon domain in product URLs. Many regions (e.g. Israel) buy via amazon.com with international shipping and via local chains — cover both and label shipping/import implications.
  • Normalize currencies to one display currency, state the rate and the date you used, and keep each offer's original-currency price in the dataset.

Output

Read references/output-and-pricing.md for:

  • The normalized offer record schema (row shape for both the table and the dataset output).
  • Total-cost ranking rules (price + shipping + import/tax where known; in-stock and condition gates before declaring a winner).
  • Currency normalization conventions.
  • Output templates — A (comparison table + recommendation), B (structured dataset), C (both).

Output Quality Standards

  1. Every price has a source URL and a timestamp — no undated, unattributed prices.
  2. Always show availability next to price — a cheaper out-of-stock offer is not the winner. Flag refurbished/used/third-party explicitly.
  3. Name one "Best buy" — the cheapest in-stock, comparable-condition option, with the runner-up and why someone might pick it instead.
  4. Be honest about gaps — list retailers that returned nothing or were gated this run. Note when a price looks stale or is a "from" range.
  5. State currency and region — "$ USD · region: US" or the rate used for conversions.
  6. Never estimate a missing price. Report the gap; don't fill it.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Price Comparison AI skill do?

Shopping price comparison using Bright Data's web scraping infrastructure. Finds where a product is sold, for how much, and whether it's in stock — across Amazon, Walmart, eBay, Best Buy, Google Shopping, and any retailer URL — then ranks the offers into a single buy-recommendation table. Use this skill when the user wants to compare prices, find the cheapest place to buy something, do a price check, see "how much does X cost on Amazon vs Walmart", track an item's price, or decide where to buy a product. Handles product names, ASINs, and direct URLs, and is region-aware (country affects pri...

Why use Price Comparison on TypingMind?

Because you install it once and use it with any model. Price Comparison is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Price Comparison in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/brightdata/skills/tree/main/skills/price-comparison. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Price Comparison?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Price Comparison?

As many as you like. As long as a model supports skills, you can use Price Comparison with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Price Comparison AI skill free?

Yes. It is published on GitHub by brightdata under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇