Repository navigation
Community forks & adaptations #78
Replies: 47 comments 97 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 |
|
🎨 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
|
|
Job Search Desk is a desktop app for a US job search. Download it, run it, and the hunt stays in a folder on your computer. Download 1.3.4 (current release):
Run the file you downloaded. Windows adds a Start Menu and Desktop shortcut and opens the app. If SmartScreen says it protected your PC, choose More info, then Run anyway. On a Mac, open the disk image, drag the app to Applications, then right-click it and choose Open. On Linux, mark the AppImage executable and run it. The first launch installs Claude Code if it is missing, and sign-in happens in Claude Code's own window. GIF of the live Desk (Setup, the Jobs list, Apply, and Autofill). Autofill never clicks Submit:
Fork: https://github.com/iLevyTate/ai-job-search ( Adapts: US / North American job search, English defaults, and this installable Desk for macOS, Windows, and Linux. Profile files on this branch are still Portals: The enabled CLI is Automation beyond search: Tracks upstream: A true fork, diverged on purpose so the US defaults stay. Upstream commits are cherry-picked rather than merged, so a raw behind-count overstates the gap; |
|
ENTRA portal skill (
@MadsLorentzen — this is the route you offered on #491, thank you for setting it out that plainly. The two day-one bugs you found are fixed in the commit that opens this repo: 1. $ search -q engineer --location US --limit 5 # meta.total 6205 of 9292
$ search -q engineer --location "San Francisco" -n 5 # meta.total 1188
$ search -q engineer --location "Berlin, DE" -n 3 # Berlin roles, not a thinned page
$ search -q engineer --location Denmark
{"error":"--location \"Denmark\": Denmark is a country ENTRA does not cover. Its geography spans 36 countries — supported country codes: AE, AR, AU, BD, BH, BR, CA, CH, CL, CN, CY, DE, EG, ES, FR, GE, HK, IN, IT, JO, JP, KR, KW, LB, LK, MX, MY, NL, OM, PH, PK, QA, SA, SG, UK, US. For a city, pass the city itself or \"City, Country\".","code":"LOCATION_NOT_FOUND"}
$ echo $?
1Two data bugs in my own city table are handled rather than hidden, and both are worth knowing about if you run it: it holds duplicate rows ( 2. The transient 3. robots.txt is the one I have not finished — it is on my side of the fence, as you said, and it is in progress. Until it ships, the disclosure above is the honest version: the skill reads a path my own site tells crawlers to stay off, with the operator's sanction and nothing else. No claim on core promotion here — #277's bar is observed demand, and there isn't any yet. A row in the index is what I'm asking for, with the first-party and tracking facts in it. |
|
https://github.com/MRDGH2821/ai-job-search-plugin Made a claude code plugin, agentically engineered using claude code itself. Tracks upstream skills changes, creates a separate workspace keeping PII separate. Might need thorough testing. |
|
🇲🇾 Malaysia edition: https://github.com/dkchiang96/ai-job-search-malaysia (verified at
|
|
Hello all, First of all, thank you @MadsLorentzen for such a great tool.
Both follow the shipped portal-skill contract (search/detail commands, --format json|table|plain, stderr JSON + exit 1 on error, backoff on 429/5xx) and come with their own test suites (bun test). Repo: https://gitlab.com/timaero/ai-job-search-timaero-improvements Built with Claude Code on top of this framework. |
|
🌍 room2speak/ai-job-search — Remote-first adaptation for Brazilian candidates targeting US companies Fork: https://github.com/room2speak/ai-job-search What it adapts: Not a domestic market overlay. This fork is built for Brazilian professionals competing for remote roles with US-based companies. Five portal skills added: djinni-search (Djinni, strong in remote tech and ops roles), wwr-search (We Work Remotely), dynamite-jobs-search (Dynamite Jobs, strong in executive assistant and operations), remoteok-search (Remote OK), and virtualwizards-search (Virtual Wizards, LatAm remote-staffing board at jobs.virtualwizards.io). All five focus on international remote boards, complementing @davicalvarenga's adaptation which covers the Brazilian domestic market via Gupy and Vagas.com. Automation: Search and detail only. No form filling, no submissions. Upstream tracking: Core framework unchanged. Fork is additive, five portal skills on top of upstream, rebases cleanly. Tests: All five portal skills have their own test suites (127 tests total, passing). Profile files are back to upstream placeholders. Thanks for building this, @MadsLorentzen. The portal skill architecture made it straightforward to extend for a new use case. |
|
I'm worried that many forks build the same portal skills again. I raised a related point in July (fork explosion, who owns the portals), and the duplication has grown since then. The country-agnostic boards are the clearest case. In this thread alone:
Each copy gets its own fixes, or none, so the copies drift apart. A bug found in one fork stays in the others, and nobody knows which copy is the most correct. The "copy one folder from the portal index" model works for market-specific boards. For boards that every market can use, I think one shared home would be better, either upstream or in a single community repo. Then forks only add their local boards, and fixes reach everyone. |


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)⚙️🌍 ai-job-search-global by @Faisa1khan - Google Antigravity runtime port plus a global / remote tech market adaptation (
.agents/skills/mirror of the.claude/specs with tool names mapped, rootAGENTS.md; four new portal skills -ats-search,waas-search,himalayas-search,remotive-search; HTML/CSS 1-page templates compiled with headless Chromium; a five-gate document verifier). Heads-up: this fork can submit applications.tools/ats_submitter.tsdrives Chromium against Greenhouse/Lever forms; it defaults to dry-run, and a live submit requires an interactive terminal and typingSUBMIT- the gate is in the code (non-TTY refuses; no flag, env var or batch mode skips it; captcha handling is detection only), and a companion userscript fills fields but never submits. The confirmation is asked before the form is filled, so run the dry-run first, every time, to see what would be sent. Placeholder-clean, path-scoped allowlist kept; reviewed at312eb5a)🇺🇸 iLevyTate/ai-job-search by @iLevyTate - US / North American adaptation packaged as Job Search Desk, an installable Electron desktop app for Windows, macOS and Linux (releases) that runs Claude Code on the workspace and installs it on first launch if missing (Anthropic's official script via a piped shell).
freehire-searchenabled;linkedin-searchand the Danish demos shipenabled: false; US boards (Indeed, Dice, Built In, Wellfound, ClearanceJobs, USAJobs, ATS boards) are WebSearch fallbacks. Heads-up: ships browser form-filling (ats-autofill, Playwright) listed under criterion 5 - it fills and attaches, never clicks Submit (skips every submit/button control in code), and both review gates can only return continue or cancel, defaulting to cancel; no flag, env var or batch mode submits. Installers are unsigned, so expect SmartScreen/Gatekeeper warnings; the app auto-updates from GitHub releases. Diverged from upstream on purpose, framework updates merged by hand. Reviewed 2026-09-24 at00af8c9.⚙️ ai-job-search-plugin by @MRDGH2821 - Claude Code plugin / marketplace packaging of the workflow (two plugins: the core, and the Danish portals off by default; every command becomes a namespaced skill,
claude plugin validatepasses;/init-workspacelays out a separate workspace and/sync-instructionswrites itsAGENTS.md, so the plugin never holds your data). Same posture as upstream on the workspace itself:profile/and the example CV are tracked there, so keep that workspace on a private remote. No hooks, no MCP servers, no new hosts, path-scopedallowed-tools; the Danish portal skills pre-approve a scopedbun install. Author's own note: needs thorough testing, and nothing has been run end-to-end here either. Forked from120f476; a weekly report-only upstream watch is wired in. Reviewed 2026-09-27 at8c68538.🌍 entra-search by @dubaikseniia-wq - ENTRA portal skill as a standalone folder (postings ingested from employers' own ATS, AI / software / data-leaning, 36 countries; first-party: the author operates entracareers.com; every result
urlcarriesutm_source=ai-job-searchtracking whileapply_urlis the employer's clean link; hosted service, not self-hostable;--locationresolves server-side and exits 1LOCATION_NOT_FOUNDoutside the 36 countries;--location-fallback remotesearches remote roles instead and records the fallback inmeta.location, which is what/scrapeshould pass in an uncovered market; search and detail only; 64 offline tests; reviewed 2026-10-05 at4246321)🇲🇾 ai-job-search-malaysia by @dkchiang96 - Malaysia adaptation.
hiredly-searchreads server-renderedmy.hiredly.compages and filters--query/--jobageclient-side, declared, because Hiredly's search API is robots-disallowed; JobStreet, Indeed and LinkedIn are covered through the user's own Gmail alert emails over read-only IMAP (/gmail-alerts), since JobStreet's robots.txt and Indeed's Terms both rule out agents; three remote boards shipenabled: false; RM salary normalisation plus Malaysian location, language and eligibility rules. Nothing fills or submits; the only send is an opt-in run summary to the user's own address, hard-wired in code. Read before enabling: the opt-in scheduled runner launches headless Claude withacceptEditsand a wider tool list thansettings.json. Profile files byte-identical to upstream, 12 commits on top of120f476, path-scoped allowlist kept. Verified 2026-09-28 at810e115.🇧🇷➡️🇺🇸 room2speak/ai-job-search by @room2speak - remote-first adaptation for Brazilian candidates targeting US and international remote roles, a destination-market edition rather than a domestic one (pairs with @davicalvarenga's Gupy/Vagas.com fork for the home market). Five portal skills, all contract-conformant, zero deps, honest UAs:
djinni-search(RSS; company arrives atdetail),weworkremotely-search(category RSS feeds;--categoryrequired, declared),dynamitejobs-search(category sitemaps plus posting pages;--categoryrequired, declared; never touches the robots-disallowed/api/),remoteok-search(/api, a rolling ~100-posting window, attribution terms quoted in the skill),virtualwizards-search(small LatAm remote-staffing board). 127 offline tests, typecheck clean. Standalone repo carrying upstream history rather than a GitHub fork (no fork badge); profile files placeholder-clean, core untouched, sits on09435eb. Verified 2026-10-03 at05420fa.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).agents/skills/ats-search(public ATS JSON APIs over a user-curated watchlist intools/ats_watchlist.json; reviewed at312eb5a).agents/skills/waas-search(reviewed at312eb5a).agents/skills/himalayas-search(public API; reviewed at0c08633).agents/skills/remotive-search(public API; reviewed at312eb5a).agents/skills/hiredly-search(server-rendered pages only, the search API is robots-disallowed;--query/--jobageclient-side; personal use per Hiredly Terms; reviewed at810e115).agents/skills/entra-search(first-party,utmtracking onurl, hosted; outside the 36 countries pass--location-fallback remote; reviewed at4246321)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