WORKS / PORTFOLIO
AI SOFTWARE

청년-지역 일경험 매칭 플랫폼 구축

지역 일경험 공고 등록부터 청년 지원, 심사 평가, 선발 확정까지를 끊기지 않는 하나의 흐름으로 설계하고, 참여 이야기로 다음 지원자를 연결하는 청년-지역 매칭 플랫폼

청년-지역 일경험 매칭 플랫폼 구축

RESULT

공고 등록, 지원, 심사, 선발 확정을 끊기지 않는 단일 흐름으로 설계
프로그램과 공고 2단계 구조, 공고 단위 게시 상태 제어 설계
프로필 자동 연동, 중복 지원 차단, 관리자 승인 게이트 규칙 정의
청년 화면과 관리자 화면이 같은 심사 데이터를 읽는 구조로 별도 통보 절차 제거

TECH STACK

Next.jsReactTypeScriptTailwind CSSDrizzle ORM

CHALLENGE

클라이언트가 필요로 한 이유

클라이언트는 지역 일경험 프로그램의 공고, 지원서, 심사 결과를 게시판과 메일, 엑셀로 나누어 관리하고 있었습니다. 청년은 같은 정보를 반복 입력했고, 운영자는 지원 현황과 선발 결과를 다시 취합해야 했습니다.

필요했던 것은 공고 게시 화면만 만드는 일이 아니라 지원부터 심사, 선발까지 하나의 상태 규칙으로 연결하는 플랫폼이었습니다. 청년과 운영자가 서로 다른 파일을 보는 대신 같은 지원 데이터를 각 역할에 맞게 확인해야 했습니다.

지역 일경험 프로그램을 운영하는 고객사는 공고를 올리고, 지원서를 받고, 심사해 선발하는 과정을 게시판과 메일, 엑셀로 나누어 처리하고 있었습니다. 청년은 지역별 공고를 한곳에서 비교하기 어렵고, 지원할 때마다 같은 정보를 다시 적어야 하며, 심사 결과를 따로 확인할 방법이 없었습니다. 운영 기관 역시 지원자 정보가 흩어져 있어 선발률이나 조회수 같은 기본 지표를 집계하기 어려웠습니다.

공고 등록, 지원 접수, 심사, 합격 통보가 서로 다른 채널에서 이루어져 지원자와 운영자 모두 진행 상태를 확인하기 어려운 구조

분산 운영의 핵심 문제

문제영향
지원 경험 단절공고 확인, 지원서 작성, 결과 확인이 각각 다른 채널이라 중도 이탈이 발생
중복·누락 지원같은 공고에 여러 번 지원하거나 첨부가 빠진 지원서가 접수됨
심사 기록 부재점수와 코멘트가 개인 파일에 남아 선발 근거를 공유하기 어려움
운영 지표 부재조회수, 지원자 수, 선발률을 집계하지 못해 다음 공고 기획에 활용할 수 없음

신규 구축의 과제는 지원, 심사, 선발의 상태 전이 규칙을 먼저 확정하고, 청년과 운영자가 같은 데이터를 보도록 구조를 정하는 것이었습니다.

클라이언트 요청사항과 기획 방향

클라이언트 요청이렇게 기획한 이유해결 방식
프로그램과 개별 공고를 구분해 운영지역 사업 전체 정보와 모집 회차의 일정·정원을 같은 단위로 두면 변경 관리가 어려움프로그램 아래에 공고를 두고 게시 상태와 모집 기간을 공고별로 제어
반복 입력과 중복 지원을 줄여달라는 요청지원자가 같은 프로필을 다시 쓰면 정보 불일치와 확인 업무가 늘어남프로필 자동 연동과 공고별 중복 지원 차단
심사 결과를 지원자에게 같은 기준으로 안내점수 파일과 안내 메일이 분리되면 상태가 서로 달라질 수 있음점수·코멘트·선발 상태를 하나의 지원 레코드에 기록

SOLUTION

시온랩은 공고 등록에서 선발 확정까지를 하나의 흐름으로 연결하고, 청년용 화면과 운영 기관용 관리자 화면을 역할에 따라 분리하되 같은 데이터의 상태 변화를 양쪽에서 읽는 구조로 설계했습니다.

시스템 구조

공고는 프로그램 아래에 기수 단위로 열리고, 지원서는 공고에 귀속됩니다. 심사자가 바꾼 상태는 별도로 복제하지 않으며, 청년이 마이페이지를 조회할 때 같은 레코드의 심사 상태와 이력을 그대로 확인합니다.

흐름 1: 지원서 제출

지원은 로그인한 청년의 프로필을 자동으로 채우고, 같은 공고에 대한 중복 제출을 막은 뒤 접수됩니다.

흐름 2: 심사와 선발 확정

관리자단은 별도 경로로 분리되어 있고, 관리자 계정은 기존 관리자의 승인을 받아야 활성화됩니다. 심사는 점수와 코멘트를 남기고 상태를 바꾸는 것으로 끝납니다.

데이터 구조

프로그램 아래에 기수별 공고를 두고, 지원서는 공고와 청년에 동시에 귀속됩니다. 관리자 승인 상태와 지원서 심사 상태는 각각 계정과 지원서에 둡니다.

  • 계정은 하나, 역할은 둘: 청년과 관리자를 같은 계정 구조에 두되, 관리자는 승인 상태가 바뀌어야 로그인할 수 있습니다.
  • 프로그램과 공고의 2단계: 하나의 프로그램에서 여러 기수의 공고를 운영하고, 게시 상태(작성 중, 모집 중, 마감)는 공고 단위로 제어합니다.
  • 지원서는 공고당 청년 1회: 공고와 청년의 조합을 유일하게 두어 중복 지원을 데이터 단계에서 막고, 심사 상태와 점수, 코멘트, 첨부를 한 지원서에 기록합니다.
  • 참여 이야기는 독립 콘텐츠: 인터뷰, 지역 탐방, 참여 후기를 공고와 별도로 관리해 모집 시기와 무관하게 노출합니다.

청년이 지원서를 제출한 순간부터 결과를 확인할 때까지 플랫폼을 벗어나지 않도록, 양쪽 화면이 같은 데이터를 읽는 구조로 설계했습니다.


BUILD

구축 방향과 데이터 처리 로직

프로그램, 공고, 지원서, 심사 기록을 분리하되 지원 상태가 한 방향으로 이어지도록 구성했습니다. 공고의 게시 여부와 마감일을 먼저 확인한 뒤 지원서를 만들고, 심사 결과는 같은 레코드에 누적해 운영 화면과 마이페이지가 동일한 상태를 보여줍니다.

구간들어오는 데이터판정·처리 기준다음 상태
공고 공개프로그램 정보, 모집 기간, 정원게시 상태와 현재 날짜 확인검색 노출 또는 비공개
지원 접수청년 프로필, 첨부 파일, 공고 ID마감·중복·필수값 검증접수 상태와 확인 번호 생성
심사·선발평가 점수, 코멘트, 정원평가 기준과 선발 가능 인원 적용마이페이지와 운영 현황 갱신

VALIDATION

검증한 업무 범위

검증 구간확인한 상황완료 기준
공고 운영게시 전, 모집 중, 마감 상태각 상태에서 노출과 지원 가능 여부가 일치
지원 접수정상·중복·마감 후 지원허용된 요청만 저장되고 거절 사유가 표시
심사 결과점수 입력, 상태 변경, 지원자 조회운영자와 지원자가 같은 결과를 확인

비슷한 업무에 적용할 수 있는 부분

장학금, 교육과정, 지역 프로젝트처럼 공고별 지원과 심사가 반복되는 업무에 적용할 수 있습니다. 공고 관리와 지원자 관리를 분리하면서도 상태 변경의 기준을 하나로 유지하는 것이 핵심입니다.


RESULT

업무기존 방식설계 결과
공고 운영게시판에 개별 등록프로그램·공고 2단계 관리, 공고 단위 게시 상태 제어
지원 접수메일·양식으로 접수, 중복 확인 수작업프로필 자동 연동, 파일 첨부, 중복 지원 차단
심사·선발개인 파일에 점수 기록점수·코멘트 기록과 상태 변경, 청년 마이페이지에서 동일 데이터 확인
운영 지표별도 집계 없음조회수, 지원자 수, 선발률 대시보드

※ 본 프로젝트는 고객사 실제 업무 요건을 바탕으로 설계한 결과물이며, 보안 정책에 따라 일부 화면만 공개했습니다.

문의하기