---
name: madslorentzen/jobdanmark-search
source: https://app.decimal.ai/s/madslorentzen-jobdanmark-search@1/SKILL.md
source_sha256: b958a52804ac
---

# 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

```bash
bun 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.

### Full job detail

```bash
bun 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.

### List categories with live counts

```bash
bun 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.

### Autocomplete job titles and categories

```bash
bun 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`.

### Suggest locations

```bash
bun 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`.

---

## 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`:

```bash
bun 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:

```bash
bun run .agents/skills/jobdanmark-search/cli/src/cli.ts autocomplete --query "sygeplejerske" --format plain
```

**Natural workflow: `search` → `detail`.**
1. Use `search` to get a list of matching jobs with their `slug`.
2. 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

```bash
bun run .agents/skills/jobdanmark-search/cli/src/cli.ts search \
  --category 227978 \
  --municipality "København" \
  --job-type fuldtid \
  --format table
```

### Nursing jobs anywhere in Denmark

```bash
bun run .agents/skills/jobdanmark-search/cli/src/cli.ts search \
  --text "sygeplejerske" \
  --category 227975 \
  --format table
```

### Student jobs in Aarhus

```bash
bun run .agents/skills/jobdanmark-search/cli/src/cli.ts search \
  --municipality "Aarhus" \
  --job-type studiejob \
  --format table
```

### What job categories are most active right now?

```bash
bun run .agents/skills/jobdanmark-search/cli/src/cli.ts categories --format table
```

### Full details for a specific job posting

```bash
bun run .agents/skills/jobdanmark-search/cli/src/cli.ts detail it-chef-soeges-til-rah --format plain
```

### Find jobs in zip code 8000

```bash
bun run .agents/skills/jobdanmark-search/cli/src/cli.ts search --zip 8000 --format table
```

### What electrician jobs are available?

```bash
bun run .agents/skills/jobdanmark-search/cli/src/cli.ts search \
  --text "elektriker" \
  --category 227973 \
  --job-type "fuldtid,deltid" \
  --format table
```

### Apprentice positions in all of Denmark

```bash
bun run .agents/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 1` is the first page). 30 items per page, server-enforced.
- The `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).
- Job type values for filters: `fuldtid`, `deltid`, `fleksjob`, `elev`, `studiejob`, `praktik`.