← 프로젝트 목록
완성

B2B 잠재고객 발굴 에이전트

공공데이터에서 조건에 맞는 한국 기업을 찾아, 홈페이지·뉴스로 검증한 뒤 구글시트에 정리해주는 개인용 도구. 매일 정오에 10곳씩 알아서 채운다.

시작 2026-07-30 · #B2B세일즈 #자동화 #에이전트 #구글시트 #PRD
완성작 보러가기 →

🎯 4주 챌린지 최종 발표 슬라이드 (12장) — 2026-08-13 발표 왜 만들었나 · 다섯 단계로 만든 과정 · 제일 어려웠던 세 가지와 그 원인 · 오늘 정오 첫 자동 실행 결과

🧭 발표 슬라이드 — “AI알못, 클로드 코드와 대화로 만들었다” (11장) — 2026-08-14, GPTers 23기 AI 온보딩 관점 버전 절반은 학습허브 프레임워크(진도표·가이드↔결과물) · 절반은 이 프로젝트의 구조와 결과물

4주 챌린지 기간 — 1주차 기획(7/23~7/29) · 2주차 제작(7/30~8/5) · 3주차 완성(8/6~8/12) · 4주차 회고·발표(8/13~8/17) 매일 학습일지를 쓰고, 그중 보여줄 만한 걸 사례글로 다듬어 아래 작업 기록에 쌓았다.

지금 상태 (2026-08-13 기준)

매일 낮 12시에 사람 없이 회사 10곳을 조사해 구글시트에 채운다. 오늘이 첫 자동 실행이었고, 30곳 → 40곳이 됐다.

시트에 쌓인 회사40곳 (유효 38 + 제외 판정 2)
회사 1곳당 승인0회 — 사람이 자리를 떠도 진행된다
오늘 API 사용42회 / 상한 300회
프로필 순환우선순위대로 D→E→F→A→C→B 순서로 돌았다

이걸 1차 완성으로 본다. 다만 아래 두 가지는 분명히 해둔다.

무엇을

회사의 특정 솔루션(○○ 솔루션, 사명 비공개)을 에이전트가 이해하고, 그 솔루션에 맞는 잠재고객 프로필을 스스로 세운 뒤, 그 프로필에 맞는 한국 회사를 찾아내고 정보를 검증·보강해 구글시트에 채워주는 미니 에이전트.

이 에이전트의 핵심은 이메일 작성이 아니라 “제대로 된 잠재고객을 찾아내는 것”이다. 아래 기능 요구사항도 이 순서(난이도 높은 순)로 정리했다.

지금까지는 잠재고객 조사를 마케팅 에이전시에 회사 1개당 약 1,500원 단가로 (예를 들어 1,000개 outbound call을 진행하면 1천5백만원을 지불) 아웃소싱을 했었다. 또는 기업DB를 수십만원을 주고 산 후, 사람이 회사 홈페이지를 일일이 방문해 정보를 보완해왔다. 비용이 크고 정보도 금방 낡는다. 반복되는 조회·필터링·입력 작업을 AI가 대신하게 하고 싶다.

누구를 위해

체이스 혼자 쓰는 개인 도구. (→ 4주 로드맵에서 이미 정한 내용)


어떻게 (기능 요구사항 — 난이도 높은 순)

1. ○○ 솔루션 이해

에이전트가 잠재고객을 찾기 전에, 먼저 ○○ 솔루션이 어떤 문제를 풀어주는 제품인지, 어떤 회사에 value add가 되는지를 학습한다. 이 이해가 얕으면 뒤의 모든 단계(프로필 설정·후보 발굴)가 다 부정확해진다.

2. 잠재고객 프로필(ICP) 여러 개 설정 — 하나로 뭉뚱그리지 않기

“이런 회사가 잠재고객”을 하나로 뭉뚱그리지 않고, 여러 프로필로 다양하게 나눈다. (예: “제조업 중 스마트팩토리 막 도입 시작한 곳” / “이미 경쟁 솔루션을 쓰고 있어서 교체 수요가 있는 곳” 처럼 프로필마다 노리는 각도가 다를 수 있음) 각 회사가 시트에 채워질 때 어느 프로필에 해당하는지도 같이 남긴다.

3. 후보 회사 발굴 + 정보 검증·보강(enrich) — 이 프로젝트에서 제일 어려운 부분

처음엔 “회사명을 입력하면 조회”로 계획했지만, 에이전트가 후보를 직접 찾고, 찾은 정보를 검증·보강까지 해야 한다는 게 확정됨. 어려운 이유는 공개된 정보만으로는 한계가 있어서 — 공공데이터만으로는 “진짜 이 회사가 잠재고객이 맞는지”까지 판단하기 부족하다. 그래서 여러 단계로 교차 확인한다.

  1. 1차 리스트업: 공공데이터(업종·규모 조건)로 프로필에 맞는 후보 회사를 넓게 뽑는다.
  2. 홈페이지 확인: 후보 회사의 홈페이지에 들어가 실제 사업 내용이 프로필과 맞는지 확인한다.
  3. 뉴스 검색으로 보강: 그 회사가 언급된 뉴스를 검색해 최신 동향(투자·신사업·이슈 등)으로 정보를 검증·보강한다.
  4. 이 세 단계를 거쳐야 “그럴듯한 회사 목록”이 아니라 제대로 된 prospect가 나온다.

실행 규칙:

4. 구글시트에 정보 채우기 — 많을수록 좋음

정보는 최대한 많이 채운다. 특히 “어디서 이 정보를 얻었는지”의 출처를 항상 URL과 함께 별도 컬럼으로 남긴다 (나중에 사람이 직접 확인할 수 있어야 하므로).

구분항목
기본 정보회사명 · 업종 · 주소 · 사업자상태
규모 정보직원수 · 매출액 · 설립일
잠재고객 프로필어느 ICP 프로필에 해당하는지 + 왜 이 회사가 잠재고객인지 한 줄 설명
공공데이터 출처어떤 데이터셋/API에서 가져왔는지 + 출처 URL (별도 컬럼)
홈페이지 정보홈페이지에서 확인한 사업 내용 요약 + 홈페이지 URL (별도 컬럼)
뉴스 보강 정보검색으로 찾은 관련 뉴스 요약 + 뉴스 URL (별도 컬럼)
담당자 연락처이번 4주는 보류 — 빈 칸 또는 “수동 확인 필요”로 표시 (공공데이터엔 없는 개인정보라 다음 단계 과제)

5. 실행 방식

체이스가 콩콩과의 대화창에서 말로 요청한다. (예: “회사 5개 더 찾아줘”) 터미널 명령어를 몰라도 됨.


구현 방법 — 2026년 7월 기준 조사

가장 쉽고 많이 쓰는 최신 방식을 조사한 결과, 두 가지 선택지가 있었다.

  1. 구글시트 MCP 서버 연결 ← 선택 구글 클라우드에서 서비스 계정을 만드는 1회성 설정(~20분, 콩콩이 대부분 진행)만 하면, 이후엔 클로드 코드에게 “이 데이터 시트에 추가해줘”처럼 자연어로 말만 하면 됨. 클로드 코드를 직접 다루는 학습 목표와도 맞음.
  2. 완전 노코드 관리형 커넥터 (Composio·Porter 등) 가입 → 구글 계정 인증 → URL 복사해서 붙여넣기. 설정은 제일 쉽지만, 구글 접근 권한을 외부 서비스에 한 번 더 맡기게 되어 이번엔 선택하지 않음.

공공데이터 API(data.go.kr, OpenDART 등) 조회는 전용 MCP가 없어서, 클로드 코드로 직접 스크립트를 짠다.

참고 자료

재확인 (2026-07-30, 세부계획 세우기 전 다시 조사)

세부계획을 짜기 전에 “지금도 이게 제일 맞는 선택인지” 다시 조사했다. 결론: 직접 연결을 그대로 유지. 다만 요즘 나오는 튜토리얼은 Composio·Merge 같은 관리형 커넥터(외부 회사가 구글 인증을 대신 보관·관리) 쪽이 더 많다는 걸 확인했다 — 설정은 10~30분으로 더 짧지만, 구글 접근 권한을 외부 회사에도 주게 된다. 체이스는 이 트레이드오프를 다시 확인한 뒤 직접 연결을 재확정했다. 구글 클라우드 콘솔의 정확한 클릭 순서는 지금 미리 적어두지 않는다 — 설치 방법은 자주 바뀌므로, 실제 진행하는 날 콩콩이 최신 공식 문서로 다시 확인하며 안내한다.

추가 참고 자료

결과 — 계획은 MCP였지만, 실제로는 gws CLI를 쓴다 (2026-08-13 정리)

위에서 고른 건 MCP 서버 연결이었는데, 실제 운영은 gws CLI로 하고 있다. 두 단계로 그렇게 됐다.

시점무슨 일
8/3MCP 서비스계정 방식이 권한 오류로 막혀 어쩔 수 없이 gws로 우회 (원인은 위 Day 1 참고)
8/12승인 0회를 만들면서 의도적으로 gws를 전용 스크립트 안에 가두는 쪽을 선택

결과적으로 CLI 쪽이 더 안전해졌다. 이유는 세 가지다.

  1. 시트 하나로 묶인다agent/sheet-write.mjs에 시트 ID가 박혀 있어 다른 시트는 건드릴 수 없다. MCP 도구는 어느 시트든 쓸 수 있어서 매번 승인이 필요했다.
  2. 안전장치를 붙일 자리가 생긴다 — 값이 있는 행이면 거부, 17칸이 아니면 거부, 쓴 뒤 다시 읽어 검증. 스크립트 안이라 가능한 것들이다.
  3. 승인 0회 — 규칙 한 줄(Bash(node agent/sheet-write.mjs *))로 허용된다.

다만 한계가 분명하다. gws는 이 컴퓨터에 설치·로그인돼 있어서 동작하는 것이다. 이 에이전트를 남에게 넘기려면 그 설치 안내부터 만들어야 한다. (mcp-gsheets는 1.10.0으로 버전 고정한 채 남아 있지만 이 흐름에서는 호출하지 않는다 — 8/11에 자동 업데이트된 1.10.1이 세션을 통째로 죽인 뒤 고정해둔 것)


세부계획 — 실행 계획 (2026-07-30 작성, 2026-08-04 3주차 추가)

로드맵의 “만들기” 부분(1주차 나머지 + 2주차)을 하루 단위로 잘게 쪼갠 것. 이전 단계 결과가 다음 단계 재료가 되도록 순서를 짰고, PRD의 “난이도 높은 순” 기능 요구사항을 실행 순서로 풀어냈다.

진행 상황 (2026-08-03 기준): Day 1~9 전부 완료. 원래 2주(근무일 기준)로 잡았던 계획을 하루 만에 다 끝냄.

로드맵 1주차 나머지 — 기반 세팅 + 이해·설계

Day 1 — 구글시트 MCP 서버 연결 세팅 ✅ 완료 (2026-08-03)

⚠️ 원인 규명 (2026-08-13 추가) — 그때는 root cause를 못 찾았는데, 발표 자료를 만들며 기록을 다시 뒤져 찾았다. 두 가지가 겹쳐 있었다.

① 서비스 계정에 시트가 공유되지 않음. 남아 있는 에러 메시지가 그대로 말하고 있었다 — Error: Permission denied / Please ensure the service account has access to the spreadsheet. MCP는 내 계정이 아니라 별도의 로봇 계정으로 접속하고, 그 계정에 공유되지 않은 시트는 존재하지 않는 것과 같다.

② “테스트” 상태 OAuth의 7일 토큰 만료. 게시 상태가 테스트인 OAuth 클라이언트의 갱신 토큰은 7일 뒤 만료된다(구글 공식). 8/1 기록에 동의 화면·테스트 사용자 추가 작업이 남아 있으니 테스트 상태였다는 뜻이다. 8/11에도 Token has been expired or revoked가 재발했다.

왜 그때 못 찾았나 — 화면에 뜬 건 “권한 오류”인데 실제로 바뀐 건 설정이 아니라 시간이었다. 로그 어디에도 “며칠이 지나서”라고 적혀 있지 않다. 근본 해결은 OAuth를 프로덕션으로 전환하거나 서비스 계정에 시트를 공유하는 것.

Day 2 — 공공데이터 API 키 발급 ✅ 완료 (2026-08-03)

Day 3 — ○○ 솔루션 이해 정리 ✅ 완료 (2026-08-03)

Day 4 — 잠재고객 프로필(ICP) 여러 개 설정 ✅ 완료 (2026-08-03)

Day 5 — 공공데이터로 1차 리스트업, 회사 1개로 첫 성공 ✅ 완료 (2026-08-03)

로드맵 2주차 — 시트 자동화 + 정보 보강

Day 6 — 구글시트에 기본 정보 자동으로 채우기 ✅ 완료 (2026-08-03)

Day 7 — 홈페이지 확인 단계 추가 ✅ 완료 (2026-08-03)

Day 8 — 뉴스 검색으로 정보 보강 ✅ 완료 (2026-08-03)

Day 9 — 여러 회사로 확장 + 중복 방지 ✅ 완료 (2026-08-03)

로드맵 3주차 — ICP 판별 로직 강화 + 대량 스케일 자동화 (2026-08-04 추가)

Day 9까지 끝내고 실제로 채운 15개 회사를 검토하다가, 두 가지 근본 문제를 발견해서 3주차를 아래처럼 다시 짰다.

  1. 판별 로직이 얕음: 자동차 판매업(코오롱모빌리티그룹·한성자동차)처럼, 업종 카테고리만 느슨하게 매칭해서 실제로는 안 맞을 수 있는 회사가 잡힘. 제품 자체에 대한 이해가 (체이스도 콩콩도) 아직 충분치 않은 게 근본 원인.
  2. 스케일이 안 됨: 채팅으로 회사를 하나씩 불러 조사하는 지금 구조로는, 수백~수만 개 회사를 조사한다는 목표에 절대 못 미침. 사람 개입(승인·확인)이 회사마다 필요해서 진짜 “자동화”가 아님.

Day 10 — 제품 이해를 함께 깊이 쌓기 ✅ 완료 (2026-08-04)

Day 11 — ICP 판별 로직 강화: 업종 기반 1차 필터 + 제외 기준 수립 ✅ 완료 (2026-08-04)

Day 12 — 2차 정성 검증 체크리스트: “진짜 쓸 수 있는 회사인지” ✅ 완료 (2026-08-04)

Day 13 — 대량 후보 스크리닝 스크립트 (사람 개입 없이 수백~수천 개) ✅ 완료 (2026-08-06)

Day 14 — 2단계 파이프라인: 대량 필터 → 소수만 정밀검증 자동 연결 ✅ 완료 (2026-08-06)

Day 15 — 실제 규모 테스트: 사람 개입 최소로 100개+ 돌려보기 ✅ 완료 (2026-08-06)

3주차 마무리 — 무인 실행을 막던 것들 제거 (2026-08-13 추가)

Day 15까지 끝내고 보니, “사람 개입 2곳”이 남아 있는 한 예약 실행은 불가능했다. 8/10~8/12에 그 둘을 없앴다.

Day 16 — 승인 요청을 0회로 ✅ 완료 (2026-08-12)

Day 17 — 토큰 소모 구조 파악과 절감 ✅ 완료 (2026-08-12)

Day 18 — 매일 정오 예약 실행 ✅ 완료 (2026-08-12, 첫 실행 2026-08-13)

계획이 밀리면

하루치가 계획대로 안 끝나도 괜찮다. 다음 날로 넘기지 말고, 그 자리에서 막힌 걸 콩콩에게 바로 알린다. Day 1~9는 하루 만에 끝냈으니, 3주차(Day 10~15)도 여유를 갖고 진행한다.


처음에 못 정했던 것들 — 어떻게 정해졌나

계획 단계에서 “아직 확정 안 된 것”으로 남겨뒀던 항목들의 결말이다.

그때 미정이던 것지금
어떤 공공데이터 API로 후보를 찾을지OpenDART(기업개황·직원현황·재무제표)로 확정. 회사 1곳당 약 4.4회 호출
한 번에 찾을 회사 수의 상한하루 10곳. 기준은 API 한도가 아니라 토큰 예산이었다
ICP를 몇 개로 나눌지6개(A~F) + 우선순위. 구매자 유형 3가지(①직접고객 ②ISV파트너 ③리셀러)와 함께 씀
홈페이지·뉴스 보강에 걸리는 시간홈페이지는 fetch-site.mjs 요약으로 83%가 한 번에 판단 가능. 브라우저는 실패했을 때만

다음 과제

이번 4주엔 안 한 것

작업 기록

  1. 01 사례Day 1 — "파일에 저장했어요"라는데 못 찾아서 헤맸던 이야기 채팅 속 파일 링크와 내 컴퓨터의 진짜 파일은 다르다는 것, 그리고 마크다운이 뭔지 처음 배운 날. 2026-07-23
  2. 02 사례Day 1 — 학습메이트 콩콩을 만들고, 책 목차로 4주 로드맵을 짰다 인터뷰 3개로 AI 학습메이트를 만들고, 짐작 대신 실제 책 목차를 찾아 나만의 4주 로드맵으로 만든 하루. 2026-07-23
  3. 03 로드맵4주 로드맵 — B2B 잠재고객 발굴 에이전트 만들기 (대상 솔루션 비공개) 완전 초보에서 시작해, 공공데이터로 회사 정보를 자동으로 구글시트에 채워주는 미니 에이전트를 4주 만에 만든다. (대상 회사·제품명은 비공개 처리) 2026-07-25
  4. 04 사례Day 3 — 내 사이트를 처음 실제로 배포했다 (GitHub + Vercel) 코딩 몰라도 계정 두 개 만들고 몇 단계만 거치면 진짜 인터넷 주소가 생긴다는 걸 직접 확인한 날. 2026-07-25
  5. 05 사례Day 3 — 로드맵을 통째로 갈아엎었다: 책 대신 진짜 하고 싶은 일로 로드맵을 새로 만들고 싶다는 한마디로 기존 로드맵을 지우고, 실제 업무 문제에 맞춘 4주 계획으로 다시 짠 이야기. 2026-07-25
  6. 06 사례Day 4 — 실명 유출을 막는 문지기를 직접 만들었다 스터디원과 공유되는 사이트라 실명이 새면 안 되는데, 사람이 매번 확인하지 않아도 되게 Git으로 자동 검사를 만든 이야기. 2026-07-26
  7. 07 사례Day 4 — 반복되는 저장 작업을 나만의 스킬로 자동화했다 스킬과 CLAUDE.md 규칙, 서브에이전트의 차이를 배우고, 매번 반복하던 저장 루틴을 직접 스킬로 만들어본 이야기. 2026-07-26
  8. 08 사례오늘의 일탈 — Hermes AI Agent로 구글 슬라이드 자동 생성 성공기 원래 계획엔 없던 딴짓이었지만, 여러 번의 시행착오 끝에 AI가 구글 슬라이드를 대신 만들어주는 걸 처음 눈으로 봤다. 2026-07-27
  9. 09 회고1주차 회고 — 방향 없이 시작해서, B2B 리드젠 에이전트까지 클로드가 처음이라 뭘 배울지도 몰랐던 8일. 오프모임 한 번으로 목표가 또렷해지고, 그 뒤로 배포·자동화·PRD가 이어졌다. 2026-07-30
  10. 10 개념개념 — 구글시트에 클로드를 연결할 때 나오는 인증 용어들 Day 1 튜토리얼(구글시트 MCP 연결)을 만들다가 나온 OAuth·스코프·커넥터 같은 용어를 쉬운 말로 정리했다. 2026-07-30
  11. 11 사례Day 8 — 로드맵을 PRD로: 예시 보여주며 하나씩 물어봐달라고 했다 로드맵만으론 뭘 만들지 막연했는데, AI한테 하나씩 물어봐달라고 프롬프트를 짜니 실제로 만들 수 있는 PRD가 나왔다. 2026-07-30
  12. 12 사례클로드 커넥터가 안 될 때, 이미 설치해둔 CLI로 우회한 이야기 구글시트 커넥터가 계속 권한 오류로 막혀서, 원인을 찾는 대신 이미 인증돼 있던 gws CLI로 갈아타 일단 진도를 나간 트러블슈팅 기록. 2026-08-03
  13. 13 사례반복 작업을 스킬로 저장하고, 승인 프롬프트까지 줄인 이야기 매번 다시 설명해야 했던 회사 조사 과정을 "스킬"로 저장해 한마디로 반복되게 만들고, 그 과정에서 자꾸 뜨던 승인 프롬프트의 정체를 알아내 안전하게 줄인 기록. 2026-08-03
  14. 14 회고2주차 회고 — 하루 만에 끝낸 로드맵, 그리고 스케일업의 벽 2026-08-06
  15. 15 사례API를 몰아쳤다가 IP 차단당하고, 원인을 진단한 이야기 공공데이터 API를 동시 8개씩 몰아서 불렀다가 접속 자체가 막혔다. "내 키가 문제인지, 접속 자체가 막힌 건지"를 가짜 키로 테스트해서 알아낸 진단 과정과 재발 방지 설정. 2026-08-06
  16. 16 사례자동화 스크립트가 내 데이터 577개를 통째로 지울 뻔한 사고 배치 스크립트를 테스트로 한 번 더 돌렸다가, 애써 모은 577개짜리 결과 파일이 0개로 덮어써지는 사고를 겪었다. 원인과, "이전보다 안 좋으면 저장하지 않는" 안전장치로 고친 이야기. 2026-08-06
  17. 17 사례잠재고객 수만 개를 만들려다 마주친 3가지 현실의 벽 15개 회사로 하는 초기 테스트는 잘 됐다. 그런데 진짜 목표인 "수백~수만 개" 스케일로 가려니, 아직 답을 못 찾은 문제 3가지가 보였다. 전부 안 풀렸지만, 솔직하게 남겨두는 중간 기록. 2026-08-06
  18. 18 사례승인 팝업을 0으로 만들기까지 — 허용 목록을 넓히는 건 답이 아니었다 회사 하나 조사할 때마다 "허용하시겠습니까?" 팝업이 떠서 자리를 못 떴다. 허용 목록을 넓히는 걸로는 안 풀렸고, 결국 통한 건 "감쌀 이유를 없애는 것"이었다. 2026-08-12
  19. 19 회고3주차 — 걱정 3개로 시작해서, 매일 도는 에이전트로 끝난 주 2026-08-12
  20. 20 로드맵발표 완성 기준 — 여기까지 되면 끝 발표까지 24시간 남은 시점에서, 남은 일을 "꼭 필요한 것 / 있으면 좋은 것 / 이번엔 빼는 것"으로 자르고 완성 기준을 한 문장으로 못 박았다. 2026-08-12
  21. 21 사례AI가 만든 발표 자료를 절반 넘게 다시 썼다 — 무엇이 어긋났나 클로드 코드로 발표 슬라이드 초안을 만들었더니 재료는 정확한데 고르는 기준이 내 것이 아니었다. 어긋난 4가지와, 다음엔 초안부터 방향을 맞추는 방법. 2026-08-13
  22. 22 개념개념 — ICP(이상적인 고객 프로필), 그리고 왜 우리는 6개로 나눴나 잠재고객 프로필을 왜 ICP라고 부르는지, 교과서는 하나로 정의하라는데 이 프로젝트는 왜 6개로 쪼갰는지. 2026-08-13
  23. 23 회고4주 회고 — "공부 먼저 해야 쓸 수 있다"고 믿었다 2026-08-13
  24. 24 사례AI알못이 4주 만에 매일 도는 에이전트를 만든 방법 — GPTers 23기 AI 온보딩 후기 클로드 코드는 코딩 공부부터 해야 쓸 수 있다고 생각해 켜보지도 못했다. 진도표를 따라 매일 하나씩 대화로 만들었더니, 4주 뒤 매일 정오에 혼자 도는 B2B 리드젠 에이전트가 생겼다. 2026-08-14
  25. 25 회고4주 회고 — 스터디그룹과 학습허브가 준 체계 2026-08-14