인딥에이아이
경력근거: 고객의 업무 프로세스와 시스템 환경을 분석하고 AI 적용 기회 발굴
※ 실제 산출물이 아닌 AI 예측 시안입니다.
인딥에이아이는 지원서 접수(ATS), AI 서류 평가, 서류·면접 전형 관리, AI 면접을 묶은 채용 솔루션 Findeet 를 만들어요. 공공기관의 대규모 공채가 주된 고객이고, 금융권과 대기업으로 고객을 넓히고 있어요.
공고는 회사를 'AI와 데이터 기반의 채용 솔루션을 통해 지원자와 평가자 모두에게 더 공정하고, 빠르고, 편리한 채용 경험을 제공하고 있습니다'라고 소개하고, FDE 가 할 일로 '고객의 업무 프로세스와 시스템 환경을 분석하고 AI 적용 기회 발굴'을 꼽아요. 공공기관 면접에서는 내부위원과 외부위원 여러 명이 한 지원자를 따로 채점하고, 면접관은 이해관계가 있는 지원자를 회피 신고해야 해요. 하루에도 여러 면접실에서 점수와 신고가 따로 들어오기 때문에, 빠진 점수나 회피 신고와 겹친 점수를 사람이 맞춰 보다 보면 놓치기 쉬워요.
공고는 FDE 가 할 일로 고객의 업무 프로세스와 시스템 환경을 분석해 AI 적용 기회를 찾고, 반복적이고 비효율적인 업무를 개선할 기술적 해결 방안을 설계하는 일을 꼽아요.
공고는 회사를 AI와 데이터 기반의 채용 솔루션으로 지원자와 평가자 모두에게 더 공정하고 빠른 채용 경험을 제공하는 곳으로 소개해요. 고객은 공공기관부터 대기업까지라고 적었어요.
공고는 FDE 가 속한 AX사업부가 하는 일로 사내 AX 전환, KB 기반 AX 플랫폼 개발, 채용 관련 데이터레이크 구축과 운영을 꼽아요.
공공기관 채용 담당자가 면접 회차의 점수 제출 마감 때 여는 관리자 페이지예요. 그 회차 지원자마다 배정된 면접관의 점수가 모두 들어왔는지, 면접관 사이에 점수가 크게 갈리지 않았는지, 회피를 신고한 면접관이 그 지원자를 채점하지 않았는지 알려 주고, 지원자를 고르면 면접관별 점수와 그 회차의 회피 신고를 보여 줘요. 받은 데이터를 담을 DB 설계와 기술·구조, 그리고 점수 차이를 크다고 볼 기준은 이 포트폴리오를 만드는 지원자가 정해요.
공공기관 인사팀의 채용 담당자예요. 면접 회차가 끝나면 면접관 네다섯 명이 지원자마다 따로 낸 점수를 모아 확정하는데, 빠진 점수나 크게 갈린 점수, 회피를 신고한 면접관이 매긴 점수를 놓친 채 확정하면 합격자를 발표한 뒤에 평가를 다시 해야 할 수 있어요.
면접실 하나에서 오전이나 오후 동안 열린 면접 회차예요. 한 행이 회차 하나이고 session_id 가 키예요. recruitment 는 어느 공채의 면접인지, stage_no 는 1차 면접(1)인지 2차 면접(2)인지, room 은 면접실이에요. starts_at 은 일정표에 잡힌 회차 첫 면접 시작 시각이고, score_due_at 은 채용 담당자가 정해 둔 이 회차의 점수 제출 마감 시각이에요. 담당자는 이 마감 때 회차 점수를 모아 보고, 이 기능도 score_due_at 을 '지금'으로 삼아요. 두 시각은 한국 시간(+09:00)이고, interview_scores.scored_at·conflict_declarations.declared_at 과 같은 시간 기준이에요. 큰 데이터는 2024년 상반기부터 2026년 하반기까지 신입 공채 여섯 번의 면접 회차 1,454개 전부이고(2026년 하반기는 10월 19일까지 열린 1차 면접만), 시작용은 그중 2026년 10월 19일 오전 3면접실 회차 하나를 같은 ID·같은 값으로 잘라 낸 것이에요.
전체 1행 가운데 앞 1행이에요.
| session_id | recruitment | stage_no | room | starts_at | score_due_at |
|---|---|---|---|---|---|
| IS-26H2-1-051 | 2026 하반기 신입 공채 | 1 | 3면접실 | 2026-10-19T09:00:00+09:00 | 2026-10-19T12:40:00+09:00 |
1행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 1,454행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "면접 회차 하나. 키는 session_id.",
"additionalProperties": false,
"required": [
"session_id",
"recruitment",
"stage_no",
"room",
"starts_at",
"score_due_at"
],
"properties": {
"session_id": {
"type": "string",
"pattern": "^IS-[0-9]{2}H[12]-[12]-[0-9]{3}$",
"description": "회차 번호(IS-공채-단계-순번). 이 표의 키예요."
},
"recruitment": {
"type": "string",
"enum": [
"2024 상반기 신입 공채",
"2024 하반기 신입 공채",
"2025 상반기 신입 공채",
"2025 하반기 신입 공채",
"2026 상반기 신입 공채",
"2026 하반기 신입 공채"
],
"description": "이 회차가 속한 공채 이름."
},
"stage_no": {
"type": "integer",
"enum": [
1,
2
],
"description": "면접 단계. 1 은 1차 면접, 2 는 2차 면접이에요."
},
"room": {
"type": "string",
"pattern": "^[0-9]{1,2}면접실$",
"description": "회차가 열린 면접실."
},
"starts_at": {
"type": "string",
"format": "date-time",
"description": "일정표에 잡힌 회차 첫 면접 시작 시각. 한국 시간(+09:00) ISO 8601, 초 단위."
},
"score_due_at": {
"type": "string",
"format": "date-time",
"description": "채용 담당자가 정해 둔 이 회차의 점수 제출 마감 시각. 한국 시간(+09:00) ISO 8601, 초 단위. 담당자가 이 시각에 회차 점수를 모아 보고, 이 기능이 '지금'으로 삼는 시각이에요. interview_scores.scored_at·conflict_declarations.declared_at 과 같은 시간 기준이에요."
}
}
}면접관 명단이에요. 한 행이 면접관 한 명이고 interviewer_id 가 키예요. member_type 은 기관 직원인 내부위원(internal)과 기관 밖에서 위촉한 외부위원(external) 가운데 하나예요. 같은 사람은 여러 공채·여러 회차에 같은 interviewer_id 로 나와요. 성이 같은 다른 면접관도 있어요. 큰 데이터는 여섯 번의 공채에서 배정되거나 회피를 신고한 면접관 199명 전부이고, 시작용은 시작용 회차의 면접관 4명과, 그 회차 지원자를 두고 회피를 신고한 다른 면접실 면접관 1명이에요.
전체 5행 가운데 앞 5행이에요.
| interviewer_id | name | member_type |
|---|---|---|
| IV-005 | 안도혁 | internal |
| IV-051 | 안예슬 | internal |
| IV-094 | 홍세원 | external |
| IV-186 | 민윤연 | external |
| IV-199 | 차채빈 | internal |
5행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 199행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "면접관 한 명. 키는 interviewer_id.",
"additionalProperties": false,
"required": [
"interviewer_id",
"name",
"member_type"
],
"properties": {
"interviewer_id": {
"type": "string",
"pattern": "^IV-[0-9]{3}$",
"description": "면접관 번호. 이 표의 키예요."
},
"name": {
"type": "string",
"description": "면접관 이름. 같은 이름의 다른 면접관은 없어요."
},
"member_type": {
"type": "string",
"enum": [
"internal",
"external"
],
"description": "internal 은 기관 직원인 내부위원, external 은 기관 밖에서 위촉한 외부위원이에요."
}
}
}회차마다 어느 지원자를 어느 면접관이 채점하도록 배정했는지예요. 한 행이 배정 한 건이고 session_id·applicant_id·interviewer_id 묶음이 키예요. session_id 는 interview_sessions.session_id 를, interviewer_id 는 interviewers.interviewer_id 를 가리켜요. applicant_id 는 공채마다 붙는 수험번호이고, 1차와 2차 면접에 같은 수험번호로 나와요. 지원자는 한 단계에서 한 회차에만 나오고, 그 회차 면접실의 면접관(1차 4명, 2차 5명)에게 배정돼요. 배정은 회차 전에 정해져 회차 동안 바뀌지 않아요. 회피를 신고한 면접관에게 배정되지 않아 배정이 한 명 적은 지원자와, 회피를 신고했는데도 그 면접관 배정이 남은 지원자가 들어 있어요. 큰 데이터는 배정 57,995건 전부이고, 시작용은 시작용 회차의 배정 39건 전부예요.
전체 39행 가운데 앞 5행이에요.
| session_id | applicant_id | interviewer_id |
|---|---|---|
| IS-26H2-1-051 | 26H2-0307 | IV-005 |
| IS-26H2-1-051 | 26H2-0307 | IV-094 |
| IS-26H2-1-051 | 26H2-0307 | IV-186 |
| IS-26H2-1-051 | 26H2-0307 | IV-199 |
| IS-26H2-1-051 | 26H2-0321 | IV-005 |
39행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 57,995행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "배정 한 건. 키는 (session_id, applicant_id, interviewer_id) 묶음.",
"additionalProperties": false,
"required": [
"session_id",
"applicant_id",
"interviewer_id"
],
"properties": {
"session_id": {
"type": "string",
"pattern": "^IS-[0-9]{2}H[12]-[12]-[0-9]{3}$",
"description": "배정된 회차. interview_sessions.session_id 를 가리켜요."
},
"applicant_id": {
"type": "string",
"pattern": "^[0-9]{2}H[12]-[0-9]{4}$",
"description": "지원자 수험번호(공채 코드-번호). 공채마다 새로 붙고, 1차와 2차 면접에 같은 번호로 나와요."
},
"interviewer_id": {
"type": "string",
"pattern": "^IV-[0-9]{3}$",
"description": "이 지원자를 채점하도록 배정된 면접관. interviewers.interviewer_id 를 가리켜요."
}
}
}면접관이 배정된 지원자에게 매겨 낸 점수예요. 한 행이 점수 한 건이고 session_id·applicant_id·interviewer_id 묶음이 키이면서, 같은 묶음으로 interview_assignments 의 배정 한 건을 가리켜요. 배정 한 건에 점수는 많아야 하나이고, 낸 점수를 고친 기록은 없어요. score 는 면접관이 한 숫자로 낸 100점 만점의 정수이고, scored_at 은 서버가 그 점수를 받은 시각(한국 시간, +09:00)이에요. 점수가 들어오지 않은 배정, 회차 점수 제출 마감 몇 분 전이나 몇 분 뒤에 들어온 점수, 마감이 지나고 한참 뒤에 들어온 점수, 면접관 사이에 점수가 조금·중간쯤·크게 갈린 지원자가 들어 있어요. 큰 데이터는 점수 57,895건 전부이고, 시작용은 시작용 회차의 점수 38건 전부예요.
전체 38행 가운데 앞 5행이에요.
| session_id | applicant_id | interviewer_id | score | scored_at |
|---|---|---|---|---|
| IS-26H2-1-051 | 26H2-0307 | IV-005 | 82 | 2026-10-19T09:21:40+09:00 |
| IS-26H2-1-051 | 26H2-0307 | IV-094 | 84 | 2026-10-19T09:23:02+09:00 |
| IS-26H2-1-051 | 26H2-0307 | IV-186 | 77 | 2026-10-19T09:24:30+09:00 |
| IS-26H2-1-051 | 26H2-0307 | IV-199 | 79 | 2026-10-19T09:22:15+09:00 |
| IS-26H2-1-051 | 26H2-0321 | IV-005 | 72 | 2026-10-19T09:41:12+09:00 |
38행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 57,895행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "점수 한 건. 키는 (session_id, applicant_id, interviewer_id) 묶음이고, 같은 묶음으로 interview_assignments 의 배정 한 건을 가리켜요.",
"additionalProperties": false,
"required": [
"session_id",
"applicant_id",
"interviewer_id",
"score",
"scored_at"
],
"properties": {
"session_id": {
"type": "string",
"pattern": "^IS-[0-9]{2}H[12]-[12]-[0-9]{3}$",
"description": "점수를 낸 회차. (session_id, applicant_id, interviewer_id) 묶음으로 interview_assignments 를 가리켜요."
},
"applicant_id": {
"type": "string",
"pattern": "^[0-9]{2}H[12]-[0-9]{4}$",
"description": "점수를 받은 지원자의 수험번호."
},
"interviewer_id": {
"type": "string",
"pattern": "^IV-[0-9]{3}$",
"description": "점수를 낸 면접관."
},
"score": {
"type": "integer",
"minimum": 0,
"maximum": 100,
"description": "면접관이 이 지원자에게 한 숫자로 매긴 점수. 100점 만점의 정수예요."
},
"scored_at": {
"type": "string",
"format": "date-time",
"description": "서버가 이 점수를 받은 시각. 한국 시간(+09:00) ISO 8601, 초 단위. interview_sessions.score_due_at 과 같은 시간 기준이에요."
}
}
}면접관이 지원자 명단을 받고 이해관계가 있는 지원자를 신고한 기록이에요. 한 행이 신고 한 건이고 declaration_id 가 키예요. interviewer_id 는 interviewers.interviewer_id 를 가리키고, applicant_id 는 interview_assignments.applicant_id 와 같은 체계의 수험번호예요. 신고는 회차가 아니라 면접관과 지원자 한 쌍에 대한 것이고, 같은 쌍은 한 번만 나와요. relation 은 신고한 관계이고, declared_at 은 서버가 신고를 받은 시각(한국 시간, +09:00)이에요. 면접 며칠 전에 낸 신고, 면접 당일 그 지원자 면접 직전에 낸 신고, 회차 점수 제출 마감이 지나서 낸 신고, 다른 면접실 지원자를 두고 낸 신고가 들어 있어요. 큰 데이터는 신고 154건 전부이고, 시작용은 시작용 회차 지원자를 두고 낸 신고와 그 회차 면접관이 이번 공채에서 낸 신고를 모은 6건이에요. 그 회차 면접관이 다른 회차 지원자를 두고 낸 신고는 그 지원자의 배정이 큰 데이터에만 있어요.
전체 6행 가운데 앞 5행이에요.
| declaration_id | interviewer_id | applicant_id | relation | declared_at |
|---|---|---|---|---|
| CD-0138 | IV-186 | 26H2-1507 | acquaintance | 2026-10-13T10:20:51+09:00 |
| CD-0141 | IV-005 | 26H2-2217 | family | 2026-10-14T15:48:09+09:00 |
| CD-0145 | IV-094 | 26H2-0321 | teacher_student | 2026-10-16T11:05:22+09:00 |
| CD-0151 | IV-051 | 26H2-0307 | acquaintance | 2026-10-16T17:12:40+09:00 |
| CD-0152 | IV-199 | 26H2-2660 | acquaintance | 2026-10-19T10:31:27+09:00 |
6행 전부를 JSON 파일 하나로 받을 수 있어요.
같은 형식으로 만든 154행이에요. 위 데이터가 이 안에 그대로 들어 있어요(한 줄에 한 행, gzip 압축).
미리보기와 내려받는 데이터 모두 이 형식(JSON Schema)을 따라요.
{
"type": "object",
"description": "회피 신고 한 건. 키는 declaration_id.",
"additionalProperties": false,
"required": [
"declaration_id",
"interviewer_id",
"applicant_id",
"relation",
"declared_at"
],
"properties": {
"declaration_id": {
"type": "string",
"pattern": "^CD-[0-9]{4}$",
"description": "신고 번호. 이 표의 키예요."
},
"interviewer_id": {
"type": "string",
"pattern": "^IV-[0-9]{3}$",
"description": "신고한 면접관. interviewers.interviewer_id 를 가리켜요."
},
"applicant_id": {
"type": "string",
"pattern": "^[0-9]{2}H[12]-[0-9]{4}$",
"description": "신고 대상 지원자의 수험번호. interview_assignments.applicant_id 와 같은 체계의 번호예요."
},
"relation": {
"type": "string",
"enum": [
"family",
"acquaintance",
"teacher_student",
"coworker"
],
"description": "신고한 관계. family 는 친족, acquaintance 는 지인, teacher_student 는 사제 관계, coworker 는 같은 직장 근무예요."
},
"declared_at": {
"type": "string",
"format": "date-time",
"description": "서버가 신고를 받은 시각. 한국 시간(+09:00) ISO 8601, 초 단위. interview_scores.scored_at 과 같은 시간 기준이에요."
}
}
}