회사 이름만 입력하면 끝! Python으로 B2B 고객사 조사 자동화하기

회사 이름만 입력하면 끝! Python으로 B2B 고객사 조사 자동화하기


소개

B2B 영업을 하다 보면 미팅 전 고객사 조사에 매번 30분~1시간을 쏟게 됩니다. 회사 홈페이지 확인, 뉴스 검색, 경쟁사 파악, 산업 트렌드 조사, 접근 전략 수립... 매번 같은 패턴의 리서치를 반복하죠.

이 반복 작업을 Python 스크립트 하나로 자동화했습니다. 회사 이름만 입력하면 6가지 항목(회사 개요, 최근 뉴스, 경쟁사 분석, 산업 트렌드, 마케팅 인사이트, 영업 접근 포인트)을 웹 검색 기반으로 조사하고, 마크다운 리포트를 자동 생성합니다.

무료 API(Google Gemini) 를 활용하기 때문에 비용 부담 없이 누구나 바로 쓸 수 있습니다. (하지만 그래서 할당량이 금방 소진되어 실제 결과를 보지는 못했습니다.. ㅠㅠ)


진행 방법

사용한 도구

항목

사용 기술

코드 생성

Claude Code (CLI)

언어

Python 3

AI 모델

Google Gemini 2.0 Flash (무료)

웹 검색

Google Search Grounding

API 키 발급

Google AI Studio (무료, 신용카드 불필요)

과정

Claude Code에게 자동화 요구사항을 전달하고, 스크립트 생성 → Gemini API 연동 → 테스트까지 대화형으로 진행했습니다.

처음에는 Claude API(유료)로 구현했다가, 비용 문제로 Google Gemini API(무료)로 전환했습니다. Claude Code가 API 변경, 패키지 설치, 환경변수 설정, 에러 대응까지 한 번에 처리해 주었습니다.

사용한 프롬프트

Claude Code에게 전달한 핵심 프롬프트:

아래 내용의 자동화 프로그램을 만들고 싶어.
회사 이름만 입력하면 다음 정보를 자동으로 수집하고 리포트를 생성:
1. 회사 개요 (사업 분야, 규모, 위치 등)
2. 최근 뉴스 및 동향 (최근 3개월)
3. 주요 경쟁사 분석
4. 산업 트렌드
5. 디지털 마케팅 인사이트
6. 영업 접근 포인트 제안

비용 문제 발생 시:

Antrophic API는 과금이 되는 것 같아. 다른 방법으로 구현할 수 없을까?
→ Claude Code가 Google Gemini 무료 API로 자동 전환

최종 코드 전문

#!/usr/bin/env python3
"""
고객사 조사 자동화 도구
B2B 영업을 위한 고객사 조사를 자동화하는 Python 스크립트
Google Gemini API (무료) 사용
"""

import sys
import os
import time
from datetime import datetime

from google import genai
from google.genai import types
from google.genai.errors import ClientError


def check_api_key():
    """API 키 설정 여부 확인"""
    api_key = os.environ.get("GEMINI_API_KEY")
    if not api_key:
        print("❌ GEMINI_API_KEY 환경변수가 설정되지 않았습니다.")
        print()
        print("해결 방법:")
        print('  export GEMINI_API_KEY="your-api-key-here"')
        sys.exit(1)
    return api_key


def build_research_prompt(company_name: str) -> str:
    """고객사 조사용 프롬프트 생성"""
    today = datetime.now().strftime("%Y년 %m월 %d일")

    return f"""당신은 B2B 영업 전문 리서처입니다. "{company_name}"에 대한 고객사 조사 리포트를 작성해주세요.

오늘 날짜: {today}

다음 항목들을 웹 검색을 통해 조사하고, 한국어로 상세한 리포트를 작성해주세요:

## 조사 항목

1. **회사 개요**: 사업 분야, 설립연도, 직원 수, 매출 규모, 본사 위치, 대표이사, 주요 서비스/제품
2. **최근 뉴스 및 동향** (최근 3개월): 신규 서비스 출시, 인수합병, 투자 유치, 인사 변동, 파트너십 등
3. **주요 경쟁사 분석**: 직접 경쟁사 3-5개, 각 경쟁사의 강점/약점, 시장 포지셔닝 비교
4. **산업 트렌드**: 해당 산업의 최신 트렌드, 규제 변화, 기술 동향
5. **디지털 마케팅 인사이트**: 온라인 존재감, 마케팅 채널, 콘텐츠 전략, SNS 활동
6. **영업 접근 포인트**: 잠재적 페인 포인트, 협업 기회, 제안 가능한 솔루션, 접근 전략

## 출력 형식

마크다운 형식으로 작성하되, 다음 구조를 따라주세요:

# {{회사명}} 고객사 조사 리포트

> 작성일: {today}
> 작성 도구: 고객사 조사 자동화 도구 v1.0

---

## 1. 회사 개요
## 2. 최근 뉴스 및 동향
## 3. 주요 경쟁사 분석
## 4. 산업 트렌드
## 5. 디지털 마케팅 인사이트
## 6. 영업 접근 포인트
## 7. 다음 단계 체크리스트

중요: 각 섹션은 구체적인 데이터와 수치를 포함해야 합니다. 추측보다는 검증된 정보를 우선으로 작성하고, 확인이 필요한 정보는 명시적으로 표시해주세요."""


def research_company(company_name: str) -> str:
    """Google Gemini API를 사용하여 고객사 조사 수행"""
    api_key = os.environ.get("GEMINI_API_KEY")
    client = genai.Client(api_key=api_key)

    prompt = build_research_prompt(company_name)

    print(f"🔍 '{company_name}' 조사를 시작합니다...")
    print("   Google 검색 및 AI 분석 중...")
    print()

    # Gemini API 호출 (Google Search 그라운딩 사용, 재시도 포함)
    max_retries = 3
    response = None

    for attempt in range(max_retries):
        try:
            response = client.models.generate_content(
                model="gemini-2.0-flash",
                contents=prompt,
                config=types.GenerateContentConfig(
                    tools=[types.Tool(google_search=types.GoogleSearch())],
                    temperature=0.7,
                    max_output_tokens=8192,
                ),
            )
            break
        except ClientError as e:
            if "429" in str(e) and attempt < max_retries - 1:
                wait = 60 * (attempt + 1)
                print(f"   ⏳ API 할당량 초과. {wait}초 후 재시도합니다... ({attempt + 1}/{max_retries})")
                time.sleep(wait)
            else:
                raise

    report_text = response.text

    # 사용량 정보 출력
    if response.usage_metadata:
        meta = response.usage_metadata
        print(f"   📊 토큰 사용량: 입력 {meta.prompt_token_count:,} / 출력 {meta.candidates_token_count:,}")

    print("   ✅ 조사 완료")
    print()

    return report_text


def save_report(company_name: str, report: str) -> str:
    """리포트를 파일로 저장"""
    output_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "outputs")
    os.makedirs(output_dir, exist_ok=True)

    timestamp = datetime.now().strftime("%Y%m%d_%H%M")
    filename = f"{company_name}_고객조사_{timestamp}.md"
    filepath = os.path.join(output_dir, filename)

    with open(filepath, "w", encoding="utf-8") as f:
        f.write(report)

    return filepath


def main():
    """메인 실행 함수"""
    if len(sys.argv) < 2:
        print("사용법: python research_client_simple.py <회사명>")
        print()
        print("예시:")
        print('  python research_client_simple.py "무신사"')
        print('  python research_client_simple.py "쿠팡"')
        print('  python research_client_simple.py "토스"')
        sys.exit(1)

    company_name = sys.argv[1]
    check_api_key()

    print("=" * 50)
    print("  고객사 조사 자동화 도구 v1.0")
    print(f"  대상: {company_name}")
    print("  모델: Google Gemini 2.0 Flash (무료)")
    print("=" * 50)
    print()

    report = research_company(company_name)
    filepath = save_report(company_name, report)

    print()
    print("=" * 50)
    print("  📄 리포트가 생성되었습니다!")
    print(f"  📁 저장 위치: {filepath}")
    print("=" * 50)


if __name__ == "__main__":
    main()

설치 및 실행 방법 (3단계)

Step 1. 패키지 설치

pip install google-genai

Step 2. Google AI Studio에서 무료 API 키 발급 후 환경변수 설정

echo 'export GEMINI_API_KEY="발급받은-키"' >> ~/.zshrc
source ~/.zshrc

Step 3. 실행

python3 research_client_simple.py "무신사"

셸 함수로 등록하면 더 간단하게 쓸 수 있습니다:

# ~/.zshrc에 추가
연구() {
  python3 ~/Claude_automation/research_client_simple.py "$1"
}

이후 연구 "쿠팡" 한 줄로 실행 가능합니다.


결과와 배운 점

결과

  • 30분~1시간 걸리던 고객사 조사가 명령어 한 줄, 1~2분으로 단축

  • 매번 동일한 구조의 리포트가 생성되어 일관된 품질 유지

  • Google Search Grounding 덕분에 최신 뉴스와 실시간 데이터 반영

  • 비용: 무료 (Gemini 무료 티어)

시행착오

  1. 처음에는 Claude API(유료)로 구현 → 실행할 때마다 $0.05~0.10 비용 발생 → Google Gemini 무료 API로 전환

  2. 무료 API 할당량 초과 에러(429) → 자동 재시도 로직 추가로 해결

  3. 프롬프트 설계 → 단순히 "조사해줘"만으로는 불충분. 역할(B2B 리서처) + 구체적 항목 6가지 + 출력 형식을 명확하게 지정해야 좋은 결과가 나옴

꿀팁

  • 프롬프트에 오늘 날짜를 명시하면 AI가 최신 정보를 우선적으로 검색합니다

  • 출력 형식을 마크다운 구조로 지정하면 그대로 문서로 활용 가능합니다

  • 셸 함수(연구)로 등록해두면 터미널에서 한 줄로 실행할 수 있어 편리합니다

앞으로의 계획

  • Phase 2: 리포트 기반 콜드메일 초안 자동 생성 (A/B 테스트용 여러 버전)

  • Phase 3: 미팅 준비 자료 자동 생성 (PowerPoint 슬라이드, 경쟁사 비교표)

  • Phase 4: CRM 연동으로 리서치 → 메일 → 미팅 전체 플로우 자동화

그보다도 ... 우선 지금 만든 것이 작동될 수 있도록 다른 방법 찾아보기 !


도움 받은 글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요