Sign inTry it

Search Server Fault questions.

Searches Server Fault, the Stack Exchange Q&A site for system administrators, like its search page: question title, link, excerpt, vote count and answer count. Returns the first results page only.

No reports yetRead-only, no login
Site
Server Fault, United States
Version
v1
Runs, last 7 days
No reports yet
sha256
3e48f7381998…

Run it with your agent

after installing Wield

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

“Search Server Fault questions.”

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

{
  "tool": "run",
  "arguments": {
    "recipe_id": "serverfault.com/search-questions",
    "params": {
      "query": "nginx proxy"
    }
  }
}

Requests

sent from your browser, in order
  1. 1GET/search?qServer Fault's search results page for the query. Each result is a div.s-post-summary card.

Parameters

from your agent
querystringrequiredWhat to search for, e.g. 'nginx proxy', 'dns record', 'docker network'

Returns

to your agent
itemsobject[]answers, excerpt, title, url, votes
querystring

Where it can send

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

Raw recipe

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

Check it yourself
curl -s https://wield.run/api/v1/recipes/serverfault.com/search-questions | shasum -a 256
# 3e48f73819989ca1b2b81684b3afc0c732a51c0f4ca9ccd49023f61d21c5fbce
serverfault.com/search-questions.json, v1
{
  "description": "Searches Server Fault, the Stack Exchange Q&A site for system administrators, like its search page: question title, link, excerpt, vote count and answer count. Returns the first results page only.",
  "effect": "read",
  "id": "serverfault.com/search-questions",
  "keywords": [
    "serverfault",
    "server fault",
    "serverfault.com",
    "sysadmin",
    "server",
    "nginx",
    "docker",
    "dns",
    "networking",
    "linux",
    "questions",
    "answers",
    "stack exchange",
    "devops"
  ],
  "output": {
    "schema": {
      "properties": {
        "items": {
          "items": {
            "properties": {
              "answers": {
                "description": "Number of answers, null when there are none",
                "type": [
                  "number",
                  "null"
                ]
              },
              "excerpt": {
                "description": "Start of the question text, may be truncated",
                "type": [
                  "string",
                  "null"
                ]
              },
              "title": {
                "type": "string"
              },
              "url": {
                "type": "string"
              },
              "votes": {
                "description": "Question score",
                "type": [
                  "number",
                  "null"
                ]
              }
            },
            "required": [
              "title",
              "url"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "query": {
          "type": "string"
        }
      },
      "required": [
        "query",
        "items"
      ],
      "type": "object"
    },
    "value": "{query: params.query, items: steps.search.entries[?title != `null` && href != `null`][].{title: title, url: join('', ['https://serverfault.com', href]), excerpt: excerpt, votes: to_number(votes), answers: to_number(answers)}}"
  },
  "params": {
    "additionalProperties": false,
    "properties": {
      "query": {
        "description": "What to search for, e.g. 'nginx proxy', 'dns record', 'docker network'",
        "maxLength": 100,
        "minLength": 2,
        "type": "string"
      }
    },
    "required": [
      "query"
    ],
    "type": "object"
  },
  "provenance": {
    "method": "har",
    "notes": "One GET to /search?q=<query>, which answers 200 HTML with server-rendered div.s-post-summary cards. Question links are relative and made absolute on serverfault.com. Layout matches the other Stack Exchange sites.",
    "recorded_at": "2026-11-08T16:23:25Z",
    "recorded_by": "wield-forge (claude-haiku agent)"
  },
  "requires_login": false,
  "schema": "https://wield.run/schema/recipe/v1.json",
  "site": {
    "country": "US",
    "id": "serverfault.com",
    "language": "en",
    "name": "Server Fault",
    "origin": "https://serverfault.com",
    "origins": [
      "https://serverfault.com"
    ]
  },
  "steps": [
    {
      "description": "Server Fault's search results page for the query. Each result is a div.s-post-summary card.",
      "expect": {
        "content_type": "html",
        "status": [
          200
        ]
      },
      "extract": {
        "html_items": {
          "entries": {
            "fields": {
              "answers": {
                "selector": "div.s-post-summary--stats-item.has-answers .s-post-summary--stats-item-number"
              },
              "excerpt": {
                "selector": "div.s-post-summary--content-excerpt"
              },
              "href": {
                "attr": "href",
                "selector": "h3.s-post-summary--content-title a.s-link"
              },
              "title": {
                "selector": "h3.s-post-summary--content-title a.s-link"
              },
              "votes": {
                "selector": "div.s-post-summary--stats-item__emphasized .s-post-summary--stats-item-number"
              }
            },
            "max": 30,
            "selector": "div.s-post-summary"
          }
        }
      },
      "id": "search",
      "request": {
        "headers": {
          "Accept": "text/html"
        },
        "method": "GET",
        "query": {
          "q": "{{ params.query }} is:question"
        },
        "url": "/search"
      }
    }
  ],
  "task": "Search Server Fault questions",
  "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.items) > `0`",
      "length(output.items[?starts_with(url, 'https://serverfault.com/questions/')]) == length(output.items)",
      "length(output.items[?title != `null`]) == length(output.items)"
    ],
    "example_params": {
      "query": "nginx proxy"
    },
    "max_ms": 5000
  },
  "version": 1
}