feat(cover-letter): 자소서(공채) 문항별 입력 + 분석 연동#129
Merged
Conversation
대기업 공채는 포트폴리오보다 자소서 + 면접 자기소개 중심이라, 자소서를 새 자료
유형으로 추가. 문항별(질문+답변) 텍스트 입력. 분석→임베딩→세션컨텍스트→질문생성
파이프라인은 source 무관이라 그대로 재사용.
DB (V20):
- cover_letters(items JSONB: [{question,answer}], status) 추가
- analyzed_documents.cover_letter_id FK + 단일소스 CHECK 를 3-택1로 확장
Backend (이력서 흐름 미러링):
- coverletter 도메인(엔티티/서비스/컨트롤러) — POST/GET/DELETE /api/cover-letters
- 생성→CoverLetterUploadedEvent→requestCoverLetterAnalysis: 문항을 마크다운으로 합쳐
inline 으로 analyze.cover_letter 발행(S3 미사용)
- AnalyzedDocument.forCoverLetter + AnalysisCallbackService COVER_LETTER 처리
- resolveSourceType(질문생성·문서조회 DTO) COVER_LETTER 분기
- RabbitMQ ai.analyze.cover_letter 큐 + DLQ (definitions.json/RabbitMqConfig)
AI:
- TargetType/SourceType COVER_LETTER, TextSourceExtractor(inline 본문),
cover_letter_consumer(ResumeAnalyzer 재사용), 자소서 전용 분석 프롬프트
Frontend:
- features/cover-letter(문항 반복 입력 폼 + 목록) + 워크스페이스 '자소서' 섹션/네비/라우트
- 세션 자료 선택기는 source 무관이라 자동 포함, DocumentList COVER_LETTER 라벨
검증: 백엔드 ./gradlew test 통과, AI 297 passed + flake8 clean, 프론트 npm run build 통과.
OpenAPI/프론트 타입 재생성. 회의적 검증으로 read DTO(AnalyzedDocumentResult) 누락 분기도 보강.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
i3months
added a commit
that referenced
this pull request
Jun 29, 2026
…ing-reland fix(cover-letter): 자소서 입력 하드닝 재머지 (#129 누락분)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
변경 사항
대기업 공채는 포트폴리오(이력서)보다 자소서 + 면접 자기소개 중심이라, 자소서를 새 자료 유형으로 추가. 결정: 문항별(질문+답변 여러 개) 텍스트 입력. 분석→임베딩→세션컨텍스트→질문생성 파이프라인은 source 무관이라 그대로 재사용.
DB (V20)
cover_letters신규 (itemsJSONB =[{question, answer}], status).analyzed_documents.cover_letter_idFK + 단일소스 CHECK 를 (resume/repository/cover_letter) 3-택1로 확장.Backend (이력서 흐름 미러링)
coverletter도메인(엔티티/서비스/컨트롤러):POST/GET/DELETE /api/cover-letters.CoverLetterUploadedEvent→requestCoverLetterAnalysis: 문항을 마크다운으로 합쳐 inline으로analyze.cover_letter발행(이력서와 달리 S3 미사용).AnalyzedDocument.forCoverLetter,AnalysisCallbackServiceCOVER_LETTER 처리,resolveSourceType(질문생성 + 문서조회 DTO) 분기.ai.analyze.cover_letter큐 + DLQ (definitions.json/RabbitMqConfig).AI
TargetType/SourceTypeCOVER_LETTER,TextSourceExtractor(inline 본문),cover_letter_consumer(ResumeAnalyzer 재사용), 자소서 전용 분석 프롬프트(지원동기·인성·경험·직무적합 중심).Frontend
features/cover-letter: 문항(질문+답변) 반복 입력 폼 + 목록(상태 배지·분석 진행·삭제)./workspace/cover-letters라우트.DocumentList에 COVER_LETTER 라벨.검증
./gradlew testBUILD SUCCESSFUL(전체), AIuv run pytest297 passed + flake8 clean, 프론트npm run build통과 / lint 신규 파일 clean.AnalyzedDocumentResult)의 누락 분기(자소서 → sourceType null)도 보강.구현 메모
tech_stack매핑과 동일 패턴).🤖 Generated with Claude Code