Which Job Portals Are Shipped with the AI Job Search Framework?
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 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 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.
Located at .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.
Freehire
Defined in .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.
Regional Job Portals (Disabled by Default)
Four Denmark-specific portals are shipped but require manual activation via their SKILL.md files.
Jobnet
Configured in .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, 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, 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, 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 file:
# 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:
# 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
enabledboolean in each portal'sSKILL.mdfile. - All portals expose a unified CLI interface at
cli/src/cli.tswithin their respective directories. - The
/scrapeworkflow 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 file (e.g., .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 file within the portal’s skill directory under .agents/skills/<portal-name>-search/. The executable CLI logic is located at 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 files. For manual usage, you must run separate CLI commands for each portal, as each skill operates as an isolated Bun process.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →