freehire, 기업 채용 페이지를 직접 크롤링하는 MIT 라이선스 채용 검색 엔진
MIT 라이선스 오픈소스 채용 검색 엔진 freehire를 README 기준으로 정리했다. 기업 ATS 직접 크롤링, 중복 제거 집계 수치, Go·PostgreSQL·Meilisearch 구성과 셀프 호스팅 범위를 담았다.

이미지 출처: https://github.com/strelov1/freehire
기업 ATS에서 직접 수집하는 구조
freehire는 IT 채용 공고를 다루는 오픈소스 검색 엔진이다. README는 "Every IT job, straight from the source"라는 문구를 전면에 내세우며, 각 공고를 기업이 직접 운영하는 ATS에서 크롤링해 원문 게시물로 연결한다고 설명한다. Workday, Greenhouse, Lever, Ashby, iCIMS와 그 밖의 여러 플랫폼이 수집 대상으로 언급된다. 다만 같은 README의 소스 집계를 보면 수집 경로가 ATS에만 한정되지는 않는다. 124개 ATS 플랫폼과 함께 애그리게이터와 직접 피드의 긴 꼬리, 97개 텔레그램 채널이 소스로 함께 집계된다. README는 리크루터 재게시와 애그리게이터 중간 단계, 죽은 링크는 배제한다고 밝히고 있다. 같은 공고가 여러 보드에 올라간 경우에는 하나의 항목으로 정규화하고 안정적인 키를 기준으로 중복을 제거한다. 회사를 추가하는 방법도 보드 카탈로그에 한 행을 넣는 방식이라고 README는 설명한다.
집계 규모와 검색 기능
프로젝트가 제시한 수치는 3.3M+ 라이브 공고, 470,000+ 기업, 124개 ATS 플랫폼, 97개 텔레그램 채널, 총 320개 소스다. README는 이 값이 중복 제거 이후 freehire.me/jobs 화면에 실제로 표시되는 집계라고 기준을 함께 밝히고 있다. 검색은 지역, 근무 형태, 직급, 스킬, 급여를 패싯으로 나눈 전문 검색이며, 해당 값은 큐레이션된 사전에서 도출되고 추측하지 않는다고 설명한다. 저장된 검색어에는 이메일과 텔레그램 다이제스트가 붙고, 마켓 분석과 고스트 잡 신호도 같은 데이터 위에서 동작한다고 한다. 이 항목들은 모두 프로젝트 자신의 설명이며 외부 검증 수치가 아니다.
구성 요소와 라이선스
서버는 Go와 Fiber v2, 저장소는 PostgreSQL과 pgvector, 전문 검색은 Meilisearch, 프론트엔드는 SvelteKit 2와 Tailwind 4를 쓴다. sqlc로 SQL에서 타입 안전 DB 접근 코드를 생성하며 ORM은 사용하지 않는다. LLM 접근은 OpenAI 호환 엔드포인트를 대상으로 langchaingo가 처리하고 게이트웨이로 Bifrost를 둔다. 라이선스는 MIT이며 파이프라인과 데이터를 포함해 셀프 호스팅이 가능하다고 README는 밝힌다. make up은 api, web, postgres, meilisearch, redis, s3를 Docker로 구동하며, 크롤링과 인리치먼트, 인덱싱, 알림은 cron용 단발 워커로 분리되어 있다. 서버 기동에는 JWT_SECRET이 필요하고 OAuth와 LLM 자격 증명은 선택 사항이라고 안내한다.