TRENDSHIFT 딥다이브 · 2026-06-08

career-ops 딥다이브
— 코딩 CLI를 구직 사령부로 바꾸는 멀티 에이전트 시스템

"회사들은 AI로 지원자를 거른다. 나는 지원자에게 회사를 고르는 AI를 줬다." — 740개 공고를 평가하고 100개 맞춤 CV를 만들어 실제로 Head of Applied AI 자리에 합격한 제작자가, 그 시스템을 통째로 오픈소스로 푼 레포입니다. Claude Code·Gemini CLI·Codex 같은 코딩 에이전트 CLI 위에 올라가는 마크다운 스킬 + Node 스크립트 + Go 대시보드 묶음으로, 공고 URL 하나를 붙여넣으면 평가→맞춤 PDF→트래커 기록까지 자동으로 굴러갑니다. WIRED·Business Insider에 소개. (저장소: santifer/career-ops · Node.js+Go · TrendShift 4위 · MIT)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

이 레포가 무엇을 하는 물건인가.

핵심 메시지

"지원서를 100곳에 뿌리는 게 아니라,
지원할 가치가 있는 몇 곳을 골라내는 필터."

스프레드시트로 지원 현황을 수기 관리하는 대신, AI가 공고를 10개 가중 항목으로 A~F 채점하고, 4.0/5 미만이면 "지원하지 말라"고 말리는 시스템입니다. 핵심 철학은 spray-and-pray(묻지마 지원)의 정반대 — 그리고 지원 버튼은 끝까지 사람이 누릅니다.

구성은 셋입니다. ① 마크다운 모드 파일(modes/*.md) — 평가·지원·면접준비·연봉협상 같은 업무 절차를 LLM이 읽는 지시서로 정의. ② Node 스크립트 — PDF 생성(Playwright), 포털 스캔, 트래커 정합성 검사 같은 결정적 작업. ③ Go TUI 대시보드 — 파이프라인을 터미널에서 브라우징. 에이전트가 ①을 읽고 ②를 실행하며, 사람은 ③으로 검토합니다.

2왜 주목받는가

트렌딩 이유 · 경쟁 대비 장점.

"AI 구직 도구"는 많지만 대부분 SaaS이고, 자동 지원을 미끼로 팝니다. career-ops는 정반대 포지션으로 차별화했습니다 — 완전 로컬, 완전 오픈소스, 그리고 자동 제출 기능이 의도적으로 없음. 제작자가 본인 구직에 실제로 쓴 시스템이라는 스토리(740개 평가 → 1개 합격)와 언론 보도가 신뢰를 더했습니다.

비교 항목일반 AI 구직 SaaScareer-ops
실행 위치업체 서버 (CV 업로드)내 터미널 (CV는 로컬 파일)
평가 방식키워드 매칭 위주LLM이 CV와 JD를 읽고 추론 (10개 가중 항목)
지원 제출자동 제출 지향사람이 최종 결정 (Human-in-the-Loop 명시)
커스터마이즈설정 화면 한계 내"Claude에게 시스템 자체를 고쳐 달라"고 말하면 됨
기존 방식의 한계
묻지마 자동 지원은 모두의 시간을 태운다

자동 지원 도구는 지원 수를 늘릴 뿐 합격률을 높이지 못하고, 채용 담당자의 필터만 강화시키는 군비 경쟁을 만듭니다.

이 레포의 해결
평가는 AI, 결정은 사람 — 역할의 명확한 분리

AI는 공고 분석·CV 매칭·연봉 리서치·면접 스토리 준비까지만. 시스템이 절대 지원서를 제출하지 않는다는 원칙이 README에 박혀 있습니다. "신입 리쿠르터를 온보딩하듯 내 정보를 먹여라"라는 운영 철학도 분명합니다.

3기술 스택 전체 지도

마크다운 지시서 + Node 스크립트 + Go TUI.

레이어기술역할
에이전트 두뇌Claude Code · OpenCode · Gemini CLI · Codex · Qwen · Copilot · Kimi7개 코딩 CLI 모두 지원 — 같은 modes/*.md를 읽음.
업무 절차modes/*.md (15개 슬래시 커맨드)평가·지원·딥리서치·면접준비·후속관리 절차 정의. 8개 언어 현지화판 별도(de·fr·ja·ar·pt·ru·tr·ua).
실행 스크립트Node.js (.mjs 28종)doctor(환경검사)·scan(포털 수집)·generate-pdf·dedup·merge·liveness(공고 생존 확인).
브라우저 자동화Playwright + Chromium채용 페이지 탐색과 ATS 친화 PDF 렌더링.
대시보드Go + Bubble Tea파이프라인 TUI — 필터·정렬·진행 현황. Catppuccin 테마.
데이터마크다운 트래커 + YAML 프로파일단일 진실원 트래커에 정합성 검사(verify·normalize·dedup) 내장.
배포/품질release-please · CodeQL · SBOM · Nix flake개인 프로젝트답지 않은 공급망 보안 수준.
용어
ATS (Applicant Tracking System, 지원자 추적 시스템)
기업이 지원서를 자동 분류하는 소프트웨어. 키워드가 안 맞으면 사람이 읽기도 전에 탈락시키기도 합니다. career-ops의 PDF 생성기는 JD의 키워드를 CV에 자연스럽게 주입해 이 관문을 통과하도록 설계됐습니다.

4아키텍처 심화 분석

공고 URL 하나가 트래커 행이 되기까지.

career-ops 자동 파이프라인 ┌──────────────────────────────────────────────────┐ │ 사용자: 공고 URL 붙여넣기 (또는 /career-ops) │ │ │ │ │ ▼ │ │ ① 에이전트가 modes/auto-pipeline.md 읽음 │ │ │ Playwright로 공고 페이지 수집 │ │ ▼ │ │ ② 6블록 평가 (role 요약·CV 매치·레벨 전략· │ │ │ 연봉 리서치·개인화·면접 STAR+R) │ │ │ → 10개 가중 항목 A~F 채점 │ │ ▼ │ │ ③ 4.0/5 미만? ── 예 ──▶ "지원 비추천" 기록 후 종료 │ │ │ 아니오 │ │ ▼ │ │ ④ generate-pdf.mjs ── JD 키워드 주입한 맞춤 CV │ │ │ (Playwright 렌더 → ATS 친화 PDF) │ │ ▼ │ │ ⑤ 트래커 갱신 + 스토리뱅크 축적 │ │ │ (verify/dedup/normalize로 정합성 유지) │ │ ▼ │ │ ⑥ 사람이 대시보드(Go TUI)로 검토 → 직접 지원 │ └──────────────────────────────────────────────────┘

설계의 묘는 "판단은 마크다운, 실행은 스크립트"의 분리입니다. 평가 기준·아키타입·협상 화법처럼 사람마다 다른 부분은 전부 에이전트가 읽는 마크다운에 있고(그래서 "Claude에게 고쳐 달라"고 하면 됨), PDF 생성·중복 제거·상태 정규화처럼 틀리면 안 되는 부분은 결정적 Node 스크립트로 고정돼 있습니다. LLM의 유연함과 코드의 신뢰성을 각자 잘하는 자리에 배치한 거죠.

배치 처리(batch/)는 claude -p 워커를 병렬로 띄워 공고 10개+를 동시에 평가합니다 — 서브 에이전트를 셸에서 fan-out하는 실전 예제입니다. 면접 준비는 STAR+R (Situation·Task·Action·Result + Reflection, 행동 면접 답변 구조) 스토리를 평가 때마다 스토리뱅크에 축적해, 어떤 행동 질문에도 재사용할 5~10개 마스터 스토리를 만들어 둡니다.

비유

전속 커리어 매니저 팀을 고용한 것과 같습니다. 리서처(포털 스캔)·애널리스트(6블록 평가)·작가(맞춤 CV)·코치(면접 스토리)·비서(트래커 정리)가 분업하는데, 최종 서명만은 반드시 본인이 합니다.

5디렉토리 구조 해부

어떤 폴더가 무슨 일을 하나.

career-ops/ ├── modes/ 업무 절차 마크다운 ★ (시스템의 두뇌) │ ├── auto-pipeline.md URL→평가→PDF→트래커 원스톱 │ ├── deep.md·apply.md·interview-prep.md·followup.md… │ └── de/·fr/·ja/·ar/·pt/·ru/·tr/·ua/ 8개 언어 현지화판 ├── *.mjs (루트 28종) 결정적 스크립트 (doctor·scan· │ generate-pdf·dedup·merge·liveness…) ├── dashboard/ Go + Bubble Tea TUI │ └── internal/ui/screens/ pipeline·viewer·progress 화면 ├── batch/ claude -p 병렬 평가 러너 ├── .claude/skills/ Claude Code 스킬 (.agents/.qwen에도 동일) ├── .claude-plugin/ 플러그인 매니페스트 (마켓플레이스 배포) ├── config/profile.example.yml 내 정보·선호 설정 ├── templates/·fonts/ CV 디자인 (Space Grotesk + DM Sans) ├── interview-prep/story-bank.md STAR+R 스토리 축적처 └── docs/ SETUP·ARCHITECTURE·CUSTOMIZATION
위치주목할 점
modes/_shared.md모든 모드가 공유하는 채점 기준·원칙 — 단일 진실원 패턴.
doctor.mjs설치 직후 전제조건을 전부 검사 — 온보딩 마찰을 줄이는 모범.
.claude/ + .agents/ + .qwen/같은 SKILL.md를 CLI별 규약 위치에 복제 — 멀티 CLI 지원의 현실적 방법.
check-liveness.mjs트래커 속 공고가 아직 살아있는지 주기 확인 — 데이터 부패 방지.

6학습 포인트 (기술별)

이 레포에서 배울 만한 것 + 어디를 보면 되는지.

포인트 1 — 에이전트 설계

판단(마크다운)과 실행(스크립트)의 경계 긋기

LLM에게 맡길 것과 코드로 고정할 것을 가르는 기준을 이 레포만큼 잘 보여주는 예가 드뭅니다. modes/와 루트 .mjs들을 대조하며 읽어 보세요.

포인트 2 — 멀티 CLI 호환

한 시스템을 6개 에이전트 CLI에 이식하는 법

같은 modes를 Claude Code 스킬·Gemini 커맨드·Qwen 스킬로 노출하는 어댑터 구조(.claude/ .agents/ .qwen/ + GEMINI.md/AGENTS.md/CLAUDE.md)는 "CLI 종속 없는 에이전트 워크플로" 설계의 참고서입니다.

포인트 3 — 데이터 위생

LLM이 쓰는 데이터엔 정합성 검사를 붙인다

에이전트가 트래커를 갱신하다 보면 중복·표기 흔들림이 생깁니다. verify→normalize→dedup→merge 스크립트 체인과 DATA_CONTRACT.md(데이터 계약 명세)는 "LLM 출력은 반드시 기계 검증을 거친다"는 원칙의 구현입니다.

포인트 4 — TUI

Go Bubble Tea로 만드는 터미널 대시보드

dashboard/internal/ui/screens/는 Elm 아키텍처(모델-업데이트-뷰)를 따르는 Bubble Tea 입문 예제로 적당한 규모입니다. 테스트 파일까지 짝지어 있어 TUI 테스트 방법도 덤으로.

7시스템 요구사항

돌리려면 무엇이 필요한가.

항목요구사항
런타임Node.js + npm. 대시보드 쓰려면 Go.
브라우저npx playwright install chromium (PDF 생성 필수).
에이전트 CLIClaude Code·Gemini CLI·OpenCode·Codex·Qwen·Copilot 중 하나 + 해당 구독/API 키.
내 데이터cv.md(마크다운 CV) + config/profile.yml — 시스템 품질은 먹인 컨텍스트에 비례.
환경 검사npm run doctor가 전부 점검해 줌.

8직접 해볼 수 있는 실습 과제

난이도별로 손에 익히는 단계.

실습 1

첫 공고 평가 돌려보기 난이도 ★☆☆ 입문

클론 → npm installnpm run doctor → cv.md 작성 → Claude Code에서 관심 공고 URL을 붙여넣어 6블록 평가 리포트를 받아 봅니다. 점수 근거가 내 CV의 실제 내용과 맞는지 검증하세요.

실습 2

나에게 맞게 시스템 개조 난이도 ★★☆ 중급

"아키타입을 백엔드 엔지니어 역할로 바꿔줘", "이 회사 5곳을 portals.yml에 추가해줘"처럼 Claude에게 시스템 자체를 수정시켜 봅니다 — 이 레포의 핵심 사용법(자기 수정 시스템)을 체험하는 과제.

실습 3

배치 평가 + 대시보드 난이도 ★★☆ 중급

npm run scan으로 포털에서 공고를 모으고 batch 러너로 10개를 병렬 평가한 뒤, Go 대시보드를 빌드해 파이프라인을 TUI로 살펴봅니다.

실습 4

패턴 이식하기 난이도 ★★★ 고급

"마크다운 모드 + 정합성 스크립트 + 사람 승인" 3층 패턴을 구직이 아닌 내 업무(예: 발주 검토, 자료 조사 파이프라인)에 이식한 미니 버전을 만들어 봅니다.

9관련 기술 심화 학습 로드맵

한 주씩 따라가는 계획.

주차주제학습 자료
1주차설치·프로파일 구축·첫 평가docs/SETUP.md · 실습 1
2주차modes 정독 — 절차를 마크다운으로 설계하는 법modes/_shared.md · auto-pipeline.md
3주차스크립트 체인 — 데이터 정합성·PDF 파이프라인docs/SCRIPTS.md · generate-pdf.mjs
4주차Bubble Tea TUI 구조 분석dashboard/ · Bubble Tea 튜토리얼
5주차내 도메인용 에이전트 워크플로 설계docs/ARCHITECTURE.md · 실습 4

10핵심 키워드 사전

본문에 나온 용어 빠른 참조.

용어의미
ATS지원자 추적 시스템 — 기업의 지원서 자동 분류 소프트웨어.
JDJob Description — 채용 공고의 직무 기술서.
STAR+R상황·과제·행동·결과+회고 — 행동 면접 답변 구조.
Human-in-the-LoopAI가 분석·추천하고 최종 결정·실행은 사람이 하는 설계.
spray-and-pray묻지마 대량 지원 전략 — 이 시스템이 명시적으로 반대하는 것.
모드(mode)에이전트가 읽는 업무 절차 마크다운 — 이 레포의 슬래시 커맨드 실체.
스토리뱅크평가 과정에서 축적되는 STAR+R 면접 스토리 저장소.
Bubble TeaGo의 TUI 프레임워크 — Elm 아키텍처 기반.
포털 스캐너Greenhouse·Ashby·Lever 등 채용 플랫폼에서 공고를 수집하는 모듈.
liveness 체크저장된 공고가 아직 열려 있는지 주기적으로 확인하는 검사.

11참고 링크