사업 개요
최종 갱신 2026-09-28 — 09-18 코드 동결 · 09-20 과제 제출 이후 변경 없음, 향후 일정(10-14~27 GPU · 10-27 제품 시연) 반영.
기준 2026-09-22 · 저장소
Seuk-Team/Arda커밋8071fd9. 09-03 판을 실제 산출물 기준으로 갱신했다 — 바뀐 곳은 AI 모델 전략(클라우드 + Claude 확정), 자동 서류 심사, AI 면접 실시간 분석, 메일 경로(n8n + SMTP), 규모 지표.
요약
| 항목 | 내용 |
|---|---|
| 사업명 | AI 기반 채용 프로세스 자동화 및 지원자 통합 관리 플랫폼 |
| 시스템명 | Arda (Eval-ATS) |
| 개발 기간 | 2026년 8월 20일 ~ 2026년 10월 27일 (10주, 5스프린트) |
| 개발 인원 | 4명 (팀 SEUK) — 진수택·이우정·김민아·박소연 |
| 개발 방법론 | 애자일 스크럼(2주 스프린트) + 도메인 오너제(ADR-0007) + 결정 기록(ADR 36편) |
| 현재 상태 | 해커톤 제출 프리즈(09-20) · 심사 기간 09-20 ~ 10-17 · 심사 서빙은 클라우드(AWS · seuk.suvisdev.cloud) + Anthropic Claude 로 확정(09-18) |
| 서비스 | seuk.suvisdev.cloud · API api.seuk.suvisdev.cloud/docs |
사업 목적
채용 과정에서 발생하는 반복 업무를 자동화하고, 흩어진 지원자 정보를 하나의 플랫폼으로 통합하여 채용 담당자가 ‘지원자라는 사람’에 집중할 수 있게 한다.
채용담당자가 공고를 올리고, 지원자가 외부 링크로 지원서·이력서를 제출하면, 아르(AI)가 서류를 자격요건·우대사항·인재상 3축으로 채점해 서류 단계를 자동 판정하고, 담당자·면접관은 칸반 보드에서 면접 이후 단계를 심사·평가한다. 단계가 바뀌면 지원자에게 메일이 자동 발송되고, 모든 이동에 이력과 평가 기록이 남는다. 최종 합불만은 항상 사람이 확정한다(ADR-0003·0034).
그 위에 도구 호출 AI 에이전트(아르) 를 얹는다 — “백엔드 공고에서 3년차 이상 찾아서 상위 2명 면접으로 올려줘” 같은 자연어 한 문장이 검색 → 조회 → 단계 변경으로 분해되어 순차 실행되고, 쓰기 작업은 반드시 사람의 확인을 거친다.
시스템 개요 — 한 장면으로
- 채용담당자가 공고를 등록하면 공개 지원 링크가 생성된다. 지원자는 로그인 없이 지원서를 작성하고, 이력서는 presigned URL로 브라우저에서 S3로 바로 올라간다 — 파일이 서버를 거치지 않아 부담과 유출 접점이 함께 줄어든다. 이력서·자소서의 SHA-256 은 추가 전용 무결성 원장에 기록되고 사슬 머리가 매일 Ethereum Sepolia 에 앵커된다(ADR-0028).
- 접수 즉시 AI 요약·평가·추천 3단 체인(ADR-0022)이 돌아 요지·핵심 역량·강점·우려와 3축 점수를 저장하고, 임계(기본 60) 이상은 면접으로·미만은 서류 탈락으로 자동 이동한다(ADR-0034). 자료가 부족한 지원자도 지어내지 않고 서류 탈락 처리한다. 폼에 경력을 안 적었으면 이력서에서 추출해 「AI 추정」 표식을 붙인다.
- 담당자·면접관은 칸반 보드에서 카드를 드래그해 단계를 옮긴다. 모든 이동은 누가·언제·왜까지 이력으로 남는다. 안내 메일은 API 가 n8n 웹훅으로 넘겨 SMTP 로 보내고, n8n 이 멈춰도 API 가 5분마다 밀린 메일을 재발송한다 — 화면 응답이 메일을 기다리지 않는다.
- 면접 일정은 아르가 면접관 가용 시간을 보고 후보를 제안하고, 지원자는 메일 링크 또는 이메일 + 생년월일 로그인(ADR-0033)으로 24시간 접속해 일정을 고른다. 기본 질문은 FAQ 챗봇이 규칙 응답($0)으로, 나머지는 공고·회사 프로필을 근거로 답한다.
- AI 면접은 지원자가 이력서·자소서 기반 맞춤 질문에 음성으로 답하고, 담당자는 1:1 WebRTC 실시간 화면에서 답변이 서류와 일치하는지 대조 결과를 즉시 본다. 표정(ViT + MediaPipe)·음성 신호는 담당자 참고 지표로만 표시되고 점수·합불에 쓰지 않는다(ADR-0029·0032).
- 종합평가 화면에서 서류·인적성·면접을 한 번에 보고, 담당자가 최종 합격·불합격을 확정한다.
채용 단계 모델 — 단계는 다섯, 규칙은 여섯
지원 접수(applied) → 서류 검토(screening) → 면접(interview) → 최종 합격(accepted) / 불합격(rejected)
| 규칙 | 내용 |
|---|---|
| 전진은 한 칸씩 | 단계를 건너뛰는 전진은 허용하지 않는다 |
| 역행은 항상 허용 | 사람이 AI 판정을 되돌리는 것이 유일한 안전장치다 |
| 불합격은 어느 단계에서든 | 단, 사유(reason) 없으면 422 — 사유 없는 이력은 나중에 아무도 설명할 수 없다 |
| 서류 단계는 AI 가 자동 판정 | 3축 100점 채점 · 임계 60 · 자료 부족은 서류 탈락. 사람이 한 번 손대면 그 지원자는 이후 자동 판정에서 빠진다 — 수동이 항상 이긴다(ADR-0034) |
| 일괄 변경은 전부 아니면 전무 | 200명 중 30명만 바뀌면 담당자가 무엇이 됐는지 알 수 없다 → 전체 롤백(409) |
| 사용자는 지우지 않는다 | 비활성화만 — changed_by·evaluator_id 로 박힌 이력을 물리 삭제가 부순다 |
단계는 DB enum 이 아니라 코드 상수 + 체크 제약으로, 전환 규칙은 서비스 레이어가 강제한다. 마감·만료는 크론이 아니라 조회 시점에 판정한다.
AI 적용 원칙
버튼으로 되는 일에는 AI를 쓰지 않는다. 비정형 문서 이해, 자연어 요청의 작업 분해처럼 버튼으로 안 되는 일에만 쓴다.
| 원칙 | 내용 |
|---|---|
| 최종 합불은 사람의 것 (ADR-0003 → 0034) | 서류 단계 이동은 AI 가 하되, 최종 합격·불합격은 사람만 확정한다. 자동 탈락 메일은 즉시 안 나가고 마감 뒤 담당자가 일괄 발행(번복 여지). UI 문법(앰버 점선 = AI 제안 / 실선 = 사람 확정) |
| 쓰기 확인 강제 | 읽기 도구는 즉시 실행, 쓰기 도구(단계 변경·면접관 배정·메일 발송)는 확인 카드로 반환되어 사람이 승인해야 실행된다 |
| 근거 기반 응답 | 에이전트 응답은 도구 결과·이력서 원문만 인용한다. 채용과 무관한 질문은 “답의 근거가 우리 데이터냐” 를 기준으로 내용 없이 거절. 면접 분석은 STT → 근거 대조 → Claude 로, 근거 없이 단독 판단하지 않는다 |
| 표정·음성은 참고 지표까지만 (ADR-0029) | 담당자 화면에 수치로 보이되 점수 재료가 아니다. AI 요약 문장도 측정 수치의 재서술만 허용 — 수치에 없는 숫자나 사람을 단정하는 단어가 나오면 문장을 버리고 고정 틀로 대체 |
| 모델은 같은 자로 재고 결정 | Qwen3-8B QLoRA 자체학습(3어댑터)과 Claude 를 동일 채점기·동일 23건으로 비교(26.1% → 69.6% → 73.9%). 정확도는 동급이었으나 수치 추론·형식 안정성·지연·동시성 리스크로 클라우드 + Claude 확정(09-18). 근거는 Qwen vs Claude 보고서 |
| 비용·품질 관측 | 프롬프트 18개를 코드로 버전 관리, 호출마다 모델명·토큰 로깅(실측 아르 호출당 $0.0075). 인사·능력·기본 FAQ 는 규칙 라우터가 LLM 없이 $0. 대량 더미 데이터에는 AI 호출 금지 |
| 개인정보 | 프롬프트에 연락처·주민번호 미포함. 업로드 답변·재전사·아르 음성은 whisper-1 API(백엔드가 직접 호출), 실시간 면접 전사는 서버 내 CPU 로컬 faster-whisper — 09-17 운영 실측 STT_BACKEND 가 빈 값이라 두 경로로 갈려 돌았다(ADR-0038 「같은 변수, 두 해석」 · 09-18 이후 값은 미확인) |
추진 체계 — 도메인 오너제
한 사람이 도메인 하나를 소유하고, 자기 도메인 로드맵이 작업의 기준이다(ADR-0007). 팀장은 승인 게이트가 아니라 자원·비용·발표 문구만 조율하고, 금요일 주간 다이제스트는 검수가 아니라 파악용이다.
| 도메인 | 담당 | 범위 |
|---|---|---|
| 인프라·총괄 | 진수택 (팀장) | AWS·자동 CD·CI·관측·발표 총괄 · 모델 전략(Qwen 학습 → 클라우드 확정) · 데모 설계 |
| 백엔드 | 이우정 | 코어 API(인증·공고·지원서·평가·검색)·단계 전환 규칙·메일·무결성 앵커·실시간 면접 백엔드·DB 권한 분리 |
| 에이전트 | 박소연 | 도구 호출 에이전트·AI 요약·RAG·이력서 구조화 추출·표정·시선 보조 신호 서비스 |
| 앱 · 프론트엔드 | 김민아 | React 웹 + Flutter 앱 — 같은 API 의 두 클라이언트 |
추진 일정 — 게이트와 마일스톤
| 마일스톤 | 일자 | 정의 | 상태 |
|---|---|---|---|
| 초기 버전 게이트 | 2026-09-04 | 프론트 전 화면 배포 URL 동작 · 코어 API 배포 Swagger 동작 · 공개 지원 폼 → DB → 담당자 확인 수직 슬라이스 관통 | ✅ 4항목 실측 충족 |
| 인프라 이전 | 2026-09-04 | 운영 권한이 개인 계정에 묶여 있던 구조를 역할 기반으로 전환 — 새 AWS 계정·조직 저장소·역할 기반 IAM·시크릿 재발급(ADR-0025) | ✅ |
| 헥사고날 재편 | 2026-09-12 | Bounded Context 4개 + 포트/어댑터(ADR-0035) — models.py 71개 파일 직접 참조 해소 | ✅ |
| 모델 전략 확정 | 2026-09-18 | Qwen 자체학습 v9 완결 · 동일 채점기 비교 · 클라우드 + Claude 확정, 온프레미스 폐쇄 | ✅ |
| 해커톤 제출 프리즈 | 2026-09-20 | 코드 동결 · 심사위원 데모 계정 · 심사 09-20 ~ 10-17 | ✅ |
| 1차 완성 | 2026-09-30 | 코어 기능 완결 + 실배포 안정화 | ✅ 09-18 시점 충족 |
| GPU 풀가동 | 2026-10-14 ~ 10-27 | g4dn.xlarge(T4, 서울 $0.647/h) 24시간 가동 — 심사 종료 후에만 .env 스위치 변경 | 계획 |
| 제품 시연 · 종료 | 2026-10-27 | 제품 시연 · AWS 잔여 리소스 정리 · 인계 | 예정 |
진행 현황 (2026-09-22 기준)
| 렌즈 | 현황 |
|---|---|
| 기획 필수 27기능 | 100% (27/27 구현 · 09-03 달성 이후 유지) |
| ADR 로 편입된 확장 기능 | 자동 서류 심사 · 도구 호출 에이전트 · RAG · 면접 일정 자동화 · AI 면접(1:1 화상·STT·참고 지표) · 인적성 설문 · 무결성 원장 · 지원자 로그인 · 심사 데모 — 전부 배포 |
| 1차 완성(09/30) 정의 | 코어 완결 + 실배포 안정화 — 충족(09-18 클라우드 확정 시점) |
규모 지표 — API 라우트 107 · DB 테이블 28(ERD v2.8) · alembic 리비전 26 · 웹 화면 25 · 앱 화면 23 · pytest 1,165건 통과 · 앱 위젯 테스트 30파일 · AI 프롬프트 18 · ADR 36편 · 커밋 1,095 · 검색 성능 10만 건 111ms → 7.8ms · AI 원가 아르 호출당 $0.0075(기본 질문 $0) · 자체학습 어댑터 chat v9 73.9%
남은 일 (프리즈 뒤)
| 상태 | 무엇 | 누가 |
|---|---|---|
| 부분 | 면접관 자동 배정이 0명으로 떨어지는 결함 | 백엔드 |
| 계획 | 방 상태 Redis 이관 — API 워커 1개 제약 해제 | 백엔드 |
| 계획 | 집단 면접(지원자 여러 명 + 면접관 1명) ADR | 백엔드 |
| 부분 | 받아쓰기 정확도 — 실제 음성에서 흔들림 | 백엔드·인프라 |
| 계획 | ADR-0011(에이전트 모델) 을 코드 실제값(haiku)에 맞춰 개정 | 에이전트 |
| 계획 | DB 권한 분리 적용(앱 전용 롤) | 인프라·백엔드 |
| 계획 | AWS 잔여 리소스 폐기 · 종료 인계 | 인프라 |
주요 사업 내용
| 영역 | 내용 |
|---|---|
| 채용 프로세스 자동화 | 칸반 보드 단계 관리, 단계 변경 시 자동 메일(n8n + SMTP · 재발송), 단계 이력 기록, 공고 마감·다시 열기 |
| 자동 서류 심사 | 요약→평가→추천 3단 체인으로 자격요건·우대사항·인재상 3축 100점 채점, 임계 기준 자동 이동, 자료 부족 자동 탈락, 사람 개입 시 자동 판정 제외(ADR-0034) |
| AI 기반 이력서 분석 | PDF/DOCX/HWPX 텍스트 추출 · 학력·경력·기술스택 구조화(AI 추정 표식) · RAG 시맨틱 검색(ko-sroberta + pgvector) |
| 도구 호출 에이전트 ‘아르’ | 자연어로 지원자 검색·조회·단계 변경·면접관 배정·일정 제안·메일 초안/발송·이력서 드롭 접수(도구 12종) · 쓰기는 확인 카드 · 빈출 요청은 규칙 라우터($0) |
| 지원자 통합 관리 | 지원자 CRUD·검색·필터(10만 건 튜닝)·면접관 배정·평가·종합평가 화면·공고별 현황 |
| 공개 지원 · 지원자 포털 | 외부 공개 링크 접수 · S3 직접 업로드 · 지원자 로그인(이메일 + 생년월일) · 전형 현황·일정·설문·AI 면접 한 화면 · FAQ 챗봇 |
| AI 면접 · 실시간 분석 | 이력서·자소서 기반 맞춤 질문 · 음성 답변 STT · 답변↔서류 대조 · 담당자 1:1 WebRTC 실시간 화면 · 표정/음성 참고 지표(점수 미반영) · 면접 종료 시 수치 요약 |
| 인적성(사전 성향) 설문 | 10문항 5점 척도 · 통계는 코드, AI 는 관찰 재서술만(ADR-0027) |
| 제출물 무결성 원장 | SHA-256 해시 사슬 · DB 트리거가 수정·삭제 거부 · Sepolia 앵커 · 서명 키는 GitHub Actions(ADR-0028) |
| 인증·권한 | JWT 12시간 · 비활성 계정 즉시 401 · 권한 등급 admin/member(ADR-0017) · 서비스 토큰(/internal) · 심사 데모 계정 잠금·리셋 |
| 운영 | 자동 CD(2분 폴링 · 컨테이너 안 alembic) · CI 5잡 · CloudWatch/SNS 경보 · 매일 S3 백업 · 로그 상한 · 외부 헬스체크 |
기대 효과
| 구분 | 기대 효과 |
|---|---|
| 업무 효율 | 서류 1차 심사·단계 전환·알림 자동화로 담당자 반복 업무 감소 — 담당자는 면접과 최종 판단에 집중 |
| 판단 품질 | 3축 채점 근거·답변↔서류 대조 결과가 화면에 남아 “왜 이 판정인가”를 설명할 수 있다 |
| 정보 통합 | 지원자 정보·이력서·평가·면접 분석·이력을 단일 시스템(웹·앱)에서 조회 |
| 투명성·무결성 | 모든 단계 이동·평가에 이력 · 제출물 위변조를 외부에서 검증 가능 |
| 비용 통제 | 호출마다 원가 로깅 · 기본 질문 $0 · 모델 교체 결정을 동일 채점기로 근거화 |
| 접근성 | 모바일 대응 UI · 공개 지원 링크 · 지원자 24시간 포털로 시간·장소 제약 없이 지원·확인 |