com um clique
jangbu-import
// 원본 재무 데이터(엑셀·은행 CSV·카드 내역 CSV·영수증 이미지·세금계산서 PDF·카드명세서 PDF)를 표준 거래내역 13개 필드로 변환하는 스킬. PaddleOCR 로컬 처리로 영수증·세금계산서·카드명세서에서 거래 자동 추출, Level 2 민감정보 마스킹 적용.
// 원본 재무 데이터(엑셀·은행 CSV·카드 내역 CSV·영수증 이미지·세금계산서 PDF·카드명세서 PDF)를 표준 거래내역 13개 필드로 변환하는 스킬. PaddleOCR 로컬 처리로 영수증·세금계산서·카드명세서에서 거래 자동 추출, Level 2 민감정보 마스킹 적용.
한국 종합소득세·법인세 신고 준비를 위한 서류 체크리스트 자동 생성 스킬. 개인사업자(일반·간이·면세)·프리랜서·1인 법인·겸업·성실신고확인대상 5가지 유형별로 필요 서류 목록을 제공하고, korean-jangbu-for에서 자동 생성 가능한 항목을 표시한다. 2026년 기준 기한표(토·일 자동 이연 반영) 포함 — 종소세 일반 2026-06-01, 성실신고 2026-06-30.
한국 스타트업·1인 법인 대표·프리랜서·개인사업자를 위한 장부 자동 생성 진입점 스킬. 호출 시 5개 하위 스킬(jangbu-import·jangbu-tag·jangbu-tax·jangbu-dash·jangbu-jongso)을 번호·문자 메뉴로 제시하고, 입력 즉시 해당 스킬 인터뷰로 직행한다. 엑셀·5대 은행 CSV·7대 카드사 명세서 PDF·영수증·세금계산서 지원, macOS Vision/PaddleOCR 로컬 처리, Level 2 민감정보 마스킹.
홈택스·은행·카드사 데이터를 자동 수집하기 위한 CODEF API 자격증명 발급·설정 가이드 스킬. 사용자가 직접 CODEF(developer.codef.io)에 무료 가입해 받은 Client ID/Secret을 로컬(macOS Keychain 또는 ~/.jangbu/credentials.env)에 저장. BYOK(Bring Your Own Key) 방식, 외부 서버 전송 없음. 2026년 4월 기준.
스타트업·1인 법인 대표용 경영 리포트 자동 생성 스킬. 월별 손익 추이, 현금흐름(일별 net), cash burn rate(최근 N개월 평균 순지출), 비용 구조 분석. 공식 재무제표와 별개로 의사결정용 가공 리포트 제공.
표준 거래내역에 계정과목을 매핑하는 스킬. 룰 기반 분류 우선(80%+), 실패 건만 LLM fallback(마스킹 뷰), 사용자 확인 루프. 한국 거래처 100개 시드 룰 포함, 내부 계정 ↔ 국세청 표준계정 이중 구조.
세무용 재무제표(재무상태표·손익계산서) 자동 생성 스킬. 국세청 표준계정과목 매핑, 일반기업회계기준(K-GAAP) 간소화 버전. 분류 완료된 거래내역을 기간 지정해 BS·PL로 집계하고 JSON·CSV 파일로 출력.
| name | jangbu-import |
| description | 원본 재무 데이터(엑셀·은행 CSV·카드 내역 CSV·영수증 이미지·세금계산서 PDF·카드명세서 PDF)를 표준 거래내역 13개 필드로 변환하는 스킬. PaddleOCR 로컬 처리로 영수증·세금계산서·카드명세서에서 거래 자동 추출, Level 2 민감정보 마스킹 적용. |
원본 파일 → 표준 거래내역 변환 스킬.
| 소스 | 포맷 | MCP 도구 |
|---|---|---|
| 은행 거래내역 | CSV | ingest_raw(source_type="bank") |
| 카드 거래내역 | CSV | ingest_raw(source_type="card") |
| 수기 장부 | 엑셀 | ingest_raw(source_type="manual") |
| 영수증 | JPG/PNG/PDF | ocr_document(doc_type="receipt") |
| 세금계산서 | ocr_document(doc_type="tax_invoice") | |
| 통장 스캔 | JPG/PDF | ocr_document(doc_type="bank_statement_scan") |
| 카드사 회원이용내역서 | ocr_document(doc_type="card_statement_scan") |
카드명세서 지원 현황:
필수 9 + 확장 4.
transaction_id, date, amount, currency, direction, counterparty, description, source, source_refraw_description, account_id, matched_account, confidence어떤 데이터를 추가하시겠습니까?
[1] 은행 거래내역 (CSV)
[2] 카드 거래내역 (CSV)
[3] 엑셀 장부 (xlsx)
[4] 영수증 이미지/PDF (PaddleOCR 처리)
[5] 세금계산서 PDF (PaddleOCR 처리)
[6] 카드사 회원이용내역서 PDF (PaddleOCR + 표 파서)
[7] 여러 파일 일괄 업로드
번호를 입력하세요.
[6] 카드명세서 PDF 선택 시 경고:
⚠ 카드사 회원이용내역서에는 주민번호·사업자번호 등 민감정보가
포함되어 있습니다. 처리 전 확인:
1. 본인 소유 문서가 맞습니까? [Y/n]
2. 파일은 ~/.jangbu/raw/ocr/ 에만 저장되며
LLM에는 마스킹 뷰와 요약만 전달됩니다.
account_id (내부 계좌/카드 ID, 예: acct_shinhan_001, card_bc_002)CSV/엑셀 (선택지 1·2·3):
ingest_raw(
file_path="/절대/경로/파일.csv",
source_type="bank", # or card / manual
account_id="acct_shinhan_001",
bank="shinhan" # bank일 때만
)
OCR (선택지 4·5·6·7):
ocr_document(
file_path="/절대/경로/영수증.jpg",
doc_type="receipt", # receipt / tax_invoice / bank_statement_scan / card_statement_scan
account_id="card_bc_002", # 카드명세서면 base prefix로 사용, 카드별 last3 자동 suffix
auto_ingest=True # 영수증·카드명세서면 자동 거래 등록
)
카드명세서 응답 예시:
{
"doc_type": "card_statement_scan",
"parsed_rows": 287,
"ingested": 285,
"duplicates_skipped": 2,
"issuer": "shinhan",
"period": {"start": "2025-07-01", "end": "2025-12-31"},
"card_last3_list": ["039", "122"],
"unparsed_count": 3,
"needs_llm_fallback": false,
"structured": {
"rows_sample": [
{"use_date": "2025-07-01", "merchant": "가상식당 테스트점",
"amount": "6500", "biz_id": "TK_BIZ_ID_a1b2", "card_last3": "122"}
]
}
}
needs_llm_fallback=true 건 별도 표시ocr_document(doc_type="card_statement_scan") 호출 후 또는 일반 OCR 후,
ocr_analyze를 호출해 오인식 패턴을 감지하고 사용자에게 보정 제안.
ocr_analyze(
unparsed_rows=structured.get("unparsed_rows", []),
min_similarity=0.82,
min_occurrences=2,
)
응답 예시:
{
"unparsed_analysis": {
"total": 39,
"by_token_count": {"5": 28, "6": 8, "7": 3},
"missing_column_estimate": {"amount": 32, "biz_id": 4, "merchant": 2}
},
"counterparty_alias_suggestions": [
{"source": "GS 2S", "source_count": 3,
"target": "GS25", "target_count": 19, "similarity": 0.89}
],
"card_alias_suggestions": [
{"source": "card_shinhan_0S9", "source_count": 3,
"target": "card_shinhan_039", "target_count": 240}
]
}
사용자에게 제시 (각 제안별):
OCR 보정 제안 N건:
[1] 가맹점 통합 제안
'GS 2S' (3건) → 'GS25' (19건) 로 합치시겠습니까?
유사도 0.89
[Y] 예, 적용 / [N] 아니오, 그대로 / [S] 모두 건너뛰기
[2] 카드 식별자 통합
'card_shinhan_0S9' (3건) → 'card_shinhan_039' (240건)
[Y/N/S]
[3] Unparsed 분석
39건 중 32건이 금액 누락 패턴입니다.
원본 PDF 재확인 권장 또는 수동 보정 필요.
사용자 승인 시:
ocr_apply_alias(
correction_type="counterparty_alias",
source="GS 2S",
target="GS25",
)
# → 기존 거래 counterparty 일괄 갱신
# → ocr_corrections 테이블에 영구 저장
# → 다음 OCR부터 자동 적용
표준화 완료:
- 파싱: N건
- 등록: M건 (중복 K건 제외)
- 보정 적용: X건 (alias 통합)
- 분류 미완료: P건
다음:
- [2] 계정과목 매핑 (jangbu-tag)
receipt_to_transaction으로 자동 거래 등록~/.jangbu/raw/imports/ 또는 ~/.jangbu/raw/ocr/에만 저장ingest_raw·ocr_document 호출은 audit.log 기록중복 제거는 UNIQUE(source, source_ref) 제약으로 자동 처리.
source_ref 생성 규칙:
{account_id}:{date}:{description}:{amount}{account_id}:{date}:{merchant}:{amount}manual:{date}:{counterparty}:{amount}receipt:{biz_id}:{date}:{total}card_stmt:{issuer}:{date}:{merchant}:{amount}:{seq} — 같은 날 같은 가맹점·금액 반복 거래(편의점 여러 건)를 seq 번호로 구분