Sign inTry it

Search recipes on Madens Verden.

Searches Madens Verden, the Danish recipe site, like its search page: recipe title, short teaser text and link. First results page only (about 20 recipes). Returns an empty list when nothing matches.

No reports yetRead-only, no login
Site
Madens Verden, Denmark
Version
v1
Runs, last 7 days
No reports yet
sha256
a09150c6be44…

Run it with your agent

after installing Wield

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

“Search recipes on Madens Verden.”

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

{
  "tool": "run",
  "arguments": {
    "recipe_id": "madensverden.dk/search-recipes",
    "params": {
      "query": "æbleskiver"
    }
  }
}

Requests

sent from your browser, in order
  1. 1GET/?sServer-rendered WordPress search results page /?s=…; read-only GET. Each recipe is an article.post; its title is a.entry-title-link and its teaser is the first paragraph in .entry-content.

Parameters

from your agent
querystringrequiredDish or ingredient in Danish, e.g. 'æbleskiver', 'boller i karry', 'hakkebøf'

Returns

to your agent
querystring
recipesobject[]teaser, title, url

Where it can send

  • madensverden.dk

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.recipes) > `0`
  • length(output.recipes[?starts_with(url, 'https://madensverden.dk/')]) == length(output.recipes)
  • length(output.recipes[?title != `null`]) == length(output.recipes)

Raw recipe

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

Check it yourself
curl -s https://wield.run/api/v1/recipes/madensverden.dk/search-recipes | shasum -a 256
# a09150c6be442080b5912b7733630aea34dd12c5c3dd95913c33120b2b7c46fa
madensverden.dk/search-recipes.json, v1
{
  "description": "Searches Madens Verden, the Danish recipe site, like its search page: recipe title, short teaser text and link. First results page only (about 20 recipes). Returns an empty list when nothing matches.",
  "effect": "read",
  "id": "madensverden.dk/search-recipes",
  "keywords": [
    "madens verden",
    "madensverden",
    "opskrifter",
    "opskrift",
    "mad",
    "madopskrifter",
    "kage",
    "dessert",
    "æbleskiver",
    "recipes",
    "danish food",
    "cooking",
    "denmark",
    "dansk"
  ],
  "output": {
    "schema": {
      "properties": {
        "query": {
          "type": "string"
        },
        "recipes": {
          "items": {
            "properties": {
              "teaser": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "title": {
                "type": "string"
              },
              "url": {
                "type": "string"
              }
            },
            "required": [
              "title",
              "url"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "query",
        "recipes"
      ],
      "type": "object"
    },
    "value": "{query: params.query, recipes: steps.search.recipes[?title != `null` && href != `null`].{title: title, teaser: teaser || `null`, url: (starts_with(href, 'http') && href) || join('', ['https://madensverden.dk', href])}}"
  },
  "params": {
    "additionalProperties": false,
    "properties": {
      "query": {
        "description": "Dish or ingredient in Danish, e.g. 'æbleskiver', 'boller i karry', 'hakkebøf'",
        "maxLength": 100,
        "minLength": 2,
        "type": "string"
      }
    },
    "required": [
      "query"
    ],
    "type": "object"
  },
  "provenance": {
    "method": "har",
    "notes": "GET /?s=<query> returns 200 HTML with the search results as WordPress article.post entries (21 on the page). Title from a.entry-title-link, link href is absolute, teaser is the first paragraph of .entry-content. The page's menus and JSON-LD are not read. No cross-site hosts are called.",
    "recorded_at": "2026-11-08T12:20:00.000Z",
    "recorded_by": "wield-forge (claude-haiku agent)"
  },
  "requires_login": false,
  "schema": "https://wield.run/schema/recipe/v1.json",
  "site": {
    "country": "DK",
    "id": "madensverden.dk",
    "language": "da",
    "name": "Madens Verden",
    "origin": "https://madensverden.dk",
    "origins": [
      "https://madensverden.dk"
    ]
  },
  "steps": [
    {
      "description": "Server-rendered WordPress search results page /?s=…; read-only GET. Each recipe is an article.post; its title is a.entry-title-link and its teaser is the first paragraph in .entry-content.",
      "expect": {
        "content_type": "html",
        "status": [
          200
        ]
      },
      "extract": {
        "html_items": {
          "recipes": {
            "fields": {
              "href": {
                "attr": "href",
                "selector": "a.entry-title-link"
              },
              "teaser": {
                "selector": ".entry-content p"
              },
              "title": {
                "selector": "a.entry-title-link"
              }
            },
            "max": 40,
            "selector": "article.post"
          }
        }
      },
      "id": "search",
      "request": {
        "headers": {
          "Accept": "text/html"
        },
        "method": "GET",
        "query": {
          "s": "{{params.query}}"
        },
        "url": "/"
      }
    }
  ],
  "task": "Search recipes on Madens Verden",
  "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.recipes) > `0`",
      "length(output.recipes[?starts_with(url, 'https://madensverden.dk/')]) == length(output.recipes)",
      "length(output.recipes[?title != `null`]) == length(output.recipes)"
    ],
    "example_params": {
      "query": "æbleskiver"
    },
    "max_ms": 5000
  },
  "version": 1
}