개요

interviewstreet/hiring-agent는 HackerRank가 공개한 이력서 평가 파이프라인으로, PDF 이력서를 Markdown/JSON Resume 형태로 구조화하고 GitHub 프로필·저장소 신호를 보강한 뒤 역할별 rubric으로 점수·근거·보너스·감점을 출력한다. README는 이 프로젝트가 ATS나 HackerRank 고객용 제품이 아니라, 대량 인턴 지원서에서 사람이 먼저 읽을 순서를 정하기 위한 ranking 도구였다고 설명한다.

현재 스냅샷

항목내용
저장소interviewstreet/hiring-agent
설명AI agent to evaluate and score resumes.
주 언어Python + Jinja
라이선스MIT
기본 브랜치main
캡처 시점 지표stars 6,579 / forks 1,165 / open issues 265
생성/갱신created 2025-07-29, pushed 2026-07-27

무엇을 하는가

  • PDF → 구조화 데이터: pymupdf_rag.pypdf.py가 이력서 PDF를 Markdown-like 텍스트로 변환하고, prompts/templates/*.jinja를 통해 Basics·Work·Education·Skills·Projects·Awards 섹션을 JSON Resume 계열 스키마로 추출한다.
  • GitHub 신호 보강: github.py가 이력서 안의 GitHub 프로필을 찾아 프로필과 저장소를 가져오고, 의미 있는 기여 프로젝트를 선별하도록 LLM에 요청한다.
  • 역할별 평가: roles/<role_name>/ 아래의 role.json, criteria.jinja, system_message.jinja가 직무별 평가 범주·가중치·프롬프트를 정의한다. 기본 예시는 software_engineering_intern이다.
  • 설명 가능한 출력: score.py가 end-to-end 실행을 조율하고, 개발 모드에서는 중간 JSON 캐시와 역할별 CSV를 남긴다.

모델/프로바이더 구조

기본 모델은 로컬 실행이 쉬운 gemma4:latest로 되어 있지만, README는 HackerRank의 실제 인턴 이력서 평가에는 상위 Gemini 모델을 사용했다고 밝힌다. 런타임은 Ollama와 Gemini를 모두 OpenAI-compatible provider wrapper로 다루며, providers.json.envDEFAULT_MODEL, GEMINI_API_KEY, GITHUB_TOKEN으로 설정한다. 이 구조는 local-llm과 클라우드 LLM을 같은 평가 파이프라인 안에서 교체할 수 있게 한다.

논쟁과 리스크

README는 커뮤니티 분석을 별도 Coverage 섹션으로 링크하며, 반복 실행 시 점수 분산, PDF의 invisible text prompt/security 문제, GitHub 중심 rubric이 사기업·비공개 저장소 경력을 불리하게 볼 수 있는 문제, 공개 rubric에 대한 gaming 가능성을 인정한다. 따라서 이 저장소는 “자동 채용 결정기”라기보다, harness 관점에서 평가 파이프라인을 어떻게 투명하게 만들고 검증할지 보여주는 사례에 가깝다.

위키 내 위치

이 노트는 moc-ai-agents 쪽에서는 domain-specific evaluation agent 사례이고, moc-productivity 쪽에서는 채용/커리어 업무를 자동화하는 도구 사례다. 기존 2026-04-07-career-ops-claude-code-job-pipeline이나 2026-04-07-career-ops-claude-code-job-pipeline이 지원자 관점의 job-application automation이라면, hiring-agent는 채용자 관점의 resume ranking/evaluation pipeline이다.

실행 메모

git clone https://github.com/interviewstreet/hiring-agent
cd hiring-agent
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
ollama pull gemma4:latest
python score.py ./resume/sample.pdf --role software_engineering_intern

Gemini를 쓰려면 .envGEMINI_API_KEY와 Gemini 계열 DEFAULT_MODEL을 설정한다. 새 직무 rubric은 python score.py --init-role backend_engineer로 scaffold한 뒤 roles/backend_engineer/의 JSON/Jinja 파일을 수정하는 흐름이다.

출처