loks666/get_jobs
💼【AI找工作助手】全平台自动投简历脚本:(boss、前程无忧、猎聘、智联招聘)
📚 프로젝트 개요
Get Jobs (工作无忧)는 중국의 구직자들이 여러 온라인 채용 플랫폼(Boss 직핀, Liepin, 51Job, Zhilian 등)에 최소한의 수동 작업으로 이력서를 제출할 수 있도록 도와주는 오픈소스 자동화 도구입니다. 웹 기반 GUI, Spring-Boot 백엔드, Playwright로 구동되는 헤드리스 브라우저를 결합하여 로그인, 채용 공고 필터링, AI 생성 맞춤 메시지 전송, 선택적으로 이미지 버전 이력서 전송을 수행합니다.
🛠️ 핵심 기술
| 계층 | 기술 |
|---|---|
| 백엔드 | Java 21, Spring Boot 3.5, Gradle 9.7 |
| 브라우저 자동화 | Playwright (Patchright 포크) – 올바른 ChromeDriver 자동 다운로드 |
| 데이터 저장소 | SQLite (16개 테이블 및 조회 사전이 포함된 템플릿 DB) |
| 프론트엔드 | Next.js 16 + React 19 (Spring 리소스용 dist/로 컴파일) |
| AI 통합 | OpenAI 호환 API 호출 (BASE_URL, API_KEY, MODEL 설정 가능)로 개인화된 "인사" 메시지 생성 |
| 알림 | 실시간 푸시를 위한 기업용 WeChat 웹훅 |
⚙️ 작동 방식
- 설정 – 저장소를 클론하고, JDK 21 및 Gradle을 설치하고, 제공된 빈 SQLite 파일(
getjobs.db.template → getjobs.db)을 다운로드하여db/아래에 배치합니다. - 로그인 – 앱이 헤드리스 Chromium 인스턴스를 실행하고 각 채용 사이트에 로그인(주로 QR 코드 기반 WeChat 로그인)한 후 세션 쿠키를 장기간 재사용을 위해 저장합니다.
- 구성 – 웹 UI를 통해 다음을 설정합니다:
- 대상 도시, 업종, 경력, 급여 등 (사전에 채워진 사전 사용).
- 짧은 인사말 생성을 위한 AI 매개변수 (
BASE_URL,API_KEY,MODEL). - 이미지 이력서(
resume.jpg) 전송 여부.
- 필터링 – 스크레이퍼가 비활성 HR, 헤드헌터 게시물, 원하는 급여 범위를 벗어난 직무를 필터링합니다.
- AI 지원 아웃리치 – Boss 직핀의 각 매칭 직무에 대해 시스템이 설정된 LLM을 호출하여 개인화된 인사말을 생성한 후 선택적 이미지 이력서와 함께 자동으로 전송합니다.
- 블랙리스트 및 보고 – 부정적으로 응답한 회사는 향후 제출을 피하기 위해 블랙리스트에 추가됩니다. 모든 작업은 즉시 모니터링을 위해 WeChat 봇으로 푸시됩니다.
- 실행 – Spring Boot 진입점
GetJobsApplication.java를 실행합니다. UI는http://localhost:<port>에서 제공됩니다.
🎯 주요 사용 사례
| 대상 | 얻는 이점 |
|---|---|
| 중국의 신규 졸업생 및 이직자 | 수동 복사-붙여넣기 없이 매일 수십 개의 채용 공고에 대량 지원. |
| 계약직을 찾는 프리랜서 | SQLite에 지원 기록을 유지하면서 여러 플랫폼을 빠르게 테스트. |
| 웹 자동화 + LLM 통합 템플릿을 원하는 개발자 | 바로 사용 가능한 Spring-Boot + Playwright + OpenAI 호환 워크플로우. |
📦 시작하기 (빠른 단계)
# 1. 클론 및 진입
git clone https://github.com/loks666/get_jobs.git && cd get_jobs
# 2. JDK 21 및 Gradle 설치 (또는 래퍼 사용)
# 3. 최신 릴리스에서 빈 DB 다운로드
wget https://github.com/loks666/get_jobs/releases/download/vX.X.X/getjobs.db.template -O db/getjobs.db
# 4. AI 환경 변수 설정 (선택 사항, Boss AI 인사말에 필요)
export HOOK_URL="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=..."
export BASE_URL="https://api.openai.com"
export API_KEY="sk-..."
export MODEL="gpt-5-nano"
# 5. 앱 시작
./gradlew bootRun # 또는 IDE에서 GetJobsApplication 실행
브라우저를 열고 http://localhost:8080으로 이동하여 도시/직무를 입력하고, 원하면 resume.jpg를 업로드한 후 시작을 누르세요.
🚨 제한 사항 및 주의 사항
- 국내 중심 – 중국 채용 포털용으로 설계됨; VPN 또는 외부 프록시 사용 시 페이지 로딩이 중단될 수 있습니다.
- 서버 측 배포 없음 – 작성자는 사이트가 비인간 IP를 차단하므로 이 도구는 개인 PC용으로 설계되었습니다.
- 플랫폼별 특이 사항 – 51Job 및 Zhilian은 엄격한 일일 제한이 있으며, 도구는 제한에 도달하면 중지될 수 있습니다.
- 상업적 사용 금지 – PolyForm Non-Commercial 1.0.0 라이선스 하에 배포됨; 유료 사용을 위해서는 작성자로부터 상업 라이선스를 취득해야 합니다.
- AI 비용 – LLM은 Boss 직핀 인사말에만 사용됨; README는 작은
gpt-5-nano모델로 하루 약 $0.06 비용을 추정합니다.
🛡️ 라이선스 및 커뮤니티
- 라이선스 – PolyForm Non-Commercial 1.0.0 (개인, 비상업적 용도로 무료).
- 지원 – 문제 해결을 위한 활성 QQ 그룹(약 1900명 및 322명) 및 GitHub Issues 페이지.
- 기여 – PR은
dev브랜치를 대상으로 해야 하며 엄격한 이모지 접두사 커밋 메시지 형식을 따라야 합니다. 프로젝트는 CLA를 요구합니다.
🔗 관련 프로젝트 (동일 작성자)
README에는 여러 AI 관련 저장소(RL-MiniGames, YOLOv5, 질병 예측 등)와 유틸리티 도구(WeChatVault, FlyAI)도 나열되어 있습니다. Get Jobs에 필수는 아니지만 작성자의 더 넓은 관심사를 보여줍니다.
요약: Get Jobs는 중국 채용 사이트를 스크래핑하고, 채용 공고를 필터링하며, LLM을 사용하여 아웃리치 메시지를 생성하고, 선택적으로 이미지 이력서를 전송하는 Java 기반 GUI 중심 자동화 제품군으로, 개인 사용자의 대량 구직 지원을 간소화하는 것을 목표로 합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트