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.
- Site
- Server Fault, United States
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- 3e48f7381998…
Run it with your agent
after installing WieldAsk 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- 1GET/search?qServer Fault's search results page for the query. Each result is a div.s-post-summary card.
Parameters
from your agentquerystringrequiredWhat to search for, e.g. 'nginx proxy', 'dns record', 'docker network'
Returns
to your agentitemsobject[]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 }