Community forks & adaptations #78
Replies: 40 comments 78 replies
|
🇻🇳 Vietnam Fork: ai-job-search-vn https://github.com/jamesng16/ai-job-search-vn Working:
Blocked: TopCV (Cloudflare 403), VietnamWorks (SPA) Built from HCMC 🇻🇳 |
|
Thanks for setting up this discussion, related PR link: #67. I have published a China-mainland focused fork here: https://github.com/youngledo/ai-job-search-cn This version may be a better fit for Chinese users who want a localized workflow while still staying close to upstream. The main reason is that the country/market-specific behavior is kept isolated under a China market layer instead of rewriting the core upstream workflow. That gives it a few practical advantages:
The goal is not to push China-specific behavior upstream, but to keep a maintained Chinese version that benefits from upstream while respecting the market-specific boundary. |
|
🇪🇸 Spanish market edition — https://github.com/erikpr1994/ai-job-search A fork adapted for the Spanish job market: adds portal search skills for InfoJobs, Tecnoempleo, and GetManfred (LinkedIn + freehire stay as country-agnostic defaults), with Profile files remain upstream placeholders — clone and run |
|
🇧🇷 davicalvarenga/ai-job-search — Brazil adaptation
Thanks for the framework, @MadsLorentzen — hoping this helps Brazilian job seekers get started. 🙌 |
⚙️ Codex adaptation: trikto/ai-job-searchThis fork adds Codex compatibility to the original What it adapts
Upstream trackingThe fork remains closely aligned with upstream. The adaptation is additive, with I plan to keep the fork updated with upstream improvements while maintaining the Codex compatibility layer separately. Thanks for providing a clear place to share community adaptations! |
|
🇵🇱 Poland Adaptation (Pracuj.pl & JustJoin.it) Hi everyone! Disclaimer: I did this primarily for my personal use to quickly start applying, so I modified the core template files directly. This means it might be difficult to pull future upstream updates into this fork without conflicts. However, if you are from Poland and just need a working, out-of-the-box solution right now – it works great! Anyone is free to use it, or take my code and refactor it into proper isolated skills if they have the time. Happy job hunting! Link to the fork: https://github.com/pandawidkur/ai-job-search-pl |
|
🇺🇸 chenyuan99/ai-job-search by @chenyuan99 — US market adaptation
|
Google Antigravity (AGY) Adaptation (Gemini-powered local run)I have created an adaptation for running this framework using Google Antigravity (AGY), providing a cost-effective, Gemini-powered alternative to Claude Code for scraping, triage, and tailoring.
|
⚙️ OpenCode adaptation: Affan-p/ai-job-searchCurrently on the Codex, Antigravity, and Gemini CLI all have adaptations in this thread, but OpenCode doesn't yet. OpenCode reads What it adapts Adds an opencode.json mapping all 11 workflow commands to OpenCode:
Keeps the existing Claude commands and workflows unchanged. Upstream tracking The fork remains closely aligned with upstream. The adaptation is additive, with |
|
rasstamann/ai-job-search-germany by @rasstamann - German/DACH market adaptation
Main functionalities have been tested. So far, only Xing allows data scraping, but at reason. They don't outright prohibit data scrapers, but it is stated that it should be used sparringly. |
|
🇳🇱 Dutch market edition: https://github.com/Fabian-Schreuder/ai-job-search-nl A Netherlands-focused fork built directly on top of upstream MadsLorentzen/ai-job-search. What it adapts
Language / market
Tests / CI
Personal use only
Tracks upstream: closely; one Dutch-market delta commit on top of a recent upstream head. Feedback welcome. |
|
Welcome, and verified - this is one of the cleanest fork announcements this thread has had. I checked the tree against every claim: the skill is real (zero deps, single public-API endpoint, mocked-fetch tests, and the personal-use/rate-limit note is exactly the standard this thread has converged on), the Danish demos are disabled via the One question before I add the index row, purely provenance: this fork belongs to @Fabian-Schreuder while the announcement comes from @3dhq, a brand-new account - same person? Every row in the index is an implicit recommendation to the people who clone from it, so I confirm who's behind a fork before listing. (No concern about the content itself - it screened clean.) Confirm and the 🇳🇱 row goes in. |
|
Index refresh - the forks index is growing 🌍 We're up to 11 adaptations across ~9 markets (China, Vietnam, Spain, Brazil, Poland, US, Germany/DACH, Netherlands) plus Codex and OpenCode harness ports - all from people who found this thread and shared. If you maintain a market or language fork that isn't listed yet, this is the nudge: reply with your fork link + what it adapts (format in the opening post), and it'll be added to the index and the portal-skill table. The whole point is that a job-seeker in your market can find your work instead of starting from scratch. One reminder now baked into the opening post: share a clean branch, not your filled-in profile - |
|
Two adaptations worth surfacing 🇳🇴 🇮🇳 - spotted while going through forks, inviting them here rather than listing without the maintainer's say-so. @ThomasHjartarson - I came across your fork ai-job-search-no and noticed you built @ashutoshgh - I had a look at your fork ai-job-search-india and you've done substantial work: skills for Apna, Hirist, IIMJobs, Instahyre, Indeed India, Randstad India, and more. That's easily the most complete Indian-market adaptation I've seen, and India's a market a lot of people ask about. Would you consider sharing it here? Just reply with your fork link + a line on what it covers, and it goes into the list and the per-portal table. (Aside: someone once proposed a One protective heads-up for both of you: |
|
@FARLEY-PIEDRAHITA-OROZCO - going through forks I came across ai-job-search-opencode, and you've built Would you share it in this thread? A reply with your fork link + a one-line "what it adapts" is all it takes, and it goes into the index and the portal-skill table so people in Colombia and neighbouring markets can find it. Same protective heads-up as above: point people at a branch where |
|
🇬🇧 UK adaptation — ai-job-search-uk Repo: https://github.com/anjolok1997/ai-job-search-uk Thanks for building this, Mads — I forked it and adapted the job boards and evaluation gates for the UK market. The core /setup → /scrape → /apply workflow is unchanged; everything below is additive. What's different:
All portal skills follow the same search/detail contract as upstream, with tests, so they're drop-in for anyone who wants just one UK board. Full credit for the framework goes to you —happy for others to borrow from it. |
|
🇺🇸 US new-grad adaptation — verification-first + referral sourcing ( Repo: https://github.com/ayushsawnani/job-search-project TL;DR: I reworked it from an on-demand "tailor my CV" tool into an autonomous, verification-first What I added
Guardrails I kept strict: never auto-submits, never auto-connects/messages, never fabricates a Stack added: Claude in Chrome (browser automation), scheduled tasks, per-posting subagents. Happy to break any of these down if useful to others building US/new-grad variants. |
|
Runtime fork: MiMo Code + Qwen3-Coder-Next Added support for running this framework on MiMo Code (Xiaomi's OpenCode fork) with Qwen3-Coder-Next as the coding agent, for anyone who wants a fully local/self-hosted alternative to Claude Code. Following the thin-pointer approach from CONTRIBUTING.md: the .mimocode/ directory holds MiMo Code's own agents/commands, but they point back to the canonical specs in .claude/ and AGENTS.md rather than duplicating them — so upstream methodology changes stay reachable via check_upstream_updates.py like any other fork. What's added: .mimocode/commands/ — command definitions mirroring the core lifecycle (/setup, /scrape, /rank, /apply, etc.) for the MiMo Code runtime Fork: https://github.com/CoNFiDeNTHaKaN/ai-job-search (branch: mimocode-integration, set as default) Happy to answer questions if anyone's running local LLMs (Qwen, GLM, etc.) via llama.cpp and wants to try this route instead of Claude Code. |
|
My comment isn't about my fork, but rather about bunch of your forks and inspired projects. I've been building an index of repos you fork and work inside, like this one. I call them agentic workspaces. agentic-workspaces.com This project has one of the biggest families in the index (other repos that have this one in its core), 124 copies and adaptations: https://agentic-workspaces.com/family/madslorentzen-ai-job-search. Each row shows what that copy added on top of the original. 58 of the 124 built something the original doesn't have, and 32 added support for a different agent. It finds them by structure rather than the fork graph, so it catches copies that were never forked from here. The loose matches at the bottom are guesses. |
|
Typst CV + cover-letter templates (bring-your-own; bundled LaTeX stays) The pair #351 asked for, published separately — not a request to replace moderncv. • Clean copy (placeholders only): https://github.com/sdrarunvarshan/ai-job-search (typst-modern/) /add-template typst-modern/cv/template.typ Compile stays typst compile .typ .pdf. /add-template --use default restores LaTeX. • Tracks upstream: not a framework fork — independent MIT templates After the ATS PR is open, reply on #367 that you took those two doors and left FCC and portals out and also i have combined the waleedtarbosh/ai-job-search Universal Edition (OpenCode / Gemini / Codex pointers) and 🇮🇳 ai-job-search-india by @ashutoshgh India + remote portal skills in my workflow |
|
🇨🇴 Colombia / Latin America adaptation — oscarbol09/ai-job-search (Computrabajo)
|
|
Hi everyone — I’m Louis, an undergraduate student at The Ohio State University with an interest in AI tools, developer workflows, and open-source software. I built this Codex port while exploring how mature Claude Code workflows can be adapted cleanly to other agent runtimes without compromising traceability or user privacy. Project: ai-job-search-codex-port What it adapts: An unofficial Codex plugin port with an installable plugin manifest and marketplace layout, Codex-native orchestration over the upstream canonical workflows, and a private workspace initializer that keeps candidate data outside the installed plugin. LinkedIn and FreeHire are enabled by default, while the four Danish portals remain opt-in. Implementation: Portal launchers execute the checked-in TypeScript source directly, with no prebuilt bundles or binaries in the repository. Upstream tracking: The port follows the upstream canonical workflows closely and preserves the MIT license and NOTICE attribution. Thanks @MadsLorentzen for the thorough review and for adding the port to the community index! Contact: chen.14774@osu.edu |
|
🎨 Into Design Systems - a portal indexed by specialization, not by market Repo: https://github.com/SimonDiff/into-design-systems-mcp-adapter What it adapts: one portal skill, Transport: the board publishes a public, read-only MCP server, so the CLI speaks JSON-RPC to it rather than parsing HTML. No account, no API key, and no robots.txt question: the endpoint is the documented interface. Direct MCP is the better choice if you just want to chat with the board; this exists so the results land in How closely it tracks upstream: not a fork. A standalone MIT repo holding just the skill folder, so the Path below points at Nothing to scrub: the repo has never held profile data. There's no Two deviations worth knowing about when you look:
Suggested row for the portal index:
Credit where it's due: the board and its MCP server are built and maintained by Sil Bormüller of Into Design Systems. I'm not affiliated with them, just a user who wanted the board in the |
This comment was marked as spam.
This comment was marked as spam.
|
🇮🇳 India fork, blue-collar focus: https://github.com/smartbriefai/ai-job-search-india-bluecollar Working: ✅ shine-search - Shine.com (HT Media), mainstream white-collar, all major cities. 27 tests Blocked: NCS (API needs encrypted payloads, returns Invalid or unencrypted request payload), Naukri (Cloudflare + fingerprinting), Indeed India (robots.txt names ClaudeBot on /jobs), Internshala (robots.txt blocks Anthropic bots by name, technically allowed under * but skipped), Cutshort (public API is recruiter-side only, no candidate job search exists), Quikr (robots.txt prose prohibits automation), Freshersworld (Disallow:/jobs/jobsearch/), Foundit / TimesJobs / HerKey (client-rendered), Unstop (CloudFront 403 on the whole domain). Deviations, both in workindia-search. Its robots.txt disallows every URL containing ? or &:
Worth flagging: an unrecognised city slug 301s to WorkIndia's nationwide page, so "lakshadweep" quietly returned twenty jobs in Delhi and Hyderabad. The skill now compares the post-redirect URL and fails loud. Caught in a pre-publication audit, not by tests. Tracks upstream: merged onto current master (b959d6a). Danish portals stay disabled, linkedin and freehire stay enabled. @ashutoshgh's India fork is already listed and this isn't a replacement for it. Zero runtime dependencies, honest UA tokens, fixtures scrubbed of recruiter contact details before the branch was ever pushed. Adds two lines to the Bash allowlist and the matching entries in security_guards.py. Thanks for the nudge to build a portal skill rather than take a micro-task; the investigation taught me far more. |
|
🇨🇳 China-market adaptation: offer-harvester A China-market adaptation, restructured as a standalone repo (fresh history, no shared git lineage with upstream, so update triage via What it adapts
Honestly disclosed limits
Tracks upstream: additively, with intentional divergence — Privacy: no personal data in the repo — Thanks for the framework — the drafter-reviewer |
|
🇵🇱 Polish job boards: justjoin.it and nofluffjobs.com Hi @MadsLorentzen, First of all, thanks for the great software you're building — I use it myself and it's already helped me a lot. I'd like to contribute something I've been using that might be useful for others: support for two Polish job boards, justjoin.it and nofluffjobs.com. Each board is implemented as other job portals, no dependencies, works out of the box. The previous Polish implementation I found here (pandawidkur/ai-job-search-pl) returns a 404 now, so mine can be used instead: janlukowicz/ai-job-search Best regards, |
|
Here is the Docker Sandbox environment https://github.com/methanoya/MadsLorentzen_ai-job-search in case someone is looking for that |
|
AIPayList portal skill (
|
|
🚀 Google Antigravity & Global Tech Edition (ai-job-search-global) Fork: https://github.com/Faisa1khan/ai-job-search-global Thank you @MadsLorentzen — the workflow specs are the reason this port was mechanical rather than speculative. Replying in the format the thread asks for, with the details underneath:
What is in it
|

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This template is deliberately kept universal: market-specific portals, language adaptations, and alternative-harness ports live in forks rather than upstream (see the policy discussions in #31, #39, #49, #67). This pinned thread is where those forks get discovered.
📣 Built a market or language adaptation? Add it here. The list below is just the forks that found this thread - there are surely more out there. If you've adapted this for your country, language, or job boards, drop a reply (format below) and it gets added to the index so other job-seekers in your market can find it.
Before you post: what gets checked. A fork link here is an implicit recommendation to everyone who reads this thread, so each one gets its contents opened and read before it is added. Four things:
A clean, shareable branch. This one is for your protection, not mine:
/setupfillsCLAUDE.mdand the profile files with your real name, contact details, CV content and salary expectations. Point at a branch where those are back to the[YOUR_*]placeholders, and check thatseen_jobs, the tracker and any real CVs aren't committed. Don't lean on CI for this - theplaceholder-integrityjob is deliberately upstream-only, since it would fail on every personalised fork by design. History counts too, not just the tip. The line that gets missed is inside the data, not the contact block: a CV whose email and phone are back to placeholders but still carries a real name iname{}, with a real education and work history around it, identifies you just as well. Before you post, rungit grep -n "<your surname>"on the branch and read every hit, CVs included. And if real data ever made it into a commit on a fork, a stripped tip is not enough - objects stay reachable by SHA through the fork network even after a force-push - so build the public branch from a history that never held it, and keep the personalised workspace on a private remote (SETUP.md section 8). A standalone repo is the one case where amending the commit genuinely removes it.The portal skills exist and follow the contract.
search/detailcommands,--format json|table|plain, JSON errors on stderr with exit 1, backoff on 429/5xx, zero runtime dependencies, and their own tests. Deviations are fine, just declare them in your post - "this board has no pagination, so--pageisn't supported" reads much better than me finding it later.A safety pass. No install or lifecycle scripts, no surprise dependencies, no requests to anything beyond the portals you declare, nothing reading environment variables or the filesystem beyond what the skill needs. Boring in practice, and the reason a listing isn't instant.
Honest scoping. Licence and attribution intact; a personal-use note where a portal's ToS calls for it; anything metered or needing an API key shipped
enabled: false; and a line on how closely you track upstream, so readers know what they are picking up.Any automation that fills or submits applications. The template itself stops one step short of the send and always will. A fork may go further, and gets listed with a caveat in its row when the last touch is provably human in the code: an unconditional confirmation before every submit, with no flag, environment variable or batch mode that skips it; single-recipient sends only, never bulk; and no captcha, QR-code or bot-protection bypass anywhere. "The user reviews before it sends" in a README is not the bar - the gate in the code is. Say plainly in your post what the automation does and where that gate sits, and it gets read first.
None of this is an "is the code good enough" bar. It is about you not publishing your own data by accident, and this index not recommending something nobody read.
Maintaining a fork? Reply below with:
A link to your fork
Any automation beyond search (form filling, sending), and where its human gate sits
What it adapts (market/country, language, job boards, agent harness)
How closely it tracks upstream
Known adaptations so far:
🇨🇳 ai-job-search-cn by @cypggs - Chinese-language adaptation
🇨🇳 youngledo/ai-job-search by @youngledo - China-mainland market overlay (Chinese templates and workflows; from PR Add China market job-search overlay #67)
🇻🇳 ai-job-search-vn by @jamesng16 - Vietnam adaptation with an ITviec portal skill
🇪🇸 erikpr1994/ai-job-search by @erikpr1994 - Spanish market edition (InfoJobs, Tecnoempleo, GetManfred portal skills; localized README/SETUP)
🇧🇷 davicalvarenga/ai-job-search by @davicalvarenga - Brazil adaptation (Gupy and Vagas.com portal skills, full PT-BR guide)
⚙️ trikto/ai-job-search by @trikto - Codex harness compatibility layer (command-named
$skills pointing at the Claude workflow; currently on theagent/codex-command-skillsbranch)🇵🇱 ai-job-search-pl by @pandawidkur - Poland adaptation (Pracuj.pl, JustJoin.it); working snapshot that modifies core files rather than tracking upstream Repository no longer exists (checked 2026-09-07); see the Polish fork below for a maintained alternative.
🇵🇱 janlukowicz/ai-job-search by @janlukowicz - Poland adaptation (
justjoin-searchover justjoin.it andnofluffjobs-searchover nofluffjobs.com; zero runtime dependencies, 40 and 47 test cases, honest UAs, both skills stay off the paths each site's robots.txt disallows and document which. Verified 2026-09-07 atdc79ebe)🇺🇸 chenyuan99/ai-job-search by @chenyuan99 - US market adaptation (swelist-search skill over SimplifyJobs new-grad/internship data; currently on a work branch, master pending)
⚙️ Affan-p/ai-job-search by @Affan-p - OpenCode harness compatibility layer (
opencode.jsonmapping all 11 commands to the Claude workflow specs, rootAGENTS.mdas instructions; curated permission allowlist)⚙️ J-Argus by @MadCkull - Google Antigravity harness compatibility layer (15 thin pointer skills in
.agents/skills/wrapping the 12 commands and 3 core workflows, plus aTOOL_GLOSSARY.mdtranslating Claude Code tool names to runtime-neutral equivalents; zero changes to.claude/, tracks upstream cleanly)🇩🇪 rasstamann/ai-job-search-germany by @rasstamann - Germany/DACH adaptation (xing-search portal skill; StepStone and Indeed investigated and documented as blocked, kept on WebSearch fallback)
🇳🇱 ai-job-search-nl by @Fabian-Schreuder - Netherlands adaptation (nationalevacaturebank-search over the board's public JSON API; Danish demo portals kept as references but disabled via the
enabled:toggle; OpenCode pointer)🇨🇴 FARLEY-PIEDRAHITA-OROZCO/ai-job-search by @FARLEY-PIEDRAHITA-OROZCO - Colombia adaptation (computrabajo-search and elempleo-search portal skills for the two largest Colombian boards; Spanish triggers, Colombian city queries; OpenCode harness port)
🇳🇴 ai-job-search-no by @ThomasHjartarson - Norway adaptation (nav-search over arbeidsplassen.nav.no plus nav-feed-sweep over NAV's official public job-vacancy feed API; locale retargeted to Norway, Danish demo portals dropped. No finn.no skill by design, finn's robots.txt disallows crawling, so nav-search leans on arbeidsplassen.nav.no which republishes much of finn's advert text and links back)
🌍 9mtm/ai-job-search by @9mtm - Flowxtra platform portal (
flowxtra-searchover the ATS's public cross-tenant API - live postings from every company hosted on the platform, multi-country, Europe-leaning; author-disclosed first-party: the author works at Flowxtra, so automated read access is operator-sanctioned)🇦🇺 ai-job-search-au-starter by @frJEN - Australia adaptation (adzuna-search over Adzuna's official API, free BYO key via env vars; read-only Gmail alert-email ingestion for boards that block scraping - Seek, Indeed, Jora - plus LinkedIn alert emails; docs in English and Mandarin with a beginner walkthrough. Heads-up: ships an optional
/platform-syncthat uses Claude in Chrome to edit profiles and set up job alerts on logged-in accounts - per-action confirmation and no submissions, but it is browser automation upstream deliberately doesn't ship (feat(submit): add /submit to file drafted applications through their … #214), and the fork itself notes the platforms' ToS ambiguity; a draft/outlook-syncrelies on an unvetted third-party MCP server)🌍 rakshith48/ai-job-search by @rakshith48 - Firecrawl fallback integration (
firecrawl-searchfor markets and boards without a dedicated portal skill, or when a portal parser is temporarily degraded; ships disabled -enabled: false- and/scrapemechanically skips it until a key is configured. Heads-up: Firecrawl is a metered hosted API billed per call, user-supplied key, env-only - the one paid-service exception in this index, which is why it lives in a fork (feat(firecrawl-search): add metered web job search #250); self-hosting Firecrawl is supported and needs no key)🇨🇦 ai-job-search-ca by @p3ji - Canada bilingual EN/FR adaptation (jobbank-ca-search over Job Bank / Guichet-Emplois and gcjobs-search over GC Jobs federal public-service postings, both zero-dependency and rate-limit-respecting; Canadian resume-conventions doc covering protected grounds, work-authorization phrasing, NOC codes and federal screening questions; Danish demo portals disabled. Sits on current upstream master; tracks via upstream merges)
⚙️ waleedtarbosh/ai-job-search by @waleedtarbosh - Universal Edition for Claude, OpenCode, Gemini/Antigravity, and Codex (centralized
AGENTS.mdcanon with thin per-harness pointer files and quickstart walkthroughs; verified placeholder-clean after a full history rewrite. Heads-up: the top layer is restructured -AGENTS.mdholds the canon andCLAUDE.mdbecomes a pointer, the inverse of upstream's Setup for opencode #45 shape - so it tracks upstream commands/skills, but core-file merges need care)🇨🇭 kblackma/ai-job-search by @kblackma - Switzerland/Romandie adaptation, French/English (job-room-search over the federal SECO job-room.ch board - Swiss Stellenmeldepflicht postings surface there before public boards - plus company-pages-search, an ATS-direct employer-watchlist skill over Greenhouse/Lever/SmartRecruiters/Oracle HCM, the named first candidate for core promotion per the fix(web-research): stop treating a WebFetch 403 as a dead posting #277 thread; jobup-search and englishjobsearch-search ship disabled by the author's own call - jobup's API path is robots-disallowed, englishjobsearch's categories proved noise; fetch layer identifies honestly and is gated by upstream's robots checker; rebased to current upstream master)
🇬🇧 ai-job-search-uk by @anjolok1997 - UK adaptation (reed-search, totaljobs-search, and wttj-search portal skills, UK city config, a cross-portal --graduate filter, and an opt-in Sponsorship Gate that checks employers against the gov.uk visa-sponsor register; Danish demo portals removed; tracks upstream via cherry-picks. Honest identifying User-Agent tokens and robots-compliant totaljobs pagination verified 2026-08-07)
🇺🇸 job-search-project by @ayushsawnani - US new-grad independent adaptation (inspired-by, shares no code) of the drafter-reviewer pattern for entry-level DS/ML/SWE, NY & Chicago (browser-verified posting liveness and real application questions via an ATS gate, a 4-agent review council, draft-only LinkedIn referral sourcing, an autonomous daily loop with CSV memory, and longitudinal skill-gap aggregation. Note: uses Claude in Chrome browser verification and scheduled unattended browsing - further than this template's own no-browser-automation posture - while keeping the last touch (submitting, sending) strictly human; never auto-submits or auto-connects. Screened 2026-08-06)
⚙️ CoNFiDeNTHaKaN/ai-job-search by @CoNFiDeNTHaKaN - MiMo Code + Qwen3-Coder-Next runtime port, a fully local/self-hosted alternative to Claude Code (the 12 commands mirrored to
.mimocode/as thin ports with tool names remapped, skills read natively from.claude/skills/with nothing duplicated, reviewer/rank-scorer subagents run write/edit-disabled, runtime config points only at a local llama.cpp endpoint; on themimocode-integrationbranch, fully current with upstream master. Screened 2026-08-10)🇮🇳 ai-job-search-india by @ashutoshgh - India market adaptation (10 India portal skills - Apna, Hirist, IIMJobs, Instahyre, Indeed India, Randstad India, Cutshort, AIJobs, Foundit, ProtocolJobs - plus 5 remote-board skills - Himalayas, RemoteOK, WeWorkRemotely, Y Combinator, Otta; honest identifying User-Agent tokens across all 15 CLIs. Heads-up: indeed-india-search's detail command fetches a path Indeed's robots.txt disallows - documented honestly in the skill itself, author follow-up pending. History verified placeholder-clean across all branches 2026-08-12)
🇨🇴 oscarbol09/ai-job-search by @oscarbol09 - Colombia / LATAM adaptation, second independent Computrabajo implementation (computrabajo-search over co.computrabajo.com; zero runtime dependencies, 40-case test suite, robots.txt-honest page-1-only pagination with an explicit personal-use note; on the
feature/computrabajo-searchbranch, rebased on current upstream master. Verified 2026-08-27)⚙️ ai-job-search-codex-port by @Tomchen070814 - unofficial Codex plugin port (installable Codex plugin manifest + marketplace layout, a Codex-native orchestration skill over the upstream canonical workflows, and a private workspace initializer that keeps candidate data outside the installed plugin; linkedin-search and freehire-search enabled by default, the four Danish portals ship opt-in with upstream's
enabled: false; source-only portal launchers - no prebuilt bundles or binaries anywhere in the tree, verified 2026-08-27 after the author removed the original dist/ payloads on request. MIT + NOTICE attribution intact)🌍 into-design-systems-mcp-adapter by @SimonDiff - Into Design Systems portal adapter (
into-design-systems-searchover the board's own public read-only MCP server via JSON-RPC - the index's first specialization-scoped portal: global Design System roles rather than a market. Standalone MIT repo, not a fork - one skill folder plus docs, zero runtime dependencies, offline stubbed tests; declared deviations: no--page(date-window walking via--jobage/--beforeinstead) andid: nulllistings kept and counted viameta.withoutDetail. Verified 2026-09-02 ate0e0382)🇮🇳 ai-job-search-india-bluecollar by @smartbriefai - India adaptation, second independent India fork, blue-collar focus (
shine-searchover Shine.com for mainstream corporate roles,workindia-searchover WorkIndia for blue- and grey-collar roles with tier-2/tier-3 strength; zero runtime dependencies, 27 test cases each, honest UA tokens, fixture contact details scrubbed before the first push. Declared deviations in workindia-search, both forced by a robots.txt that disallows every query-string URL: category+city path slugs instead of keyword search, and page 1 only. Fails loud when an unrecognized city slug 301s to the nationwide page - caught in the author's own pre-publication audit. Not a replacement for @ashutoshgh's India fork; the two cover different halves of the market. Verified 2026-09-03 atd71ae47)🇩🇰 job-agent by @mikkelkrogsholm - Danish job search as an MCP server rather than a skill folder: four standalone read-only servers (Jobnet, Akademikernes Jobbank, Jobindex, Jobdanmark) plus one combined server that searches all four concurrently, hosted for anyone at
https://job-agent.dk/mcpand self-hostable from the repo (bun >= 1.4). The same boards this template ships scrapers for, reachable from any MCP client with no code to maintain. Read-only by construction and by instruction: the server's own MCP instructions say "Never log in, change profiles, contact employers, or submit applications; the jobseeker approves and sends everything", every tool marks advertisement text as untrusted third-party content, honest identifying UAs, only the four boards as outbound hosts, no lifecycle scripts, anonymous fair-use rate limiting, 76 tests. Two things to know before you point a client at it: it is a hosted endpoint, so your search queries (not your profile) transit the author's server - self-host if that matters to you - and it is not a*-searchskill, so/scrapewill not pick it up; use it interactively through your MCP client, or wrap it with/add-portalif you want it in the scrape loop. Also ships an optional WebMCP surface, off by default. Verified 2026-09-03 at12f8133)🇨🇳 offer-harvester by @JiemsLBJ - China-market adaptation, standalone repo (fresh history, not a git fork; upstream-update triage is manual). Three campus and corporate portal skills following the contract (
shixiseng-searchover Shixiseng,tencent-searchover Tencent careers' public JSON,hotjob-searchover Wecruit/Hotjob employer sites) pluscompany-careers-search(Meituan, Feishu Jobs, Moka, Greenhouse, Lever, Ashby; adapted from career-ops, MIT attribution kept); zero runtime deps, honest UAs, path-scoped permissions per security: narrow Bash(bun run:*) to the six shipped portal CLIs #396. Ships form-filling automation, listed under criterion 5: a Playwright pipeline for campus-application forms with an unconditional confirmation before every submit (no flag, env var or batch mode skips it, verified in code), email applications that send one message only after an exact per-draft token, no captcha or bot-protection bypass anywhere, and a local-only dashboard. That is further than the template goes and further than most readers here will want; readautomation/before you run it. Profile files placeholder-clean with a CI identity guard on the CV templates; personal data found in the first review was removed by rebuilding the repo, verified gone. Portal smoke tests are live by design; the 26-case Python suite is offline. README in Chinese. Verified 2026-09-06 atcca0d4d)⚙️ methanoya/MadsLorentzen_ai-job-search by @methanoya - Docker Sandboxes environment harness: a
.sbx/directory (environment file plus a mixin kit installing poppler, pypdf, bun and TinyTeX with the moderncv package set, and PATH wiring for every shell) that runs Claude Code on this workspace inside an isolated microVM, plus a fork-side CI workflow that validates the kit. Tracks upstream master with the harness as the only change; profile files placeholder-clean. Read the kit before creating a sandbox: its network policy is allow-all and it provisions via piped shell installs, contained by the microVM. Screened 2026-09-10 at 4a10e72.🌍 alexmaiker007-bit/aipaylist-search by @alexmaiker007-bit - AIPayList portal skill as a standalone folder (paid AI training / RLHF / annotation contractor roles; first-party, referral-monetised board,
is_up_tokeeps "up to $X" honest; search and detail only; reviewed 2026-09-16 at8b5121d)Portal-skill index
Looking for a search skill for your job board? Find it below, open the fork, read the code, then copy the one folder into your own
.agents/skills/-/scrapepicks it up automatically. Discovery is centralized here; trust stays with you: review what you copy, exactly as you would any code that runs against your career data. (Idea credit: @rasstamann in #122.)Copy the skill folder and nothing else. In particular, never lift a fork's
.claude/settings.jsonortools/security_guards.py: upstream'sbun runallowlist is path-scoped per CLI on purpose (#396), and a fork may have widened it back toBash(bun run:*)for its own convenience. Borrowing a skill means approving its exact command once the first time you run it - expected, not a bug..agents/skills/jobindex-search.agents/skills/jobnet-search.agents/skills/jobbank-search.agents/skills/jobdanmark-search.agents/skills/linkedin-search.agents/skills/freehire-search.agents/skills/itviec-search.agents/skills/infojobs-search.agents/skills/tecnoempleo-search.agents/skills/getmanfred-search.agents/skills/gupy-search.agents/skills/vagas-com-search.agents/skills/justjoin-search(server-rendered listing pages; neverapi.justjoin.it, which robots.txt disallows; reviewed atdc79ebe).agents/skills/nofluffjobs-search(server-rendered listing pages; stays off/api/and/posting/per robots.txt; reviewed atdc79ebe).agents/skills/swelist-search(work branch).agents/skills/xing-search(personal use, low volume - see its ToS note).agents/skills/nationalevacaturebank-search(public JSON API; personal use, respect rate limits).agents/skills/computrabajo-search.agents/skills/elempleo-search.agents/skills/computrabajo-search(branchfeature/computrabajo-search; page-1 only per robots.txt - see its ToS note).agents/skills/elempleo-search(branchfeature/computrabajo-search; Schema.org JSON-LD extraction; reviewed atedcc9f9).agents/skills/torre-search(public REST API, no key; compensation in USD/COP; reviewed atedcc9f9).agents/skills/spe-search(public REST API of the national employment service; reviewed atedcc9f9).agents/skills/ticjob-search(IT and telecom vertical; robots-permitted listing pages, personal-use note; reviewed atde016b5).agents/skills/nav-search(public NAV board; fork also ships a companionnav-feed-sweepover NAV's feed API).agents/skills/flowxtra-search(public cross-tenant API; author-disclosed first-party skill).agents/skills/adzuna-search(official API; free personal key required, env-only).agents/skills/firecrawl-search(metered hosted API, user-supplied key, env-only; self-host supported; disabled by default viaenabled: false).agents/skills/jobbank-ca-search(bilingual EN/FR; honours the site's crawl-delay).agents/skills/gcjobs-search.agents/skills/job-room-search(federal board; Stellenmeldepflicht postings appear here before public boards).agents/skills/company-pages-search(Greenhouse/Lever/SmartRecruiters/Oracle HCM; user-curated watchlist in a gitignoredcompany_pages.json; honest UA, robots-gated escalation; core-promotion candidate per #277).agents/skills/reed-search(public pages, robots-compliant paths; no API key needed).agents/skills/totaljobs-search(robots-compliant path-only URLs; pagination beyond page 1 deliberately refused by the CLI).agents/skills/wttj-search(public JSON API, client-side GB filtering).agents/skills/<portal>-search, 10 skills (indeed-india-search'sdetailfetches a robots-disallowed path - see its own ToS note).agents/skills/<portal>-search, 5 skillsadapter/into-design-systems-search(board's own public read-only MCP server - no scraping, no key; reviewed ate0e0382).agents/skills/aipaylist-search(board's own public/jobs.json, no key; author-disclosed first-party, site monetised by referral links; pay is the advertised band top withis_up_toflagged; reviewed at8b5121d).agents/skills/shine-search(mainstream white-collar, HT Media group; robots-honest detail paths; reviewed atd71ae47).agents/skills/workindia-search(blue/grey-collar, tier-2/3 strength; category+city browsing and page-1 only per robots.txt, which disallows every query-string URL; reviewed atd71ae47)https://job-agent.dk/mcp- a hosted read-only MCP endpoint, not a skill folder: point your MCP client at it, or self-host from the repo; not picked up by/scrape; queries transit the author's server; reviewed at12f8133.agents/skills/shixiseng-search(internship board, Nuxt SSR parsing; live smoke tests; reviewed atcca0d4d).agents/skills/tencent-search(public JSON API, personal-use note; reviewed atcca0d4d).agents/skills/hotjob-search(defaults to Deloitte China, configurable; reviewed atcca0d4d).agents/skills/company-careers-search(adapted from career-ops, MIT; reviewed atcca0d4d)Fork authors: added a portal? Reply below and I'll add the row. China-fork portals welcome too - I only list paths I or the author can point to directly.
Forks that follow the portal-skill contract (
/add-portalgenerates compliant skills) stay compatible with upstream improvements -/scrapepicks up any installed*-searchskill automatically.All reactions