Search remote jobs on Working Nomads.
Searches Working Nomads remote job listings with the same search index the jobs page uses: job title, company, category, locations allowed, publication date, tags and link to the listing. First 20 matches by relevance. Expired listings are left out.
- Site
- Working Nomads, United States
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- 100c0a4b3354…
Run it with your agent
after installing WieldAsk in plain words. Your agent finds this recipe and calls it:
“Search remote jobs on Working Nomads.”
Read-only: it changes nothing on the site. No login needed.
{ "tool": "run", "arguments": { "recipe_id": "workingnomads.com/search-jobs", "params": { "query": "developer" } } }
Requests
sent from your browser, in order- 1GET/jobsapi/_search?q&sizeRead-only GET to the jobs search index the site's jobs page uses (elasticRootUrl + /jobsapi/_search, index jobsapi), with q and size. Each hit's _source holds the job fields.
Parameters
from your agentquerystringrequiredJob title, skill or keyword, e.g. 'developer', 'marketing', 'customer support'
Returns
to your agentjobsobject[]category, company, locations, published, tags, title, url
querystring
Where it can send
- www.workingnomads.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.jobs) > `0`
- length(output.jobs[?title != `null`]) == length(output.jobs)
- length(output.jobs[?starts_with(url, 'https://www.workingnomads.com/jobs/')]) == length(output.jobs)
Raw recipe
Served as canonical JSON from /api/v1/recipes/workingnomads.com/search-jobs, so its sha256 matches the ETag and the index.
Check it yourself
curl -s https://wield.run/api/v1/recipes/workingnomads.com/search-jobs | shasum -a 256 # 100c0a4b335413a8374d1f1ee6789d6eb452b0b70dce94e40feebf1d500502e6
workingnomads.com/search-jobs.json, v1
{ "description": "Searches Working Nomads remote job listings with the same search index the jobs page uses: job title, company, category, locations allowed, publication date, tags and link to the listing. First 20 matches by relevance. Expired listings are left out.", "effect": "read", "id": "workingnomads.com/search-jobs", "keywords": [ "working nomads", "workingnomads", "remote jobs", "remote work", "digital nomad", "remote developer jobs", "remote marketing jobs", "customer support jobs", "work from anywhere", "telecommute", "freelance", "jobs", "homeoffice", "stellenangebote" ], "output": { "schema": { "properties": { "jobs": { "items": { "properties": { "category": { "type": [ "string", "null" ] }, "company": { "type": [ "string", "null" ] }, "locations": { "description": "Where the job may be done, e.g. 'USA - East'", "items": { "type": "string" }, "type": "array" }, "published": { "description": "Publication timestamp (ISO 8601)", "type": [ "string", "null" ] }, "tags": { "items": { "type": "string" }, "type": "array" }, "title": { "type": "string" }, "url": { "type": "string" } }, "required": [ "title", "url" ], "type": "object" }, "type": "array" }, "query": { "type": "string" } }, "required": [ "query", "jobs" ], "type": "object" }, "value": "{query: params.query, jobs: map(&{title: title, company: company || `null`, category: category_name || `null`, locations: locations || `[]`, published: pub_date || `null`, tags: tags || `[]`, url: join('', ['https://www.workingnomads.com/jobs/', slug])}, steps.search.jobs[?title != `null` && slug != `null` && expired != `true`] || `[]`)}" }, "params": { "additionalProperties": false, "properties": { "query": { "description": "Job title, skill or keyword, e.g. 'developer', 'marketing', 'customer support'", "maxLength": 100, "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "provenance": { "method": "har", "notes": "The jobs page loads its list from an Elasticsearch index (jobsapi) on the site's own host. One plain GET to /jobsapi/_search?q=<query>&size=20 answers 200 JSON with hits.hits[]._source (title, company, category_name, locations, pub_date, tags, slug). Listing URLs are /jobs/<slug>, which answered 200 for a sample job. The apply link is an external ATS and is not returned.", "recorded_at": "2026-11-08T17:25:00.000Z", "recorded_by": "wield-forge (claude-haiku agent)" }, "requires_login": false, "schema": "https://wield.run/schema/recipe/v1.json", "site": { "country": "US", "id": "workingnomads.com", "language": "en", "name": "Working Nomads", "origin": "https://www.workingnomads.com", "origins": [ "https://www.workingnomads.com" ] }, "steps": [ { "description": "Read-only GET to the jobs search index the site's jobs page uses (elasticRootUrl + /jobsapi/_search, index jobsapi), with q and size. Each hit's _source holds the job fields.", "expect": { "content_type": "json", "status": [ 200 ] }, "extract": { "json": { "jobs": "hits.hits[*]._source" } }, "id": "search", "request": { "headers": { "Accept": "application/json" }, "method": "GET", "query": { "q": "{{params.query}}", "size": "20" }, "url": "/jobsapi/_search" } } ], "task": "Search remote jobs on Working Nomads", "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.jobs) > `0`", "length(output.jobs[?title != `null`]) == length(output.jobs)", "length(output.jobs[?starts_with(url, 'https://www.workingnomads.com/jobs/')]) == length(output.jobs)" ], "example_params": { "query": "developer" }, "max_ms": 5000 }, "version": 1 }