Building PrepAI An AI-Powered Interview Prep Platform with the Gemini API
개요
PrepAI는 Gemini API를 활용하여 이력서와 직무 설명서를 분석하고, 직무 적합도 점수, 기술 격차 분석, 개인화된 면접 질문, 7일 준비 로드맵을 생성하는 AI 기반 면접 준비 플랫폼이다.
주요 내용
* 개발 동기: 개인적인 경험에서 비롯된 면접 준비의 비효율성을 개선하고자, 이력서와 특정 직무 설명서를 바탕으로 맞춤형 준비를 돕는 도구를 개발하기 위해 PrepAI를 구축했다.
* 주요 기능:
* 사용자가 이력서와 직무 설명서를 업로드/입력하면, PrepAI는 두 텍스트에서 기술, 경험, 키워드를 추출한다.
* 추출된 정보를 바탕으로 ATS(Applicant Tracking System) 스타일의 직무 적합도 점수를 생성한다.
* 직무에서 요구하는 기술과 사용자가 보유한 기술 간의 격차를 분석한다.
* 실제 직무 설명서를 기반으로 개인화된 면접 질문을 생성한다.
* 면접 전에 기술 격차를 해소하기 위한 7일간의 준비 로드맵을 제공한다.
* 기술 스택:
* 프론트엔드: React.js
* 백엔드: Node.js + Express.js
* 데이터베이스: MongoDB
* AI: Google Gemini API (이력서/직무 설명서 분석 및 질문 생성 담당)
* 전반적인 아키텍처는 MERN 스택 기반이며, Gemini API가 추론 작업의 핵심적인 역할을 수행한다.
* Gemini API 연동의 난제: API 호출 자체보다는 일관되고 구조화된 출력을 얻는 것이 가장 큰 어려움이었다. 면접 준비에는 UI를 깨뜨릴 수 있는 자유 형식의 문단이 아닌, 질문 목록, 점수, 로드맵 등 예측 가능한 JSON 형식이 필요했다.
* 문제 해결 방안:
* 원하는 JSON 형식을 명확하게 지정하는 프롬프트 작성
* 이력서 텍스트와 직무 설명서 텍스트를 명확하게 레이블링하여 입력
* Gemini가 JSON 외에 추가 텍스트를 생성할 경우를 대비하여 백엔드에서 파싱(parsing) 보완 단계 추가
* 이러한 경험을 통해 프롬프트 엔지니어링을 단순한 요청이 아닌 API 계약처럼 취급하는 엔지니어링적 접근을 배웠다.
* 학습 내용:
* LLM API와 통신하면서도 프론트엔드에는 일반 REST API처럼 작동하는 백엔드 설계 방법
* 예측 불가능한 AI 출력을 안정적으로 처리하는 방법 (재시도, 검증, 폴백 상태 처리)
* 개인적인 불편함(부정확한 면접 준비)을 실제 출시 가능한 제품으로 전환하는 경험
시사점
PrepAI는 Gemini API의 강력한 텍스트 분석 및 생성 능력을 활용하여 개인화된 면접 준비 과정을 혁신적으로 개선했으며, LLM API 연동 시 발생할 수 있는 예측 불가능성 문제를 해결하기 위한 실질적인 엔지니어링 기법들을 제시하고 있다.
댓글
GitHub Discussions