res-price-compare

Price Comparison — Polish Market

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "res-price-compare" with this command: npx skills add molechowski/claude-skills/molechowski-claude-skills-res-price-compare

Price Comparison — Polish Market

Iterative 5-round product price research on the Polish e-commerce market with warranty verification, shipping costs, and B2B analysis.

IMPORTANT: Load references/polish-market.md at startup — it contains the shop database, price comparators, and search patterns.

Architecture

Tool Purpose Cost

WebSearch

Search for shops, prices, offers Free

WebFetch

Verify prices on shop pages (primary) Free

scrapling

Fallback for sites that block WebFetch Free

No xAI — price comparison doesn't need X/Twitter.

Requirements

No external dependencies required. Skill runs on built-in Claude Code tools.

Optional dependencies:

  • scrapling — fallback for sites that block WebFetch (403, CAPTCHA, empty responses). Install: uv tool install 'scrapling[all]'

  • uv — to run uv run --with openpyxl python3 -c "..." for XLSX export

Workflow Overview

Step Action Purpose

1 Parse query PRODUCT, BUYER_TYPE, CATEGORY

2 Round 1: Discovery Ceneo, Allegro, Amazon.pl, general and specialist shops

3 Gap analysis Missing shops, unverified prices, missing data

4 Round 2: WebFetch shops Confirm prices, stock levels, shipping

5 Round 3: Warranty and shipping Verify warranty type, delivery costs

6 Round 4: B2B and distributors B2B portals, official distributors, statutory warranty

7 Round 5: Final verification Re-check cheapest, stock, coupons

8 Synthesis Comparison table, recommendation, summary

9 Export TXT, XLSX, HTML on request

10 Expert mode Answers from cache, no new searches

WebFetch with Scrapling Fallback

Every WebFetch call in this skill follows a two-tier pattern:

Try WebFetch first (fast, no file I/O):

WebFetch(url, prompt)

If WebFetch fails (403, empty content, CAPTCHA page, or blocked response), retry using the auto-escalation protocol from cli-web-scrape:

  • scrapling extract get "URL" /tmp/scrapling-fallback.md → Read → validate content

  • If content is thin (JS-only shell, no data, mostly nav links) → scrapling extract fetch "URL" /tmp/scrapling-fallback.md --network-idle --disable-resources → Read → validate

  • If still blocked → scrapling extract stealthy-fetch "URL" /tmp/scrapling-fallback.md --solve-cloudflare

  • All tiers fail → skip shop and label "scrapling blocked"

Detection heuristics for blocked/thin responses:

  • HTTP 403 or "access denied" in response

  • Response body is empty or contains only navigation/cookie banners

  • Response contains CAPTCHA challenge (reCAPTCHA, hCaptcha, Cloudflare challenge page)

  • Response is a "please enable JavaScript" page or JS-disabled warning

  • HTTP 200 but no prices, specs, or product names — only nav links and footer (JS-rendered SPA)

If scrapling is not installed, fall back to the original behavior: skip the shop and label "WebFetch blocked".

Step 1: Parse Query

Extract from user query:

1a. PRODUCT

Product name to search. Include model, variant, part number.

1b. BUYER_TYPE

Type Detection Consequences

B2C "for home", "personal", no indication Statutory warranty 24 mo. + voluntary warranty

B2B "for company", "VAT invoice", "business", "B2B" Statutory warranty may be excluded, manufacturer warranty is critical

Default: B2B (safer assumption — triggers more analysis)

1c. CATEGORY

Auto-detect based on product name. Load the appropriate specialist shop list from references/polish-market.md :

Category Detection Patterns Examples

VoIP/Telephony Yealink, Grandstream, Fanvil, SIP, DECT, VoIP Yealink W76P

IT/Networking MikroTik, Ubiquiti, switch, router, AP, firewall MikroTik hAP ax3

Electronics monitor, laptop, computer, printer, tablet Dell U2723QE

Office chair, desk, shredder, projector Ergohuman Elite

General (no match) Nespresso Vertuo

Step 2: Round 1 — Discovery

Query Generation

Generate 6-8 parallel queries:

  • Ceneo: site:ceneo.pl "{PRODUCT}"

  • Allegro: site:allegro.pl "{PRODUCT}"

  • Amazon.pl: site:amazon.pl "{PRODUCT}"

  • General prices: "{PRODUCT}" cena kupić

  • Specialist shops: "{PRODUCT}" sklep (from category list)

  • Price comparator: "{PRODUCT}" porównanie cen

  • Reviews: "{PRODUCT}" opinie recenzje

  • B2B: "{PRODUCT}" dystrybutor hurtownia (if BUYER_TYPE = B2B)

Parallel Execution

Run all WebSearch queries simultaneously (parallel tool calls).

Internal Notes After Round 1

Record (internally, NOT in output):

SHOPS_FOUND: [list of shops with prices] SHOPS_MISSING: [from references/polish-market.md, not found] PRICES_TO_VERIFY: [prices from snippets — need WebFetch] WARRANTY_TO_CHECK: [shops without warranty type info] LEADS: [URLs worth checking via WebFetch in Round 2]

Step 3: Gap Analysis

After Round 1, perform gap analysis:

Gap Check Action

No comparator data Do we have Ceneo data? If not → WebFetch ceneo.pl

No specialist shops How many shops from category in polish-market.md? Search for missing ones

Prices from snippets only Any price confirmed via WebFetch? Plan WebFetch for top 10

No warranty data How many shops have warranty type info? Plan verification

No shipping data How many shops have delivery costs? Plan WebFetch of shipping pages

No marketplace data Were Allegro / Amazon checked? Additional queries

Plan Round 2

Select top 8-12 URLs for WebFetch verification. Priority:

  • Cheapest offers (price verification)

  • Ceneo (lists many shops at once)

  • Specialist shops without price

  • Pages with warranty information

Step 4: Round 2 — WebFetch Shops

Rules

  • Never repeat queries from Round 1

  • WebFetch specific product pages — not homepages

  • In parallel — run 4-6 WebFetch simultaneously

  • Maximum 8-12 WebFetch in this round

Execution

For each URL from the list, apply the WebFetch with Scrapling Fallback pattern:

WebFetch(url, "Podaj: 1) dokładną cenę brutto, 2) dostępność/stan magazynowy, 3) koszty wysyłki, 4) informacje o gwarancji (producenta czy sprzedawcy)")

If WebFetch returns 403, empty content, CAPTCHA, or a blocked response, follow the auto-escalation protocol (HTTP → validate content → Dynamic → Stealthy). Extract the same data points from the scrapling output.

If Ceneo is available, WebFetch the Ceneo page first — it provides a list of many shops at once.

Confidence Update

Source Price Confidence

WebSearch snippet LOW — price may be outdated

Ceneo listing MEDIUM — aggregator, but delays

WebFetch of shop page HIGH — directly confirmed

Scrapling fallback of shop page HIGH — directly confirmed (same as WebFetch)

Step 5: Round 3 — Warranty and Shipping

Goal

For each shop, establish:

  • Warranty type: manufacturer / distributor / seller / unknown

  • Shipping costs: courier, Paczkomat, free shipping (threshold)

  • Delivery time: 24h, 48h, on order

Where to Look for Warranty

  • Product page — "Gwarancja" (Warranty) or "Informacje dodatkowe" (Additional info) section

  • Shop terms of service — search for "gwarancja", "gwarant", "rękojmia"

  • Warranty card — PDF or description in specs

  • WebSearch: site:{shop} gwarancja or site:{shop} regulamin

Warranty Classification

Indicator Type

"gwarancja producenta", "producent: [brand]" MANUFACTURER

"gwarancja dystrybutora", distributor name as guarantor DISTRIBUTOR

"gwarantem jest [shop name]", "gwarancja [shop]" SELLER

No information UNKNOWN

Load references/warranty-guide.md if deeper B2B or statutory warranty analysis is needed.

Shipping Costs

WebFetch the "Dostawa" (Delivery) or "Wysyłka" (Shipping) page for top 10 shops, using the WebFetch with Scrapling Fallback pattern:

WebFetch(shipping_url, "Podaj wszystkie opcje dostawy z cenami: kurier, Paczkomat, Poczta Polska, odbiór osobisty, darmowa wysyłka (od jakiej kwoty)")

On blocked response, follow the auto-escalation protocol (HTTP → validate content → Dynamic → Stealthy) and extract delivery options from the scrapling output.

Step 6: Round 4 — B2B and Distributors

Goal

  • Identify official distributors of the brand in Poland

  • B2B portals — wholesale prices, business terms

  • B2B statutory warranty — do shops exclude statutory warranty for businesses

Queries

WebSearch: "{BRAND} dystrybutor Polska" WebSearch: "{BRAND} importer Polska" WebSearch: "{BRAND} autoryzowany sprzedawca" WebSearch: "{PRODUCT}" site:ab.pl OR site:action.pl OR site:also.pl

B2B Statutory Warranty Verification

For top 5 cheapest shops, apply the WebFetch with Scrapling Fallback pattern:

WebFetch(terms_url, "Czy regulamin wyłącza rękojmię dla przedsiębiorców? Szukaj: Art. 558 KC, wyłączenie rękojmi, przedsiębiorca, firma")

On blocked response, follow the auto-escalation protocol (HTTP → validate content → Dynamic → Stealthy) and search the scrapling output for statutory warranty exclusion clauses.

Distribution Chain

Establish the chain: Manufacturer → PL Importer → Distributor → Reseller → Customer

For each distributor record:

  • Company name

  • Role (importer / distributor / authorized reseller)

  • Website

  • Service contact details (if available)

Step 7: Round 5 — Final Verification

Goal

Final verification before synthesis. Verification only, no discovering new shops.

Checklist

  • Re-check top 3 cheapest — WebFetch again, price may have changed

  • Stock — is the product in stock (not "on order")

  • Coupons/promotions — "{PRODUCT}" kupon zniżka promocja

  • Alternative offers on Allegro — check 2-3 offers from different sellers

  • Compare Allegro vs direct shop — price, warranty, safety

Budget

Maximum 6-8 WebFetch in this round.

Step 8: Synthesis

Main Table

Sort by total price (price + cheapest shipping):

| Shop | Gross Price | Shipping (cheapest) | Price+Shipping | Mfr. Warranty | Availability

--+--------------------+-------------+---------------------+----------------+-------------------+------------------ 1 | shop.pl | 489.00 PLN | InPost courier 12 | 501.00 PLN | YES — service.pl | Yes (1987 pcs) 2 | morele.net | 496.30 PLN | FREE from 399 PLN | 496.30 PLN | YES — "Manufacturer" | Yes (11 pcs)

Warranty Legend

YES = confirmed manufacturer warranty (verification source) NO = seller's own warranty (not manufacturer) ? = not verified at source n/a = no data

Report Sections

TOP 3 — with confirmed manufacturer warranty

  • Table: Shop, Price incl. shipping, Warranty, Notes

Full comparison table

  • All found shops, sorted by price+shipping

Allegro — offers

  • Seller, Price, Manufacturer warranty, Link

Warranty — key findings

  • Manufacturer policy (global)

  • PL Distributor (extended warranty?)

  • Service center in Poland

  • Manufacturer vs seller warranty (shop list)

  • B2B: statutory warranty and its exclusion

Official distributors in Poland

  • Table: Company, Role, Website

Product specifications

  • Key technical parameters

Purchase recommendation

  • For B2C: top 3 with price, warranty, reasoning

  • For B2B: top 3 considering statutory warranty and manufacturer warranty

  • What to avoid and why

Confidence Indicators

Label each piece of information:

Confidence When

[HIGH] Confirmed via WebFetch or scrapling from shop page

[MEDIUM] From Ceneo/comparator or single source

[LOW] From WebSearch snippets only

Step 9: Export

Generate files on user request:

TXT

Fixed-width column file, same format as synthesis tables.

XLSX

Load references/export-formats.md and generate an Excel spreadsheet with:

  • Conditional coloring (green=manufacturer warranty, red=seller)

  • Filters and frozen headers

  • Multiple sheets (comparison, warranty, distributors, specifications)

HTML

Load references/export-formats.md and generate standalone HTML with:

  • Dark theme, embedded CSS

  • Tabs for report sections

  • Colored badges for warranty types

  • Responsive layout

Step 10: Expert Mode

After delivering the report, switch to Expert Mode:

  • Answer questions from collected data

  • No new searches unless user requests

  • Compare offers, advise

New search triggers (exit Expert Mode):

  • "Search again..."

  • "Find more about..."

  • "Update the data..."

  • "Check also..."

Parameters

Always deep mode — 5 rounds, 25-40 shops, 20-30 WebFetch.

Parameter Value

Rounds 5

Shops 25-40

WebFetch 20-30

Constraints (DO/DON'T)

DO:

  • Always start from Ceneo.pl — best price comparator in PL

  • WebFetch to verify prices — search snippets are unreliable

  • Distinguish manufacturer warranty from seller warranty — this is critical

  • Include shipping costs in ranking — price without shipping is incomplete

  • Search for official brand distributors in Poland

  • For B2B: check statutory warranty exclusion in terms of service

  • Run WebSearch in parallel (parallel tool calls)

  • Cite the source of each piece of information (shop URL)

  • Load references/polish-market.md at startup

DON'T:

  • Don't trust snippet prices without WebFetch verification

  • Don't skip shipping costs in comparison

  • Don't assume "24 months warranty" = manufacturer warranty

  • Don't repeat queries from previous rounds

  • Don't discover new shops in Round 5 — verification only

  • Don't quote more than 125 characters from a single source

  • Don't run queries sequentially when they can be parallel

Error Handling

Error Resolution

WebFetch 403/CAPTCHA/empty Follow auto-escalation protocol from cli-web-scrape: HTTP tier → validate content → Dynamic tier → Stealthy tier. If scrapling unavailable or all tiers fail, skip shop and label "blocked"

Ceneo returns no results Search directly in shops from polish-market.md

Allegro blocks scraping Use WebSearch site:allegro.pl , not WebFetch

No price on page Label "n/a", skip in ranking

Conflicting prices (snippet vs WebFetch) Always trust WebFetch (or scrapling if WebFetch was blocked)

References

  • references/polish-market.md — Shop and comparator database (loaded ALWAYS)

  • references/warranty-guide.md — Statutory vs voluntary warranty, Polish law, B2B checklist

  • references/export-formats.md — TXT/XLSX/HTML templates with generation instructions

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

res-deep

No summary provided by upstream source.

Repository SourceNeeds Review
General

doc-daily-digest

No summary provided by upstream source.

Repository SourceNeeds Review
General

doc-vault-project

No summary provided by upstream source.

Repository SourceNeeds Review
General

doc-project

No summary provided by upstream source.

Repository SourceNeeds Review