Files
ai-job-search/.agents/skills/jobnet-search/SKILL.md
T
Mads LorentzenandClaude Fable 5 a5ffcc39ff chore: untrack tracker CSV, scope scraper Bash permission, fix portal SKILL.md paths (#71)
- Untrack job_search_tracker.csv: it was both tracked and listed in
  .gitignore (same inconsistency class as the settings.local.json fix
  in #27). Users' personal rows risked merge conflicts on every pull;
  commands already create the file with the standard header when it
  is missing.
- Scope job-scraper's allowed-tools Bash entry (from #52) to
  'bun --version' and the portal-CLI invocation pattern, adopting the
  tighter form proposed in #65.
- Fix all five portal SKILL.mds documenting 'bun run skills/...'
  paths that do not resolve from the repo root ('.agents/skills/...'
  is correct) - now load-bearing since #52 wired /scrape to read
  these docs for CLI invocations. Surfaced in #66.
- Teach tools/lint_skills.py to glob-expand allowed-tools bun run
  targets so scoped wildcard permissions lint correctly.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 17:14:39 +02:00

7.7 KiB

name, version, description, context, allowed-tools
name version description context allowed-tools
jobnet-search 1.0.0 Make sure to use this skill whenever the user mentions anything related to Danish job searching, job listings, job vacancies, employment opportunities in Denmark, or the Danish government job portal — even if they don't mention jobnet.dk explicitly. Also invoke this skill for questions about specific job titles, occupations, employers, or regions in a Danish employment context. This skill covers the official Danish public job portal operated by STAR (Styrelsen for Arbejdsmarked og Rekruttering). Trigger phrases include: danish jobs, danish job search, jobnet, jobnet.dk, find job denmark, danish employment, job i danmark, job på jobnet, offentlige job, stillinger i det offentlige, public sector jobs denmark, government jobs denmark, STAR jobs, job ledige stillinger, ledig stilling, søg job, job opslag, job vacancy denmark, stillingopslag, jobopslag, sygepleje job, ingeniør job, lærer job, pædagog job, it-job denmark, jobs in copenhagen, jobs in aarhus, jobs in odense, deltidsjob, fuldtidsjob, fastansættelse, tidsbegrænset ansættelse, fleksjob, sygeplejerske job, social worker job denmark, occupation search denmark, esco occupation, job deadline, ansøgningsfrist, søg efter job, full time job denmark, part time job denmark. fork Bash(bun run .agents/skills/jobnet-search/cli/src/cli.ts *)

Jobnet-Search Skill

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>FullTime or PartTime
  • --duration <type>Permanent or Temporary
  • --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). 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: searchdetail.

  1. Use search to get a list of matching jobs with their jobAdId.
  2. 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 --region for broad regional filtering (e.g. all of Midtjylland)
  • Use --postal-code + --radius for jobs near a specific location
  • Do not combine --region and --postal-code in the same query

Order matters for intent:

  • PublicationDate — newest postings first (default, good for "what's new")
  • BestMatch — relevance score (best when --search-string is 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/bff REST API — no credentials required.
  • The API requires the x-csrf: 1 header; the CLI adds this automatically.
  • Pagination is 1-indexed (--page 1 is the first page).
  • search results omit the HTML job description — use detail to get it.
  • detail --format plain strips HTML tags for readable text output.
  • Job ad detail pages on jobnet.dk: https://jobnet.dk/job/{jobAdId}
  • suggestions is tuned for Danish job titles — English terms may return empty results.