프로젝트 소개 — Arda

채용 지원자 관리 시스템(ATS) — 공고 등록부터 지원 접수, 단계별 심사·평가, 합불 통보까지

핵심 소주제

1

채용 프로세스 통합 관리 파이프라인

'합불 등의 핵심 결정은 항상 사람이 한다'라는 원칙을 기반으로, [공고 등록 → 접수 → 단계별 심사 → 결과 통보]까지의 채용 전 과정을 하나의 시스템으로 통합한다. 메인 화면은 지원자 칸반 보드로, 카드를 드래그해 단계를 이동하면 이력이 자동 기록되고 안내 메일이 큐 기반 비동기(+재시도)로 발송된다. JWT 기반 3역할(관리자·채용담당자·면접관) 접근 제어와 더미 지원자 10만 건 기준의 검색과 필터 성능 튜닝을 포함한다.

2

보안에 강한 로컬 AI 에이전트

경량 모델로 온프레미스 구현. 이력서/면접 기록 등 지원자 개인정보가 외부 API로 전송되지 않도록, 경량 LLM(sLLM)과 STT 모두를 온프레미스 환경에서 구동하는 로컬 에이전트를 구현한다. [입력 → 모델 추론 → 출력]의 모든 과정을 내부망 안에서 완결시켜 '데이터 반출 없는 채용 에이전트'라는 보안 차별점을 확보한다.

3

지원자가 24시간 접근 가능한 면접 일정 자동화 서비스

면접관들의 가용 일정을 파악해 지원자에게 후보 시간을 제안하고, 선택을 받아 일정을 확정·통보하는 조율 과정을 에이전트가 자동화한다. 지원자는 안내 이메일의 링크로 24시간 언제든 접속해 전형 진행 현황과 면접 일정을 실시간으로 확인·선택할 수 있다.

4

LLM 도구 호출 에이전트 및 RAG 기반 STT 면접 분석

"김도현 찾아줘 → 면접 안내 이메일 만들어줘"처럼 자연어 대화만으로 지원자 검색/조회/단계 변경/이메일 초안을 수행하는 도구 호출(Tool-Use) 에이전트를 개발하며, 실행성 작업은 초안(pending_action)까지만 만들어 사람의 확인을 거친다. 면접 분석은 [STT → RAG → sLLM] 파이프라인으로 구성한다.

5

웹/모바일 멀티 클라이언트 및 운영 체계

React(Vite/TS) 웹과 Flutter 모바일 앱이 동일한 FastAPI API를 사용하는 계약 중심 설계로, API/ERD 문서를 코드와 같은 커밋에서 갱신하는 규칙으로 5인 병렬 개발의 정합성을 유지한다. Docker, AWS(EC2/S3/SES/SQS), GitHub Actions 기반 배포와 함께 ADR 15건, 팀원별 소유 파일 기반 무충돌 칸반 운영까지 포함한다.

주요 기능

기능설명
지원자 칸반 보드카드를 드래그해 단계 이동(지원 접수 → 서류 검토 → 면접 → 최종 합격/불합격). 모든 이동은 단계 이력으로 기록
단계 변경 자동 메일단계 이동 시 지원자에게 메일 자동 발송. SQS 큐 + 워커로 비동기 처리, 실패 시 재시도
공고 관리 · 공개 지원 링크채용 공고 등록·관리. 지원자는 로그인 없이 외부 공개 링크로 지원서 제출
이력서 S3 업로드presigned URL로 브라우저에서 S3에 직접 업로드 — 파일이 API 서버를 거치지 않는다
지원자 검색·필터이름·학교·기술스택 검색과 필터. 더미 데이터 10만 건 기준으로 인덱스 튜닝
평가 · 면접관 배정면접관 배정, 단계별 점수·코멘트 평가 기록
인증 · 권한JWT 인증, 역할 3종(관리자 / 채용담당자 / 면접관)

기술 스택

BACKENDPython · FastAPI · PostgreSQL
FRONTENDReact · Vite · TypeScript
INFRADocker · AWS (EC2 · S3 · SES · SQS) · GitHub Actions · Vercel
AIClaude API · pgvector · LangGraph

아키텍처

계층기술배포
FrontendReact + TypeScript + ViteVercel
Backend APIFastAPI (Python)EC2 · Docker
DatabasePostgreSQL + pgvectorAurora Serverless v2
파일 저장S3 (presigned URL 업로드, SSE 암호화)AWS S3
메일 발송SES + SQS (비동기 큐)AWS SES/SQS
CI/CDGitHub Actions자동 배포