관리 메뉴

공부 기록장 💻

[Database Modeling] 원티드 채용 플랫폼의 채용 시스템 DB 모델링을 위한 사전 자료 조사 및 분석 본문

# Develop/Project

[Database Modeling] 원티드 채용 플랫폼의 채용 시스템 DB 모델링을 위한 사전 자료 조사 및 분석

dream_for 2022. 10. 21. 11:33



최근 원티드에서 취업/이직을 목적으로 하는 구직자들을 대상으로 주최한 프리온보딩 백엔드 코스에 참여하게 되었다.
지원하기 이전에, 사전 과제로 CRUD를 이용한 간단한 채용 시스템 API를 개발하였다.
( https://github.com/YebinLeee/recruitment-api-server  )
선발을 위한 가벼운 사전 과제였기 때문에 과제의 요구사항은 로그인, 회원가입을 비롯한 인증 부분을 생략해도 되었고,
많은 모델을 필요로 하지 않았으며(회사, 유저, 채용공고, 지원서 총 4개의 모델),
DB 모델링이나 API 구현에 있어서 상세한 요구사항이 제시되지는 않았다.
따라서 과제를 진행하며 실제 채용 시스템의 프로세스를 이해하고 구현하는데 여러 아쉬움이 남았다.

목표와 이유: 왜 원티드 채용 플랫폼을 분석해보는가?


아쉬움을 해결하고자 실제 원티드 채용 플랫폼을 상세하게 분석하면서
채용에 필요한 모델(엔티티)과 모델에 필요한 데이터들이 무엇이 있을지 구상한 뒤 데이터베이스 모델링을 해보고자 한다.
테이블 개수도 많고 필요한 데이터들도 많기 때문에 실제로 API 개발을 해볼지는 모르겠지만,
개발 전 꼼꼼한 사전 분석을 통해 완성도 있는 데이터베이스를 설계해보는 것이 목표이다.


마침 최근 창업 동아리에서 "오세유"의 사업 계획서 초안을 만들어야 하는 중에,
비즈니스 모델을 더 구체화하고 명확하게 정립하기 위해 온디맨드 시스템이 무엇인지, 온디맨드 서비스의 최근 동향과 트렌드, 수익 모델 등을 조사를 해보았다.
원티드의 채용 플랫폼은 일반적인 채용 플랫폼과는 다르게 매우 특이한 점을 지닌다.
기업은 원티드 플랫폼을 통해 지원자를 채용하게 되는 경우, 합격자의 연봉 7%에 해당하는 수수료를 원티드데 제공해야 한다. 그리고 원티드 측에서는 구직자가 해당 기업에서 3개월 근무를 하게 되는 시점에 지원자와 추천인 모두에게 채용 보상금(50만원 이상) 제공한다는 점이 차별화되는 지점이라 생각했다.

 


채용이 성사되면, 합격자 연봉의 7%를 제공받는다고 하지만, 매번 구직자와 추천인 모두에게 보상금을 준다는 점이 조금은 의아하기도 했다. (보상금으로 빠져나가는 비용이 생각보다 상당하지 않은가?)
그럼에도 원티드 플랫폼의 입장에서는 채용 보상금이라는 아이템을 통해 다양한 유저들(구직자 플러스 추천인)을 유입시키고,
이를 통해 유저와 기업에 대한 방대한 live, instant and static한 데이터 확보, 그리고 이를 활용한 data-driven analysis 기반 다양한 인사이트 추출할 수 있다는 점,
그리고 기업의 입장에서는 맞춤형 인재를 채용하고, 유저의 입장에서는 구직과 채용 정보 및 커리어 증진을 위한 이벤트 획득할 수 있다는 이점은 확실하게 작용할 것 같다고 생각했다.

비즈니스 모델에 대해서도 고려하며 많은 것들을 생각하다보니 서론이 너무 길어지고 장황해졌다...!
이제 ! DB 모델링을 위해 필요한 데이터들이 무엇이 있을지, 플랫폼의 각 도메인 영역을 분석해보자.



 

분석 시작!

 

회사 모델


우선 회사 모델을 살펴보자.
회사에 대한 가장 간단한 View는 다음과 같디.
회사 아이콘 이미지, 회사 이름("원티드랩"), 그리고 회사의 카테고리("IT", "컨텐츠")가 나타난다.


다음으로 회사를 설명하는 상세 페이지로 넘어가보자.
여러 파트로 나누어져 있는데 현재 페이지 상에서 보이는 정보들은 다음과 같다.
크게 [채용중인 포지션] 에는 채용 공고 리스트들이,
[회사 소개] 에는 회사의 이미지들과 간단한 소개글의 일부가,
[평균 연봉] 에는 신규 입사자와 전체 평균 연봉 정보가,
[직원수] 에는 전체 직원 수 인원과 함께 월별 입사자수와 퇴사자 수 정보와 함께 월별 추이 그래프가,
[이 회사의 뉴스] 에는 회사와 관련된 여러 뉴스 링크들이,
[태그] 에는 '#' 와 함께 회사를 나타낼 수 있는 짧은 문구의 여러 해시 태그들이 나타나 있다.

 

 

채용 공고 모델



다음으로 채용 공고 페이지로 넘어가 회사 모델과 채용 공고 모델에 필요한 데이터를 살펴보자.
원티드랩의 여러 채용 공고 리스트들 중 "서버 개발자 파이썬(Python)[HR솔루션팀]" 이라는 제목의 공고의 페이지를 살펴보았다.
자세히 살펴보자.

[제목] 에는 공고의 제목이,
[회사 정보] 에는 회사 이름("원티드랩")과 응답률("응답률 매우 높음"), 근무 지역과 국가("서울 한국"),
[태그] 에는 회사 소개 페이지에 있던 태그들과 동일한 태그들이,
[채용 상세설명] 에는 해당 채용 공고에 대한 설명글이,
[마감일] 에는 회사에서 지정한 "상시" 문구가,
[근무지역] 에는 회사의 주소와 함께 지도에 표시된 마커 이미지가,
[회사 프로필] 부분에는 기본적인 회사 프로필 정보가,
그리고 [채용지원] 내비게이션에는 추천인과 지원자에게 제공되는 채용 보상금 정보와 북마크 여부, 지원하기, 그리고 하트(공감)가 눌려진 수와 사람들의 프로필 사진이 나타나 있다.



여기서 "응답률 매우 높음" 부분이 어떠한 스크립트로 작성되어 있는지 궁금하여 확인해보았는데,
마우스로 해당 부분을 클릭해보니 지원 후 응답받을 확률이 적혀있는 작은 모달 창이 나타났다.
html, css 요소를 통해 div 요소의 border의 색상까지 지정되어 있는 걸 보니, 데이터로는 응답률에 대한 code들을 따로 만들어 응답 확률에 따른 code를 매칭하면 되지 않을까 하는 생각이 들었다.
(응답 확률이 어떠한 값을 넘어서면 응답률 매우 높음으로 설정해두는 방식을 사용하지 않았을까 싶다.)


태그 부분도 마찬가지로 궁금하여 요소들을 확인해보았다.
각 태그 이름은 역시나 "#태그이름" 의 형식으로 데이터를 전달된 것 같고, 동시에 태그에 대한 링크 정보와 함께 a태그로 감싸져 있었다.
태그를 눌러 결과로 받은 페이지의 경로를 보니, wanted.co.kr/tag_search?tag=인원급성장 과 같이 일반적인 쿼리 파라미터 전달로 인한 검색 방식이 사용되는 것을 확인할 수 있었다.



추천 태그 쪽을 살펴보니, 다음과 같이 각 태그가 속한 상위 카테고리가 있는 것 또한 확인했다.



 


유저 모델


이제 유저 모델을 살펴보자.
우선 기본 정보로는, 프로필 이미지, 이름, 이메일, 전화번호, 관심 태그가 있다.
커리어를 위한 태그의 카테고리로는 <직장인 공감> , <관심분야>, <트렌드/인사이트> 가 있었다.
이외에 지원현항, 제안받기 현황, 좋아요, 북마크, 추천, 포인트 등의 정보도 포함하고 있다.
지원 현황으로는 지원 완료, 이력서 열람, 최종 합격, 불합격 이라는 상태가 존재한다.
나의 현 지위 또한, 신입인지 경력인지 등 여러 상태로 나뉠 수 있는 듯 하다.

 

유저가 직접 선택하는 관심 태그는 회사 소개나 채용 공고에 사용되는 태그와는 다른 형태를 띄고 있어서 어디에 사용되는 태그일지 궁금했다.
찾아보니 아래와 같이 [이벤트] 부분에서 제공하는 많은 컨텐츠들에 대한 태그였다. 구직자에게 제공하는 커리어와 관련된 다양한 멘토링 프로그램, 강의와 행사 컨텐츠들의 상위 카테고리 태그들인 것이다.

회사/채용 정보에 사용되는 태그와는 다른 종류의 태그이기 때문에 태그 카테고리도 따로 식별하는 테이블을 두어야 될 것 같다고 생각했다.

 




이력서 모델

 

다음으로 유저, 그리고 채용 공고와 많은 연관 관계를 맺는 이력서 부분을 살펴보자.

유저는 여러 이력서를 작성할 수 있는데, 기본 이력서를 한 개 설정할 수 있다.

 

각 이력서는 다음과 같은 정보드를 담고 있다.

이름, 이메일, 전화번호,
간단 소개글,
경력(시작 연/월, 끝 연/월, 현재 재직중 여부, 회사명, 부서명/직책, 주요 성과(주요 성과, 시작 연/월, 끝 연/월, 상세 업무 내용) 리스트) 리스트,
학력(입학 연/월, 졸업 연/월, 현재 재학중 여부, 학교명, 전공 및 학위, 이수 과목 또는 연구내용) 리스트,
스킬 (검색으로 미리 지정되어 있는 스킬 리스트들 중 선택 및 추가가능) 리스트,
수상 및 기타 (연/월, 활동명, 세부사항) 리스트,
외국어 (언어 선택, 수준 선택, 어학 시험(시험명, 점수/급, 연/월/일) 리스트,
링크 리스트


지원서 모델


이제 마지막으로 지원서 부분을 살펴보자.
채용 공고 페이지에서 우측 내비게이션 바에 위치한 지원하기 버튼을 누르면 다음과 같은 지원하기 탭이 나타난다.

지원서에 담게 되는 데이터들은 다음과 같다.


이름 (수정 가능),
이메일,
휴대폰 번호 (수정 가능),
추천인 (추천 메뉴에서 등록한 지인들 중 한 명선택),
첨부파일 (작성한 이력서들 중 한 개 선택),
파일

 


 

고려해야 할 점들

 

채용 공고는 누가 작성하는가 ?!


지원자(구직자)의 입장에서, 즉 구직자 화면에서 바라본 전체적인 채용 프로세스에 대한 기초 분석은 끝이 났다.
모델(엔티티)는 크게 회사, 유저, 채용공고, 지원서로 나눌 수 있다.

그렇지만! 여기서 끝이 아니다. 고려해야 할 점은 이전에 사전 과제를 하면서 고민했던 부분과 동일하다.
회사라는 모델은 인증과 인가를 필요로 하는 Auth 기능에 관여하는 모델이 아니라는 점이다. 회사는 어떠한 정보를 나타내는 객체들일 뿐이지, 지원자/구직자(applicant)나 구인자/채용담당자(recruiter)와 같은 역할을 하는 유저모델은 아니라는 뜻이다.

그래서 원티드의 기업 서비스 영역을 좀 더 분석해보기로 했다.
먼저 기업 서비스를 사용하려면, 채용 담당자 인증 절차를 거쳐야 한다.
기존 서비스를 이용하던, 즉 현재 로그인된 계정, 혹은 다른 계정으로 서비스 접속이 먼저 필요하다.
이 때 계정 정보는 유저 메타 정보로 설정되어 있는 것 같다. (처음 원티드에 회원가입 할 때 카카오톡 소셜 로그인으로 회원가입을 했었고, 가입할 당시 지정되어 있던 카카오 프로필로 설정되어있는 것을 통해 확인..!)


 

기업이 채용 공고를 등록하게 되는 프로세스는?


먼저 기업 서비스 가입을 해야 한다. 별다른 절차 없이 채용담당자 로그인 또는 가입을 한 후,
기업 승인이 완료되면 채용관리시스템(ATS)를 이용할 수 있게 된다.
채용 공고를 게시하거나 원티드 플랫폼에서 채용 절차 기능 등을 이용하기 위해서는 계약서 작성이 필요한 듯 하다.
기업이 맞는지, 여러 정보들을 바탕으로 기업을 등록하고 채용 담당자 정보를 승인하는 절차인 것으로 보인다.
그리고 채용 공고 등록은, 계약 작성 이전에도 가능하지만 지원자를 플랫폼을 통해 받는 것은 불가능하다.
우선 게시를 위해서는 승인 요청 과정을 거쳐야 되며, 24시간 내에 승인 처리 된다고 한다.
(해당 기업의 채용 담당자가 맞는지, 채용 공고 글이 적절한지 등을 가볍게 심사하는 과정이지 않을까 싶다.)

 




ATS란?

ATS(Application Tracking System, 지원자 추적 시스템)이란, 조직의 채용 및 고용 관련 태스크를 디지털로 관리하도록 지원하는 인사 관리(HR) 소프트웨어 애플리케이션이다.
자체적인 시스템 내에서 채용을 하지 않는 기업의 경우 ATS를 통해 채용 공고의 전반적인 프로세스의 업무들을 관리하게 된다.
즉 ATS를 통해 기업은 직무 설명을 작성하고, 채용 공고를 게시하고, 이력서를 살펴보고, 면접 일정을 계획하고, 피드백을 수집하고, 배경 정보를 확인하고, 전자 서명을 활용해 직무 제의서를 생성하고, 지원자들을 분석하는는 등의 채용 프로세스의 각 태스크를 효율적으로 처리하게 되는 것이다.
마찬가지로 지원자에게도 채용 정보 검색, 온라인 지원, 지원 상태 확인, 지원자 알림 생성 등 지원과 구직을 위한 서비스도 제공하는 시스템이다.

결국 한마디로 요약해보자면, ATS는 채용 및 지원자 정보의 통합 데이터베이스로, 여기서 채용 요청, 공고, 지원을 관리하고 지원자를 심사, 선정할 수 있도록 하는 시스템이며, 원티드는 ATS 플랫폼 중 하나인 것이다.
.

HAYS, Microsoft 사에서 사용하는 ATS ( Manatal )

 

 

원티드의 ATS는?

원티드랩은 HR테크(Human Resource, 인사 관리 기술) 기업으로, 원티드라는 채용 플랫폼 외에도 프리랜서 매칭 및 커리어 코칭 관리 서비스인 원티드 긱스, 클라우드 기반 맞춤형 HR 솔루션인 원티드 스페이스 또한 제공하고 있다.
즉 많은 HR 기술들 중 하나가 ATS이며, 내가 본 원티드 사이트의 화면 대부분은 지원자 경험 기반 화면이며 ATS의 일부였다고 볼 수 있다.

원티드의 ATS인 원티드 자체 채용관리솔루션에 대해 설명하고 있는 기술 글을 통해 ATS로의 확장을 가능하게 하는 원티드 플랫폼의 데이터베이스 설계를 위한 인사이트를 얻어보고자 했다.

 

원티드의 ATS 시스템을 다 볼 순 없지만, 솔루션 설명 부분에 언뜻 보이는 사진들을 참고하여 분석해보자면 다음과 같다.
채용 담당자가 할 수 있는 기능들을 list up해보자면,

1) 포지션 관리를 할 수 있다.
2) 매치업 완료된 지원자들을 관리할 수 있다.
2) 포지션별 지원자 정보를 확인할 수 있다. (지원서들, 지원자 이력서)
- 지원자에 대한 서류 검토를 통해 적합/보통/부적합을 선택할 수 있으며 의견안을 작성할 수 있다.
3) 지원접수, 서류검토, 1차면접, 2차면접, 최종확정을 비롯한 각 채용 단계 , 채용 전형을 커스텀할 수 있다.
4) 각 채용 단계별 지원자를 한 눈에 볼 수 있다.
5) 동료(채용 담당자)들이 남긴 지원자 평가를 확인할 수 있다.
- 각 지원자에게는 부여된 인증 뱃지(높은 합격율을 비롯한 여러 기준을 바탕으로), 지원 경로(원티드 직접 지원, 채용 포털, 지인 추천 등), 지원서 접수 날짜 등의 정보가 담겨 있다.
6) 지원자에 대한 평가를 작성하고, 수정 및 삭제할 수 있다.
7) 지원자에게 결과를 보낼 수 있다.
- 결과 템플릿 양식을 직접 커스텀할 수 있다. (합격 기본 메세지, 탈락 기본 메세지, 양식 작성 등) 자동 입력 선택을 통해 지원자이름, 지원결과, 포지션명 등을 직접 작성하지 않아도 된다.
8) 채용 담당자는 원티드에 등록된 인재 데이터를 열람하고 면접 제안 요청을 할 수 있다.

 


 

ATS 서비스를 볼 순 없을까? 하여, 회사 등록 절차를 한 번 거쳐보고 싶었다!
다음과 계정 선택 후 이용 약관에 동의를 하고, 직책 또는 팀을 입력하고 나면,
회사 정보들을 입력할 수 있다. 그런데 정확히 이 과정이 채용 담당자를 새로 해당 회사의 채용 담당자로 등록하는 절차인지, 아니면 단순히 회사 정보를 등록하는 과정인지, 맞다면 채용 담당자 여부를 어떻게 승인받고 확인하는 것인지는 모르겠다. 채용 담당자가 아니기 때문에 회사 정보는 등록할 수 없고 이후의 시스템 프로세스는 알 방법이 없다.. ㅎㅎ

 

 

다음과 같이 회사 정보를 등록하게 된다.

 

 

이 때 회사 이름을 검색하여 등록할 수 있는데, 검색 시 우측에 번호와 함께 기업 이름이 자동적으로 뜨게 된다.
이를 클릭하게 되면 회사 정보가 자동적으로 나머지 입력칸에 채워진다.
새로운 회사를 등록하는 경우에는 직접 일일히 입력을 하는 방식이다.

 


"회사 정보 등록"이 정확히 무엇을 뜻하는지는 모르겠다.
원티드 플랫폼에서 기업 채용 담당자 혹은 관리자로 등록하고 회사를 등록하는 전체적인 프로세스를 알지 못하기 때문..!
다음 단계로 이어나갈 수는 없어서 아쉽다..!

그래도 위의 정보들을 통해 알게 된 점은 기업 등록 및 채용 공고 게시 프로세스이다. 프로세스를 정리해보자면 다음과 같다.

1) 일반적인 로그인과 같이, 원티드 계정 로그인 후
2) 원티드 플랫폼에 기업 정보 입력 및 승인 요청
3) 원티드 측에서 기업 승인을 완료하게 되면,
4) 원티드 채용 관리 시스템(ATS)를 이용할 수 있게 된다.
5) 원티드에 채용 공고 게시를 포함한 ATS를 이용하기 위해서는, 계약서 작성을 해야 한다. 이 때 계약은 원티드를 통해 채용 성사된 경우 구직자의 연봉 7% 수수료에 대한 계약이다. (단순 게시인 경우, 계약서 작성이 필수적이진 않음)
6) 채용 공고 입력을 하고, 승인 요청을 하면
7) 원티드 측에서 24시간 내에 승인 요청 처리를 하고, 실제 웹사이트에 채용 공고가 게시됨

 



그러면 ATS 시스템은 어떤 프로세스를 거치는가..?

 

ATS 시스템에 대해서는 원티드 웹사이트에서 일반 유저에게 보여주는 화면만과 ATS 시스템 설명글만으로는 내가 알 방법이 없다...ㅎㅎ
승인 요청을 하는 실제 원티드 관리자는 또 다른 경로를 통해 채용 담당자와 기업들을 관리하지 않을까..?
(아마 원티드 플랫폼을 사용하기 위해, 회사에서는 각 채용 담당자에게 제공하는 암호키가 있으며, 이를 바탕으로 ATS에서 채용 담당자 승인을 진행하지 않을까 싶다.)


그래서 결론적으로, ATS와 관련해서 내가 알 수 있는 부분은,
- 기업 등록 또한 ATS에서 승인 요청을 해야 하며,
- 채용자 또한 ATS에서 승인 요청을 해야 한다는 점.
- ATS에서 채용 담당자들은 지원자들에 대해 관리를 한다는 점.
- ATS를 통해 인재 추천을 받고 조회해볼 수 있다는 점.


결론과 향후 계획과 설계 방향


채용 플랫폼을 구현하기 위해 DB모델링 설계를 할 때, ATS에 대한 부분은 어떻게 설계해야 할지에 대한 고민이 많이 생긴 것 같다.
ATS에서 제공하는, 기업을 위한 AI매칭 시스템 등을 구현하기 위해서는 유저 데이터를 모으고, 가공하고, 관리하고, 분석하고, 인사이트를 추출하는 Data Engineering 과정이 필수 불가결할 것이다.
전 과정에 효율적으로 이용될 수 있도록 무결하고, 일관되며, 더 방대한 데이터를 모으고 관리할 수 있도록 확장 가능한 데이터베이스 설계가 필요하지 않을까 싶다.
이제 기초적인 분석은 마쳤다.원티드 사이트 분석과 ATS시스템 맛보기(?)를 해보았으니 조만간 원티드 채용 플랫폼의 데이터베이스 설계를 잘 설계해봐야 겠다.


[참고자료]
https://www.wanted.co.kr/company/79
https://wantedspace.ai/
https://www.wanted.co.kr/events/wanted_ats
https://www.sap.com/korea/insights/what-is-an-applicant-tracking-system.html
https://platum.kr/archives/180886

728x90
반응형
Comments