Access live Danish job listings from the Jobnet.dk public API. No authentication needed. Jobnet is operated by STAR (Styrelsen for Arbejdsmarked og Rekruttering) and is Denmark's official government job portal — covering public sector positions as well as many private sector listings. Approximately 21,000+ active jobs at any time.
When to use this skill
Invoke this skill when the user wants to:
- Search for job openings in Denmark by keyword, title, or employer
- Filter jobs by region, work hours (full/part time), or employment duration (permanent/temporary)
- Find jobs near a specific postal code within a given radius
- Get full details for a specific job ad including description, contact persons, and application URL
- Discover occupation types and ESCO categories for more precise job filtering
- Explore autocomplete suggestions for Danish job titles or keywords
- Find jobs in the public sector, healthcare, IT, education, or any other Danish industry
Commands
Search for job ads
bun run .agents/skills/jobnet-search/cli/src/cli.ts search [flags]
Key flags:
--search-string <text>— keyword search, e.g.sygeplejerske,ingeniør,pædagog--region <region>—HovedstadenOgBornholm,Midtjylland,Syddanmark,OevrigeSjaelland,Nordjylland--postal-code <code>— postal code for radius-based search, e.g.2100--radius <km>— radius in km from postal code (default:50)--work-hours <type>—FullTimeorPartTime--duration <type>—PermanentorTemporary--job-type <type>—Ordinaert,Efterloenner,Foertidspension--occupation-area <id>— occupation area identifier, e.g.10000--occupation-group <id>— occupation group identifier, e.g.10060--order <type>—PublicationDate(default),BestMatch,ApplicationDate--page / --per-page / --limit--format json|table|plain
Full job ad detail
bun run .agents/skills/jobnet-search/cli/src/cli.ts detail <jobAdId> [--format json|plain]
jobAdId is the UUID from search results (the jobAdId field, also emitted as id, the portal-contract name every search CLI shares). Returns the complete job
description, contact persons, application deadline, employer details, and direct application URL.
Search occupation types
bun run .agents/skills/jobnet-search/cli/src/cli.ts occupations --search-string <text> [--per-page <n>]
Use this to discover ESCO occupation identifiers before passing them to search with
--occupation-area or --occupation-group.
Typeahead suggestions
bun run .agents/skills/jobnet-search/cli/src/cli.ts suggestions --query <text> [--limit <n>]
Returns Danish job title autocomplete strings. Useful for exploring valid Danish
job titles before constructing a search query.
How to use effectively
Discover occupations first. Use occupations or suggestions to find the right Danish
term or ESCO identifier before running a search:
bun run .agents/skills/jobnet-search/cli/src/cli.ts suggestions --query "syge"
bun run .agents/skills/jobnet-search/cli/src/cli.ts occupations --search-string "sygeplejerske"
Natural workflow: search → detail.
- Use
searchto get a list of matching jobs with theirjobAdId. - Call
detail <jobAdId>to get the full job description, contact persons, and direct application link.
Use --format table for comparisons, --format json for data processing, and
--format plain for single-record detail views (strips HTML from job body).
Pagination: --per-page controls server-side results per page. --limit caps what the
CLI outputs. Use --page + --per-page to iterate through large result sets.
Geographic search modes:
- Use
--regionfor broad regional filtering (e.g. all of Midtjylland) - Use
--postal-code+--radiusfor jobs near a specific location - Do not combine
--regionand--postal-codein the same query
Order matters for intent:
PublicationDate— newest postings first (default, good for "what's new")BestMatch— relevance score (best when--search-stringis provided)ApplicationDate— earliest deadline first (good for urgent applications)
Usage examples
Jobs in Copenhagen area
bun run .agents/skills/jobnet-search/cli/src/cli.ts search \
--region HovedstadenOgBornholm \
--per-page 10 \
--format table
Nurse jobs nationwide
bun run .agents/skills/jobnet-search/cli/src/cli.ts search \
--search-string "sygeplejerske" \
--work-hours FullTime \
--duration Permanent \
--order BestMatch \
--per-page 10 \
--format table
IT jobs near Aarhus within 30km
bun run .agents/skills/jobnet-search/cli/src/cli.ts search \
--search-string "udvikler" \
--postal-code 8000 \
--radius 30 \
--work-hours FullTime \
--format table
Full details of a job ad
bun run .agents/skills/jobnet-search/cli/src/cli.ts detail 9ef43bce-d82b-4ea1-a098-7ff6520f99be --format plain
Jobs sorted by application deadline (urgent first)
bun run .agents/skills/jobnet-search/cli/src/cli.ts search \
--search-string "pædagog" \
--region OevrigeSjaelland \
--order ApplicationDate \
--per-page 10
Discover occupation terms
bun run .agents/skills/jobnet-search/cli/src/cli.ts suggestions --query "ingeniør" --limit 5
bun run .agents/skills/jobnet-search/cli/src/cli.ts occupations --search-string "lærer" --per-page 5
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), strips HTML from job descriptions |
All errors are written to stderr as { "error": "...", "code": "..." } and the process exits with code 1.
Notes
- All data is from the public
jobnet.dk/bffREST API — no credentials required. - The API requires the
x-csrf: 1header; the CLI adds this automatically. - Pagination is 1-indexed (
--page 1is the first page). searchresults omit the HTML job description — usedetailto get it.detail --format plainstrips HTML tags for readable text output.- Job ad detail pages on jobnet.dk:
https://jobnet.dk/find-job/{jobAdId} suggestionsis tuned for Danish job titles — English terms may return empty results.