Jobdanmark Search Skill
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.
When to use this skill
Invoke this skill when the user wants to:
- Search for job listings in Denmark (by keyword, location, category, or job type)
- Browse available jobs in a specific Danish city, municipality, zip code, or region
- Filter jobs by employment type (full-time, part-time, student job, apprentice, etc.)
- Look up the full details of a specific job posting including description and deadline
- List all job categories with current live job counts
- Resolve a job search term into a job title ID or category ID for precise filtering
- Find location suggestions (municipalities, zip codes, regions) for job search filters
Commands
Search job listings
bun run 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 fromautocompleteresults--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
--pageto paginate.
Full job detail
bun run 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's JSON-LD, including title, organization, location, employment type, deadline, and full HTML description.
List categories with live counts
bun run 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.
Autocomplete job titles and categories
bun run 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.
Suggest locations
bun run 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.
Categories
| 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 |
How to use effectively
Resolve locations first. Use locations to find the correct municipality name or zip code before passing them to search:
bun run 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:
bun run skills/jobdanmark-search/cli/src/cli.ts autocomplete --query "sygeplejerske" --format plain
Natural workflow: search → detail.
- Use
searchto get a list of matching jobs with theirslug. - Call
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.
Usage examples
IT jobs in Copenhagen
bun run skills/jobdanmark-search/cli/src/cli.ts search \
--category 227978 \
--municipality "København" \
--job-type fuldtid \
--format table
Nursing jobs anywhere in Denmark
bun run skills/jobdanmark-search/cli/src/cli.ts search \
--text "sygeplejerske" \
--category 227975 \
--format table
Student jobs in Aarhus
bun run skills/jobdanmark-search/cli/src/cli.ts search \
--municipality "Aarhus" \
--job-type studiejob \
--format table
What job categories are most active right now?
bun run skills/jobdanmark-search/cli/src/cli.ts categories --format table
Full details for a specific job posting
bun run skills/jobdanmark-search/cli/src/cli.ts detail it-chef-soeges-til-rah --format plain
Find jobs in zip code 8000
bun run skills/jobdanmark-search/cli/src/cli.ts search --zip 8000 --format table
What electrician jobs are available?
bun run skills/jobdanmark-search/cli/src/cli.ts search \
--text "elektriker" \
--category 227973 \
--job-type "fuldtid,deltid" \
--format table
Apprentice positions in all of Denmark
bun run skills/jobdanmark-search/cli/src/cli.ts search \
--job-type elev \
--page 1 \
--format table
Output formats
| 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.
Notes
- All data is from the public Jobdanmark.dk API — no credentials required.
- Pagination is 1-indexed (
--page 1is the first page). 30 items per page, server-enforced. - The
detailcommand fetches the HTML job page and parses the embedded JSON-LD (schema.org/JobPosting). It does not use a separate JSON API. slugin search results is extracted from the API's relativeurlfield (the path after/job/).applicationDeadlinein search results can benull(no deadline set).- Job type values for filters:
fuldtid,deltid,fleksjob,elev,studiejob,praktik.