피드로 돌아가기
Dev.toBackend
원문 읽기
164개 기업 ATS API 통합 및 데이터 정규화로 구현한 실시간 AI 채용 보드
How I Built an AI Job Board That Auto-Updates from 164+ Companies
AI 요약
Context
개별 기업 채용 페이지의 파편화된 정보와 일반 채용 플랫폼의 낮은 필터링 정확도로 인한 정보 탐색 비용 증가. 분산된 ATS 플랫폼의 데이터를 통합하여 단일 뷰로 제공하는 자동화된 파이프라인 필요성 대두.
Technical Solution
- Greenhouse, Ashby, Lever 등 주요 ATS별 공용 API를 활용한 전용 Adapter 설계로 데이터 수집 원천 통합
- 서로 다른 응답 형식을 단일 공통 스키마(Title, Location, Role Type 등)로 변환하는 정규화 로직 구현
- 특정 키워드 기반의 Pattern Matching 기법을 통한 Job Title의 자동 카테고리 분류 체계 구축
- Vercel Cron Job을 활용한 4시간 주기 배치 프로세스로 최신 데이터 동기화 및 자동 갱신
- Company, Title, Location의 Hash 값을 이용한 중복 제거 로직으로 데이터 무결성 확보
- 30일 이상 갱신되지 않은 데이터를 Stale Listing으로 처리하는 생명주기 관리 전략 도입
Impact
- 130개 이상의 기업 및 670개 이상의 활성 포지션 실시간 트래킹
- 전체 기업 데이터 수집 및 갱신 사이클을 평균 45초 이내로 처리
- 일평균 50~100개의 신규 및 업데이트 리스팅 자동 반영
Key Takeaway
다양한 외부 API의 데이터 형식을 통합할 때 Adapter 패턴을 통한 정규화 계층을 둠으로써 내부 비즈니스 로직의 결합도를 낮추고 확장성을 확보하는 설계 원칙의 유효성 확인.
실천 포인트
- 외부 API 통합 시 각 벤더별 전용 Fetcher와 공통 Schema를 분리하여 유지보수성 확보 - 데이터 중복 방지를 위해 식별 가능한 필드들의 조합으로 Hash Key를 생성하여 관리 - 정기적인 Batch 작업 시 데이터의 유효 기간(TTL)을 설정하여 Stale Data를 자동으로 식별하는 메커니즘 검토