feat(job-scraper): per-portal enabled toggle honored by /scrape (#160)

Implements the mechanism approved in discussion #93: enabled: true|false frontmatter on portal skills (missing key = enabled), honored during /scrape portal discovery, with skipped portals reported visibly in the run summary.
This commit is contained in:
Erik Pastor Rios
2026-07-15 20:20:37 +02:00
committed by GitHub
parent 55ba1c1652
commit 37595187d6
7 changed files with 15 additions and 2 deletions
+1
View File
@@ -11,6 +11,7 @@ description: >
jobs, engineering vacancies, data/ML jobs, DevOps roles, remote developer jobs, jobs, engineering vacancies, data/ML jobs, DevOps roles, remote developer jobs,
"are there any <tech role> jobs in <place>", look up this freehire job posting. "are there any <tech role> jobs in <place>", look up this freehire job posting.
context: fork context: fork
enabled: true # set to false to keep this portal installed but have /scrape skip it
allowed-tools: Bash(bun run .agents/skills/freehire-search/cli/src/cli.ts *) allowed-tools: Bash(bun run .agents/skills/freehire-search/cli/src/cli.ts *)
--- ---
+1
View File
@@ -19,6 +19,7 @@ description: >
jobbank søgning, find stilling, data scientist job, software developer job, jobbank søgning, find stilling, data scientist job, software developer job,
projektleder stilling, konsulent job, data analyse job. projektleder stilling, konsulent job, data analyse job.
context: fork context: fork
enabled: true # set to false to keep this portal installed but have /scrape skip it
allowed-tools: Bash(bun run .agents/skills/jobbank-search/cli/src/cli.ts *) allowed-tools: Bash(bun run .agents/skills/jobbank-search/cli/src/cli.ts *)
--- ---
@@ -17,6 +17,7 @@ description: >
work in denmark, employment denmark, job denmark, jobs near me denmark, work in denmark, employment denmark, job denmark, jobs near me denmark,
apprentice denmark, internship denmark, part-time denmark, full-time denmark. apprentice denmark, internship denmark, part-time denmark, full-time denmark.
context: fork context: fork
enabled: true # set to false to keep this portal installed but have /scrape skip it
allowed-tools: Bash(bun run .agents/skills/jobdanmark-search/cli/src/cli.ts *) allowed-tools: Bash(bun run .agents/skills/jobdanmark-search/cli/src/cli.ts *)
--- ---
+1
View File
@@ -17,6 +17,7 @@ description: >
hiring denmark, job listings denmark, python jobs denmark, grafisk designer job, hiring denmark, job listings denmark, python jobs denmark, grafisk designer job,
data engineer job, softwareudvikler job, full stack developer job danmark. data engineer job, softwareudvikler job, full stack developer job danmark.
context: fork context: fork
enabled: true # set to false to keep this portal installed but have /scrape skip it
allowed-tools: Bash(bun run .agents/skills/jobindex-search/cli/src/cli.ts *) allowed-tools: Bash(bun run .agents/skills/jobindex-search/cli/src/cli.ts *)
--- ---
+1
View File
@@ -18,6 +18,7 @@ description: >
social worker job denmark, occupation search denmark, esco occupation, job deadline, 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. ansøgningsfrist, søg efter job, full time job denmark, part time job denmark.
context: fork context: fork
enabled: true # set to false to keep this portal installed but have /scrape skip it
allowed-tools: Bash(bun run .agents/skills/jobnet-search/cli/src/cli.ts *) allowed-tools: Bash(bun run .agents/skills/jobnet-search/cli/src/cli.ts *)
--- ---
+1
View File
@@ -11,6 +11,7 @@ description: >
positions open, remote jobs, "are there any X jobs in <place>", look up this positions open, remote jobs, "are there any X jobs in <place>", look up this
job posting. job posting.
context: fork context: fork
enabled: true # set to false to keep this portal installed but have /scrape skip it
allowed-tools: Bash(bun run .agents/skills/linkedin-search/cli/src/cli.ts *) allowed-tools: Bash(bun run .agents/skills/linkedin-search/cli/src/cli.ts *)
--- ---
+9 -2
View File
@@ -59,7 +59,9 @@ If this fails (bun not installed), skip to **1c (WebSearch fallback)** for all p
Discover all installed portal CLI skills by reading every `SKILL.md` found under `.agents/skills/*/SKILL.md`. Each file documents that portal's exact CLI flags and usage examples. **Use each portal's own documented interface — do not guess flags.** This approach automatically includes any new portals added via `/add-portal` without requiring changes to this file. Discover all installed portal CLI skills by reading every `SKILL.md` found under `.agents/skills/*/SKILL.md`. Each file documents that portal's exact CLI flags and usage examples. **Use each portal's own documented interface — do not guess flags.** This approach automatically includes any new portals added via `/add-portal` without requiring changes to this file.
For each installed portal skill: **Honor the `enabled` toggle.** A portal is enabled unless its `SKILL.md` frontmatter sets `enabled: false` (a missing key means enabled — the default). Skip each disabled portal and record it for the Step 5 summary. A fork can thus keep a portal installed but sit out a run without deleting its directory.
For each **enabled** portal skill:
1. Read its `SKILL.md` to find the correct `bun run …` invocation and supported flags. 1. Read its `SKILL.md` to find the correct `bun run …` invocation and supported flags.
2. Translate the query terms from `search-queries.md` into that portal's flag format (e.g. `--key`, `--search-string`, `--query`, filter codes — whatever the portal's SKILL.md specifies). 2. Translate the query terms from `search-queries.md` into that portal's flag format (e.g. `--key`, `--search-string`, `--query`, filter codes — whatever the portal's SKILL.md specifies).
@@ -152,13 +154,18 @@ specific person was found; these are search links, not results.
### Step 5: Present Results ### Step 5: Present Results
Present new jobs in a table sorted by fit (high first): Present new jobs in a table sorted by fit (high first). When Step 1b skipped
portals (`enabled: false`), report them with the `skipped (disabled):` line below
so opting one out stays visible rather than silent; omit the line when nothing
was skipped.
``` ```
## New Job Matches - YYYY-MM-DD ## New Job Matches - YYYY-MM-DD
Found X new positions (Y high, Z medium, W low match). Found X new positions (Y high, Z medium, W low match).
skipped (disabled): <portal-name>, <portal-name>
| # | Fit | Title | Company | Location | Deadline | URL | | # | Fit | Title | Company | Location | Deadline | URL |
|---|-----|-------|---------|----------|----------|-----| |---|-----|-------|---------|----------|----------|-----|
| 1 | High | ... | ... | ... | ... | [Link](...) | | 1 | High | ... | ... | ... | ... | [Link](...) |