Search Danish job ads on Jobindex.
Searches Jobindex like its job search page (/jobsoegning?q=...): job title, employer, place of work, first and last publication dates and link to the ad. First page of results (about 20 ads). Sponsored ads (paid placements) are dropped. Returns an empty list when nothing matches.
- Site
- Jobindex, Denmark
- Version
- v1
- Runs, last 7 days
- No reports yet
- sha256
- d08aef767eef…
Run it with your agent
after installing WieldAsk in plain words. Your agent finds this recipe and calls it:
“Search Danish job ads on Jobindex.”
Read-only: it changes nothing on the site. No login needed.
{ "tool": "run", "arguments": { "recipe_id": "jobindex.dk/search-jobs", "params": { "query": "udvikler" } } }
Requests
sent from your browser, in order- 1GET/jobsoegning?qJob search page /jobsoegning?q=...; read-only GET. The page's job list is client-rendered from the inline 'var Stash' JSON (jobsearch/result_app/list.storeData.searchResponse.results). Sponsored results (has_spo true) are dropped.
Parameters
from your agentquerystringrequiredJob title, skill or keyword, e.g. 'udvikler', 'sygeplejerske', 'lager'
Returns
to your agentjobsobject[]company, deadline, location, published, title, url
querystring
Where it can send
- www.jobindex.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.jobs) > `0`
- starts_with(output.jobs[0].url, 'https://www.jobindex.dk/vis-job/')
- length(output.jobs[?title != `null`]) == length(output.jobs)
- length(output.jobs[?company != `null`]) > `0`
Raw recipe
Served as canonical JSON from /api/v1/recipes/jobindex.dk/search-jobs, so its sha256 matches the ETag and the index.
Check it yourself
curl -s https://wield.run/api/v1/recipes/jobindex.dk/search-jobs | shasum -a 256 # d08aef767eef66cd59c10ec72e04439ce07e3d6f064a28df7feed480f4c45d1d
jobindex.dk/search-jobs.json, v1
{ "description": "Searches Jobindex like its job search page (/jobsoegning?q=...): job title, employer, place of work, first and last publication dates and link to the ad. First page of results (about 20 ads). Sponsored ads (paid placements) are dropped. Returns an empty list when nothing matches.", "effect": "read", "id": "jobindex.dk/search-jobs", "keywords": [ "jobindex", "job", "jobs", "ledige job", "stillinger", "karriere", "arbejde", "jobsøgning", "danmark", "denmark", "job search", "vacancies", "udvikler", "sygeplejerske" ], "output": { "schema": { "properties": { "jobs": { "items": { "properties": { "company": { "type": [ "string", "null" ] }, "deadline": { "description": "Last day to apply, YYYY-MM-DD", "type": [ "string", "null" ] }, "location": { "type": [ "string", "null" ] }, "published": { "description": "First publication date, YYYY-MM-DD", "type": [ "string", "null" ] }, "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: steps.search.jobs[?title != `null` && url != `null`].{title: title, company: company || `null`, location: location || `null`, published: published || `null`, deadline: deadline || `null`, url: url}}" }, "params": { "additionalProperties": false, "properties": { "query": { "description": "Job title, skill or keyword, e.g. 'udvikler', 'sygeplejerske', 'lager'", "maxLength": 100, "minLength": 2, "type": "string" } }, "required": [ "query" ], "type": "object" }, "provenance": { "method": "har", "notes": "The work item's search_url (/?s=...) is a 404 page; the real search is /jobsoegning?q=..., whose HTML carries the result list only as the inline 'var Stash' JSON (storeData.searchResponse.results: headline, company, area, dates, share_url, has_spo). Sponsored results (has_spo true) are dropped. The script is picked by its position (third script element), since the selector language has no text match.", "recorded_at": "2026-11-08T13:00:00.000Z", "recorded_by": "wield-forge (claude-haiku agent)" }, "requires_login": false, "schema": "https://wield.run/schema/recipe/v1.json", "site": { "country": "DK", "id": "jobindex.dk", "language": "da", "name": "Jobindex", "origin": "https://www.jobindex.dk", "origins": [ "https://www.jobindex.dk" ] }, "steps": [ { "description": "Job search page /jobsoegning?q=...; read-only GET. The page's job list is client-rendered from the inline 'var Stash' JSON (jobsearch/result_app/list.storeData.searchResponse.results). Sponsored results (has_spo true) are dropped.", "expect": { "assert": "status == `200` && contains(body, 'var Stash')", "content_type": "html", "status": [ 200 ] }, "extract": { "embedded_json": { "selector": "script:nth-of-type(3)", "strip_js": true, "strip_js_after": "var Stash = ", "vars": { "jobs": "\"jobsearch/result_app/list\".storeData.searchResponse.results[?has_spo == `false`].{title: headline, company: (company.name || companytext), location: area, published: firstdate, deadline: lastdate, url: share_url}" } } }, "id": "search", "request": { "headers": { "Accept": "text/html" }, "method": "GET", "query": { "q": "{{params.query}}" }, "url": "/jobsoegning" } } ], "task": "Search Danish job ads on Jobindex", "tos": { "notes": "Not reviewed. One search page per call, the same page a visitor loads; no basket, account or checkout calls. The site's terms on automated access were not checked.", "reviewed": false }, "verify": { "checks": [ "length(output.jobs) > `0`", "starts_with(output.jobs[0].url, 'https://www.jobindex.dk/vis-job/')", "length(output.jobs[?title != `null`]) == length(output.jobs)", "length(output.jobs[?company != `null`]) > `0`" ], "example_params": { "query": "udvikler" }, "max_ms": 6000 }, "version": 1 }