Show HN: 클라이언트 측 tool calling으로 AI가 PDF 양식을 채워주는 SimplePDF Copilot
Show HN: Filling PDF forms with AI using client-side tool calling
TL;DR Highlight
채팅으로 PDF 양식을 채우고 이해하는 SimplePDF Copilot 데모 공개
Who Should Read
PDF 양식 자동 채우기 기능을 자사 서비스에 넣고 싶은 프론트엔드·백엔드 개발자
Core Mechanics
- 채팅으로 PDF를 다룬다
- SimplePDF Copilot은 PDF를 채팅으로 편집하고, 채우고, 이해하게 해 주는 데모다.
- 데모에는 IRS W-9 양식이 미리 로드되어 있다.
- 데모 시작 프롬프트가 정해져 있다
- "Help me fill this form"과 "What's this form about?"가 예시로 제공된다.
- 언어 선택과 다운로드 기능도 화면에 있다.
- 데모는 채팅이 외부로 나간다
- 데모 화면에 채팅 메시지가 선택한 AI 제공자에게 전송된다고 적혀 있다.
- 샘플 데이터만 쓰라고 안내한다.
- 데스크톱 환경을 권장한다
- 화면에 데스크톱에서 가장 잘 쓸 수 있다는 안내가 있다.
Community Reactions
- 제작자 설명: 로컬 모델 시나리오를 보여주는 기술 데모
- 클라이언트 측 tool calling과 로컬 모델을 쓰면 문서 데이터가 사용자 기기 밖으로 나가지 않아도 된다는 설명이다.
- 외국어 양식 채우기, 계약서 조항 검토, MCP/RAG로 CRM·EHR 데이터 미리 채우기를 용도로 들었다.
- 임베드해서 고객사가 화이트라벨로 제공하는 용도로 설계했다고 한다.
- PII 전송을 더 분명히 알려야 한다는 의견
- 채팅 메시지가 원격 서버로 가므로 개인정보가 로컬 기기를 떠난다는 점을 더 명확히 해야 한다는 의견이 있었다.
- SSN이 엉뚱한 칸에 들어갔다는 경험
- SSN을 입력했더니 "4 Exemptions" 칸에 채워졌다는 경험이 올라왔다.
- 클릭해서 직접 입력하면 되는데 어떤 문제를 푸는지, Claude Cowork와는 어떻게 다른지 묻는 질문도 있었다.
- Claude와 파이썬으로 로컬에서 해결했다는 경험
- Claude가 PDF에서 필드를 찾고 값을 넣는 파이썬 스크립트를 짜 줬고, 위치를 맞추는 데 손이 좀 갔다는 경험이다.
- PDF가 원격 서버로 가지 않았다는 점이 장점이라고 했다.
- 빈 칸을 건너뛸 수 없다는 데모 결함 지적
- W-9 두 번째 필드(사업체명)는 대부분 비어 있어야 하는데 건너뛰거나 비울 방법이 없다는 의견이다.
- 수백 개 PDF에서 OCR+LLM으로 데이터 모델을 만들면 약 90%만 맞고 필드 누락·오라벨이 생긴다며 채울 때도 오류가 나는지 묻는 댓글도 있었다.
How to Apply
- PDF 필드 목록을 LLM에 뽑게 해보기
- 오늘 샘플 PDF 하나의 필드 이름과 라벨을 LLM에게 JSON으로 뽑게 하라.
- 사람이 직접 보고 누락·오라벨을 세어 정확도를 기록하라.
- 빈 값 허용 규칙을 tool 스키마에 넣기
- 양식 채우기 tool의 필드마다 선택 여부와 "건너뛰기" 값을 명시하라.
- 대부분 비는 칸에 억지로 값을 채우지 않는지 테스트하라.
- PII 전송 경로를 화면에 표시하기
- 채팅이 어느 AI 제공자로 가는지 입력창 근처에 문구로 안내하라.
- 민감 데이터는 로컬 모델이나 클라이언트 측 tool calling 경로로 분리하는 설계를 검토 목록에 올려라.
- 채운 값 확인 단계 넣기
- tool이 값을 채운 뒤 필드별 입력 내용을 사용자에게 보여 주고 승인받게 하라.
- SSN 같은 민감 필드는 승인 전에 제출되지 않게 막아라.
Try It
# Claude 또는 ChatGPT 대화창에 붙여넣기 (SimplePDF 방식이 아닌, PDF 필드 추출·채우기 아이디어의 간이 버전)
아래는 PDF 양식의 텍스트입니다. 이 양식의 입력 필드를 모두 찾아 JSON 배열로 출력하세요.
각 항목: {"field": 필드 이름, "label": 화면 라벨, "required": true/false, "skippable": 비워도 되는지}
그 다음, 아래 사용자 정보로 채울 값을 필드별로 제안하되, 맞는 칸이 불확실하면 값을 넣지 말고 "unsure"로 표시하세요.
비워도 되는 칸은 억지로 채우지 마세요.
[양식 텍스트]
{{문서}}
[사용자 정보 (샘플 데이터만)]
{{사용자정보}}Terminology
관련 논문
GPT-5.6 Sol, 평화 모드 Factorio를 13.5시간에 클리어
GPT-5.6 Sol이 Codex 낮은 사고 수준으로 평화 모드 Factorio 로켓 발사까지 갔다
AI가 SRE를 대체하는 게 아니라 실력을 깎아먹는다
인시던트 95%를 AI에 맡기자 나머지 5%를 다룰 SRE의 실력이 녹슬 수 있다
Cursor Marketplace의 Claude Code 확장에 심어진 SSH 백도어
Cursor Marketplace의 변조된 Claude Code 확장이 SSH 백도어를 심었다
AI-native 엔지니어링 조직 만들기: FurtherAI 9개월 회고
배포 전 과정을 단계별로 자동화하자 엔지니어 1인당 일일 머지가 약 5배 늘었다
Minecraft·Mindustry에서 AI 에이전트 군집 50마리를 돌려 봤다
에이전트 50개를 Minecraft에 풀었더니 배급 장부와 관료제가 생겼다
Cursor Agent SDK 출시: 에이전트를 코드로 정의하고 한 줄로 배포
Cursor가 에이전트를 코드로 정의·배포하는 Agent SDK를 정식 공개했다
에이전트가 코드를 짜는 시대, 엔지니어가 여전히 알아야 할 것: 기초·폭넓은 지식·필요할 때 깊이 파기
에이전트가 짠 코드의 오너십은 기초, 폭넓은 지식, 즉시 깊이 파는 능력에 달렸다
AI가 일을 줄여준다더니, 이렇게 많이 일한 적이 없다
에이전트를 병렬로 돌렸더니 GitHub 활동이 엔지니어 시절 수준으로 돌아왔다