Claude Code로 멀티에이전트 잡 서치 시스템을 구축했습니다 — 631 평가, 12 모드

발행: (2026년 3월 17일 오후 07:07 GMT+9)
8 분 소요
원문: Dev.to

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.

DimensionWhat It MeasuresWeight
Role MatchAlignment with CV proof pointsGate‑pass
Skills AlignmentTech stack overlapGate‑pass
SeniorityStretch levelHigh
CompensationMarket rate vs targetHigh
GeographicRemote/hybrid feasibilityMedium
Company StageStartup/growth/enterprise fitMedium
Product‑Market FitProblem domain resonanceMedium
Growth TrajectoryCareer ladder visibilityMedium
Interview LikelihoodCallback probabilityHigh
TimelineHiring urgencyLow

Role MatchSkills Alignmentgate‑pass 차원입니다 – 이들이 실패하면 다른 점수와 관계없이 최종 점수가 낮아집니다. 평가된 제안의 **74 %**가 4.0 이하였습니다.

Source:

파이프라인

auto‑pipeline은 대표 모드입니다. URL을 입력하면 다음과 같은 결과가 나옵니다:

  1. JD 추출 – Playwright가 URL에 접속해 구조화된 콘텐츠를 추출합니다.
  2. 10D 평가 – Claude가 JD + CV + 포트폴리오를 읽고 점수를 생성합니다.
  3. 보고서 생성 – 요약, CV 매치, 레벨, 보상, 개인화, 면접 확률의 여섯 블록으로 구성된 Markdown.
  4. PDF 생성 – HTML 템플릿 + 키워드 삽입 + Puppeteer 렌더링.
  5. 트래커 등록 – Node.js 스크립트를 통한 TSV 자동 병합.
  6. 중복 제거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

전체 사례 연구

https://santifer.io/career-ops-system

0 조회
Back to Blog

관련 글

더 보기 »

파일 시스템이 디버깅하기 어려운 이유

동기 부여 나는 파일 시스템을 처음부터 구축하고 있다—필요해서가 아니라, 보이지 않는 것을 디버깅하는 것이 추측에 불과하기 때문이다. 파일 시스템을 이해하는 l...

블루 틱이 표시된 메시지, 그러나 도착하지 않음

소개 WhatsApp에서 메시지가 전달 및 읽음으로 표시되지만 AI 에이전트가 해당 메시지를 전혀 확인하지 못한다면, 이는 무음 메시지 손실 문제입니다. 이 기사에서는 이러한 문제에 대한 전문적인 해결책을 제시합니다.