# jobindex-cli CLI for searching jobs on [Jobindex.dk](https://www.jobindex.dk). **Base URL**: `https://www.jobindex.dk/` **Authentication**: None required. **Format**: The API returns JSON with embedded HTML blobs. The CLI parses the HTML internally and emits clean JSON. --- ## Installation ```bash cd skills/jobindex-search/cli bun install ``` --- ## Commands | Command | Description | |---------|-------------| | `search` | Search for job listings | | `detail` | Fetch full detail for a single job listing | All commands accept `--format json|table|plain` (default: `json`). All errors are written to **stderr** as `{ "error": "...", "code": "..." }` and the process exits with code `1`. --- ## `search` — Search for job listings **Endpoint**: `GET https://www.jobindex.dk/jobsoegning.json` ```bash bun run src/cli.ts search [flags] ``` The API always returns 20 results per page (fixed — no `--per-page` flag). The CLI parses the `result_list_box_html` HTML blob from the response to extract structured job records. ### Flags | Flag | Type | Default | Description | |------|------|---------|-------------| | `--query` / `-q` | string | — | Keyword search query (e.g. `python`, `grafisk designer`) | | `--page` | number | `1` | Page number (1-indexed) | | `--jobage` | number | `9999` | Max age of posting in days: `1`, `7`, `14`, `30`, or `9999` (all) | | `--sort` | string | `score` | Sort order: `score` (relevance) or `date` (newest first) | | `--limit` | number | — | Cap total results returned by the CLI (client-side) | | `--format` | string | `json` | Output format: `json`, `table`, `plain` | ### Sort options | Value | Description | |-------|-------------| | `score` | Relevance / best match (default) | | `date` | Newest postings first | ### jobage options | Value | Description | |-------|-------------| | `1` | Posted today | | `7` | Last 7 days | | `14` | Last 14 days | | `30` | Last 30 days | | `9999` | All time (default) | ### Example ```bash # Search for Python jobs posted in the last 7 days, sorted by date bun run src/cli.ts search --query python --jobage 7 --sort date # Search for "grafisk designer" jobs — show first 5 results bun run src/cli.ts search --query "grafisk designer" --limit 5 # Page 2 of results for data engineer bun run src/cli.ts search --query "data engineer" --page 2 --format table ``` ### Response shape ```json { "meta": { "total": 237, "page": 1, "perPage": 20 }, "results": [ { "id": "h1647303", "title": "Data Engineer til opbygning af Gavefabrikkens dataplatform", "company": "Gavefabrikken", "companyUrl": "https://www.gavefabrikken.dk/", "location": "Valby", "date": "2026-03-12", "url": "https://www.jobindex.dk/jobannonce/h1647303/data-engineer-til-opbygning-af-gavefabrikkens-dataplatform", "description": "Vi søger en dygtig Data Engineer til at opbygge og vedligeholde vores dataplatform..." } ] } ``` **Field notes:** - `id` — string ID prefixed with `h` (e.g. `h1647303`). Use this with the `detail` command. - `company` — company name; may be `null` for some aggregated listings. - `companyUrl` — company homepage URL; may be `null` if not present. - `location` — city or area; may be `null` if not listed. - `date` — ISO date string (`YYYY-MM-DD`) from the `datetime` attribute on the `