Claude Code를 구직 파이프라인으로 바꾼 사람 — 지원 69건, 1차 면접 20회

“AI 구직” 도구라는 장르에는 신뢰성 문제가 있다. 그런데 그건 기술적인 문제가 아니다. 결과물이 어차피 키워드만 잔뜩 채워 넣은 PDF이고, 채용 담당자는 4초면 냄새를 맡는다고 모두가 의심한다.
그래서 ai-job-search에 대해 가장 먼저 보고할 만한 것은, 저자가 이걸로 무엇을 했느냐다. Mads Lorentzen이 만들고 MIT 라이선스로 공개한 이 프레임워크는 Claude Code를 구직 파이프라인으로 바꾼다. 그는 이걸로 69건을 지원해 1차 면접 20회를 받았고, AI 엔지니어로 오퍼에 서명했다. 게다가 이 도구를 썼다는 사실을 모든 고용주에게 알렸다고 한다. 아주 좋은 신호이거나, 아주 운이 좋았거나. 아마 둘 다일 것이다.
두 번째로 보고할 만한 것은, 흥미로운 엔지니어링이 글쓰기가 아니라 검사에 있다는 점이다.
정말 중요한 세 개의 명령
/setup은 프로필을 채운다. 들어가는 길은 세 가지다. documents/ 폴더를 지정하거나, 이력서 한 장을 붙여넣거나, 인터뷰 형식의 질문에 답하면 된다. 저자는 프로필의 두께가 결과물 품질을 결정하는 단일 최대 요인이라고 잘라 말한다. 프로필이 얇으면 뻔한 지원서가 나오고, 아무리 영리한 프롬프트도 그걸 되돌리지 못한다.
/scrape는 채용 포털을 검색하고 중복을 제거한 뒤 적합도 순으로 정렬한다. 포털 지원은 시장별로 다르다. 기본 포함된 것은 덴마크(Jobindex, Jobnet, Jobbank, Jobdanmark)를 커버하고, 국경을 넘는 스킬이 둘 더 있다. 하나는 LinkedIn의 비인증 공개 엔드포인트에 지역 플래그를 붙여 쓰는 것이고, 다른 하나는 기술 직군에 초점을 둔 무료 REST API다. 다른 시장은 /add-portal이 필요하다. 이 명령이 새 스킬을 생성하고 테스트한다.
/apply <url>이 가장 흥미롭다. 여덟 단계를 돈다. 공고를 파싱하고, 적합도를 채점하고, 맞춤형 LaTeX 이력서와 자기소개서를 작성하고, 둘 다 별도의 리뷰 agent에게 넘긴다. 이 agent는 자기만의 컨텍스트를 갖고 회사를 조사하고 초안을 비판한다. 그다음 수정, 컴파일, 렌더링된 PDF 검사, 마지막으로 ATS 검사다.
컴파일해서 PDF를 직접 보는 것이 이 모든 것의 핵심
언어 모델로 LaTeX 문서를 만들어 본 사람은 그 실패 방식을 안다. 소스는 완벽해 보인다. 그런데 PDF에서는 1페이지 하단에 제목만 덩그러니 남아 있고, 자기소개서는 한 줄만 2페이지로 넘어가 있고, 목록은 조용히 다른 폰트로 떨어져 있다.
이 프로젝트는 그 고리를 닫는다. 이력서는 lualatex로 정확히 2페이지, 고아 제목 없이 컴파일되어야 한다. 자기소개서는 xelatex로 정확히 1페이지, 서명이 보이는 상태로 컴파일되어야 한다. agent는 렌더링된 페이지를 읽고 제약이 충족될 때까지 반복한다.
이력서가 길어지면 가장 오래된 경력을 잘라내지 않는다. 모든 줄을 이 공고와의 관련성, 문서 내 고유성, 자기소개서가 그 줄에 의존하는지로 채점한 뒤 총점이 가장 낮은 줄을 지운다. 작은 디테일이지만 차이는 크다. 특정 역할을 위해 실제로 이력서를 다듬어 본 사람의 행동이지, 규칙을 따르는 사람의 행동이 아니다.
ATS 검사는 아무도 하지 않는 부분
지원자 추적 시스템은 당신의 아름다운 레이아웃을 읽지 않는다. 읽는 것은 내장된 텍스트 레이어이고, LaTeX는 “기술적으로는 존재하지만 실질적으로는 쓰레기”인 텍스트 레이어를 만드는 것으로 악명 높다. 아이콘 폰트가 이메일 기호로 렌더링되고 추출하면 아무것도 안 나오고, 합자가 키워드 매칭을 깨고, 단 구성이 읽기 순서를 뒤섞는다.
이 프레임워크는 pypdf 또는 pdftotext로 텍스트 레이어를 추출하고, 연락처 정보가 리터럴 텍스트로 나타나는지 검증하고, 깨진 문자와 읽기 순서를 확인한 다음, 키워드 커버리지를 공고와 비교한다. 두 도구가 모두 없으면 조용히 건너뛰는 대신 시각적 키워드 검사로 성능이 떨어진다.
문서를 만들어 주는 도구와, 채용 시스템과의 접촉을 견뎌내는 문서를 만들어 주는 도구의 차이다.
정직한 제약: 만들어내지 않는다
명시된 규칙은 스킬과 경험을 조작하지 않는다는 것이다. 프로필이 뒷받침하지 못하는 키워드는 억지로 밀어 넣지 않고 갭으로 표시된다. 이는 윤리적 입장이자 실용적 판단이다. 조작한 경험은 면접에서 들통나는 곳이고, 이 도구의 일은 당신을 면접까지 데려다주는 것뿐이다.
언어 게이트도 있다. /setup은 업무 언어와 수준을 모두 수집한다. 선언하지 않은 언어는 곧바로 거절되고, 수준이 부족하면 자동 거절이 아니라 플래그가 붙는다. 대부분의 구직 도구는 이걸 완전히 무시한다. 그래서 독일어 C1을 요구하는 자리에 유창해 보이는 지원서가 나오는 것이다.
절대 밟으면 안 되는 프라이버시 지뢰
이 부분은 다운로드 페이지에 굵게 써야 하는 내용이고, 저자도 실제로 그렇게 했지만, 반복할 가치가 있다. 공개 저장소의 fork는 언제나 공개다. GitHub는 공개 저장소의 비공개 fork를 허용하지 않는다. 그런데 /setup은 당신의 이름, 연락처, 경력, 희망 연봉을 git이 추적하는 파일에 써 넣는다.
fork하고, setup을 돌리고, push하면, 당신은 이력서와 희망 연봉을 커밋 히스토리와 함께 인터넷에 공개한 것이다.
올바른 방법은 프로젝트의 설치 가이드에 적혀 있다. 비공개 저장소를 새로 만들고 원본을 upstream 리모트로 추가하는 것이다. 같은 업데이트 흐름을 얻으면서 노출은 없다. 코드에 기여할 생각이 있을 때만 fork하라.
보안 태세, 분명히 말하자면
채용 공고는 신뢰할 수 없는 입력으로 취급된다. 안에 심어진 지시는 실행되지 않고, 안의 링크는 따라가지 않는다. 저자는 이것이 샌드박스가 아니라 지시 수준의 방어라고 조심스럽게 말한다. 포털 스킬은 승인 없이 당신의 머신에서 실행된다. 그래서 다른 fork에서 빌려온 스킬은 한 줄씩 읽어야 한다. 네트워크 요청이 어디로 가는지, 패키지 매니페스트의 의존성과 라이프사이클 스크립트는 어떤지 확인하고, 테스트는 오프라인으로 돌려라. 폴더 복사가 일부러 수동인 이유가 바로 그것이다.
LinkedIn 스킬에는 자체 경고가 붙어 있다. 자동화는 플랫폼 약관을 위반하며, 낮은 빈도로 개인 용도로만 써야 한다.
이 루프의 비용
어느 것도 공짜가 아니고, 저자도 그렇게 말한다. Claude Code에는 무료 티어가 없다. 구독이나 API 크레딧이 필요하다. 컴파일해서 보는 단계는 토큰을 더 태운다. agent가 렌더링된 페이지를 읽고 반복하기 때문이고, 이력서 하나에 서너 번씩 돌기도 한다.
그 거래가 값어치가 있는지는 당신이 자기 시간을 얼마로 계산하느냐에 달렸다. 한 번만 보낼 문서에 네 번의 수정 사이클은 많다. 하지만 그 문서가 그러지 않았다면 페이지 아래 여백에 고아 제목을 달고 나갔을 문서라면, 네 번은 싸다. 그 제목이 읽는 사람의 첫인상에서 “꼼꼼함”과 “대충함”을 가르는 선이기 때문이다.
놓치기 쉬운 두 번째 비용은 프로필 작업이다. /setup은 구체성에 보상을 준다. 프로젝트, 도구, 수치화된 성과, 팀이 한 일이 아니라 당신이 한 일. 프로필이 얇으면 이 카테고리의 모두가 만드는 뻔한 지원서가 나온다. 도구는 없는 재료를 만들어낼 수 없고, 저자는 한계가 모델이 아니라 여기에 있다고 이례적으로 직설적으로 말한다.
하지 않는 일
추천을 받아주지 않는다. 그리고 대부분의 일자리는 사실 추천으로 결정된다. 협상도 하지 않는다. 연봉에 대해 아는 것은 setup에서 당신이 입력한 숫자뿐이다. 채용 매니저가 당신의 옛 동료라거나, 이 공고가 7개월째 열려 있는 이유가 팀이 역할 자체에 합의하지 못해서라는 것도 모른다.
하는 일은 변명을 없애는 것이다. 지원서는 맞춤형이 되고, PDF는 컴파일되고, 텍스트 레이어는 파싱 가능하며, 언어 요건은 존중된다. 그걸로 무엇을 할지는 여전히 구직 그 자체다.
이것은 결국 무엇인가
AI라는 포장을 벗기면 이것은 지원서를 위한 빌드 시스템이다. 소스가 들어가고 산출물이 나오며, 그 사이에 검증 단계가 있다. 모델은 컴파일러다. PDF 검사와 ATS 텍스트 검사는 테스트다. 리뷰 agent는 코드 리뷰다.
이 관점 덕분에 같은 카테고리의 다른 도구보다 흥미롭다. 일자리를 구해준다고 약속하지 않는다. 약속하는 것은 당신이 보내는 문서가 2페이지이고, 기계가 읽을 수 있고, 당신의 갭에 정직하고, 공고에 맞춰져 있다는 것, 그리고 그 약속이 깨지면 알려준다는 것이다.
지원 69건과 면접 20회는 괜찮은 표본이다. 증명은 아니다. 하지만 이 분야 대부분의 도구가 가진 근거보다는 낫고, 그것을 만들어낸 파이프라인은 직접 읽어볼 수 있다.
관련 글
미국 빅5 출판사, 조용히 AI로 표지를 만들고 있다… 독자는 이미 알아챈다
미국 5대 출판사 중 최소 3곳이 공개도 저자 동의도 없이 AI로 표지와 홍보 문구를 만들어 왔다고 《와이어드》가 보도했다. 공식 설명과 현장 증언은 엇갈리고, 표지에 이름이 찍힌 저자는 마지막에 안다.
Character.AI 파산 신청, 디즈니는 2000만 달러로 특허를 가져간다
Character.AI가 파산을 신청했다. 디즈니는 2000만 달러로 스토킹 호스에 나서 일부 자산과 특허 라이선스만 사려 한다. 1억 5000만 달러 시리즈 A의 이야기는 특허와 월 800만~900만 달러 손실로 끝난다.
XERJ: 자기 숫자가 부풀려졌다고 먼저 말하는 코딩 에이전트용 검색엔진
XERJ는 로컬 인덱스와 tree-sitter 심볼 인식으로 에이전트가 읽는 파일을 줄인다. 실측은 grep 대비 2.7배 절약이며, 헤드라인의 40배가 아니다. 메인테이너가 직접 그렇게 밝혔다.
AI 에이전트에게 화면을 보게 하지 마라 — CLI-Anything이 모든 소프트웨어에 명령줄을 붙인다
에이전트에게 화면을 보게 하지 마세요. CLI-Anything은 7단계 파이프라인으로 GIMP, Blender, LibreOffice용 CLI를 테스트와 문서까지 붙여 생성합니다.