jobs 소개
"AI가 일자리를 얼마나 바꿀까"라는 질문은 많지만, 실제 고용 통계 위에 올려놓고 직업 하나하나 들여다볼 수 있는 도구는 드뭅니다. Andrej Karpathy가 공개한 jobs는 미국 노동통계국(BLS)의 Occupational Outlook Handbook 데이터를 시각적으로 탐색하는 연구 도구로, 저자는 "보고서도, 논문도, 진지한 경제 출판물도 아니며 BLS 데이터를 시각적으로 탐색하기 위한 개발 도구" 라고 성격을 분명히 해 두었습니다.
핸드북이 다루는 342개 직업 전체를 스크레이핑해 인터랙티브 트리맵(Treemap)으로 만든 것이 결과물입니다. 각 사각형의 면적은 해당 직업의 총 고용 규모에 비례하고, 색상은 선택한 지표를 나타냅니다. BLS의 고용 전망, 중위 임금, 요구 학력, 그리고 LLM이 추정한 디지털 AI 노출도(Digital AI Exposure)까지 네 가지 색상 레이어를 토글하며 볼 수 있습니다.
이 프로젝트에서 눈여겨볼 부분은 색상 레이어를 만드는 방식입니다. 스크레이퍼와 파서, 그리고 임의의 기준으로 직업을 채점하는 LLM 프롬프트 파이프라인이 저장소에 함께 들어 있어, AI 노출도는 하나의 예시일 뿐입니다. 프롬프트를 바꿔 휴머노이드 로봇 노출도, 오프쇼어링 위험, 기후 영향 같은 다른 질문으로 파이프라인을 다시 돌리면 같은 트리맵을 다른 기준으로 색칠할 수 있습니다.
jobs의 LLM 기반 채점 파이프라인
전체 파이프라인은 여섯 단계로 구성됩니다. 먼저 scrape.py가 Playwright로 342개 직업 페이지의 원본 HTML을 내려받습니다. BLS가 봇을 차단하기 때문에 브라우저를 띄우는 non-headless 모드로 동작합니다. 이어서 BeautifulSoup 기반 파서가 HTML을 깨끗한 마크다운으로 변환하고, make_csv.py가 임금, 학력, 고용 규모, 성장 전망, SOC 코드 같은 구조화된 필드를 occupations.csv 로 추출합니다.
핵심은 채점 단계입니다. score.py가 각 직업의 마크다운 설명을 채점 기준(rubric)과 함께 LLM에 보내면, 직업마다 0~10점의 AI 노출도 점수와 판단 근거가 돌아와 scores.json 에 저장됩니다. 채점에는 OpenRouter를 거친 Gemini Flash가 쓰였습니다. 마지막으로 build_site_data.py가 CSV 통계와 점수를 병합해 프론트엔드용 site/data.json 을 만들고, 정적 웹사이트가 이를 트리맵으로 렌더링합니다.
부산물로 prompt.md 파일도 흥미롭습니다. 집계 통계, 구간별 분포, 342개 직업 전체의 점수와 근거를 약 45K 토큰짜리 파일 하나에 담아 두어, 코드를 실행하지 않고도 이 파일을 LLM에 붙여 넣는 것만으로 데이터에 근거한 노동시장 대화를 나눌 수 있게 했습니다.
jobs의 AI 노출도가 말하는 것과 말하지 않는 것
저자는 AI 노출도 지표가 무엇이 아닌지를 명시해 두었습니다. 이 점수는 해당 직업이 사라진다는 예측이 아닙니다. 소프트웨어 개발자는 AI가 업무를 크게 바꾸고 있어 9/10점을 받지만, 개발자 한 명의 생산성이 올라가면서 수요가 오히려 늘어날 수도 있다는 예시를 함께 들고 있습니다. 수요 탄력성, 잠재 수요, 규제 장벽, 사람을 선호하는 사회적 성향 같은 요인도 반영하지 않습니다.
점수 자체도 엄밀한 예측이 아니라 LLM의 대략적인 추정치라고 밝히고 있습니다 (README §What "AI Exposure" is NOT). 높은 노출도를 받은 직업 다수는 대체가 아니라 재편될 것이라는 단서도 붙어 있어, 이 트리맵은 결론이 아니라 질문을 던지기 위한 탐색 도구로 읽는 편이 맞습니다.
jobs 설치 및 사용법
Python 패키지 관리자 uv 기반으로 설치하며, 채점 단계를 직접 돌리려면 OpenRouter API 키가 필요합니다.
uv sync
uv run playwright install chromium
.env 파일에 API 키를 넣어 둡니다.
OPENROUTER_API_KEY=your_key_here
이후 단계별 스크립트를 순서대로 실행합니다. 스크레이핑 결과는 html/ 디렉토리에 캐시되므로 한 번만 받으면 됩니다.
uv run python scrape.py # BLS 페이지 스크레이핑 (1회)
uv run python process.py # HTML → 마크다운 변환
uv run python make_csv.py # CSV 요약 생성
uv run python score.py # LLM으로 AI 노출도 채점
uv run python build_site_data.py # 웹사이트 데이터 빌드
cd site && python -m http.server 8000 # 로컬에서 사이트 확인
직접 빌드하지 않아도 라이브 데모에서 완성된 트리맵을 바로 탐색할 수 있습니다.
jobs 라이브 데모
jobs GitHub 저장소
더 읽어보기
-
AI가 노동 시장에 미치는 영향: 새로운 측정 지표 '관측된 노출도'와 초기 증거 (feat. Anthropic)
-
Anthropic Economic Index: Claude 사용에 새겨진 일상의 리듬과 노동자들의 AI 인식에 대한 연구
-
LLM Council: 사용자의 질문에 대해 여러 LLM이 함께 토론하고 합의된 답변을 도출하는 프로젝트 (feat. Andrej Karpathy)
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

