원티드(wanted.co.kr)에서 직군·직무를 골라 채용공고를 .csv로 떨궈주는 Go CLI 도구입니다.
터미널에서 화살표로 직접 고를 수도 있고, Claude에 붙여(MCP) 대화로 시킬 수도 있습니다.
./wanted export # 화살표로 직군·직무 고르면 CSV 생성- 🎯 화살표 대화형 선택 — 직군 하나 고르고 → 직무는 여러 개 토글 → 확정
- 🧩 직무 다중 선택 — 여러 직무의 공고를 모아 중복 제거 후 하나의 CSV로
- 🔄 항상 최신 — 직군/직무 분류를 원티드에서 실시간으로 가져옴
- 🤖 MCP 모드 — Claude Code / Claude Desktop에 도구로 연결
- 🪶 가벼움 — 의존성은 raw 터미널 처리용
golang.org/x/term하나뿐 (CLI 프레임워크 없음)
Releases에서 OS/아키텍처에 맞는 파일을 받습니다.
# 예: macOS (Apple Silicon)
tar xzf wanted_v1.0.0_darwin_arm64.tar.gz
./wanted version제공 대상: linux/amd64, linux/arm64, darwin/amd64, darwin/arm64, windows/amd64
- Go 1.25 이상 (버전은
go.mod의go지시자 기준)
git clone https://github.com/heebin2/wanted.git
cd wanted
go build -o wanted ./cmd./wanted groups # 직군 목록 보기
./wanted positions -group 개발 # 개발 직군의 직무 목록
./wanted export # 화살표로 직접 선택 (권장)
./wanted export -group 개발 -job "서버 개발자,웹 개발자" # 플래그로 바로 뽑기wanted <command> [flags]
| Command | 설명 |
|---|---|
groups |
직군(대분류) 목록 출력 |
positions -group <직군> |
해당 직군의 직무(소분류) 목록 출력 |
export [flags] |
공고를 수집해 CSV 저장 (-group 없이 실행하면 화살표 선택) |
mcp |
MCP 서버로 실행 (Claude 연결용) |
version |
버전 출력 |
help |
도움말 |
./wanted groups GROUP 직무수 직군
518 38 개발
507 32 경영·비즈니스
523 23 마케팅·광고
...
./wanted positions -group 개발 # 이름으로
./wanted positions -group 518 # id로export를 인자 없이 실행하면 화살표 UI가 뜹니다.
./wanted export직군을 선택하세요
↑/↓ 이동 · Enter 선택 · q 취소
▸ 개발 (직무 38개)
경영·비즈니스 (직무 32개)
...
[개발] 직무를 선택하세요 (여러 개 가능 · 미선택 시 직군 전체)
↑/↓ 이동 · Space/Enter 선택 · a 전체 · 맨 아래 '완료'에서 확정 · q 취소
▸ [✓] 서버 개발자 (공고 911건)
[✓] 소프트웨어 엔지니어 (공고 840건)
[ ] 웹 개발자 (공고 721건)
...
✅ 완료 — 선택한 2개 직무로 진행
↑/↓(또는j/k)로 이동,Enter로 직군 선택- 직무 화면에서
Space또는Enter로 여러 직무를 토글 — 선택하는 순간 실행되지 않습니다 a로 전체 토글, 다 고른 뒤 맨 아래✅ 완료행에서Enter로 확정 → 이때 수집 시작- 직무를 하나도 선택하지 않고 완료하면 직군 전체가 대상
q(또는Esc)로 취소
# 이름으로 선택 (부분·공백무시 매칭)
./wanted export -group 개발 -job "서버 개발자"
# 직무 여러 개 (쉼표 구분) — 중복 제거 후 하나의 CSV
./wanted export -group 개발 -job "서버 개발자,웹 개발자,Node.js 개발자"
# id로 선택 + 최대 50건 + 자격요건·우대사항까지
./wanted export -group 518 -job 872 -max 50 -detail
# 직무 생략 시 직군 전체
./wanted export -group 마케팅·광고 -out marketing.csv
# 지역 필터 (생략 시 전국)
./wanted export -group 개발 -job 872 -loc seoul.all,gyeonggi.all-group / -job는 id 또는 이름 둘 다 허용하며, -job은 쉼표로 여러 직무를 지정할 수 있습니다.
| 플래그 | 기본값 | 설명 |
|---|---|---|
-group |
(필수¹) | 직군 id 또는 이름 |
-job |
직군 전체 | 직무 id 또는 이름. 쉼표로 여러 개 |
-out |
wanted_<직군>_<직무>.csv |
CSV 출력 경로 |
-max |
0 (전체) |
수집할 최대 공고 수 |
-detail |
false |
자격요건·우대사항까지 수집 (공고별 조회, 느림) |
-loc |
전국 | 지역 키 쉼표 구분 (seoul.all,incheon.all,gyeonggi.all) |
-workers |
5 |
상세(-detail) 조회 동시 요청 수 |
-delay |
200ms |
요청 간 지연 |
¹ -group을 생략하면 대화형 선택 모드로 진입합니다.
| 컬럼 | 설명 |
|---|---|
공고ID |
원티드 공고 id |
회사명 / 업종 |
회사 이름 / 산업 분류 |
포지션 |
공고 제목 |
지역 / 상세주소 |
시·구 / 전체 주소 |
경력 |
요구 경력 (예: 5년+, 3~7년, 경력무관) |
보상금 |
합격 보상금 |
마감일 |
상시 채용이면 비어 있음 |
링크 |
공고 URL |
자격요건 / 우대사항 |
-detail 사용 시에만 추가 |
UTF-8 BOM을 붙여 저장하므로 Excel(Windows)에서도 한글이 깨지지 않습니다.
MCP(Model Context Protocol) 는 Claude에게 외부 도구를 연결하는 표준입니다.
wanted mcp를 등록해 두면, 터미널에서 직접 명령하는 대신 Claude에게 자연어로 시키면
Claude가 아래 도구를 알아서 호출해 결과를 가져옵니다.
| Tool | 인자 | 설명 |
|---|---|---|
list_job_groups |
— | 직군 목록 |
list_job_positions |
group |
직군 안 직무 목록 |
export_jobs_csv |
group, positions?(배열) / position?, out?, max?, detail?, locations? |
CSV 저장 후 경로·건수 반환 |
export_jobs_csv는positions배열(예:["서버 개발자","웹 개발자"])로 직무 다중 선택을 지원합니다.
# 빌드된 바이너리의 절대경로로 등록
claude mcp add wanted -- /절대경로/wanted mcpclaude_desktop_config.json에 추가:
{
"mcpServers": {
"wanted": {
"command": "/절대경로/wanted",
"args": ["mcp"]
}
}
}등록 후 Claude에게:
"원티드 개발 직군에 무슨 직무들 있어?" →
list_job_positions호출 "서버 개발자랑 웹 개발자 공고를 CSV로 뽑아줘" →export_jobs_csv호출
ℹ️
wanted mcp는 stdio 기반 JSON-RPC 서버라, 터미널에서 단독 실행하면 입력을 기다리며 멈춰 있는 것이 정상입니다(사람이 직접 쓰는 모드가 아님).
- 직군/직무 분류는 원티드 목록 페이지에 내장된 데이터(
__NEXT_DATA__)에서 실시간으로 파싱합니다. - 공고는 원티드 공개 목록 API를 페이지네이션하며 수집하고,
-detail사용 시 공고별 상세 API를 병렬로 조회합니다. - 여러 직무를 선택하면 각 직무의 공고를 모아 공고 id 기준으로 중복을 제거합니다.
⚠️ 원티드의 비공식(내부) 엔드포인트를 사용하므로, 사이트 구조가 바뀌면 동작이 달라질 수 있습니다. 개인적·학습 용도로 사용하고 과도한 요청은 피하세요.
wanted/
├── cmd/main.go # 진입점 + 디스패치 + 대화형 흐름
└── internal/
├── argument/ # 플래그 파싱 + help
├── command/ # 커맨드 enum
├── prompt/ # 화살표 키 선택 UI (raw 모드)
├── export/ # CSV 작성
├── mcp/ # MCP(stdio) 서버
└── wanted/ # 원티드 API 클라이언트
├── wanted.go # HTTP 클라이언트
├── category.go # 직군/직무 분류(taxonomy)
├── jobs.go # 공고 목록
├── detail.go # 자격요건/우대사항
└── collect.go # 선택 해석 + 수집 오케스트레이션
go test ./... # 테스트
go vet ./... # 정적 분석
gofmt -l . # 포맷 검사 (출력이 없으면 정상)main/master push 및 PR마다 GitHub Actions(.github/workflows/ci.yml)가 실행합니다.
gofmt포맷 검사go vet ./...go build ./cmdgo test -race ./...
Go 버전은 go-version-file: go.mod로 go.mod의 지시자를 따릅니다.
v1.0.0 형식의 태그를 push 하면 릴리스 워크플로우(.github/workflows/release.yml)가
5개 플랫폼 실행파일을 빌드해 GitHub Release에 자동 업로드합니다.
버전 문자열은 태그 값이 -ldflags로 주입되어 wanted version에 반영됩니다.
git tag v1.0.0
git push origin v1.0.0