Job portal search is implemented as a set of CLI skills living inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/MadsLorentzen/ai-job-search/llms.txt
Use this file to discover all available pages before exploring further.
.agents/skills/. Each skill is a self-contained Bun/TypeScript CLI with a SKILL.md that tells Claude when and how to invoke it. The framework ships with five portals out of the box: Jobindex, Akademikernes Jobbank (Jobbank), Jobdanmark, and Jobnet (all Danish-market portals), plus LinkedIn as a country-agnostic option that works for any location worldwide. All five use public, unauthenticated endpoints — no API keys or accounts required.
Built-In Portals
Jobindex
Portal: jobindex.dk — covers thousands of job postings across all sectors in Denmark, updated in real time. Key commands:--query/-q— keyword search (job title, skill, company). Required for meaningful results.--jobage— filter by posting age:1(today),7,14,30, or9999(all, default).--sort—score(relevance, default) ordate(newest first).--page— page number (1-indexed, 20 results per page).--limit— cap total results (client-side).--format—json(default),table, orplain.
--query — for example --query "data engineer københavn" or --query "python aarhus".
Jobbank (Akademikernes Jobbank)
Portal: jobbank.dk — Denmark’s primary job portal for highly educated candidates. Covers academic, graduate, and professional positions including Ph.D. roles, postdocs, and graduate trainee programmes. Uses the RSS feed for search (up to 100 results) and JSON-LD parsing for detail pages.Jobdanmark
Portal: jobdanmark.dk — a general Danish job board with approximately 15,000+ active listings across 10 categories and all Danish municipalities. Covers a broad range of sectors including trades, healthcare, education, IT, and office roles.Jobnet
Portal: jobnet.dk — the official Danish government job portal operated by STAR (Styrelsen for Arbejdsmarked og Rekruttering). Approximately 21,000+ active jobs at any time. Covers public-sector positions as well as many private-sector listings, and is a common source for government, healthcare, and social-work roles.jobs-guest endpoints, which require no authentication and no API key. Takes the search location as an explicit -l flag, so the same skill works out of the box wherever you are.
Zero runtime dependencies — it runs with just bun. Running bun install for the linkedin-search skill only pulls TypeScript dev types.
Key commands:
--location/-l— required. A LinkedIn place string, e.g."Berlin, Germany","Mumbai, Maharashtra, India","London, United Kingdom", or"Remote".--query/-q— keyword search (title, skill, role). Recommended.--jobage— posted within N days:1,7,14,30.--remote—remote,hybrid, oronsite(workplace-type filter).--page— page number (1-indexed, 10 results per page).--limit/-n— cap total results (client-side).--format—json(default),table, orplain.
Installing Portal Dependencies
Install all five portals in sequence from the repo root:linkedin-search install is optional since it has zero runtime dependencies; bun install there only pulls TypeScript dev types.
Adding a New Portal
To add a job board for your local market, run/add-portal and provide the portal’s URL. The command investigates the portal’s search URL pattern, result-page structure, and access rules (robots.txt, terms of service), scaffolds a CLI skill with the same structure and output contract as the shipped portals, and test-runs a live query before registering anything.
Auth-walled portals are declined. Portals with restrictive terms receive a prominent personal-use-only warning in the generated skill’s SKILL.md. The generated skill is market-specific and lives in your fork; the generator itself is the universal part.
See /add-portal for the full command reference.
Portal Skill Structure
Every portal skill — both the shipped ones and any generated by/add-portal — follows the same canonical layout:
SKILL.md— the skill definition consumed by Claude: name, description, trigger phrases, allowed tools, and usage documentation.url-reference.md— the portal’s search URL patterns and endpoint structure, used for maintenance and by/add-portalwhen scaffolding.cli/src/cli.ts— the CLI entry point that dispatches tosearchanddetailsubcommands.cli/src/commands/search.ts— implements thesearchcommand: constructs the API/HTML request, parses results, and outputs them in the requested format.cli/src/commands/detail.ts— implements thedetailcommand: fetches and parses a single job posting by ID or URL.
{ "error": "...", "code": "..." } and the process exits with code 1, so Claude can reliably detect and report failures.