TL;DR

  • jobrake가 LinkedIn과 Indeed에서 채용 공고를 검색·수집하는 Python 패키지 및 CLI 도구로 제공되며, 지역·검색어·게시 시점·결과 수·상세 정보 조회를 지정할 수 있음.
  • LinkedIn에는 로그인 없는 게스트 API를, Indeed에는 모바일 앱용 GraphQL API를 사용하며 두 서비스의 검색·상세 정보 제공 방식이 다름.
  • PyPI에는 등록되지 않았고 GitHub 저장소에서 uv로 설치하며, CLI와 라이브러리 양쪽에서 사용 가능함.
  • 결과는 기본적으로 표준 출력에 JSON으로 기록되며 JSON·JSONL·CSV 형식과 파일 출력, 사용자 지정 페처 및 파이핑을 지원함.
  • Indeed 사용에는 국가가 필요하고 LinkedIn은 지역명 또는 geoId를 받으며, 정기적인 스크래핑은 각 서비스 약관 위반이나 IP 차단으로 이어질 수 있음.

개요

  • 채용 공고를 함께 스크랩해 모으는 도구이며, 이름은 job-rake로 읽음.
  • 빠르게 발음하면 검색 결과를 끝없이 내리는 상황에서 벗어나는 ‘job break’로 들리는 말장난을 포함함.
  • jobrake는 LinkedIn과 Indeed에서 채용 공고를 가져오는 Python 패키지 및 CLI 도구임.

설치

사용법

CLI

  • jobrake -h로 CLI 도움말을 확인함.

LinkedIn 검색

  • linkedin 하위 명령으로 LinkedIn 채용 공고를 검색함.
  • 검색어, 지역, 최대 게시 경과 시간, 결과 수, 상세 정보 조회 여부를 지정할 수 있음.
  • 예시 설정은 검색어 data science AND "economics", 지역 London, England, 결과 5개, 최대 경과 시간 24시간, 상세 정보 조회, jobs.csv 파일 출력임.
  • 검색 시 -q 또는 --query로 검색어를, -l 또는 --location으로 지역을, -n 또는 --results로 결과 수를, -a 또는 --max-age로 최대 게시 경과 시간을, -d 또는 --details로 상세 정보 조회를, -o 또는 --output으로 출력 파일을 지정함.

LinkedIn 상세 정보 조회

LinkedIn 지역명 확인

  • places linkedin "amsterdam"으로 지역명을 확인한 뒤 검색에 표시 이름을 사용함.
  • 예시 표시 이름은 Amsterdam, North Holland, Netherlands임.
  • 지역명 대신 지역의 geoId를 직접 지정할 수 있으며, 예시 geoId는 102011674임.

Indeed 검색 및 상세 정보 조회

  • indeed 하위 명령으로 채용 공고를 검색하고 상세 정보를 함께 가져옴.
  • 검색어, 국가, 지역, 결과 수, 최대 게시 경과 시간, 출력 파일을 지정할 수 있음.
  • 예시 설정은 검색어 data science AND economics, 국가 UK, 지역 London, 결과 5개, 최대 경과 시간 24시간, jobs.jsonl 파일 출력임.
  • Indeed 지역명은 places indeed -c netherlands "amsterdam" 방식으로 확인함.

출력 형식

  • CLI는 기본적으로 JSON을 표준 출력에 기록함.
  • --format 또는 -f로 JSON, JSONL, CSV 형식을 선택함.
  • --output 또는 -o로 결과를 파일에 기록함.
  • 사용법과 출력 문서에서 파일 형식, 반환 필드, 사용자 지정 페처, 파이핑 방식을 확인함.

라이브러리 사용

  • jobrakescrape를 비동기 함수에서 호출해 라이브러리로 사용할 수 있음.
  • 예시 구성은 Indeed에서 검색어 economist, 국가 United States, 결과 2개를 요청하고 asyncio.run으로 실행 결과를 받는 방식임.
  • 반환된 채용 공고 목록은 jobs 변수에 저장됨.

지원 채용 게시판

  • Indeed
  • 검색: 모바일 앱용 GraphQL API
  • 공고 상세 정보: 검색 결과에 포함됨
  • LinkedIn
  • 검색: 로그인 없는 게스트 API
  • 공고 상세 정보: 선택 사항이며 요청 간 간격 조절과 캐시를 적용함
  • Indeed는 국가 지정이 필요함.
  • LinkedIn은 지역명 또는 geoId를 받음.
  • 제공 문서에서 지리 정보, 필터, 페이지 매김, 요청 제한, 재시도, LinkedIn 상세 정보 조회 동작을 설명함.

크레딧

  • Indeed GraphQL 엔드포인트와 LinkedIn 게스트 검색 방식은 python-jobspy를 기반으로 함.
  • python-jobspy에 큰 감사를 전함.

면책

  • jobrake는 LinkedIn 또는 Indeed와 아무런 제휴 관계가 없음.
  • 구직에 사용해야 하며, 정기적인 스크래핑으로 데이터셋을 구축하는 용도로 사용하지 않아야 함.
  • 스크래핑은 각 서비스의 이용 약관을 위반할 수 있고, 두 서비스 중 어느 쪽이든 IP 주소에 요청 제한을 적용하거나 차단할 수 있음.
  • 각 서비스의 약관을 확인하고 준수할 책임은 사용자에게 있음.