Collect recent public job postings from Career.co.kr (커리어) by keyword. Use when the user wants to gather, scan, or monitor Career.co.kr listings for a role, stack, or company. Read-only — no login, save, or apply. Prints a normalized JSON array of postings.
14 stars
0 votes
0 copies
3 views
Added August 31, 2026
ai-agentspythonbash
Works with
cli
Security analysis
A92/100
mediumInstalls packages at runtime which could introduce malicious dependencies
Installs into .claude/skills of the current project.
Are you the author of Career Kr Collect?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/itssosunny-career-kr-collect)
---
name: career-kr-collect
description: Collect recent public job postings from Career.co.kr (커리어) by keyword. Use when the user wants to gather, scan, or monitor Career.co.kr listings for a role, stack, or company. Read-only — no login, save, or apply. Prints a normalized JSON array of postings.
---
# Career.co.kr Collect
Collect recent public postings from Career.co.kr's public jobs listing 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 of the public `/jobs/` listing only. Never log in, save a
job, message, or apply. Do not submit any form.
- **No fabrication.** Fields the source does not expose are `null`; titles,
companies, locations, 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.
```bash
pip install curl_cffi beautifulsoup4 lxml # or: pip install -r requirements.txt
python3 skills/career-kr-collect/collect.py --query "개발자" --limit 20
python3 skills/career-kr-collect/collect.py --limit 20 # whole listing
```
- `--query, -q` — filter the listing by title/company substring (**client-side**;
see Notes). Omit to return the whole listing.
- `--limit, -n` — max postings (default 20).
- `--pretty` — indent the JSON.
Output: a JSON array on stdout (`source, external_id, url, title, company,
location, employment_type, posted_at, deadline, salary, snippet,
collected_at`); a one-line count on stderr. Career.co.kr exposes company,
location, employment type, deadline, and sector hashtags (kept in `snippet`).
## Notes
- Source: `SRC-JOB-CAREER` — https://job.career.co.kr/ (collectible_open,
re-verified 2026-07-07). The root auto-redirects to `/jobs/`.
- **Keyword filtering is client-side.** The public `/jobs/` listing ignores GET
keyword params (`?keyword=`, `?searchWord=`, `?q=` all return the same
featured list); the site's server-side search is a POST-only filter form,
which is out of scope for a read-only GET collector. So `--query` filters the
fetched listing by title/company substring, like the WeWorkRemotely feed
collector. For unfiltered breadth, omit `--query`.
- Rows are `tbody tr` containing a `/recruit/view/<id>` anchor; `external_id` is
that numeric id. Canonical detail URL: `/recruit/view/<id>`.
- If the layout changes and 0 postings return, re-derive the `tbody tr` /
`a[href*='/recruit/view/']` selectors and the per-cell mapping against a live
fetch (do not hardcode a specific company).