Testlify는 역량 평가 및 인터뷰 플랫폼이다. 리크루터용 테스트 빌더 안에서, 나는 음성, 영상, 채팅 시뮬레이션이라는 세 가지 AI 기반 질문 유형을 작성하는 UI를 만들었다. 리크루터는 이를 통해 자동화된 지원자 평가를 구성한다: 녹음 시간 제한, AI 프롬프트 설정, 역량 점수화, 텍스트 음성 변환 목소리 선택.
내가 만든 것
- 음성 AI 질문 작성: 테스트 빌더 안에서 음성 기반 AI 인터뷰 질문을 구성하는 UI, 녹음 제한, AI 프롬프트 설정, 역량 점수화를 만들었다.
- 질문 빌더 통합: 음성, 영상, 채팅 시뮬레이션 질문 유형을 리크루터의 평가 빌더 흐름에 통합했다.
- 스타일링 및 툴링: 음성/채팅 질문 UI를 위한 컴포넌트 스타일링과 함께, 저장소 툴링 설정(ESLint, Husky, Renovate, Tailwind 설정)에 기여했다.
왜 중요했는가
음성, 영상, 채팅 AI 질문은 리크루터가 Testlify의 자동화된 인터뷰 평가를 구성하는 방식이다. 이 작업은 이러한 질문 유형을 구성 가능하게 만들었고, Testlify 제품군 전반에서 사용되는 동일한 공유 디자인 시스템 안에서 일관되게 유지했다.
거대한 코드베이스 안의 작은 기여
이 저장소는 Testlify의 리크루터/관리자 대시보드다: 16,216건의 커밋, 수십 명의 기여자, 2021년 9월부터 운영되고 있다. 내 커밋은 그중 86건, 약 0.5%로, 약 1년 반에 걸쳐 있다. 그 커밋 수의 대부분은 component-library git 서브모듈에 있는데, 이는 이미 별도의 케이스 스터디로 다룬 것과 같은 공유 Vue 디자인 시스템이다. 그 서브모듈 바깥에서, 실제 작업은 초점이 명확한 파일들이다: 음성 질문 모달, 질문 유형을 빌더에 연결하는 인터뷰 질문 화면, 그리고 그 주변의 스타일링과 툴링.
"멀티모달 AI 인터뷰"가 여기서 실제로 의미하는 것
이 앱은 제품의 리크루터 쪽이다: 지원자가 실시간으로 답변하는 곳이 아니라, 리크루터가 AI 기반 질문이 실제로 무엇을 묻는지 구성하는 곳이다. 음성, 영상, 채팅 시뮬레이션은 리크루터가 테스트 빌더에서 설정하는 질문 유형으로, 각각 자체 녹음 시간 제한, AI 프롬프트, 역량 점수화 루브릭, (음성의 경우) 텍스트 음성 변환 목소리 선택을 갖는다. 그렇게 구성된 질문을 실제로 진행시키는 지원자용 인터뷰 경험은 Testlify 스택의 다른 별도 애플리케이션에서 실행된다.
데이터 모델과 규모
- 4년 이상에 걸친 16,216건의 커밋, 그중 최상위 기여자 한 명만으로도 1,800건 이상을 책임졌다. 작은 프로젝트가 아니라 진정으로 크고 오래 지속된 팀 코드베이스다.
- 공유 컴포넌트 라이브러리는 복사되거나 포크된 것이 아니라 git 서브모듈로 소비되며, 이 앱을 Testlify의 다른 세 제품과 같은 버전 관리된 디자인 시스템 위에 유지한다.
Stack
Vue 3, TypeScript, 상태 관리를 위한 Vuex, Vite, git 서브모듈로서의 공유 Testlify 컴포넌트 라이브러리, ESLint, Husky, 의존성 업데이트를 위한 Renovate, Tailwind CSS.