Skip to content

Repository files navigation

지원각 PoC

지원각은 채용공고, 기업 정보, 재무/문화 신호, 사용자 이력서를 연결해 지원 여부를 판단하는 커리어 리서치 웹 서비스 PoC입니다.

구현 범위

  • Supabase Auth 기반 카카오 로그인 워크스페이스
  • 홈, 프로필, 채용공고 분석, 기업 리서치, 리포트, Markdown 내보내기 즉시 사용
  • 사용자 프로필, 기술스택, 선호 문화, 회피 조건, 이력서 텍스트 저장
  • 채용공고 URL 기반 자동 추출 또는 본문 직접 입력
  • 직무명, 기술스택, 경력 요건, 우대사항, 모호한 표현 추출
  • 기업명만으로 리서치 워크스페이스 생성 및 저비용 LLM 공개 검색/요약
  • 자동 추출로 부족한 기업 기본정보, 참고 링크, 리서치 체크리스트 보강
  • 지원 적합도, 성장성, 안정성, 컬처핏, 커리어 레버리지 점수 산정
  • 지원 판단 리포트 생성, 저장, 상세 조회
  • 리포트 Markdown 내보내기
  • 검정, 흰색, 블루 계열 중심의 Flutter 디자인 시스템 적용

현재 PoC에서 토큰 비용이 발생하는 영역은 회원 로그인 후 실행되는 기업명 기반 리서치 검색/요약 API뿐입니다. 이력서, 프로필, 채용공고 점수 계산은 로컬 규칙 기반 분석으로 동작합니다. 적용 정책은 docs/system_policies.md에 정리되어 있습니다.

로그인 설정

카카오 로그인은 Supabase Auth의 Kakao Provider를 사용합니다. Flutter Web 빌드에는 Supabase URL과 publishable key가 필요하고, Vercel 서버리스 API도 같은 값으로 사용자 세션을 검증합니다.

SUPABASE_URL=https://<project>.supabase.co
SUPABASE_PUBLISHABLE_KEY=sb_publishable_...
SUPABASE_SERVICE_ROLE_KEY=...
TOSS_PAYMENTS_CLIENT_KEY=test_ck_...
TOSS_PAYMENTS_SECRET_KEY=test_sk_...

Supabase 대시보드에서 Kakao Provider를 활성화하고, Kakao Developers에는 Supabase callback URL을 redirect URI로 등록해야 합니다. 자세한 절차는 docs/auth_setup.md에 정리되어 있습니다. 멤버십, 결제 주문, AI 리서치 크레딧 차감 테이블은 docs/supabase_billing_schema.sql을 Supabase SQL editor에서 실행해 준비합니다.

회원 플랜

플랜 정책은 비용이 발생하는 새 AI 기업 리서치를 기준으로 나눕니다.

  • Free: 로컬 분석, 리포트, 검색 미션, 캐시된 기업 근거 조회
  • Starter: 월 9,900원, 새 AI 기업 리서치 30회
  • Starter 오픈이벤트: 월 2,900원, 새 AI 기업 리서치 30회
  • Pro: 월 19,900원, 새 AI 기업 리서치 100회
  • Team: 월 49,000원, 새 AI 기업 리서치 300회

초기 공개 버전은 Free와 Starter만 노출합니다. 결제사는 Toss Payments로 고정하고, 세부 정책은 docs/membership_plans.md에 정리되어 있습니다. 결제는 Toss Payments SDK v2 결제창으로 시작하고, /api/confirm-payment에서 paymentKey, orderId, amount를 검증한 뒤 Starter 크레딧을 발급합니다.

LLM 설정

기업 리서치는 Vercel 서버리스 함수에서 실행되며, 로그인 토큰 검증 후 API 키가 있으면 LLM을 호출합니다. API 키가 없으면 LLM 호출 없이 기존 워크스페이스와 검색 미션만 생성합니다.

# OpenAI 기본값
OPENAI_API_KEY=...
JIWONGAK_LLM_PROVIDER=openai
JIWONGAK_OPENAI_MODEL=gpt-5.4-mini

# Kimi 선택 사용
MOONSHOT_API_KEY=...
JIWONGAK_LLM_PROVIDER=kimi
JIWONGAK_KIMI_MODEL=kimi-k2.5

# 비용 상한
JIWONGAK_MAX_OUTPUT_TOKENS=1800

기업 리서치 LLM 요청에는 기업명만 전송하며, 이력서 원문과 프로필은 전송하지 않습니다.

디자인 시스템

디자인 토큰은 lib/design_system/jiwongak_design.dart에 정의되어 있습니다.

  • 색상: 검정, 흰색, 블루 계열을 기본으로 사용하고 노란색은 주의/선택 보조 포인트로만 사용합니다.
  • 간격: 8px 기반 배수 체계(JwSpace)를 사용합니다.
  • 형태: 카드, 입력, 버튼, 배지에 일관된 반경(JwRadius)과 그림자(JwShadow)를 적용합니다.
  • 모션: 화면 전환과 선택 상태 변화는 JwMotion 토큰으로 속도와 곡선을 통일합니다.
  • 컴포넌트 규격: 리스트 행, 사이드바 항목, 패널 헤더의 최소 높이는 JwComponent에서 관리합니다.
  • 테마: Flutter ThemeDataJwTheme.light에서 단일 진입점으로 관리합니다.

디자인 레퍼런스 적용

토스, 쏘카, 무신사, 뱅크샐러드의 공개 자료와 최근 UI 트렌드를 직접 복제하지 않고, 다음 원칙만 지원각에 맞춰 재해석했습니다.

  • 좌측 메뉴는 설명 포함/아이콘 축소 토글을 제공하고, 상단 브랜드 영역과 중앙 콘텐츠 셸을 분리했습니다.
  • 홈은 히어로, 작업 흐름, 메트릭 카드가 이어지는 bento형 발견 구조로 구성했습니다.
  • 유리감 있는 카드, 약한 외곽선, 가벼운 그림자, 짧은 전환 모션으로 무겁지 않은 표면감을 적용했습니다.
  • 타이포그래피는 과한 대형 헤드라인보다 정보 구조와 가독성을 우선합니다.
  • 접근성 보강을 위해 리스트와 내비게이션 선택 상태를 Semantics로 표시하고, 우측 아이콘에는 기능 기준 라벨을 넣었습니다.

실행

flutter pub get
flutter run -d chrome

검증

flutter analyze
flutter test
flutter build web

PoC 한계

  • 현재 구현은 Flutter Web과 SharedPreferences Web 로컬 저장소 기반입니다.
  • 현재 구현은 Supabase Auth 카카오 로그인을 사용하지만, 프로필/리포트 서버 동기화는 다음 단계 범위입니다.
  • 현재 구현의 채용공고 분석과 리포트 점수 계산은 키워드, 정규식, 점수 산식 기반의 로컬 자동 분석입니다.
  • PRD의 Spring Boot, PostgreSQL, Redis, Worker, 외부 API 연동은 다음 단계의 프로덕션 시스템 범위로 남겨두었습니다.
  • 재무/뉴스/문화 데이터는 무단 크롤링하지 않고 사용자 입력 근거와 링크를 기준으로 분석합니다.

About

Jiwongak Flutter Web PoC

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages