Search ProPublica investigations.
Searches ProPublica like its search page: story headline, summary text and link, in the site's order. First page of results (about 10 to 20 stories). Returns an empty list when nothing matches.
- Site
- ProPublica, United States
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- 7adf45ab2dad…
Run it with your agent
after installing WieldAsk in plain words. Your agent finds this recipe and calls it:
“Search ProPublica investigations.”
Read-only: it changes nothing on the site. No login needed.
{ "tool": "run", "arguments": { "recipe_id": "propublica.org/search-news", "params": { "query": "medicare fraud" } } }
Requests
sent from your browser, in order- 1GET/?sWordPress search results page /?s=...; read-only GET. Each result is an li.wp-block-post story card with the headline in h2.story-card__hed, the summary in div.story-card__description and the article link.
Parameters
from your agentquerystringrequiredSearch term, e.g. 'medicare fraud', 'school vouchers', 'police misconduct'
Returns
to your agentquerystring
storiesobject[]summary, title, url
Where it can send
- www.propublica.org
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.stories) > `0`
- length(output.stories[?title != `null`]) == length(output.stories)
- length(output.stories[?starts_with(url, 'https://www.propublica.org/')]) == length(output.stories)
Raw recipe
Served as canonical JSON from /api/v1/recipes/propublica.org/search-news, so its sha256 matches the ETag and the index.
Check it yourself
curl -s https://wield.run/api/v1/recipes/propublica.org/search-news | shasum -a 256 # 7adf45ab2dada1b270300f363bb0ccefc197066133e1aa4b848e5de1b011b60b
propublica.org/search-news.json, v1
{ "description": "Searches ProPublica like its search page: story headline, summary text and link, in the site's order. First page of results (about 10 to 20 stories). Returns an empty list when nothing matches.", "effect": "read", "id": "propublica.org/search-news", "keywords": [ "propublica", "investigations", "investigative", "journalism", "news", "nonprofit newsroom", "reporting", "corruption", "politics", "health care", "criminal justice", "search", "nachrichten", "usa" ], "output": { "schema": { "properties": { "query": { "type": "string" }, "stories": { "items": { "properties": { "summary": { "description": "Short story summary from the search card", "type": [ "string", "null" ] }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "title", "url" ], "type": "object" }, "type": "array" } }, "required": [ "query", "stories" ], "type": "object" }, "value": "{query: params.query, stories: map(&{title: title, summary: summary || `null`, url: href}, steps.search.stories[?title != `null` && href != `null`] || `[]`)}" }, "params": { "additionalProperties": false, "properties": { "query": { "description": "Search term, e.g. 'medicare fraud', 'school vouchers', 'police misconduct'", "maxLength": 100, "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "provenance": { "method": "har", "notes": "GET /?s=..., a WordPress search page, server-rendered HTML with li.wp-block-post story cards (h2.story-card__hed headline, div.story-card__description summary, article link). robots.txt allows everything for the generic user agent.", "recorded_at": "2026-11-08T17:00:00.000Z", "recorded_by": "wield-forge (claude-haiku agent)" }, "requires_login": false, "schema": "https://wield.run/schema/recipe/v1.json", "site": { "country": "US", "id": "propublica.org", "language": "en", "name": "ProPublica", "origin": "https://www.propublica.org", "origins": [ "https://www.propublica.org" ] }, "steps": [ { "description": "WordPress search results page /?s=...; read-only GET. Each result is an li.wp-block-post story card with the headline in h2.story-card__hed, the summary in div.story-card__description and the article link.", "expect": { "content_type": "html", "status": [ 200 ] }, "extract": { "html_items": { "stories": { "fields": { "href": { "attr": "href", "selector": "a" }, "summary": { "selector": "div.story-card__description" }, "title": { "selector": "h2.story-card__hed" } }, "max": 50, "selector": "li.wp-block-post" } } }, "id": "search", "request": { "headers": { "Accept": "text/html" }, "method": "GET", "query": { "s": "{{params.query}}" }, "url": "/" } } ], "task": "Search ProPublica investigations", "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.stories) > `0`", "length(output.stories[?title != `null`]) == length(output.stories)", "length(output.stories[?starts_with(url, 'https://www.propublica.org/')]) == length(output.stories)" ], "example_params": { "query": "medicare fraud" }, "max_ms": 5000 }, "version": 1 }