# Which Job Portals Are Shipped with the AI Job Search Framework?

> Discover which job portals are shipped with the AI Job Search Framework. Learn about LinkedIn, Freehire, Jobnet, Jobindex, Jobdanmark, and Jobbank integrations.

- Repository: [Mads Lorentzen/ai-job-search](https://github.com/MadsLorentzen/ai-job-search)
- Tags: how-to-guide
- Published: 2026-08-31

---

**The AI Job Search Framework ships with six job portal skills: LinkedIn and Freehire are enabled by default for global searches, while Jobnet, Jobindex, Jobdanmark, and Jobbank are included but disabled by default, targeting the Danish market.**

The MadsLorentzen/ai-job-search repository implements a modular skill architecture where each job portal is encapsulated as a standalone command-line interface. Every portal is defined by a [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) configuration file located under `.agents/skills/` and exposes standardized search, detail, and metadata methods that the framework's `/scrape` workflow can invoke automatically.

## Job Portal Architecture and Configuration

Each integration is treated as a **job portal skill** with a dedicated directory under `.agents/skills/<portal-name>-search/`. The [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) file in each directory contains the portal's metadata, documentation, and an **`enabled`** boolean flag that determines whether the portal participates in automated scraping workflows. You can activate disabled portals by flipping this flag to `enabled: true` or by configuring them through the `/setup` workflow.

## Globally Enabled Job Portals

These two portals are active out-of-the-box and provide broad geographic coverage for general job searches.

### LinkedIn

Located at [`.agents/skills/linkedin-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/linkedin-search/SKILL.md), this skill queries LinkedIn’s public *jobs-guest* endpoints. It is country-agnostic and suitable for global role searches across any industry or seniority level. The CLI entry point is [`.agents/skills/linkedin-search/cli/src/cli.ts`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/linkedin-search/cli/src/cli.ts).

### Freehire

Defined in [`.agents/skills/freehire-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/freehire-search/SKILL.md), Freehire is a tech-focused aggregator that normalizes postings from approximately 50 Applicant Tracking Systems (ATS). It provides global coverage with specific filtering capabilities for seniority levels and remote work arrangements. Its CLI resides at [`.agents/skills/freehire-search/cli/src/cli.ts`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/freehire-search/cli/src/cli.ts).

## Regional Job Portals (Disabled by Default)

Four Denmark-specific portals are shipped but require manual activation via their [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) files.

### Jobnet

Configured in [`.agents/skills/jobnet-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/jobnet-search/SKILL.md), Jobnet integrates with the official Danish government portal (STAR). It indexes both public-sector and private-sector positions across Denmark and supports parameters like work hours and employment duration.

### Jobindex

Found at [`.agents/skills/jobindex-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/jobindex-search/SKILL.md), this skill connects to jobindex.dk, one of Denmark’s largest commercial job boards. It covers thousands of listings across all sectors and offers sorting by date and relevance.

### Jobdanmark

Located at [`.agents/skills/jobdanmark-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/jobdanmark-search/SKILL.md), Jobdanmark aggregates public and private sector jobs with rich categorical data. It supports municipality-based filtering and job-type specifications.

### Jobbank

Defined in [`.agents/skills/jobbank-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/jobbank-search/SKILL.md), Jobbank focuses on academic-oriented positions via jobbank.dk. It specializes in highly educated roles, including Ph.D. positions, trainee programs, and research postings, and uses region codes for location filtering.

## How to Toggle Job Portal Availability

To enable a disabled portal, edit the `enabled` field in the respective [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) file:

```bash

# Example: Enabling Jobnet

enabled: true

```

Alternatively, use the framework’s `/setup` command to configure active skills without manually editing configuration files. Disabled portals remain installed and available for manual CLI invocation but are excluded from automated `/scrape` orchestration.

## CLI Usage Examples for Each Portal

All portals follow the same invocation pattern using Bun. Below are minimal search commands for each shipped portal:

```bash

# LinkedIn – search software roles in Berlin from the last 30 days

bun run .agents/skills/linkedin-search/cli/src/cli.ts search -q "software engineer" -l "Berlin, Germany" --jobage 30 --format table

# Freehire – senior backend roles in the EU, remote

bun run .agents/skills/freehire-search/cli/src/cli.ts search -q "backend engineer" --seniority senior --remote remote --region eu --format table

# Jobnet – nurse jobs nationwide, best-match order (requires enabled: true)

bun run .agents/skills/jobnet-search/cli/src/cli.ts search --search-string "sygeplejerske" --work-hours FullTime --duration Permanent --order BestMatch --format table

# Jobindex – Python jobs in Copenhagen posted today

bun run .agents/skills/jobindex-search/cli/src/cli.ts search --query "python københavn" --jobage 1 --sort date --format table

# Jobdanmark – IT jobs in Copenhagen, full-time

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

# Jobbank – data-scientist roles in Storkøbenhavn (region code 2)

bun run .agents/skills/jobbank-search/cli/src/cli.ts search --key "data scientist" --location 2 --format table

```

Each CLI also supports a `detail` sub-command to fetch full posting content by ID (e.g., `detail <job-id>`), and many provide helpers for occupations, suggestions, or categories.

## Summary

- The framework ships **six job portal skills** located under `.agents/skills/`.
- **LinkedIn** and **Freehire** are **enabled by default** for global job searches.
- **Jobnet**, **Jobindex**, **Jobdanmark**, and **Jobbank** are **disabled by default** and target the Danish market.
- Portals are controlled via the `enabled` boolean in each portal's [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) file.
- All portals expose a unified CLI interface at [`cli/src/cli.ts`](https://github.com/MadsLorentzen/ai-job-search/blob/main/cli/src/cli.ts) within their respective directories.
- The `/scrape` workflow automatically invokes only portals marked as enabled.

## Frequently Asked Questions

### How do I enable a disabled job portal in the AI Job Search Framework?

Open the portal’s [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) file (e.g., [`.agents/skills/jobnet-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/jobnet-search/SKILL.md)) and set `enabled: true`. The framework will then include that portal in automated scraping workflows, and you can invoke it via the standard CLI path.

### What is the difference between the LinkedIn and Freehire integrations?

**LinkedIn** queries public guest endpoints directly from LinkedIn’s infrastructure and provides broad, general coverage across all industries. **Freehire** acts as a tech-specific aggregator that normalizes data from approximately 50 different ATS platforms, making it more suitable for software engineering and technical role searches.

### Where are job portal configurations stored?

Each portal’s configuration, documentation, and metadata reside in a [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) file within the portal’s skill directory under `.agents/skills/<portal-name>-search/`. The executable CLI logic is located at [`cli/src/cli.ts`](https://github.com/MadsLorentzen/ai-job-search/blob/main/cli/src/cli.ts) within that same directory structure.

### Can I use multiple job portals simultaneously?

Yes. The framework’s `/scrape` command automatically discovers and invokes all portals with `enabled: true` in their respective [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) files. For manual usage, you must run separate CLI commands for each portal, as each skill operates as an isolated Bun process.