여러 업체에서 견적서를 받다 보면, 시간이 조용히 사라진다. 어떤 곳은 엑셀로, 어떤 곳은 PDF로 보낸다. 품목과 단가가 깔끔하게 표로 정리된 견적서가 있는가 하면, 회사 정보와 조건이 문서 곳곳에 흩어진 견적서도 있다. 처음엔 파일을 하나씩 열어 필요한 것만 옮기면 된다고 생각한다. 그런데 업체 수가 늘면 이야기가 달라진다. 금액만 비교하면 될 줄 알았는데, 사업자번호·담당자 연락처·납기·부가세 포함 여부·운송비 조건까지 같이 봐야 한다. 이 견적서 정리를 PDF·엑셀이 섞인 채로 자동화하는 게 이 글의 주제다.
파일명부터 제각각이다. 그냥 “견적서”라고만 보내는 업체가 있는가 하면, 날짜·업체명·프로젝트명을 다 붙이고 문서 마지막 페이지에 담당자 명함 스캔본까지 넣어 주는 업체도 있다. 이걸 일일이 항목과 내용을 대조해 가며 엑셀로 옮기는 건, 여간 번거로운 일이 아니다.
이럴 때 필요한 건 단순한 엑셀 변환이 아니다. PDF를 엑셀로 바꾸는 것만으로는 부족하다. 제각각인 견적서를 하나의 기준으로 묶어, 사람이 비교하기 쉬운 엑셀로 만드는 과정이 필요하다. 엑셀 기본 기능만으로는 번거롭고, 그렇다고 시스템을 따로 만들기엔 부담스럽다. 그래서 Codex를 활용한 프로젝트 폴더 기반 자동화가 현실적인 대안이 된다.
견적서 정리는 단순 복사가 아니다
견적서를 정리한다고 하면 보통 품목명·수량·단가·금액을 옮겨 적는 일을 떠올린다. 실제 업무는 그보다 판단이 더 든다.
업체마다 표현이 다르다. “품명”이라고 쓴 곳이 있고 “제품명”, “상품명”, “모델명”이라 쓴 곳이 있다. 단가도 “단가”, “견적가”, “판매단가”로 갈린다. 부가세는 포함이라 쓰기도, 별도라 쓰기도, 아예 표시가 없기도 하다. 업체 정보도 마찬가지다. 비교가 끝나면 결국 담당자에게 연락하고 사업자 정보를 확인해야 하는데, 사업자번호·대표자·담당자·연락처·이메일·주소가 견적서마다 다른 자리에 있고, 일부만 적힌 경우도 많다.
이 작업은 단순 표 변환보다 한 단계 복잡하다. 필요한 정보를 찾아내고, 서로 다른 표현을 같은 기준으로 맞추고, 불명확한 부분은 따로 표시해야 한다. 바로 여기서 AI 자동화의 의미가 생긴다.
Codex는 ‘프로젝트 폴더’를 기준으로 일한다
이 자동화의 핵심은 파일을 하나씩 올려 변환하는 게 아니다. 먼저 프로젝트 폴더를 만들고, 원본과 결과가 들어갈 자리를 정해 둔 뒤, Codex에게 현재 폴더를 기준으로 작업하라고 요청한다.
Codex는 OpenAI의 에이전트형 코딩 도구다. 터미널(CLI)·앱·IDE 등 여러 표면이 있고, 작업할 때 현재 프로젝트 폴더(작업 디렉터리)를 기준으로 파일을 읽고 다룬다. 한 가지 알아둘 점은, Codex가 PDF나 엑셀을 눈으로 읽듯 직접 보는 게 아니라는 것이다. 폴더 안에서 코드를 직접 짜고 실행해 파일을 파싱하고 결과 엑셀을 만든다. 그래서 PDF 표가 깨끗하지 않으면 추출이 불완전할 수 있고, 그 부분은 뒤의 ‘확인필요’로 빠지게 설계하는 게 안전하다.
폴더 구조는 단순하게 잡는다.
quote-project/
├─ input/
│ ├─ A업체_견적서.xlsx
│ ├─ B업체_견적서.pdf
│ ├─ C업체_견적서.xlsx
│ └─ D업체_견적서.pdf
├─ output/
└─ request.md
input에는 받은 견적서를 그대로 넣는다. 엑셀과 PDF가 섞여도 된다. output에는 Codex가 만든 최종 엑셀이 저장되게 한다. request.md에는 정리 기준과 요청 내용을 적어 둔다.
이 방식의 장점은 반복성이다. 다음에 새 견적서를 정리할 땐 input의 파일만 바꾸고 같은 방식으로 다시 요청하면 된다. 매번 처음부터 설명할 필요가 없고, 폴더에 남은 요청문과 결과 구조를 계속 다듬어 나갈 수 있다.
진짜 중요한 건 프롬프트에 담는 업무 맥락
“견적서들을 엑셀로 정리해줘”라고만 하면 결과가 흔들린다. Codex는 파일을 읽고 엑셀을 만들 수 있지만, 내가 어떤 목적으로 정리하는지는 모른다.
견적 비교에서 중요한 게 총액인지, 납기인지, 연락처인지, 품목별 단가인지 먼저 알려줘야 한다. 그리고 애매한 값은 추측하지 말고 “확인필요”로 표시하라는 기준도 필요하다. 견적서는 실제 발주와 업체 선정에 영향을 주므로, 결과가 그럴듯해 보이는 것보다 불확실한 부분을 분명히 드러내는 게 더 중요하다.
그래서 요청에는 최소한 이 맥락이 들어가야 한다.
- 현재 프로젝트 폴더 기준으로 작업할 것
- input의 엑셀·PDF 견적서를 읽을 것
- output에 최종 엑셀을 만들 것
- 목적은 여러 업체의 견적 조건을 비교하는 것
- 업체 정보와 품목 내역을 분리할 것
- 알 수 없는 값은 추측하지 말고 “확인필요”로 표시할 것
- 원본 파일명과 위치를 남길 것
이 맥락이 있어야 결과물이 단순 변환 파일이 아니라 실제로 쓸 수 있는 견적 정리 파일이 된다.
결과 엑셀은 단순해야 쓸 수 있다
흔한 실수가 첫 시트에 모든 걸 다 넣는 것이다. 업체명·사업자번호·담당자·품목·규격·단가·부가세·납기·결제조건·비고를 한 시트에 몰아넣으면 표가 너무 복잡해진다. 보는 사람은 다시 필터를 걸고 열을 숨겨야 한다. 처음부터 목적별로 나누는 편이 낫다. 가르는 기준은 단순하다. 첫 시트는 보고·공유용이다 — 상사에게 보고하거나 동료와 공유할 내용은 여기 한 장이면 된다. 나머지 시트는 실무자용이다. 누군가 상세 내용을 묻거나, 이 프로젝트 밖 업체 정보가 필요할 때 펼쳐 보는 자리다. 그래서 통합표 하나 대신 네 시트로 나누면 실무에서 훨씬 보기 쉽다.
견적비교표는 업체별로 한 줄씩, 총액·부가세 포함 여부·납기·운송비·결제조건·주요 비고·확인상태만 담는다. 세부 품목은 펼치지 않는다. 빠르게 조건을 견주는 게 목적이다. 업체정보는 업체명·사업자번호·대표자·담당자·연락처·이메일·주소·원본 파일명을 따로 정리한다. 검토 뒤 발주 협의를 해야 하니 분리하는 게 좋다. 품목내역은 업체별 세부 품목·규격·수량·단위·단가·금액·비고를 정리한다. 품목별 단가를 비교하거나 누락을 확인할 때 쓴다. 확인필요는 사람이 다시 봐야 할 항목만 모은다. 사업자번호가 없거나, 부가세 여부가 불명확하거나, 납기가 빠졌거나, 수량×단가와 금액이 안 맞는 경우다.
좋은 결과물은 정보를 한꺼번에 다 보여주는 파일이 아니다. 중요한 건 앞에 두고, 상세는 분리하고, 애매한 건 확인할 수 있게 따로 모아 둔 파일이다.
그대로 가져다 쓰는 요청 프롬프트
아래를 프로젝트 폴더의 request.md에 저장해 두고, Codex에게 이 기준으로 작업하라고 지시하면 된다.
현재 프로젝트 폴더를 기준으로 작업해 주세요.
input 폴더 안에는 여러 업체에서 받은 견적서 파일이 들어 있습니다.
파일 형식은 xlsx, xls, pdf가 섞여 있을 수 있습니다.
목표는 input 폴더의 모든 견적서를 읽어서,
output 폴더에 하나의 견적서 통합 정리 엑셀 파일을 생성하는 것입니다.
결과 파일명은 output/견적서_통합정리.xlsx 로 저장해 주세요.
최종 엑셀 파일은 다음 4개 시트로 구성해 주세요.
1. 견적비교표
2. 업체정보
3. 품목내역
4. 확인필요
[1] 견적비교표 — 업체별 1행씩.
컬럼: 업체명, 견적일, 총 견적금액, 부가세 포함 여부, 납기,
운송비 포함 여부, 결제조건, 주요 비고, 확인상태, 원본 파일명
세부 품목은 이 시트에 펼치지 말고 품목내역 시트에 정리해 주세요.
[2] 업체정보 — 견적서에서 확인 가능한 정보만, 못 찾으면 "확인필요".
컬럼: 업체명, 사업자번호, 대표자, 담당자, 연락처, 이메일, 주소,
원본 파일명, 확인상태
[3] 품목내역
컬럼: 업체명, 품목명, 규격/모델, 수량, 단위, 단가, 금액, 비고,
원본 위치, 확인상태
품명·제품명·상품명은 품목명으로, 모델명·규격·사양은 규격/모델로,
견적가·판매단가·단가는 단가로 통일해 주세요.
[4] 확인필요 — 사람이 다시 확인할 항목만.
컬럼: 원본 파일명, 업체명, 위치, 문제유형, 확인내용, 권장 조치
아래는 반드시 확인필요로 분류:
- 사업자번호·담당자·연락처 등 업체 정보가 없는 경우
- 부가세 포함 여부가 불명확한 경우
- 납기 조건이 없는 경우
- 운송비 포함 여부가 불명확한 경우
- 수량×단가와 금액이 맞지 않는 경우
- PDF에서 표 추출이 불완전한 경우
- 업체명 또는 품목명이 불명확한 경우
값이 명확하지 않으면 임의로 추측하지 말고 "확인필요"라고 적어 주세요.
결과 엑셀은 필터를 쓸 수 있게 표 형태로, 금액 컬럼은 숫자 형식으로,
확인필요 항목은 눈에 띄게 표시해 주세요.
작업이 끝나면 읽은 파일 목록, 생성한 파일 경로, 확인필요 항목 수를 요약해 주세요.
자동화의 핵심은 ‘확인할 곳’을 줄이는 것
이 작업에서 Codex가 맡는 건 파일을 읽고, 정보를 찾아내고, 기준에 맞춰 엑셀을 만드는 일이다. 사람이 할 일은 마지막 확인이다. 특히 금액·납기·부가세·운송비·연락처처럼 업무에 직접 영향을 주는 항목은 한 번 더 보는 게 안전하다.
자동화 전에는 모든 파일을 열고, 내용을 찾고, 표에 옮기고, 다시 계산해야 한다.
자동화 후에는 정리된 엑셀을 열고 확인이 필요한 시트부터 보면 된다. 업무의 중심이 입력에서 검토로 옮겨간다. 견적서 정리는 눈에 띄는 대형 업무는 아니지만, 반복될수록 시간을 많이 잡아먹는 종류다.
하나의 견적서를 확인하고 업무양식의 엑셀에 기입하는 과정은 단순한 복사·붙여넣기 작업이다. PDF 문서 같은 경우에 텍스트 인식이 안 되어서 직접 타이핑해야 했던 시기도 있었다. 그렇게 옮기기 작업을 하다가 괜찮은 단가를 제시한 업체는 눈에 들어오게 된다. 하지만 업체 정보가 많이 누락된 상황이면 직접 업체에 전화하여 정보를 채워가야 할 경우도 생긴다. 그러다가 다시 입력작업으로 돌아오게 되면 어디까지 입력했는지 찾아야 하는 상황이 생기기도 하고.
업무의 맥락을 이어주는 중재자의 역할로써 자동화 선택은 괜찮은 이유이기도 하다.
사실, Claude로도 된다
솔직히 이 작업은 Codex만의 것이 아니다. Claude Code나 Cowork에서도 같은 폴더 방식으로 똑같이 된다. 그런데 나는 이 정리에 Codex를 골랐다. 거창한 이유는 없다.
평소 일반 업무에서 GPT를 자주 쓴다. 이미지를 만들거나 문서에 붙일 시각화 자료를 뽑을 때 손이 자연스레 그쪽으로 간다. 그러다 보니 이미 OpenAI 쪽에 들어와 있는 셈이고, 토큰 여유도 그쪽이 더 넉넉하다. 견적서 정리처럼 판단보다 반복이 많은 작업은, 아껴 쓰고 싶은 도구보다 여유 있는 도구로 돌리는 게 마음이 편하다.
도구 선택에 정답은 없다고 본다. 같은 일을 여러 도구가 할 수 있다면, 결국 내 작업 흐름과 그날의 사정에 맞는 쪽으로 가게 된다. 이 정리에 Codex를 쓴 건 그 정도의 이유다.
한 줄 요약
좋은 자동화는 사람을 빼는 게 아니라, 반복되던 정리를 줄이고 사람이 판단할 곳을 더 잘 보이게 만든다. Codex로 견적서를 정리할 때 중요한 건 “파일을 정리해 달라”는 짧은 요청이 아니라, 폴더 구조를 잡고 입력·출력을 나누고 어떤 시트와 컬럼으로 정리할지 먼저 알려주는 것이다. 조용히 시간을 줄이고, 실수를 줄이고, 검토할 곳을 분명하게 만드는 자동화다.