Published on

OpenAI 기반 질문 설계와 피드백 고도화

Authors
  • avatar
    Name
    김민석
    Twitter

Introduction

서비스 개요

  • 사용자가 이력서 파일(PDF, Word, TXT)을 업로드하면, 서버는 OpenAI를 이용해 해당 이력서의 여러 항목을 분석하고 피드백을 제공하는 서비스이다.
  • 결과적으로 사용자에게는 개선 사항, 강점, 부족한 부분 등에 대한 피드백이 텍스트 형태로 제공된다.

서비스 동작 흐름

image.png

1단계: 이력서 파일 업로드

  • 사용자 동작: 웹사이트에서 사용자는 이력서 파일을 업로드 한다.
  • 시스템 동작:
  • 파일 형식 및 크기 검증한다. (PDF, Word, TXT만 허용)
  • 파일이 성공적으로 업로드 되면, 서버로 파일이 전송 된다.

2단계: 이력서 분석 시작

  • 사용자 동작: 업로드 후, 사용자는 분석을 요청하는 버튼을 클릭한다.
  • 시스템 동작:
  • 파일이 서버에 저장되며, OCR(광학 문자 인식)이 필요한 경우 Tesseract 등을 통해 PDF에서 텍스트를 추출한다.
  • 텍스트 데이터가 준비되면, 이를 분석하기 위해 OpenAI API로 전송된다.
  • 서버에서 이력서의 각 항목(기본 정보, 기술 스택, 경력 사항, 포트폴리오, 대외활동, 자격증, 자기소개서)에 대해 질문 리스트를 생성하여 OpenAI에게 질문을 던진다.

3단계: 질문 및 답변 처리

  • 시스템 동작:
  • OpenAI는 각 질문에 대해 답변을 생성하여 서버로 응답을 보낸다.
  • 서버는 응답을 정리하여 사용자가 이해할 수 있는 형태로 데이터를 가공한다.
  • 각 항목별로 강점, 개선할 점, 누락된 정보 등을 포함한 종합적인 피드백을 생성한다.

4단계: 결과 제공

  • 시스템 동작:
  • 분석 결과는 웹사이트 상에서 사용자에게 출력한다.
  • 항목별 강점개선사항차트나 점수 형태로 시각적으로 표시할 수도 있다.

5단계: 사용자가 결과 확인 후 액션

  • 사용자 동작: 결과를 확인한 후, 사용자는 이력서를 개선하거나 피드백을 기반으로 추가 질문을 할 수 있다.
  • 시스템 동작:
  • 사용자가 이력서를 수정해 다시 업로드하거나, 특정 피드백에 대한 추가 분석을 요청할 수 있다.

1차 분석.

image.png
  • 기본 정보는 적절한가?
  • 기술 스택은 잘 구성되어 있는가?
  • 경력 사항은 충분한가?
  • 포트폴리오는 잘 작성되어 있는가?
  • 대외활동은 관련성이 있는가?
  • 자격증은 여부는 어떠한가?
  • 자기소개서는 자연스러운가?

2차 분석.

기본 정보

image.png
  • 연락처
    • 이메일 주소의 형식이 적절한가?
    • 전화번호가 국제 형식에 맞춰 작성되었는가?
    • 주소가 현재 거주지와 일관성이 있는가?
    • 특히 지원하는 직무와의 지리적 거리가 문제되지 않는가?
  • SNS 및 웹사이트 링크
    • LinkedIn 프로필이나 GitHub 등의 링크가 잘 작동하는가?
    • LinkedIn 프로필의 헤드라인이 지원 직무와 관련성이 있는가?
    • 프로필에 담긴 정보가 이력서와 일관성을 유지하고 있는가?
    • GitHub에 올라온 프로젝트들이 지속적으로 업데이트되고 있으며, 최신 기술을 반영하고 있는가?
    • 링크된 프로필에서 직무 관련 프로젝트나 성과가 충분히 강조되고 있는가?

기술 스택

image.png
  • 기술의 연관성
    • 사용된 기술들이 구체적으로 어떤 프로젝트에서 어떤 방식으로 활용되었는지 명확하게 제시되어 있는가?
    • 해당 직무에서 기대되는 핵심 기술을 포함하고 있는가?
    • 기술의 나열이 중요도 순으로 나열되어 있는가?
  • 숙련도 표기
    • 구체적인 사용 경험이 부족한 기술이 과장되어 있지는 않은가?
    • 숙련도가 과하게 낮거나, 애매하게 적혀 있지 않은가?

경력 사항

image.png
  • 성과와 책임 구분
    • 프로젝트에서 주도적으로 해결한 문제나 도전에 대해 구체적인 사례가 제시되어 있는가?
    • 직무 설명에서 단순한 업무 나열 대신, 눈에 띄는 성과나 기여도가 충분히 강조되고 있는가?
    • 각 직무에서 중요한 프로젝트나 업무를 구체적으로 설명하고 있는가?
    • 팀과의 협업 방식이 상세히 설명되어 있는가?
  • 수치화된 성과
    • 성과가 수치화되어 있는가?
    • 성과 달성 과정에서 사용된 구체적인 전략이나 접근 방식이 설명되어 있는가?
    • 구체적인 성과 지표를 제시하고, 어떻게 달성했는지 설명하고 있는가?
    • 성과가 회사의 전반적인 목표와 얼마나 일치하는지?
  • 경력의 일관성
    • 이력서에 나열된 경력들이 지원하는 직무와 관련성이 있는가?
    • 경력의 순서가 역순으로(최근 경력부터) 나열되어 있는가?
    • 중간에 경력 공백이 있는 경우, 그 공백의 이유가 설명되어 있는가?
    • 각 직장에서의 직무가 단계적으로 발전하고 있는가?

포트폴리오

image.png
  • 프로젝트 설명
    • 프로젝트의 어려움을 해결한 방법이나 접근 방식이 명확하게 기술되어 있는가?
    • 프로젝트의 초기 목표와 그 결과물이 어떻게 연결되었는지 설명하고 있는가?
    • 각 프로젝트의 목표와 결과가 명확하게 설명되어 있는가?
    • 프로젝트에서 자신의 역할이 명확하게 드러나는가?
    • 프로젝트의 결과가 실제 사용자에게 어떤 영향을 줬는지 구체적으로 설명하고 있는가?
  • 기술 및 도구 사용
    • 프로젝트에서 사용한 기술들이 직무와 관련성이 높은가?
    • 프로젝트에서 사용한 기술 스택과 도구들이 명확하게 기재되어 있는가?
    • 특정 도구나 라이브러리가 실제 문제 해결에 어떻게 기여했는지 제시하고 있는가?
  • 프로젝트의 완성도
    • 프로젝트가 실제로 배포되었거나, 공개된 링크가 있는가?
    • README 파일이 충분히 상세히 작성되어 있는가?
    • 프로젝트가 프로덕션 환경에서 사용 가능한 수준으로 완성되었는가?
    • 사용자가 프로젝트를 이해하고 쉽게 실행할 수 있도록 충분한 문서화가 되어 있는가?

대외활동

image.png
  • 관련성
    • 대외활동이 지원자의 경력 개발과 어떻게 연결되는지를 설명하고 있는가?
    • 이 활동이 단순히 취미 수준이 아니라, 실제로 실무에 도움이 되는지를 평가할 수 있는가?
  • 소프트 스킬 강조
    • 대외활동을 통해 배운 소프트 스킬이 업무에서 어떻게 적용될 수 있는지 설명하고 있는가?
    • 활동 중 직면한 도전과 그 해결 방법이 상세히 설명되어 있는가?
    • 이러한 활동이 지원자의 성격이나 역량을 증명하는지를 설명하고 있는가?

자격증

image.png
  • 기술과 연관성
    • 자격증이 지원하는 직무와 밀접하게 연관되어 있는가?
    • 오래된 자격증이 있는 경우, 그 자격증이 여전히 가치가 있는지를 평가할 수 있는가?
  • 추가 자격증
    • 취득하지 않은 자격증 중에서, 해당 직무를 위해 추천할 만한 자격증이 있는가?

자기소개서

image.png
  • 문단 구성
    • 각 문단이 하나의 주제를 명확히 전달하고 있으며, 서론-본론-결론이 논리적으로 구성되어 있는가?
    • 불필요한 중복이나 주제의 흐름을 방해하는 문장이 없는가?
    • 자기소개서가 너무 장황하거나, 읽는 이가 지루해하지 않도록 적절한 길이를 유지하고 있는가?
  • 문장 및 단어 수준
    • 문장이 너무 길거나, 불필요하게 복잡하지 않은가?
    • 사용된 단어들이 직무에 맞는 전문 용어와 적절한 표현을 사용하고 있는가?
    • 너무 과장된 표현이 있는지, 아니면 너무 겸손해서 자기 어필이 약하지는 않은지?
    • 직무와 관련된 키워드를 사용하여 채용 담당자가 쉽게 이해할 수 있도록 작성되었는가?
  • 핵심 메시지 전달
    • 자기소개서가 강점을 명확하게 전달하고 있는가?
    • 문장이 지루하지 않고, 읽는 사람에게 관심을 끌만한 포인트가 있는가?
    • 자기소개서가 단순한 사실 나열이 아니라, 개인적인 동기와 열정을 충분히 전달하고 있는가?
    • 자기소개서에서 전달하려는 핵심 메시지가 명확히 드러나며, 해당 직무와의 연결성을 나타내고 있는가?

각각의 설명 항목.

image.png

1차 분석

  • 기본 정보는 적절한가?

    • 가치: 지원자의 첫인상을 결정하고, 채용 담당자가 연락을 쉽게 할 수 있도록 보장한다.
    • 이유: 기본 정보는 채용 과정에서 가장 중요한 단계로, 연락처의 정확성이 확보되지 않으면 채용 프로세스가 중단될 수 있기 때문이다.
    • 엣지 케이스: 이메일 주소나 전화번호가 없는 경우, "연락처 정보가 누락되어 있습니다."라는 메시지 제공. 주소가 없다면, 지역 정보가 중요한 직무인지 확인한 후 관련 피드백을 제공한다.
  • 기술 스택은 잘 구성되어 있는가?

    • 가치: 직무에 필요한 기술적 역량을 빠르게 파악할 수 있다.
    • 이유: 직무에 맞는 기술 스택이 포함되어 있는지 확인하면, 지원자의 실무 능력을 신속하게 판단할 수 있기 때문이다.
    • 엣지 케이스: 기술 스택이 누락되었거나 불충분한 경우, "기술 스택이 누락되었거나 더 구체적으로 작성해야 합니다." 라는 피드백을 제공한다.
  • 경력 사항은 충분한가?

    • 가치: 지원자의 업무 경험과 실질적인 기여도를 확인할 수 있다.
    • 이유: 경력 사항은 지원자가 실제로 업무에서 어떤 성과를 냈는지를 보여주는 중요한 지표이기 때문에, 이를 통해 직무 적합성을 판단할 수 있기 때문이다.
    • 엣지 케이스: 경력이 없거나 제한적인 경우, "경력 사항이 부족하거나 작성되지 않았습니다. 인턴 경험 등을 추가해 보세요." 라는 피드백을 제공해준다.
  • 포트폴리오는 잘 작성되어 있는가?

    • 가치: 지원자의 실무 능력과 기술을 실제로 어떻게 적용했는지 평가할 수 있다.
    • 이유: 포트폴리오는 지원자의 기술력을 보여주는 자료이므로, 프로젝트 설명과 결과가 명확해야 하기 때문이다.
    • 엣지 케이스: 포트폴리오가 없을 경우, "포트폴리오가 제출되지 않았습니다. 중요한 프로젝트나 작업물을 포함하는 포트폴리오를 추가해 보세요." 라는 피드백을 제공해준다.
  • 대외활동은 관련성이 있는가?

    • 가치: 직무 외 활동에서 개발된 소프트 스킬(리더십, 팀워크)을 평가할 수 있다.
    • 이유: 대외활동은 직무와 관련된 추가적인 역량을 보여줄 수 있으며, 특히 소프트 스킬을 증명하는 데 중요한 역할을 할 수 있기 때문이다.
    • 엣지 케이스: 대외활동이 없거나 관련성이 낮은 경우, "대외활동이 부족하거나 직무와 관련성이 적습니다. 직무와 관련된 활동을 추가하거나 강조해 보세요."라는 피드백을 제공한다.
  • 자격증 여부는 어떠한가?

    • 가치: 해당 직무에 필요한 기술적 인증을 확인할 수 있음.
    • 이유: 자격증은 직무에서 요구하는 특정 기술이나 지식을 증명하는 중요한 요소로 작용함.
    • 엣지 케이스: 자격증이 없는 경우, "자격증 정보가 누락되었습니다. 직무에 필요한 자격증이 있는 경우 추가해 보세요." 라는 피드백 제공.
  • 자기소개서는 자연스러운가?

    • 가치: 지원자의 의사소통 능력과 자기 표현 능력을 평가할 수 있다.
    • 이유: 자기소개서는 자신의 강점과 동기를 어떻게 표현하는지를 보여주기 때문에, 자연스럽고 일관성 있게 작성되어야 한다.
    • 엣지 케이스: 자기소개서가 작성되지 않은 경우, "자기소개서가 누락되었습니다. 직무에 대한 지원 동기와 자신만의 강점을 중심으로 작성해 보세요." 라는 피드백 제공.

2차 분석

기본 정보는 적절한가? (=1차 질문 내용)

이메일 주소와 연락처가 적절한가?

  • 가치: 연락처의 정확성은 채용 과정에서 필수적인 요소이며, 실수나 누락이 있으면 채용 프로세스가 중단될 수 있다.
  • 이유: 이메일이나 전화번호는 지원자가 회사와 연결되는 가장 중요한 정보 중 하나이기 때문이다.
  • 엣지 케이스:
    • 이메일 주소나 연락처가 없는 경우: "이메일 또는 연락처 정보가 누락되었습니다. 반드시 이메일과 전화번호를 기재해 주세요."
  • LinkedIn 및 GitHub 링크가 유효하고 최신인가?
    • 가치: 최신 상태의 링크는 지원자의 최신 프로젝트나 활동을 확인하는 중요한 정보이다.
    • 이유: 온라인 프로필은 지원자의 최신 기술과 경력을 보여주는 자료이므로, 링크가 유효하지 않으면 제대로 평가하기 어렵기 때문이다.
    • 엣지 케이스:
    • 링크가 누락되었거나 잘못된 경우: "LinkedIn 또는 GitHub 링크가 유효하지 않습니다. 최신 상태로 업데이트해 주세요."

기술 스택은 잘 구성되어 있는가? (=1차 질문 내용)

  • 기술 스택이 직무 요구사항과 일치하는가?
    • 가치: 직무에 필요한 기술 역량을 빠르게 확인하여 지원자의 적합성을 평가할 수 있다.
    • 이유: 기술 스택이 직무 요구와 맞지 않으면 채용 담당자가 지원자를 적절하게 평가하기 어렵기 때문이다.
    • 엣지 케이스:
    • 기술 스택이 적절히 기재되지 않은 경우: “기술 스택이 누락되었거나 불충분합니다. 직무에 필요한 기술을 추가해 주세요."

경력 사항은 충분한가? (=1차 질문 내용)

  • 성과 중심의 경력 설명이 있는가?
    • 가치: 지원자가 단순히 일을 수행한 것이 아니라, 성과를 냈는지 확인할 수 있다.
    • 이유: 성과를 기반으로 한 설명이 있으면 지원자가 직무에서 실질적으로 기여할 수 있는지 평가 가능하기 때문이다.
    • 엣지 케이스:
    • 성과 중심 설명이 없는 경우: “경력 설명이 성과 중심으로 작성되지 않았습니다. 달성한 성과를 구체적으로 추가해 주세요."
  • 경력 간 일관성이 있는가?
    • 가치: 경력의 일관성이 직무 적합성을 판단하는 데 중요한 역할을 한다.
    • 이유: 일관된 경력 발전이 없다면, 지원자의 경력 방향이 불명확해 보일 수 있음.
    • 엣지 케이스:
    • 경력 간 일관성이 없거나 공백이 있는 경우: "경력의 일관성이 부족하거나 경력 공백이 있습니다. 이유를 설명해 주세요."

포트폴리오는 잘 작성되어 있는가? (=1차 질문 내용)

  • 프로젝트 목표와 결과가 명확히 설명되어 있는가?
    • 가치: 지원자가 프로젝트에서 어떤 문제를 해결했고, 그 결과가 어땠는지를 명확히 확인할 수 있다.
    • 이유: 프로젝트 목표와 결과가 명확하지 않으면, 지원자의 기여도를 평가하기 어렵기 때문이다.
    • 엣지 케이스:
    • 포트폴리오가 없는 경우: "포트폴리오가 제출되지 않았습니다. 중요한 프로젝트나 작업물을 포함하는 포트폴리오를 추가해 주세요."
    • 프로젝트 설명이 불충분한 경우: "프로젝트 목표와 결과가 충분히 설명되지 않았습니다. 프로젝트의 목적과 결과를 구체적으로 작성해 주세요."

대외활동은 관련성이 있는가? (=1차 질문 내용)

  • 대외활동이 직무와 관련성이 있는가?
    • 가치: 직무 외 활동을 통해 지원자가 리더십, 팀워크, 문제 해결 능력을 어떻게 개발했는지 확인할 수 있다.
    • 이유: 대외활동이 직무와 관련되지 않는다면, 그 활동은 채용 담당자에게 지원자의 직무 적합성을 증명하는 데 있어 가치가 낮을 수 있기 때문이다. 또한, 직무와 관련된 대외활동은 지원자의 다면적인 역량을 보여주고, 실무 경험과 연관될 수 있어 직무 적합성을 강화할 수 있다고 생각한다.
    • 엣지 케이스:
    • 대외활동이 없는 경우: "대외활동이 누락되었습니다. 직무와 관련된 활동이나, 소프트 스킬을 발휘한 활동을 추가해 주세요."
    • 대외활동의 직무 관련성이 낮은 경우: "대외활동이 직무와 관련성이 부족합니다. 직무와 관련된 활동을 강조해 보세요."

자격증 여부는 어떠한가? (=1차 질문 내용)

  • 자격증이 최신이고 직무와 연관성이 있는가?
    • 가치: 자격증은 지원자의 기술과 전문성을 증명하는 중요한 요소로, 특히 최신 자격증이라면 직무와 관련된 능력을 가지고 있음을 보여준다.
    • 이유: 오래된 자격증이나 직무와 관련 없는 자격증은 채용 담당자에게 그다지 가치 있게 평가되지 않을 수 있다.
    • 엣지 케이스:
    • 자격증이 없는 경우: "자격증 정보가 누락되었습니다. 직무와 관련된 자격증이 있는 경우 추가해 주세요."
    • 자격증이 직무와 관련성이 낮은 경우: "현재 기재된 자격증은 직무와의 연관성이 적습니다. 직무와 연관성 있는 자격증을 추가해 보세요."

자기소개서는 자연스러운가? (=1차 질문 내용)

  • 자기소개서가 지원자의 강점을 효과적으로 전달하는가?
    • 가치: 자기소개서는 지원자가 자신의 강점과 직무에 대한 열정을 표현하는 중요한 요소로, 직무와의 적합성을 나타낼 수 있는 기회이다. 자기소개서가 명확하게 구성되고 강점을 잘 어필하면, 채용 담당자는 지원자의 동기와 능력을 빠르게 파악할 수 있다.
    • 이유: 자기소개서가 너무 장황하거나, 핵심 메시지가 명확하지 않으면 채용 담당자가 지원자의 강점을 이해하기 어렵다. 직무와 관련된 자신만의 강점과 열정을 강조하면, 지원자가 다른 지원자들과 차별화될 수 있어야 한다.
    • 엣지 케이스:
    • 자기소개서가 없는 경우: "자기소개서가 누락되었습니다. 직무에 대한 지원 동기와 강점을 중심으로 자기소개서를 작성해 주세요."
    • 자기소개서가 너무 장황한 경우: "자기소개서가 지나치게 장황합니다. 직무와 관련된 핵심 메시지를 간결하고 명확하게 전달하는 것이 중요합니다."
    • 자기소개서의 핵심 메시지가 불명확한 경우: "자기소개서에서 강점과 지원 동기가 명확하게 드러나지 않습니다. 자신만의 경험과 직무 적합성을 강조하는 내용을 추가해 주세요."
    • 자기소개서의 문장 구조가 논리적이지 않은 경우: "문단의 흐름이 논리적이지 않거나, 연결이 자연스럽지 않습니다. 서론, 본론, 결론 구조로 논리적인 흐름을 유지해 주세요."

결과 예시

  • 경력 사항:
    • 질문: "성과 중심의 경력 설명이 있는가?"
    • 결과: "경력 설명에 성과가 구체적으로 제시되지 않았습니다. '매출 15% 증가'와 같은 구체적인 성과 지표를 추가해 보세요."
  • 포트폴리오:
    • 질문: "프로젝트 목표와 결과가 명확히 설명되어 있는가?"
    • 결과: "프로젝트 목표는 명확하지만, 결과가 불충분합니다. 프로젝트의 성과나 사용자 피드백 등을 추가하세요."
  • 대외활동:
    • 질문: "대외활동이 직무와 관련성이 있는가?"
    • 결과: "대외활동이 직무와 직접적인 연관은 없지만, 팀워크와 리더십을 보여줄 수 있는 활동으로서 강점이 있습니다."
  • 자기소개서:
    • 질문: "자기소개서가 지원자의 강점을 효과적으로 전달하는가?"
    • 결과: "강점이 잘 드러나지 않으며, 구체적인 프로젝트 경험과 지원 동기를 명확히 전달할 필요가 있습니다."

엣지 케이스 처리

  • 파일 형식 오류: 사용자가 PDF가 아닌 파일을 업로드할 경우, "지원되지 않는 파일 형식입니다. PDF, Word, TXT 파일만 지원됩니다." 라는 에러 메시지를 제공한다.
  • 필수 정보 누락:
    • 만약 이력서에서 필수 정보(기본 정보, 경력 사항 등)가 누락되었을 경우, 분석 단계에서 "해당 항목이 누락되었습니다." 라는 경고 메시지와 함께 구체적인 지침 제공해준다.
    • 예를 들어, 기술 스택이 누락되었다면, "기술 스택이 없습니다. 지원하는 직무에 필요한 기술을 추가해 주세요."라는 안내 제공하는 것이다.
  • 서버 오류: OpenAI API나 서버 자체에서 오류가 발생한 경우, "현재 분석을 진행할 수 없습니다. 잠시 후 다시 시도해 주세요." 라는 메시지를 제공한다.
  • 불충분한 텍스트 데이터: OCR로 추출된 텍스트가 불충분할 경우, "파일 내 텍스트가 불완전합니다. 텍스트가 명확하게 포함된 파일을 업로드해 주세요." 라는 피드백 제공한다.