ChatGPT가 내 브랜드를 인용했는지 알려주고 대응 방안을 제시하는 오픈소스 CLI를 만들었다.
출처: Dev.to
사용자들이 구글 대신 ChatGPT와 Perplexity에 질문하기 시작했습니다. 그래서 불편한 질문이 나옵니다: 누군가 AI 엔진에 ““에 가장 좋은 도구는 뭐야?” 라고 물었을 때, 내 제품이 답변에 등장하나요? 대부분의 창업자는 전혀 모릅니다. 저도 마찬가지였는데, 직접 측정해 보기 전까지는요—그리고 그 차이는 제가 예상했던 것과는 전혀 달랐습니다.
그래서 우리는 이를 측정하기 위한 CLI를 만들었습니다. 이름은 aeo-platform이며, MIT 라이선스를 갖고, 런타임 의존성이 전혀 없고, 완전히 로컬에서 실행됩니다. 이 글은 5분 버전입니다: 설치하고, 도메인을 지정하고, 차이를 확인하면 됩니다. 정확한 명령어와 우리 제품 중 하나에 적용한 실제 전·후 수치를 보여드리겠습니다.
용어 정리: AEO(Answer Engine Optimization)는 AI 답변에 인용되는 것을 목표로 하는 SEO의 젊은 형제라고 생각하면 됩니다—SERP 순위가 아니라 AI 응답 안에 브랜드가 언급되는 것이죠. 어떤 사람들은 이를 GEO라고 부르기도 합니다. 같은 분야입니다.
TL;DR — 세 가지 명령
npm install -g aeo-platform
export OPENAI_API_KEY="sk-proj-..." # 필수
export GEMINI_API_KEY="AIzaSy..." # 필수
aeo-platform init --yes --brand=YOURBRAND --domain=YOURDOMAIN.COM --auto \
&& aeo-platform run \
&& aeo-platform report
init은 카테고리를 자동으로 탐지하고 세 개의 상업용 구매자 질의를 로컬 .aeo-tracker.json에 기록합니다. run은 각 엔진에 질의를 보내고 답변을 점수화합니다. report는 브라우저에서 열 수 있는 단일 HTML 보고서를 생성합니다. 전체 설치는 1초 이내에 끝나며(의존성 트리를 해결할 필요 없음) 모든 결과는 aeo-responses/YYYY-MM-DD/ 아래 디스크에 저장됩니다—호스팅 대시보드로 전송되는 데이터는 없습니다.
OpenAI와 Gemini 키는 반드시 필요합니다(두 모델을 교차 검증해 허위 브랜드 언급을 필터링합니다). Anthropic과 Perplexity 키는 선택 사항이며, 각각 보고서에 한 열을 추가합니다.
실제 측정 내용
단일 run은 공식 REST API를 통해 네 개의 엔진에 구매자 질의를 전송합니다—스크래핑도, 독점 블랙박스 점수도 없습니다:
| 엔진 | 모델 | 유형 |
|---|---|---|
| ChatGPT (OpenAI) | gpt-5-search-api | 웹 검색 |
| Gemini (Google) | gemini-2.5-flash | 웹 검색 |
| Claude (Anthropic) | claude-sonnet-4-7 | 주로 학습 데이터 |
| Perplexity | sonar-reasoning | 웹 검색 |
각 엔진·질의 셀에 대해 브랜드가 답변 텍스트에 나타나는지, 인용된 출처에만 나타나는지, 전혀 나타나지 않는지를 기록하고, 네 가지 신호를 0–100 통합 가시성 지수 (UVI) 로 합산합니다: 존재감(35%), 감성(25%), 순위(20%), 인용(20%). 가중치는 lib/report/visibility-index.js에 정의되어 있으며, 실행 중에 데이터가 없는 신호는 다른 신호에 비례해 재정규화됩니다. 또한 0‑LLM 비용으로 크롤링 가능성 감사를 수행합니다(12개의 알려진 AI 봇—GPTBot, ClaudeBot, PerplexityBot 등—이 사이트를 실제로 읽을 수 있는지 여부)와 오프페이지 권위 신호(위키피디아, 레딧, 깃허브, 위키데이터)를 체크합니다.
CI 친화적인 종료 코드는 다음과 같으며, 이 때문에 저는 이를 주간 크론에 연결했습니다:
0 점수가 안정적이거나 향상됨
1 점수가 regressionThreshold 를 넘어 하락 → 알림
2 모든 체크에서 언급이 0개 → 첫 날 정상
3 모든 제공자가 오류 발생 → 키/결제 확인
측정은 쉬운 절반—대부분의 도구가 멈추는 지점
AI 가시성 대시보드를 구매하면 아무도 알려주지 않는 사실이 있습니다: “어디서 보이지 않는가”를 알려주는 차트는 “다음에 무엇을 해야 하는가”를 알려주지 않습니다. 여러분은 6개의 막대 그래프를 할 일 목록으로 변환해야 하는데, AEO를 직업으로 하지 않는다면 그 변환 자체가 가장 어려운 부분입니다.
그래서 aeo-platform이 두 번째로 하는 일은 바로 할 일 목록을 자동으로 생성하는 것입니다. 점수를 만든 동일한 run은 JSON 브랜드 컨텍스트 블록도 내보냅니다—가시성 지수, 엔진별 인용 변화, 주요 경쟁자, 인용 격차, 크롤 매트릭스, 권위 신호 등. 이 JSON을 여러분이 이미 구독하고 있는 ChatGPT/Claude/Gemini 채팅에 붙여넣고 30일 로드맵을 요청하면, 반환된 내용은 여러분의 격차에 맞춰집니다: 실행이 식별한 특정 경쟁자, 엔진이 인용한 특정 URL, 먼저 강화해야 할 가장 약한 엔진 등.
저는 호스팅된 AEO 공급자가 이런 기능을 제공하는 것을 본 적이 없습니다. 그 이유는 구조적인데, AI에 붙여넣는 플랜은 대시보드의 방어벽을 무너뜨리기 때문입니다. JSON을 자체 AI 채팅에 가져가면 공급자의 UI는 목적지가 아니게 됩니다. 오픈소스는 반대의 인센티브를 가집니다—데이터를 제공하고, 여러분이 어디든 가져가면 승리합니다.
실제 전·후 (우리 제품에 적용, 가정 없음)
가상의 차트를 보여드리지는 않겠습니다. 우리는 TypelessForm(음성‑to‑폼 위젯)이라는 자체 제품에 대해 4주간 3개의 실제 구매자 질의(예: “2026년 최고의 음성 폼 작성 도구”)를 사용해 이 루프를 실행했습니다. 아래 모든 수치는 2026‑04‑23부터 2026‑05‑25까지의 실제 aeo-platform 보고서에서 나온 것입니다.
시작점: 12개 체크(4엔진 × 3질의) 중 33% 존재감. 헤드라인 수치 자체보다 형태가 더 중요했습니다—한 엔진은 모든 질의에서 언급이 0개였고, 다른 엔진은 접근 가능 수준이었습니다. 엔진별 비대칭이 바로 두 시간을 어디에 투자할지 알려주는 포인트이며, 단일 복합 점수는 이를 숨깁니다.
플랜이 먼저 제안한 내용: 가장 높은 레버리지를 가진 미션은 홍보가 아니라 구조적이었습니다—H2 헤딩 아래에 40~60단어 답변 캡슐을 추가하라는 것이었습니다. 네 엔진 모두 같은 헤딩‑앵커 단락을 참조하므로, 한 번의 작업으로 12개 셀 모두의 추출 가능성을 동시에 높일 수 있습니다. 플랜은 또한 실제로 드러난 경쟁자(AnveVoice, 우리 7회 언급 대비 5회 언급)도 명시했고, 크롤링 가능성이나 스키마는 건드리지 말라고 했습니다—이미 해결된 부분이었으니까요. “뭘 건너뛰어야 하는가”를 알려주는 플랜도 “뭘 해야 하는가”를 알려주는 플랜만큼 가치가 있습니다.
재측정 후 변화:
| 지표 | 시작 | 종료 (2026‑05‑25) |
|---|---|---|
| 전체 존재감 | 33% (04‑23) | 58% |
| 통합 가시성 지수 (UVI) | — | 65 / 100 |
| Gemini 적중률 | 1 / 3 (05‑18) | 3 / 3 |
| Claude 적중률 | 1 / 3 (05‑18) | 0 / 3 (퇴보) |
존재감이 25포인트 상승했으며, 마지막 주에 +16 포인트가 추가되었습니다. Gemini는 3개 질의 중 2개를 놓치던 상황에서 이제 모두 인용합니다.
가장 교훈
