Claude Code로 멀티에이전트 잡 서치 시스템을 구축했습니다 — 631 평가, 12 모드
Source: Dev.to
위에 제공된 소스 링크 외에 번역할 텍스트를 알려주시면 한국어로 번역해 드리겠습니다.
내가 만든 것
12개의 운영 모드가 있는 멀티‑에이전트 시스템으로, 각 모드는 자체 컨텍스트와 규칙을 가진 Claude Code 스킬 파일입니다. 단일 스크립트가 아니라 문제 영역에 대해 추론하는 에이전트입니다.
핵심 아키텍처 선택: 하나의 긴 프롬프트 대신 모드.
career-ops/
├── modes/
│ ├── _shared.md # North Star archetypes, proof points
│ ├── auto-pipeline.md # Full pipeline: JD → eval → PDF → tracker
│ ├── oferta.md # Single‑offer evaluation (A‑F)
│ ├── batch.md # Parallel processing with workers
│ ├── pdf.md # ATS‑optimized CV per offer
│ ├── scan.md # Portal discovery
│ ├── apply.md # Playwright form‑filling
│ └── ... (12 total)
├── reports/ # 631 evaluation files
├── output/ # Generated PDFs
├── applications.md # Central tracker
└── scan-history.tsv # 680 deduplicated URLs
왜 모드인가? 각 모드는 필요한 컨텍스트만 로드합니다. auto‑pipeline은 연락 규칙을 건너뛰고, apply는 점수 매기기 로직을 건너뛰죠. 컨텍스트가 적을수록 LLM이 더 좋은 결정을 내립니다.
10‑Dimension Scoring
Every offer runs through a weighted evaluation framework.
| Dimension | What It Measures | Weight |
|---|---|---|
| Role Match | Alignment with CV proof points | Gate‑pass |
| Skills Alignment | Tech stack overlap | Gate‑pass |
| Seniority | Stretch level | High |
| Compensation | Market rate vs target | High |
| Geographic | Remote/hybrid feasibility | Medium |
| Company Stage | Startup/growth/enterprise fit | Medium |
| Product‑Market Fit | Problem domain resonance | Medium |
| Growth Trajectory | Career ladder visibility | Medium |
| Interview Likelihood | Callback probability | High |
| Timeline | Hiring urgency | Low |
Role Match와 Skills Alignment은 gate‑pass 차원입니다 – 이들이 실패하면 다른 점수와 관계없이 최종 점수가 낮아집니다. 평가된 제안의 **74 %**가 4.0 이하였습니다.
Source: …
파이프라인
auto‑pipeline은 대표 모드입니다. URL을 입력하면 다음과 같은 결과가 나옵니다:
- JD 추출 – Playwright가 URL에 접속해 구조화된 콘텐츠를 추출합니다.
- 10D 평가 – Claude가 JD + CV + 포트폴리오를 읽고 점수를 생성합니다.
- 보고서 생성 – 요약, CV 매치, 레벨, 보상, 개인화, 면접 확률의 여섯 블록으로 구성된 Markdown.
- PDF 생성 – HTML 템플릿 + 키워드 삽입 + Puppeteer 렌더링.
- 트래커 등록 – Node.js 스크립트를 통한 TSV 자동 병합.
- 중복 제거 –
scan-history.tsv에 있는 680개의 URL을 확인합니다. 재평가 0회.
배치 처리
대용량 작업을 위해 배치 모드는 병렬 워커들을 조정하는 컨덕터를 실행합니다.
# conductor spawns N workers, each an independent Claude Code process
./batch-runner.sh --input batch/batch-input.tsv --workers 4
# Each worker:
# 1. Claims a URL from the queue (lock file prevents doubles)
# 2. Runs auto-pipeline
# 3. Writes result to batch-state.tsv
# 4. Picks next URL
- 122개의 URL을 병렬로 처리했습니다.
- 내결함성: 워커가 실패해도 나머지는 차단되지 않습니다.
- 재시작 가능: 상태를 읽고 완료된 항목을 건너뜁니다.
AI 이력서 빌더
일반 PDF는 효과가 없습니다. Career‑Ops는 각 채용 공고마다 다른 ATS‑최적화 이력서를 생성합니다:
- JD(직무 설명)에서 15‑20개의 키워드 추출.
- 언어 감지 (예: 영어 JD → 영어 이력서).
- 지역 감지 (미국 → 레터, 유럽 → A4).
- 아키타입 감지 (6가지 사전 정의: AI Platform, Agentic, PM, SA, FDE, Transformation).
- 관련성에 따라 상위 3‑4개 프로젝트 선택.
- 항목 재배열 – 가장 관련성 높은 경험을 위로 이동.
- PDF 렌더링 – Puppeteer, 자체 호스팅 폰트, 단일 컬럼 ATS‑안전.
동일한 이력서, 여섯 가지 다른 프레이밍. 모두 실제이며, 키워드는 재구성될 뿐 절대 조작되지 않습니다.
결과
생산 단계 2개월 (실제 수치, 데모가 아님):
- 631 보고서 생성
- 68 신청서 전송
- 354 PDF 생성
- 680 URL 중복 제거
- 0 재평가
What I Learned
- 분석은 자동화하고, 결정은 자동화하지 않는다. Career‑Ops는 631개의 제안을 평가하고; 나는 어느 제안에 시간을 할애할지 결정한다. Human‑in‑the‑loop은 제한이 아니라 설계상의 특징이다.
- 모드는 긴 프롬프트보다 우수하다. 12개의 집중된 모드는 단일 10 k‑token 시스템 프롬프트보다 성능이 뛰어나다. 내가 처음에 하나의 거대한 프롬프트로 시도했을 때 품질이 끔찍했다.
- 중복 제거는 점수 매기기보다 더 가치가 있다. 680개의 중복 제거된 URL은 680개의 불필요한 평가를 절감했다 – 가장 높은 ROI를 가진 지루한 인프라.
- 이력서는 문서가 아니라 논증이다. 증거 포인트와 프레이밍을 전형에 맞게 맞춤화하면 일괄 PDF보다 훨씬 높은 전환율을 얻는다.
- 시스템 자체가 포트폴리오다. 멀티‑에이전트 구직 시스템을 구축하는 것은 멀티‑에이전트 역할에 대한 직접적인 역량 증명이다.
Stack
- Claude Code – LLM 에이전트: 추론, 평가, 콘텐츠 생성
- Playwright – 브라우저 자동화: 포털 스캔 및 폼 자동 입력
- Puppeteer – HTML 템플릿에서 PDF 렌더링
- Node.js – 유틸리티 스크립트: merge‑tracker, cv‑sync‑check
- tmux – 병렬 세션: 배치 내 conductor + workers