Reddit

My open-source sales agent went from 500 to 10k downloads the past two weeks without me doing any marketing

오픈소스 영업 에이전트 Harvey, 마케팅 없이 2주간 다운로드 500건에서 1만 건으로

Harvey는 Claude Code나 Codex 구독을 이용해 잠재 고객을 찾고, 개인화한 이메일을 작성한 뒤 답장까지 처리하는 로컬 영업 에이전트입니다. 기본 설정은 발송 전 승인 절차를 두며, 작성자는 별도 API 사용료 없이 운영하는 구조와 수집 신호·메일 발송 안전장치를 공개했습니다. 다만 실제 매출 성과는 제시되지 않았습니다.

에디터 노트

현재 공개된 근거로 확인되는 성과는 다운로드와 저장소 반응이지 영업 매출이 아닙니다. 작성자도 초기 테스트에서 약 20건의 문의를 받았지만 답장을 제대로 확인하지 않았다고 밝혔고, 실제 매출과 전환율은 향후 데모에서 공개하겠다고 했습니다. 제품 설계에서 설득력 있는 부분은 업체별 신호와 근거를 저장하고 기본 발송을 승인형으로 둔 점입니다. 반면 구독을 활용해 API 비용을 없애도 구독 사용량 한도와 메일 계정 비용은 남습니다. 댓글에서 제기된 것처럼 관심을 보인 잠재 고객에게 자동 응답을 계속 맡길지는 별도 운영 판단이 필요합니다. 작성자는 승인 모드를 거친 뒤 자동화를 켜도록 안내하지만, 수정 없이 통과하는 비율이 90%라는 기준은 댓글에서 제시됐을 뿐 원문에는 측정 방법이나 검증 자료가 없습니다.

AI 요약

Harvey는 사용자가 정한 고객 조건에 맞춰 사업체를 찾고, 각 업체의 공개 웹사이트에서 영업 신호를 수집한 뒤 맞춤형 이메일을 작성하는 오픈소스 영업 에이전트입니다. Claude Code 구독을 기본으로 사용하며 Codex를 선택할 수도 있습니다. 모델 호출은 이미 보유한 구독 한도 안에서 이뤄지고 별도 API 키나 토큰당 API 요금은 발생하지 않는다고 프로젝트는 설명합니다. 메일 발송에는 별도의 메일 계정이 필요합니다.

구독 기반 모델 호출과 주기 실행

Harvey는 기본적으로 15분마다 깨어나 사용량 한도를 확인하고 다음 작업을 결정한 뒤 결과를 기록합니다. 답장 처리, 캠페인 발송, 이메일 초안 작성, 잠재 고객 발굴 순으로 우선순위를 정하며, 이 순서는 모델이 아니라 코드로 결정합니다. 프로파일링과 발송 대기열 처리도 주기적으로 실행됩니다. 사용량 한도를 읽지 못하면 자체 일일 호출 예산으로 전환하고, 설정한 구독 사용량 비율을 넘기지 않도록 호출을 늦춥니다.

모델은 판단이 필요한 개인화, 이메일 작성, 답장 분류에 쓰입니다. 업체 검색, 웹사이트 정보 추출, 신호 우선순위 결정, 발송 전 검사는 가능한 한 일반 코드로 처리합니다. 작성자는 토큰을 계속 소모하는 에이전트 루프 대신 이 방식을 택해 구독형 요금제에서 실행한다고 설명합니다. Claude와 Codex 모두 도구 사용을 막은 격리 실행 환경에서 호출하며, 프로젝트 설명에 따르면 Claude는 사용자의 설정 파일과 플러그인 등을 불러오지 않습니다. Codex도 설정과 도구 상태를 검사하고 예상하지 못한 환경이면 호출을 중단합니다. 지원하는 CLI 버전과 운영체제에는 제한이 있습니다.

사용자가 확인하는 영업 신호

Harvey는 23개 신호를 제안하지만 사용자가 확인하기 전에는 수집하지 않습니다. 신호에는 검색 순위, 웹사이트 유무, Google Business Profile 등록 상태, 광고 집행 여부, 온라인 예약 기능, 기술 스택, 채용 공고, 의사결정자 정보와 이메일 검증 상태 등이 포함됩니다. 사용자는 신호를 확정하거나 제외한 뒤 조건을 조합해 잠재 고객군을 만듭니다. 예를 들어 마케팅 대행사를 이용하고 Google 광고를 집행하지만 온라인 예약은 제공하지 않는 업체를 묶을 수 있습니다. 업체별 근거와 관측 시점도 함께 저장합니다.

업체 발굴에는 OpenStreetMap 같은 무료 데이터원이나 DataForSEO, Serper 같은 유료 서비스를 선택할 수 있습니다. 프로젝트가 제시한 가격은 DataForSEO Business Listings 기준 업체 1,000곳당 약 0.37달러이며, 발굴 단계는 비용을 추정한 뒤 사용자가 실행하도록 설계했습니다. 기본 OpenStreetMap은 무료지만 점포가 없는 지역 서비스 업체를 충분히 찾지 못할 수 있다고 안내합니다. 업체 웹사이트는 브라우저나 모델 호출 없이 공개 페이지를 최대 세 번 요청해 조사합니다. DNS 응답과 리디렉션을 검사해 로컬·사설·메타데이터 주소로 요청하지 않도록 제한한다고 설명합니다.

관측 데이터와 에이전트 구성

데이터베이스는 SQLite를 사용하며 업체의 사실을 고정 열로 두는 대신 observations 테이블에 행으로 저장합니다. 각 관측에는 신호 코드, 값, 신뢰도, 근거 URL, 관측 시점과 실행 ID가 들어갑니다. 같은 신호를 반복 관측해 변화 기록을 남길 수 있고, 신호 코드 목록은 데이터베이스 트리거로 검증합니다. 프로젝트는 이 구조로 신호 추가 때마다 스키마를 바꾸지 않고, SQL에서 조건에 맞는 업체군을 만들 수 있다고 설명합니다.

내부 역할은 Scout, Writer, Sender, Handler, Analyst 다섯 가지입니다. Scout는 조사 결과를 평가하고 개인화하며 Writer는 세 통의 이메일 시퀀스를 작성합니다. Sender는 발송 시점을 관리하고, Handler는 답장을 분류해 대화를 이어갈 초안을 만듭니다. Analyst는 유휴 주기에 성과와 파이프라인을 분석합니다. 영업 지식은 일반 Markdown 파일로 관리하며, 사용자는 문서를 수정해 이메일 어조와 이의 제기 대응 방식을 바꿀 수 있습니다.

발송 승인과 안전장치

기본 발송 방식은 승인형입니다. 모든 초안은 대기열에 들어가며 사용자가 승인해야 전송됩니다. 자동 발송을 켤 수도 있지만 프로젝트는 먼저 수동 승인으로 결과를 확인하도록 안내합니다. 발송 직전에는 모델을 쓰지 않는 검사가 병합 변수 누락, 금지 문구, 길이 초과, 링크 수, HTML 본문, 수신 주소 상태와 데이터베이스 기록의 불일치를 확인합니다. 답장에는 수신 거부 처리, 반송 감지, 반송률 한도에 따른 발송 중단 기능도 있습니다. 자동 발송 중에도 외부 웹페이지나 답장에 담긴 지시문이 이메일에 섞이지 않도록 검사하고, 허용하지 않은 도메인 링크나 내부 지침을 인용한 초안은 대기열에 보류합니다.

대시보드는 로컬 주소에서만 열리며 무작위 토큰으로 보호합니다. 프로젝트는 다른 기기에서 쓰려면 포트를 외부에 공개하는 대신 SSH 터널을 이용하라고 안내합니다. 이메일 수신 거부, 우편 주소, 전송 도메인 준비와 관련한 준수 사항도 문서에 포함합니다. 현재 릴리스는 0.2.1이며, 사람 등록부 기반 정보 보강과 일정 예약 등은 다음 단계로 제시합니다.

Reddit 반응

  • @peazley — 실제로 매출을 올렸나요?
  • @Rare_Guide_9830 — 처음에는 영업 대행사 운영자에게 테스트 이메일을 한 통 보내고, 약 30분 뒤 같은 대화에 저장소 링크를 보내는 방식으로 시험했습니다. 20명가량이 작동 방식이나 설치를 물었지만 답장을 꾸준히 확인하지는 않았습니다. 최근에는 데모용으로 만든 에이전트의 통계와 트래픽, 매출을 공개할 계획이라고 했습니다.
  • @Strong_Teaching8548 — 백링크 영업 도구를 만들면서 답장을 자동 처리했는데, 따뜻한 대화를 스크립트가 맡아버렸습니다. 그래서 자동 응답은 끄고 직접 받은 편지함에서 대응하며, 연락이 끊긴 잠재 고객에게 보내는 한 번의 후속 알림만 자동화하고 있습니다.
    • @Rare_Guide_9830 — 동의합니다. 최근에는 처음부터 그런 방식으로 시작하도록 바꾸고 전체 자동화를 켤 때 경고를 강화했습니다. 몇 주간 승인 모드로 쓰고 수정 없이 통과하는 비율이 약 90%에 도달한 뒤 자동화를 권한다고 했습니다.
  • @erdonmez — 승인 단계는 유용한 경계입니다. 연락처와 초안을 만들 때 출처와 개인화 근거를 보여주고, 수신 제외 목록과 도메인별 전송 한도도 표시하면 자동 발송 전에 무엇이 나갈지 파악하기 쉽습니다.
    • @Rare_Guide_9830 — 동의하며 해당 부분을 업데이트했다고 답했습니다.
  • @QuanTradin — 영상 제작자들이 소개하기 전 Google 검색으로 유입된 것은 드문 일이라며 어떤 검색어에서 노출됐는지 물었습니다.
    • @Rare_Guide_9830 — 법률 AI 회사 Harvey와 이름이 같은 덕을 봤을 수 있다고 답했습니다. 영상이 퍼진 뒤에는 시청자들이 검색해 저장소를 찾았고 검색 순위도 올랐다고 설명했습니다.
    • @QuanTradin — Harvey의 검색 트래픽을 얻은 것은 운이라 반복하기 어렵지만, 다음 출시에서도 영상으로 검색을 유도하는 전략은 재현할 수 있다고 말했습니다.
  • @shanehiltonward — 로컬 모델도 지원하나요?
    • @Rare_Guide_9830 — 로컬 모델은 완전 자동화에 필요한 성능이 부족하다고 판단해 지원을 제거했다고 답했습니다. 사용자가 직접 맞춤화할 수는 있다고 덧붙였습니다.

원문: GitHub / 번역·요약: Trawling