# How to Enable Specific Job Portal Skills in the AI-Job-Search Scraper

> Learn to enable specific job portal skills in the ai-job-search scraper. Set enabled to true in SKILL.md frontmatter to include job sources in your next scrape execution.

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

---

**Set `enabled: true` in the frontmatter of any portal's [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) file located under `.agents/skills/[portal-name]/` to include that job source in the next `/scrape` execution.**

The MadsLorentzen/ai-job-search repository uses a modular skill system where each job portal is defined by a dedicated [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) file. The scraper automatically discovers these portals by scanning the `.agents/skills/*/SKILL.md` directory structure and respects an `enabled` toggle in each file's YAML frontmatter to determine which sources to query during a run.

## Understanding the Skill Discovery Mechanism

According to the job-scraper skill specification in [`.claude/skills/job-scraper/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/skills/job-scraper/SKILL.md), the scraper performs automatic discovery at runtime. It reads every [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) found under `.agents/skills/*/SKILL.md` and inspects the frontmatter for an `enabled` flag. 

Portals are **enabled by default** if the key is omitted. Only when `enabled: false` is explicitly set does the scraper skip that portal and report it as "skipped (disabled)" in the output. This design allows you to maintain a library of portal integrations while activating only the relevant ones for specific searches.

## Step-by-Step: Enabling a Job Portal

### Locate the Portal's SKILL.md

Each job portal lives in its own subdirectory under `.agents/skills/`. For example:

- LinkedIn: [`.agents/skills/linkedin-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/linkedin-search/SKILL.md)
- Jobbank: [`.agents/skills/jobbank-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/jobbank-search/SKILL.md)
- Freehire: [`.agents/skills/freehire-search/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.agents/skills/freehire-search/SKILL.md)

### Edit the Frontmatter Enabled Flag

Open the target [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) and modify the YAML frontmatter at the top of the file. Change the `enabled` value to `true` (or add the key if missing):

```yaml
---
name: jobbank-search
version: 1.0.0
description: Search live Danish job listings from Jobbank
enabled: true   # Set to true to include, false to skip

---

```

If you need to disable a portal temporarily without deleting its configuration, set `enabled: false`:

```bash
sed -i 's/enabled: true/enabled: false/' .agents/skills/freehire-search/SKILL.md

```

### Execute the Scraper

Run the scraper command to apply your changes:

```bash
claude code /scrape

```

The scraper will now include the newly enabled portal in its parallel search batch, using the CLI command defined in that portal's [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md). Disabled portals will be explicitly listed as skipped in the execution report.

## Bulk Configuration Strategies

To enable multiple portals simultaneously, you can script the modification across several files. Since each portal operates independently, there is no central configuration file—each [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) controls its own state. This modular approach ensures that changes to one portal's availability do not affect others.

For example, to enable all portals in a directory:

```bash
for skill in .agents/skills/*/SKILL.md; do
  sed -i 's/enabled: false/enabled: true/' "$skill"
done

```

## Summary

- The scraper discovers portals by reading `.agents/skills/*/SKILL.md` files automatically.
- The `enabled` flag in YAML frontmatter controls inclusion; omitting the key defaults to enabled.
- Set `enabled: true` to activate a portal, or `enabled: false` to skip it without removing code.
- Changes take effect immediately on the next `/scrape` invocation—no service restart or additional wiring required.
- Discovery and filtering logic is implemented in [`.claude/skills/job-scraper/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/skills/job-scraper/SKILL.md).

## Frequently Asked Questions

### What happens if the enabled key is missing from SKILL.md?

If the `enabled` key is absent from the frontmatter, the portal is treated as enabled by default. The scraper will include it in the search batch unless explicitly disabled with `enabled: false`.

### Can I enable multiple portals at once?

Yes. Since each portal has its own [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md), you can edit multiple files to set `enabled: true` before running the scraper. The `/scrape` command will execute all enabled portals in parallel, respecting each file's individual toggle.

### Where is the scraper discovery logic defined?

The discovery mechanism and `enabled` flag handling are documented in [`.claude/skills/job-scraper/SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/.claude/skills/job-scraper/SKILL.md) at lines 60-72. This specification defines how the scraper reads the frontmatter and decides which portals to execute.

### Do I need to restart the CLI after changing enabled flags?

No. The scraper reads the [`SKILL.md`](https://github.com/MadsLorentzen/ai-job-search/blob/main/SKILL.md) files fresh during each `/scrape` invocation. Changes to the `enabled` field are picked up immediately on the next run without requiring a restart or reload of the environment.