agentsclimarketplace

Worldjobplus collect

Skill itssosunny/job-searcher/skills/worldjobplus-collect

Collect public overseas-job postings from WorldJobPlus (월드잡플러스), Korea HRD's 해외취업 portal, by keyword and country. Use when the user wants to gather, scan, or monitor overseas (해외취업) job listings for a role or country. Read-only — no login, save, or apply. Prints a normalized JSON array of postings.From its SKILL.md

Install
npx -y skills add itssosunny/job-searcher --skill worldjobplus-collect

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

3.0 KB, 746 tokens by cl100k_base, as published. Nobody here has run it

WorldJobPlus Collect

Collect public overseas-employment postings from WorldJobPlus (월드잡플러스), the Korea HRD (한국산업인력공단) 해외취업 portal, and return normalized JSON (docs/SCHEMA.md). Self-contained: this skill's collect.py carries its own fetch + parse and depends only on curl_cffi, beautifulsoup4, lxml.

Boundaries

  • Read-only. GET/POST of the public listing endpoint only (the POST just sets page size / page index — it is not a login or an application). Never log in, save a job, message, or apply.
  • No fabrication. Fields the listing does not expose are null; titles, employers, countries, salaries, and deadlines are copied verbatim.
  • A collected posting reflects the public page at run time; it is not proof the role is still open.

Run

If collect.py fails with ModuleNotFoundError, install the deps yourself (pip install curl_cffi beautifulsoup4 lxml) and retry — do not ask the user to install anything.

pip install curl_cffi beautifulsoup4 lxml   # or: pip install -r requirements.txt

python3 skills/worldjobplus-collect/collect.py --limit 20
python3 skills/worldjobplus-collect/collect.py --query "engineer" --location 일본
  • --query, -q — filter the parsed rows by title/employer substring (client-side).
  • --location, -l — filter by country substring, e.g. 일본, 베트남, 미국 (client-side; country is exposed per row).
  • --limit, -n — max postings (default 20; the collector pages through the list 50-per-page until the limit is reached).
  • --pretty — indent the JSON.

Output: a JSON array on stdout; a one-line count on stderr. Each row exposes title, employer (company), country (location), salary (연봉/시급 as shown), employment type (정규직/계약직/인턴 as shown), application deadline (MM/DD(요일)), and a snippet (job field / experience / education / visa).

Notes

  • Source: SRC-JOB-WORLDJOBPLUS — https://www.worldjob.or.kr/ (collectible_open, re-verified 2026-07-07). The list endpoint /advnc/cnttNewList.do is server-rendered; posting ids look like E20260707013.
  • Rows are div.post-box; external_id is the E… id from the row's goView1('E…') handler. The detail page is a JavaScript popup with no plain-GET URL, so url points at the public list endpoint and the stable id lives in external_id (no fabricated detail link).
  • If the layout changes and 0 postings return, re-derive the div.post-box child selectors (h5.mb4 a, p.mb8 a, .nation-box img, .day-box, .post-condition-box p) against a live fetch (do not hardcode a specific role or posting id).

What ships with it: 1 file

8.7 KB alongside SKILL.md, 1 of them executable

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.