Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Make sure to use this skill whenever the user mentions anything related to Danish job listings, job search in Denmark, finding work in Denmark, or job vacancies on Jobdanmark — even if they don't explicitly mention jobdanmark.dk. Also invoke this skill for questions about specific Danish job categories, municipalities, job types, or salaries in a job-search context. Trigger phrases include: danish jobs, jobs in denmark, find job denmark, job search denmark, danish job listings, jobdanmark, job o
.claude/skills/madslorentzen-jobdanmark-search/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 61% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 53% | 0% |
Access live Danish job listings from the Jobdanmark.dk public API. No authentication needed. Covers ~15,000+ active job listings across 10 categories and all Danish municipalities.
Invoke this skill when the user wants to:
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts search [flags]
Key flags:
--text <keyword> — free-text search, e.g. elektriker, sygeplejerske, softwareudvikler--category <id> — category ID (see Categories table below)--jobtitle-id <id> — job title ID from autocomplete results--municipality <name> — e.g. Odense, København, Aarhus--zip <code> — zip code, e.g. 5000, 8000, 2100--region <name> — region name, e.g. Midtjylland, Sjælland--job-type <types> — comma-separated: fuldtid, deltid, fleksjob, elev, studiejob, praktik--page <n> — page number (30 items per page, server-enforced)--limit <n> — cap total results returned by CLI--format json|table|plain> Per-page is fixed at 30 by the API. Use --page to paginate.
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts detail <slug> [--format json|plain]
slug is the URL path segment returned as slug in search results (e.g. it-chef-soeges-til-rah). Returns full structured job data from the job page. The CLI prefers Schema.org JSON-LD when present and falls back to parsing the rendered HTML when Jobdanmark omits JSON-LD.
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts categories [--format json|table|plain]
Returns all 10 job categories with current live job counts. Useful for giving the user an overview of the job market.
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts autocomplete --query "<text>" [--limit <n>]
Use this to resolve search terms into precise job title IDs (--jobtitle-id) or category IDs (--category) for search. The value field in results is the ID to pass to search.
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts locations --query "<text>" [--limit <n>]
Returns matching municipalities, zip codes, and regions. Use value from results as --municipality or --zip in search.
| ID | Danish | English | |----|--------|---------| | 227972 | Pædagogik, Uddannelse og Forskning | Education, Research | | 227973 | Håndværk, Industri, Transport og Landbrug | Crafts, Industry, Transport, Agriculture | | 227974 | Salg, Kommunikation, Marketing, og Design | Sales, Communication, Marketing, Design | | 227975 | Pleje, Social og Sundhed | Care, Social, Health | | 227976 | Hotel, Service, Restauration og Sikkerhed | Hotel, Service, Restaurant, Security | | 227977 | Kontor, Finans og Økonomi | Office, Finance, Economy | | 227978 | IT, Ingeniør og Energi | IT, Engineering, Energy | | 227979 | Ledelse, HR og projektstyring | Management, HR, Project Management | | 543415 | Kirke, Kultur og Underholdning | Church, Culture, Entertainment | | 227980 | Øvrige job | Other jobs |
Resolve locations first. Use locations to find the correct municipality name or zip code before passing them to search:
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts locations --query "Aarhus" --format plain
Resolve job titles for precision. Use autocomplete to get the exact job title ID when the user wants a specific role:
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts autocomplete --query "sygeplejerske" --format plain
Natural workflow: search → detail.
search to get a list of matching jobs with their slug.detail <slug> to get the full job posting with description, deadline, and organization details.Use --format table for comparisons, --format json for data processing, and --format plain for single-record detail views.
Pagination: The API returns 30 items per page (server-enforced). Use --page to navigate through results. Use --limit to cap CLI output regardless of page size.
Combine filters for precise results — e.g. --text + --job-type + --municipality all work together in a single search request.
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts search \ --category 227978 \ --municipality "København" \ --job-type fuldtid \ --format table
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts search \ --text "sygeplejerske" \ --category 227975 \ --format table
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts search \ --municipality "Aarhus" \ --job-type studiejob \ --format table
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts categories --format table
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts detail it-chef-soeges-til-rah --format plain
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts search --zip 8000 --format table
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts search \ --text "elektriker" \ --category 227973 \ --job-type "fuldtid,deltid" \ --format table
bashbun run .agents/skills/jobdanmark-search/cli/src/cli.ts search \ --job-type elev \ --page 1 \ --format table
| Format | Best for | |--------|----------| | json | Default — programmatic use, data processing, passing IDs between commands | | table | Quick human-readable overviews and comparisons | | plain | Single-record detail views (detail) |
All errors are written to stderr as { "error": "...", "code": "..." } and the process exits with code 1.
--page 1 is the first page). 30 items per page, server-enforced.detail command fetches the HTML job page and parses embedded JSON-LD when available, with a rendered-HTML fallback for pages that omit structured data. It does not use a separate JSON API.slug in search results is extracted from the API's relative url field (the path after /job/).applicationDeadline in search results can be null (no deadline set).fuldtid, deltid, fleksjob, elev, studiejob, praktik.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 12,770 | 7,052 | -45% | 1 | 1 | 0% | 2,050 | 2,559 | +25% | 0 | 0 | — |
case-02 | fail→fail | 18,394 | 4,546 | -75% | 1 | 1 | 0% | 2,412 | 2,359 | -2% | 0 | 0 | — |
case-03 | fail→fail | 4,933 | 5,114 | +4% | 1 | 1 | 0% | 722 | 2,384 | +230% | 0 | 0 | — |
case-04 | pass→pass | 15,064 | 12,790 | -15% | 1 | 1 | 0% | 2,193 | 3,897 | +78% | 0 | 0 | — |
case-05 | pass→fail | 24,448 | 67,771 | +177% | 1 | 1 | 0% | 2,119 | 2,531 | +19% | 0 | 0 | — |
case-06 | pass→pass | 12,645 | 12,949 | +2% | 1 | 1 | 0% | 2,283 | 4,472 | +96% | 0 | 0 | — |
case-07 | fail→pass | 16,293 | 2,394 | -85% | 1 | 1 | 0% | 2,694 | 2,531 | -6% | 0 | 0 | — |
case-08 | fail→pass | 14,316 | 2,562 | -82% | 1 | 1 | 0% | 2,185 | 2,618 | +20% | 0 | 0 | — |
case-09 | fail→fail | 9,847 | 6,706 | -32% | 1 | 1 | 0% | 1,527 | 2,740 | +79% | 0 | 0 | — |
case-10 | pass→pass | 8,600 | 2,461 | -71% | 1 | 1 | 0% | 1,197 | 2,574 | +115% | 0 | 0 | — |
case-11 | fail→fail | 11,548 | 4,930 | -57% | 1 | 1 | 0% | 1,632 | 2,398 | +47% | 0 | 0 | — |
case-12 | fail→pass | 11,969 | 2,855 | -76% | 1 | 1 | 0% | 2,008 | 2,699 | +34% | 0 | 0 | — |
case-13 | pass→pass | 8,027 | 2,037 | -75% | 1 | 1 | 0% | 1,335 | 2,503 | +87% | 0 | 0 | — |
case-14 | fail→pass | 9,028 | 2,434 | -73% | 1 | 1 | 0% | 1,561 | 2,512 | +61% | 0 | 0 | — |
case-15 | fail→pass | 9,455 | 1,547 | -84% | 1 | 1 | 0% | 1,541 | 2,359 | +53% | 0 | 0 | — |
case-16 | pass→pass | 6,470 | 2,325 | -64% | 1 | 1 | 0% | 1,015 | 2,553 | +152% | 0 | 0 | — |
case-17 | fail→pass | 11,761 | 1,377 | -88% | 1 | 1 | 0% | 2,279 | 2,345 | +3% | 0 | 0 | — |
case-18 | fail→pass | 9,354 | 6,715 | -28% | 1 | 1 | 0% | 1,505 | 2,647 | +76% | 0 | 0 | — |
case-19 | fail→pass | 17,302 | 1,933 | -89% | 1 | 1 | 0% | 3,045 | 2,438 | -20% | 0 | 0 | — |
case-20 | fail→pass | 12,906 | 2,591 | -80% | 1 | 1 | 0% | 2,100 | 2,569 | +22% | 0 | 0 | — |
case-21 | fail→pass | 9,931 | 1,889 | -81% | 1 | 1 | 0% | 1,476 | 2,439 | +65% | 0 | 0 | — |
case-22 | fail→pass | 17,848 | 1,778 | -90% | 1 | 1 | 0% | 2,838 | 2,409 | -15% | 0 | 0 | — |
case-23 | fail→pass | 11,087 | 2,169 | -80% | 1 | 1 | 0% | 1,788 | 2,619 | +46% | 0 | 0 | — |
case-24 | fail→pass | 7,755 | 2,694 | -65% | 1 | 1 | 0% | 1,186 | 2,588 | +118% | 0 | 0 | — |
case-25 | fail→pass | 7,882 | 1,752 | -78% | 1 | 1 | 0% | 1,312 | 2,507 | +91% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 20 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +52 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.