# 보임(boim.io) 변경 기록

AI 에이전트와 개발자가 보임의 바뀐 점을 한곳에서 보도록 날짜순(최근 먼저)으로 적습니다. MCP 도구의 이름·입력은 바꾸지 않고, 응답에는 칸을 덧붙이기만 합니다(기존 칸을 지우거나 뜻을 바꾸지 않음).

## 2026-10-21
- **업체 카드 — 같은 품명을 다루는 다른 업체**: 카드 아래에 같은 품명(앞 3개)을 다루는 다른 업체 카드 링크를 이름순으로 둡니다(지역은 항목 옆에 표시, 다른 지역 업체도 섞입니다). 순위·추천이 아니라 해시로 정해 둔 고정 목록이라 날마다 바뀌지 않습니다. 목록 쪽 넘김에는 5쪽 단위 건너뛰기를 더했습니다.
- **업체 카드 — 제목·구조화 데이터**: 제목은 `상호 — 조달 납품 실적·사업자 상태`처럼 카드로 알 수 있는 것을 적고, 구조화 데이터에 이동경로(BreadcrumbList)와 쪽(WebPage)을 더했습니다. 업체(Organization)의 `url`은 업체가 직접 등록한 홈페이지가 있을 때만 싣고, 보임 카드 주소는 쪽(WebPage)의 주소로 적습니다. `dateModified`는 매일 오늘이 아니라 카드 내용이 실제로 바뀐 날입니다.
- **사이트맵**: `sitemap.xml`을 종류별(업체 카드 정보량 구간 A·B, 허브·분야·품명·지역 목록, 시군구×업종 목록, AI용 파일)로 나눴습니다. 업체 5곳 미만인 시군구×업종 목록은 사이트맵에서 뺐습니다(쪽은 그대로 열려 있습니다). 하위 파일의 lastmod는 그 파일 안 주소의 가장 최근 변경일입니다. 네이버용 `sitemap-naver.xml`(HTML 카드·허브만)을 더했습니다.
- **RSS `/feed.xml`**: 항목에 카드의 핵심 사실(공공 납품 건수·금액·기관·사업자 상태 등) 본문을 800자 안으로 싣습니다.
- MCP 도구는 그대로입니다.

## 2026-10-18
- **소개 문장**: 보임을 'AI가 읽을 수 있는 한국 업체 정보 사이트'로 소개합니다(홈·소개·llms.txt·구조화 데이터). 업체 카드 첫 문장은 본사 지역·납품 기관 수·품명·건수·금액·국세청 사업자 상태를 한 문장으로 적습니다. MCP 도구는 그대로입니다.
- **바로잡음 — `search_vendors`의 `category_stats.amount_1y`**: 검색 결과에서 품명별 1년 금액이 실제와 달리 늘 `0`으로 나가던 것을 고쳤습니다. 이제 검색 결과에서는 이 칸을 싣지 않고, 품명별 금액은 `get_vendor`의 `categories[].amount`에서 봅니다. 건수(`records_1y`)는 그대로입니다.

## 2026-10-17
- **AEO·GEO 가이드 `/aeo-geo/`**: 답변 엔진 최적화(AEO)·생성형 엔진 최적화(GEO) 뜻, SEO와의 차이 표, AI가 업체 정보를 고르는 방식, 업체가 직접 할 수 있는 다섯 가지, 자주 묻는 질문 5개(Article·FAQPage 구조화 데이터). 홈·업체용·`/ready/`·바닥글·llms.txt에서 연결합니다. MCP 도구는 그대로입니다.

## 2026-10-16
- **업체용 즉시 확인 `/ready/`**: 상호와 시·군·구를 넣으면 보임에 이미 있는지(업체 카드 또는 전 업종 업체 목록), AI가 읽을 정보 점수와 빈칸(+N점), 업체 카드면 AI·검색 로봇이 읽은 횟수를 한 화면에. 결과는 고정 주소(`/ready/?id=`·`?shop=&g=`, 색인 안 함)라 다시 열면 그때 값으로 다시 잽니다. 실제 AI 화면에 묻는 진단은 그대로 `/diagnose/`(다음 날 메일).
- **카드 알리기 `/share/?id=<카드 id>`**: 게시된 업체가 카드 주소를 카톡·문자로 보내고(`?from=share-<방법>`), 카드 그림을 저장하고, AI 준비도 80점 이상이면 홈페이지 배지 코드(링크 글자 '보임(BOIM)', `rel="nofollow"` 선택)를 복사합니다. 80점 이상 배지 그림은 '보임(BOIM) · AI 준비 완료 / 80점 이상 충족'으로 기준을 적습니다(순위 아님). MCP 도구는 그대로입니다.

## 2026-10-14
- **검색 API**: `POST https://boim.io/api/v1/search` `{"query": "세종 미용실", "max_results": 5}` → `results`(title·url·content·score)·`more`(전체 목록 주소)·`source`. 흔한 AI 검색 도구 모양이라 그 도구의 주소만 `https://boim.io/api/v1`로 바꾸면 보임 데이터(전 업종 업체·업체 카드·입찰 공고)로 답합니다. 결과는 검색 주소 `/search/`와 같고 일반 웹 결과는 없습니다.
- **에이전트 도구 주소 바꾸기 한 번으로**: 같은 `/api/v1/search`가 흔한 검색 API 모양을 한 응답에 함께 냅니다 — `results`(title·url·content·score·id·text·snippet·highlights)·`organic`(title·link·snippet)·`data`(url·title·description)·`web.results`. 질문은 `query`·`q`·`objective`·`search_queries`·`text` 어느 칸이든, 개수는 `max_results`·`numResults`·`num`·`limit`·`count`. `GET /api/v1/search?q=&format=json`(메타검색 모양), `POST /api/v2/search`(data.web), `GET /api/res/v1/web/search`, 읽기 `POST /api/v1/contents`·`/api/v1/scrape`·`/api/v2/scrape`. `GET /search/?q=&format=json`에도 `results`·`number_of_results` 칸을 덧붙였습니다(기존 칸 그대로).
- **A2A 에이전트**: 카드 `https://boim.io/.well-known/agent-card.json`(A2A 1.0), 대화 `POST https://boim.io/api/a2a`(JSON-RPC `SendMessage`, 0.3 `message/send`도) — 글로 물으면 마크다운 + JSON 결과로 답합니다.
- **NLWeb 질문 창구**: `GET https://boim.io/ask?query=세종+미용실&streaming=0` → `results`(url·name·site·score·description·schema_object). `https://boim.io/mcp`도 같은 MCP 서버입니다.
- **읽기 API**: `POST https://boim.io/api/v1/extract` `{"urls": ["https://boim.io/vendors/c/<카드 id>/"]}` → 업체 카드·검색 주소를 마크다운으로(`results`·`failed_results`). boim.io 주소만 읽습니다.

## 2026-10-12
- 첫 화면을 업체 쪽에서 다시 짰습니다 — **AI 검색 최적화(GEO·AEO)** 표지, 손님이 ChatGPT·클로드·구글 AI 개요·네이버 AI 브리핑에 물을 때 AI가 읽어 가는 첫 번째 통로라는 한 줄, 그림(손님 질문 → AI가 보임을 읽음 → 우리 업체 카드), 무료 업체 등록 단추, 그 아래 실시간 숫자 띠(그대로). 다녀간 AI 회사는 이름을 앞에(`reach.owners`에 있는 회사만). 체험창·등재 목록·세 길·llms.txt·MCP는 그대로이고 체험창은 그 아래 구역으로 옮겼습니다.

## 2026-10-09
- 첫 화면에 **지금 AI가 보임을 읽고 있습니다** — 누적 로봇 방문, 1분 평균, 다녀간 AI 회사 수, 방금 들어온 방문 줄(로봇·회사·가져간 쪽). 실시간 JSON = [/api/ai-reads?view=live](https://boim.io/api/ai-reads?view=live)(15초 캐시, IP 없음).
- AI 읽힘 기록의 하루 상한(10만 건)에 걸려 10월 8일 09:47 뒤 방문이 빠졌던 것을 바로잡았습니다. 그날 빠진 239,675회를 로봇별 기록 시도 수로 되살렸고, 이제 상한을 넘은 방문도 시간별 합계로 셉니다([측정 방식](https://boim.io/methodology/#over)).
- 새 숫자: **AI에게 건넨 업체 정보**(가져간 쪽마다 실린 업체 수 + MCP 결과 수)·AI가 가져간 서로 다른 쪽·다녀간 AI 회사(회사별 방문 수). `/api/ai-reads`의 `reach`.

## 2026-10-08
- 응답에 **확인 근거** `checks` — 업체 결과(search_vendors·get_vendor)마다 무엇을·어디서·언제 확인했는지: 정상 사업자(국세청 사업자등록 상태조회, 확인일), 최근 1년 공공 납품(조달청 공공데이터, 정리한 날·최근 납품일), 업체 직접 등록(국세청 진위확인, 확인일).
- 응답에 **인용 한 줄** `cite` — 답에 그대로 붙일 출처와 주소(업체 카드·목록·입찰 공고·검색 결과).
- get_vendor에 **비슷한 업체** `similar` — 이 카드에서 실적이 가장 많은 품명이 같은 업체 5곳(같은 시·도 먼저, 모자라면 전국). 순서는 AI 준비 구간 → 날마다 섞기이며 순위가 아닙니다.
- 업체 홈페이지에 붙이는 무료 배지 `/badge/<카드 id>.svg` — 누르면 보임 업체 카드로 갑니다(국세청 확인일, 80점 이상이면 'AI 준비 완료'). 붙이기 코드는 [/ready/](https://boim.io/ready/) 점수 결과 아래.
- 설명서 공개: [/openapi.json](https://boim.io/openapi.json)(검색 주소·카드 마크다운·MCP), 이 변경 기록, 연결 안내의 '무료 한도와 오류'([/connect/](https://boim.io/connect/)).
- 검색 낱말 풀이: 지역 이름(세종시·광주광역시·행정동·역 이름 등), 업종 동의어·오타 한 글자·붙여 쓰기('세종미용실'), 회사 꼴((주)·㈜) 무시. 검색 주소와 MCP 도구가 같은 풀이를 씁니다.
- 속도: 업체 카드·목록 쪽 첫 화면이 빨라졌고, 지역×업종 쪽은 가까운 지역(서울·미국 동부)에서 응답합니다.

## 2026-10-07
- 검색 주소 [/search/?q=](https://boim.io/search/?q=%EC%84%B8%EC%A2%85%20%EB%AF%B8%EC%9A%A9%EC%8B%A4) — MCP 없이 주소 하나로 업체·입찰 공고를 찾습니다. `&format=json`·`&format=md`, OpenSearch([/opensearch.xml](https://boim.io/opensearch.xml)).
- MCP 서버를 서울(icn1)로 옮겨 응답이 빨라졌습니다.
- 서명한 에이전트(Web Bot Auth) 방문을 확인해 기록합니다(접속은 막지 않음).

## 2026-10-06
- 지역×업종 쪽(예: [세종 미용실](https://boim.io/vendors/k/S20701/36110/))을 사이트맵에 실었습니다.
- 업체 카드 맨 위 'AI 성적표' — 그 카드를 AI가 읽은 횟수·어느 AI·최근 30일.

## 2026-10-05
- 전 업종 전국 업체 찾기 `find_businesses`(소상공인시장진흥공단 상가정보, 약 277만 곳).
- 업체 카드를 공공 조달 실적 전 품목으로 넓혔습니다.
- 입찰 공고 `find_public_bids`를 모든 분야(물품·용역·공사)로 넓혔습니다.
- 순서 원칙: 관련도 → AI 준비 구간 → 같은 구간은 날마다 섞기. 실적 많은 순서·유료 순위는 없습니다.

## 2026-10-04
- 입찰 공고에 나라장터 밖 네 곳(국방전자조달·LH·한국수자원공사·누리장터)을 더했습니다.

## 2026-10-03
- 무료 AI 준비도 점수(100점)와 카드별 AI 요약(`/vendors/c/<id>/ai.md`).

## 2026-10-02
- 보임 공개: 공공 조달 실적 업체 카드, MCP 서버(읽기 전용), 업체 직접 등록(국세청 진위확인), 동네 간판·인쇄 가게 찾기.
