재단 기부자 900명을 대상으로 매일 뉴스를 자동 수집하고, LLM 기반 동명이인 판별·요약, 기부 제안 타이밍 점수화를 통합한 내부 CRM 대시보드를 설계·구현합니다.
재단 기부자 900명을 대상으로 매일 뉴스를 자동 수집하고, LLM 기반 동명이인 판별·요약, 기부 제안 타이밍 점수화를 통합한 내부 CRM 대시보드를 설계·구현합니다. 담당자 10명이 효율적으로 기부자 접근 시점을 파악할 수 있도록 전체 파이프라인을 단일 UI로 통합합니다.
작업 범위
주요 업무

LLM 호출 비용과 판별 정확도 사이의 균형을 맞추는 구조화 프롬프트 설계
수집된 뉴스 건수, 판별 대기 건수, 오늘의 골든 타이밍 기부자 현황을 한눈에 파악할 수 있는 메인 화면입니다.
FastAPI 비동기 엔드포인트와 React Query를 결합해 30초 주기 자동 갱신을 구현하고, 대규모 기부자 집계 데이터를 서버 사이드 집계 후 전달하는 구조를 설계합니다.

기부자별로 수집된 뉴스 목록과 LLM이 판별한 동명이인 여부, 기사 요약을 확인하고 담당자가 검토·승인할 수 있는 화면입니다.
LLM 호출 비용을 최소화하기 위해 기부자 프로필(생년월일·직함·소속)을 컨텍스트로 주입하는 구조화 프롬프트를 설계하고, 판별 신뢰도 점수를 함께 반환해 담당자 검토 우선순위를 자동 정렬합니다.

기부자별 최근 뉴스 감성·빈도·이슈 유형을 종합해 기부 제안 적합 시점 점수를 산출하고, 고점수 기부자를 우선 노출합니다.
감성 분류·이슈 유형·접촉 이력을 가중 합산하는 스코어 산출 규칙을 YAML 설정 파일로 외부화하여, 담당자가 코드 수정 없이 가중치를 조정할 수 있는 구조를 설계합니다.

내부 DB 기부자 레코드와 수집 뉴스 매핑 오류, 중복 항목, LLM 판별 실패 건을 추적하고 관리자가 수동 수정할 수 있는 화면입니다.
모든 LLM 판별 요청·응답을 JSON으로 audit_log에 보존하여, 판별 오류 발생 시 프롬프트 재설계 없이 기존 데이터로 재처리할 수 있는 멱등 파이프라인을 설계합니다.

Celery Beat + Redis로 정기 크롤링 스케줄러 구성, Naver/Google News API 연동, 기부자 900명 ID 매핑 테이블 설계
Claude API 구조화 프롬프트 설계, 동명이인 판별 신뢰도 점수 반환, JSONB audit_log 저장 파이프라인 완성
감성 분류·이슈 유형·접촉 이력 가중 합산 알고리즘 구현, YAML 설정 외부화, 알림 메일 초안 자동 생성
4개 화면 컴포넌트 구현, Recharts 차트 통합, React Query 폴링 설정, 데이터 검증 로그 테이블 완성