개발 요구 사항
1. 목적
채용 프로세스 전 과정(공고 등록 → 지원 접수 → 서류 검토 → 면접 → 합불 통보)을 하나의 웹 플랫폼으로 구현하고, AI 기술을 접목하여 이력서 분석과 정보 검색을 자동화한다.
2. 개발 범위
| 요구 ID | 기능 | 검수 기준 |
|---|---|---|
| SFR-001 | 이력서 파싱 — PDF/DOCX 업로드 시 이름·학력·경력·기술스택 자동 추출 | 주요 필드 추출 정확도 90% 이상 |
| SFR-002 | 칸반 보드 — 지원자 카드를 드래그하여 채용 단계 전환 | 상태 전환 시 DB 반영 200ms 이내 |
| SFR-003 | Tool-Calling Agent — 자연어 명령으로 지원자 검색·일정 조회·통계 요청 처리 | 도구 호출 정확도 85% 이상, 지원 도구 5종 이상 |
| SFR-004 | RAG 질의응답 — 이력서·채용 공고 기반 자연어 질의응답 (pgvector) | Top-5 문서 추출 Recall@5 90% 이상 |
| SFR-005 | 지원자 관리 — 지원자 CRUD, 검색·필터링, 채용 단계별 목록 조회 | 전체 CRUD 정상 동작, 페이지네이션 지원 |
| SFR-006 | 이메일 알림 — 채용 단계 변경 시 SES 기반 자동 이메일 발송 | SQS 큐 연동, 발송 성공률 99% 이상 |
3. 지원자 데이터 수집 및 연계
지원자는 로그인 없이 외부 공개 링크로 지원서를 제출한다. 이력서 파일은 presigned URL로 브라우저에서 S3에 직접 업로드해 API 서버를 거치지 않는다. 접수된 데이터는 단계 흐름을 따라 담당자·면접관에게 연계된다.
단계 흐름: 지원 접수 → 서류 검토 → 1차 면접 → 2차 면접 → 최종 합격 / 불합격
- 각 단계 전환 시 단계 이력이 자동으로 기록됨
- 단계 변경 시 자동 메일 발송 (SQS + SES 비동기 처리)
- 면접관 배정 및 단계별 평가 기록
- 모든 이동과 평가는 이력으로 남아 추후 감사 추적 가능
4. GraphRAG 파이프라인 구축
이력서·공고 데이터를 pgvector에 임베딩하고, 자연어 질의를 도구 호출(Tool-Calling)로 변환해 검색·통계·일정 조회를 처리한다.
| 기능 | 설명 | 기술 |
|---|---|---|
| 이력서 파싱 | PDF/DOCX에서 이름·학력·경력·기술스택을 구조화 데이터로 추출 | Python, LLM |
| RAG 질의응답 | 이력서와 공고 내용을 임베딩하여 자연어 질의에 답변 | pgvector, Claude API |
| Tool-Calling Agent | 자연어 명령을 도구 호출로 변환하여 검색·통계 처리 | Claude Tool Use |
AI가 합불을 결정하지 않는다. 합불 확정은 항상 사람이 한다 (ADR-0003).
5. 정량 평가 기반 지원자 관리 기능
- 지원자 CRUD
- 검색·필터 기능 (이름·학교·기술스택 기반)
- 면접관 배정 및 평가 기록
- 공개 지원 폼 (로그인 없이 외부 링크로 지원)
- 모바일 반응형 UI
7. 보안 및 개인정보 보호
| 요구 ID | 항목 | 검수 기준 |
|---|---|---|
| SEC-001 | 인증·인가 (JWT, CORS, 암호화) | 미인증 요청 401/403 차단, AES-256 암호화 |
| SEC-002 | 데이터 보안 (S3 암호화, IAM 제어) | S3 SSE 활성화, IAM 정책 적용 |
역할 기반 접근 제어 (RBAC)
| 역할 | 권한 범위 |
|---|---|
| 관리자 | 전체 시스템 설정, 사용자 관리, 모든 데이터 접근 |
| 채용담당자 | 공고 관리, 지원자 관리, 단계 전환, 면접관 배정 |
| 면접관 | 배정된 지원자 조회, 평가 입력 |