- 서류 판정·요약 서빙은 클라우드(AWS)+Anthropic Claude 로 확정(09-18). Qwen 3갈래 어댑터 자체학습은 비용 절감 R&D 자산으로 완결됐다. 아래 서류 24명 실측은 09-11 시점(Claude Haiku 기준) 값으로, 시점을 명시해 둔다.
- 헥사고날 부분 적용 완결(ADR-0035 · PR #184~#209): 판정 코드가
backend/app/application/screening.py로 이관됐다. 규모는 테스트 1072개 · API 107개 · 테이블 28개 · ADR 0001~0038 · 최신 PR #328 (09-17 기준 · 동결 시점 마지막 머지는 #354). - "판정 정확성"의 범위를 넓혔다. 서류 점수(문서 심사)뿐 아니라 아르 에이전트 도구 호출 정확도(v9 pass_rate 73.9%) · 요약 어댑터 정성 정확도까지 같은 문서에서 다룬다. 새 §9·§10 참조.
- 같은 자(rubric)로 Claude vs Qwen(R&D) 을 재측정: 69.6% vs 26.1%(도메인 미스매치) → v9 파인튜닝으로 격차 대폭 축소. §10 참조.
- 신규 기능 반영: 이력서 드래그·드롭 접수(#326) · 같은 사람 재접수 diff UI(#327) · 탈락 축 빨간 표시(#328, 서류/면접/종합 어디서 떨어졌는지 한눈에). 홍지민 배지 서사가 정식 diff UI 로 승격됐다.
실제 자동 불합격 8명 · 자동 합격 14명 · 요약 대기 2명 (문가영·장우진 · 정보 부족 지원자). 이하 §1~§8 은 09-11 서류 심사 실측을 유지하고 시점을 명시한다.
1. 전체 상태 · 한눈에 (서류 심사, 09-11 실측)
2. 판정 알고리즘 · 어떻게 계산하는가
문서 점수 (0-100) = 세 부분의 가중 평균
| 항목 | 가중치 | 0 → 100 기준 |
|---|---|---|
| requirements | 50% | 필수 요건을 전부, 요구 수준 이상으로 충족 → 100 |
| preferred | 20% | 우대 항목을 실제 경험으로 여럿 보임 → 100. 없으면 50. |
| culture | 30% | 인재상 "함께 일하고 싶은 사람" 흔적 → 100. 근거 없으면 50. "잘 안 맞음" 신호 → 낮음. |
각 항목은 chain_evaluate.v2.md 프롬프트가 LLM 호출로 산출. 기준은 company_profile.scoring_weights. 총점 ≥ 임계값(60)이면 자동 합격, 아니면 불합격.
⚠ 시점 주의: 아래 24명 실측은 09-11 · Claude Haiku 호출 기준이다. 심사·프로덕션 판정 서빙은 09-18 확정으로 클라우드(AWS)+Anthropic Claude 이고, Qwen 어댑터 실측(§9·§10)은 비용 절감 R&D 자산의 정확도 참고 자료다.
3. 자동 불합격 8명 · 근거 수치 (09-11 실측)
4. 판정 정확성 · 세 가지 문제 발견 (09-11)
"회의 기반 의사결정" 자소서 문구가 인재상 (자율 결정권 선호) 과 불일치로 판정.
→ 대응(구현됨) · B. 문화 하한 규칙(#182): 요건 ≥ 70 이면 culture 가 50 미만으로 내려가지 않음.
→ 제안(미구현) · 55-65 경계선 지원자는 자동 판정 대신
hold · 담당자 리뷰. A안, 팀 결정 사항.
→ 대응(구현됨) · C. 우대 가중치 20 → 10(#182). 필수 통과자를 우대 부족으로 떨어뜨리는 감도를 낮춤.
5. 개선 방향 · 세 가지 (반영 현황)
A. 경계선 지원자 · 자동 판정 대신 hold 미구현 · 최종(09-28) 미구현으로 종결
55-65 사이 (임계값 ±5) 는 hold 로 두고 담당자 리뷰. 자동 판정 실수 방지.
코드 위치 · backend/app/application/screening.py (경로 이관 · ADR-0035) · if score >= threshold 로직에 경계 범위 추가.
B. 요건 우수자는 culture 하한 보장 구현됨 · #182
requirements ≥ 70 이면 · culture 가 50 미만으로 내려가지 않음(문화 하한 규칙). 남기훈 같은 케이스 방지.
doc_score_from 에 반영 · CULTURE_FLOOR_WHEN_REQUIREMENTS_HIGH=50 · REQUIREMENTS_HIGH_THRESHOLD=70.
C. 우대 가중치 20 → 10 · 필수 통과자 보호 구현됨 · #182
임재원처럼 필수는 만족했는데 우대 부족으로 탈락 하는 케이스 방지. 필수 요건 50 → 60.
DEFAULT_WEIGHTS · {"doc_preferred": 10}.
6. 자동 합격 14명 · 참고 (09-11)
| 점수 | 이름 | 주요 근거 |
|---|---|---|
| 86 | 한지우 (FE) | React·TS 2년+, 성능 최적화 실전, 협업 문화 |
| 86 | 류성민 (BE) | 고득점 |
| 84 | 조민석 (BE) | 고득점 |
| 82 | Emily Park (FE) | 영어 이력서 · 정상 채점 |
| 81 | Daniel Kim (BE) | 영어 이력서 · 정상 채점 |
| 78 | 배수아 (BE) · 오세린 (FE) | 영어 이력서 · 정상 채점 |
| 77 | 김태호 (FE) | 안정 합격 |
| 66 | 윤하늘 (FE) | 중간 합격 |
| 61 | 박도윤 (FE) | Vue 6년 · React 요건 미충족 (요건 55). 우대·문화로 상쇄. |
| 60 | 이서연 (FE) · 정민호 (FE) · 서지훈 (FE) · 신예은 (BE) | 정확히 임계값 · 아슬 합격 |
박도윤 (61점) · 흥미로운 케이스
7. 문가영 · 장우진 · 요약 대기 (원인 규명 완료)
doc_score = null · 요약 미완료.
인수인계에 "문가영 · 정보 부족 서사 · 아르가 정보 부족 인정" 대상으로 표시. 실제 · 채점 자체가 안 됨.
장우진(id 82) 첨부를 프로덕션에서 직접 추출: 이력서 PDF 291자(대부분 이메일·전화·생년월일) · 자기소개서 PDF 54자("파이썬 백엔드 4년." 한 문장) · 자기소개 입력칸 27자. PDF 추출 경로는 정상이고 텍스트가 stub 이다. 아르가
insufficient: true 로 남긴 것은 정상 판단이다.같이 발견된 실제 버그: "다시 생성" 버튼에
onClick 이 없어 눌러도 요청이 안 나감(프로덕션 로그 90분 호출 0건). PR #208 로 배선 + 실패 사유(503/422/네트워크) 표시.
요약이
insufficient: true(분석할 자료가 없음)로 저장된 지원자는 점수 없이 hold 로 남지 않고 자동 서류 탈락하도록 바뀌었다(#349·#351, ADR-0034 확장 · screening.py _summary_insufficient). 문가영·장우진 같은 "요약 대기" 상태가 더는 쌓이지 않는다. 근거는 "판단할 자료가 비어 있음" 이다. 적용 대상은 screening_mode=auto 공고의, 아직 applied 단계이고 사람이 옮긴 적 없는 지원자다 — 시스템이 applied→screening→rejected 로 자동 서류 탈락 처리한다(actor_kind=agent, 단계 이력에 사유 기록). 탈락 메일은 이때 보내지 않는다(notify=False) — 코드상 발송 경로는 마감 뒤 일괄 발송용 POST /api/v1/postings/{id}/send-rejections(send_pending_rejections) 하나이며, 이를 부르는 프론트 버튼·스케줄러는 코드에 없다(09-29 확인). 수동 모드 공고는 hold 로 남아 담당자 판단에 맡긴다.
8. 시연 시나리오 · 09-17 갱신
시연 시나리오 정정 · 신규 UI 반영:
"자동 불합격 3명: 한지우·박도윤·정민호"→ 실제 · 자동 합격 14명 · 자동 불합격 8명- 불합격 근거 블록 시연 · 남기훈(요건 우수·문화 탈락 → B 규칙으로 방지) · 강현우(1점 차이) · 임재원(요건 통과·우대 부족 → C 로 완화) 세 케이스가 알고리즘 논의점 풍부
- 탈락 축 빨간 표시(#328) · 서류/면접/종합 어디서 떨어졌는지 한눈에. 05-design §1「색은 판단에만」 준수. 위 세 케이스가 그대로 "서류 탈락 축" 시연 소재가 됨
- 이력서 재접수 diff(#327) + 드래그·드롭 접수(#326) · 홍지민(id 52) 이 정식 diff 시연 대상. 같은 사람 재접수 시 변동 배지 + diff 노출
- 박도윤 (61) · 기술 이관 성공 케이스 · 알고리즘이 유연하게 판정한 예시로 시연 가능
9. 판정 정확성을 어떻게 "측정"하는가 (신설)
서류 점수는 위 §2 공식으로 나오지만, "판정이 정확한가"는 세 갈래로 따로 측정한다. 멘토가 "성능을 어떻게 측정하냐"고 물으면 이 표가 답이다.
| 측정 대상 | 방법 | 결과 (09-17) |
|---|---|---|
| 아르 도구 호출 | 정답 케이스 대비 pass_rate · fail 사유를 UX정상 / 진짜실수로 분류 | v9 73.9% (17/23) · §10 |
| Claude vs Qwen (R&D 비교) | 같은 케이스·같은 rubric 으로 두 모델 대조 | 69.6% vs 26.1% · §10 |
| 요약 어댑터 | JSON 유효성·gist·key_skills·career_years 항목별 정성 대조 | career_years 만 오차 · §10 |
서류 심사(§2~§8)와 이 세 측정은 층위가 다르다. 서류 심사는 "점수가 맞나", 이 절은 "어떤 모델·어댑터로 판정을 돌려야 정확한가"를 본다.
10. 어댑터 정확도 · Qwen 3갈래 R&D 자산 (신설)
아르 도구 호출 (chat/agent = qwen3-arda-agent v9)
도구 호출 pass_rate 73.9% (17/23) 실측. fail 6건 중 5건은 UX상 정상(pending_pass · 안전 다단계) → 실질 ~95%+. 진짜 실수는 1건(list_postings 오선택). v6·v7·v8 을 모두 상회.
요약 어댑터 (summary = qwen3-arda-summary · summary-2026-09-17)
정성 확인: JSON 완벽 · gist · key_skills 정확. 다만 career_years 만 인턴 포함 오차 — 정답 3년을 5년으로 셈(R&D 실측). career_years 는 인턴 포함 여부에서 오차가 나기 쉬운 축이라, 심사에서 Claude 로 서빙하는 서류 요약·이력서 재접수 diff 에서도 담당자 확인 축으로 표기한다.
⚠ 혼동 금지 · v6~v9 는 chat 어댑터, summary-2026-09-17 은 요약 전용 최초 어댑터. 겸용 아님. 면접 chain 은 별도 qwen3-arda-interview.
09-17 운영 리허설 (우정)
전체 흐름 13분 무중단(공고→지원→서류→면접→분석→채점→합격→메일). 얼굴 인식 86% · 실시간 판정 57/57 담당자 화면 도착 · 메일 4통 발송. 서류 판정과 실시간 판정이 한 흐름에서 끊김 없이 도달함을 확인.