Extraction Node 구축: 400개 이상의 HN 잡 목록 분석 (Python vs Node.js)
Source: Dev.to

구직 시장의 비효율성
현대의 기술 직업 탐색은 비대칭 정보 모델에 기반합니다. 후보자들은 다양한 플랫폼에 흩어져 있는 비구조화된 텍스트를 수동으로 처리하는 반면, 기업은 자동화된 지원자 추적 시스템을 이용해 이를 필터링합니다. 논리적인 대응책은 실제 시장 신호를 파악하기 위해 프로그램화된 추출 파이프라인을 구축하는 것입니다.
주류 기업 네트워크에 포화되고 종종 오해를 불러일으키는 게시물을 회피하기 위해, 데이터 소스는 원시적이며 개발자 중심이어야 합니다. 이 시스템은 Hacker News의 “Who is Hiring” 스레드를 추출의 주요 대상으로 활용합니다.
아래는 400개 이상의 비구조화된 채용 공고를 파싱, 분류 및 통합하여 구조화된 데이터셋으로 만드는 추출 노드 구축에 대한 아키텍처 개요입니다.
1. 추출 파이프라인
포럼에서 나오는 비정형 텍스트는 파싱이 어려운 문제를 제시합니다. 인간이 만든 포맷이 일관되지 않을 때 전통적인 정규식 패턴은 실패합니다. 파이프라인은 두 단계, 검색과 합성으로 동작해야 합니다.
Phase 1: Retrieval
초기 추출을 위해서는 표준 HTML 파싱이면 충분합니다.
import requests
from bs4 import BeautifulSoup
import json
def fetch_hn_thread(item_id: str) -> list:
"""Retrieves all top-level comments from an HN Who is Hiring thread."""
url = f"https://hacker-news.firebaseio.com/v0/item/{item_id}.json"
response = requests.get(url).json()
comments = []
if 'kids' in response:
for child_id in response['kids']:
child_url = f"https://hacker-news.firebaseio.com/v0/item/{child_id}.json"
child_data = requests.get(child_url).json()
if child_data and 'text' in child_data:
comments.append(child_data['text'])
return comments
Phase 2: LLM Synthesis
원시 HTML 문자열을 가져온 뒤, LLM 엔드포인트(예: Llama 3 또는 구조화된 출력 API)를 사용해 비정형 텍스트에 JSON 스키마를 적용해야 합니다. 이를 통해 역할(Role), 스택(Stack), 연봉(Salary), 원격 근무 상태(Remote Status), 비자 스폰서십(Visa Sponsorship) 등 특정 변수를 분리할 수 있습니다.
# System prompt engineering for deterministic output
schema_prompt = """
Extract the following fields from the job posting.
Return ONLY valid JSON.
{
"company": "string",
"role": "string",
"stack": ["string"],
"remote": "Global" | "US Only" | "None",
"visa_sponsorship": boolean,
"salary_min": number | null,
"salary_max": number | null
}
"""
2. 데이터 합성
2026년 2월 데이터를 대상으로 이 파이프라인을 실행한 결과, 400개 이상의 개별 기술 직무가 도출되었습니다. 실증 데이터는 여러 기존 시장 서술과 모순됩니다.
원격 근무 분포
- 전 세계 원격: 37%
- 미국 전용 원격: 22%
- 현장 / 하이브리드: 41%
결론: 원격 근무가 사라진 것은 아니지만, 지리적 제한이 강하게 적용됩니다. 지리적 제약을 확인하지 않고 직무에 지원하면 국제 후보자에게 22%의 기본 실패율이 발생합니다.
비자 스폰서십 지표
- 추출된 채용 공고 중 **14%**만이 명시적으로 비자 스폰서십을 제공합니다.
- 이 스폰서십 중 **80%**는 AI 인프라스트럭처와 핀테크 분야에 국한됩니다.
기술 스택 프리미엄
- 현재 Python 백엔드 직무는 이 데이터셋 내 동등한 Node.js 직무에 비해 **15%**의 급여 프리미엄을 보이고 있습니다.
- 시장은 일반적인 JavaScript 환경에서 벗어나 Python, Go, Rust와 같은 전문화된 고성능 인프라 언어로 회전하고 있음을 시사합니다.
3. 실행 및 배포
위에서 상세히 설명한 아키텍처는 엔지니어라면 누구나 로컬에서 이 파이프라인을 재구성할 수 있을 만큼 충분합니다. 데이터 추출을 위한 로컬 스크립트를 유지하면 시장 인식에 복합적인 이점을 제공합니다.
파이프라인을 설정하거나 LLM 추론 비용을 부담하지 않고 즉시 결과가 필요한 분들을 위해, 400개 이상의 파싱된 역할, 기술 스택, 검증된 글로벌 원격 태그를 포함한 컴파일된 CSV 데이터셋을 여기에서 접근할 수 있습니다: