Sign inTry it

Search electronics on Kjell & Company.

Searches kjell.com, the Swedish electronics retailer, like its search page: product name, current price in SEK, average rating and product link. First page of results only (product tiles, not categories or brands).

No reports yetRead-only, no login
Site
Kjell & Company, Sweden
Version
v1
Runs, last 7 days
No reports yet
sha256
08cae4ff6295…

Run it with your agent

after installing Wield

Ask in plain words. Your agent finds this recipe and calls it:

“Search electronics on Kjell & Company.”

Read-only: it changes nothing on the site. No login needed.

{
  "tool": "run",
  "arguments": {
    "recipe_id": "kjell.com/search-products",
    "params": {
      "query": "mobilskal"
    }
  }
}

Requests

sent from your browser, in order
  1. 1GET/se/sok?qServer-rendered search results page /se/sok?q=...; read-only GET. Product tiles carry data-test-id='product-card'; name is the tile heading, the link is in data-test-id='list-item-link'.

Parameters

from your agent
querystringrequiredProduct term in Swedish or English, e.g. 'mobilskal', 'headset', 'laddare'

Returns

to your agent
productsobject[]name, price_sek, rating, ratings_count, url
querystring

Where it can send

  • www.kjell.com

Anything else is blocked by the extension.

Reads from your session

Nothing. Your browser attaches the site's cookies by itself.

Used only in requests to the addresses on the left. Never sent to wield.run or your agent.

Checks

a run passes when
  • length(output.products) > `0`
  • length(output.products[?price_sek != `null`]) > `0`
  • length(output.products[?starts_with(url, 'https://www.kjell.com/se/produkter/')]) == length(output.products)

Raw recipe

Served as canonical JSON from /api/v1/recipes/kjell.com/search-products, so its sha256 matches the ETag and the index.

Check it yourself
curl -s https://wield.run/api/v1/recipes/kjell.com/search-products | shasum -a 256
# 08cae4ff62954a00442f48c47022349f91ca877773c6b0c2962dc87114185ee5
kjell.com/search-products.json, v1
{
  "description": "Searches kjell.com, the Swedish electronics retailer, like its search page: product name, current price in SEK, average rating and product link. First page of results only (product tiles, not categories or brands).",
  "effect": "read",
  "id": "kjell.com/search-products",
  "keywords": [
    "kjell",
    "kjell.com",
    "kjell & company",
    "elektronik",
    "sök",
    "mobilskal",
    "headset",
    "laddare",
    "sverige",
    "sweden",
    "electronics",
    "phone accessories",
    "chargers",
    "gadgets"
  ],
  "output": {
    "schema": {
      "properties": {
        "products": {
          "items": {
            "properties": {
              "name": {
                "type": "string"
              },
              "price_sek": {
                "description": "Current price in SEK, e.g. 199 or 399.9 (the site writes 399:90)",
                "type": [
                  "number",
                  "null"
                ]
              },
              "rating": {
                "description": "Average stars, 0 to 5",
                "type": [
                  "number",
                  "null"
                ]
              },
              "ratings_count": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "url": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "url"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "query": {
          "type": "string"
        }
      },
      "required": [
        "query",
        "products"
      ],
      "type": "object"
    },
    "value": "{query: params.query, products: steps.search.products[?name != `null` && href != `null`].{name: name, price_sek: (price && to_number(replace(replace(price, ':-', ''), ':', '.'))) || `null`, rating: (rating_label && to_number(split(rating_label, ' ')[1])) || `null`, ratings_count: (rating_label && to_number(split(rating_label, ' ')[4])) || `null`, url: join('', ['https://www.kjell.com', href])}}"
  },
  "params": {
    "additionalProperties": false,
    "properties": {
      "query": {
        "description": "Product term in Swedish or English, e.g. 'mobilskal', 'headset', 'laddare'",
        "maxLength": 100,
        "minLength": 2,
        "type": "string"
      }
    },
    "required": [
      "query"
    ],
    "type": "object"
  },
  "provenance": {
    "method": "har",
    "notes": "GET /se/sok?q=<query> returns 200 HTML (about 1 MB) with product tiles marked data-test-id='product-card'. Name is the h3 heading, link is the anchor in data-test-id='list-item-link', price is the first <p> ('199:-'), rating is the aria-label 'Betyg: 4.5 av 5, 28 omdömen'. Category and brand tiles are different markup and are not read. Hashed classes were avoided.",
    "recorded_at": "2026-11-08T16:40:00.000Z",
    "recorded_by": "wield-forge (claude-haiku agent)"
  },
  "requires_login": false,
  "schema": "https://wield.run/schema/recipe/v1.json",
  "site": {
    "country": "SE",
    "id": "kjell.com",
    "language": "sv",
    "name": "Kjell & Company",
    "origin": "https://www.kjell.com",
    "origins": [
      "https://www.kjell.com"
    ]
  },
  "steps": [
    {
      "description": "Server-rendered search results page /se/sok?q=...; read-only GET. Product tiles carry data-test-id='product-card'; name is the tile heading, the link is in data-test-id='list-item-link'.",
      "expect": {
        "content_type": "html",
        "status": [
          200
        ]
      },
      "extract": {
        "html_items": {
          "products": {
            "fields": {
              "href": {
                "attr": "href",
                "selector": "[data-test-id='list-item-link'] a"
              },
              "name": {
                "selector": "h3"
              },
              "price": {
                "selector": "p"
              },
              "rating_label": {
                "attr": "aria-label",
                "selector": "[aria-label^='Betyg']"
              }
            },
            "max": 60,
            "selector": "[data-test-id='product-card']"
          }
        }
      },
      "id": "search",
      "request": {
        "headers": {
          "Accept": "text/html"
        },
        "method": "GET",
        "query": {
          "q": "{{params.query}}"
        },
        "url": "/se/sok"
      }
    }
  ],
  "task": "Search electronics on Kjell & Company",
  "tos": {
    "notes": "Not reviewed. One search page per call, the same page a visitor loads. The site's terms on automated access were not checked.",
    "reviewed": false
  },
  "verify": {
    "checks": [
      "length(output.products) > `0`",
      "length(output.products[?price_sek != `null`]) > `0`",
      "length(output.products[?starts_with(url, 'https://www.kjell.com/se/produkter/')]) == length(output.products)"
    ],
    "example_params": {
      "query": "mobilskal"
    },
    "max_ms": 5000
  },
  "version": 1
}