{
  "markdown": "# sole-search — 소상공인 지원사업 조사 스킬\n\n> 치킨집·카페·미용실·온라인셀러… **이미 장사하고 있는 사장님**을 위한 정부·지자체 지원사업\n> 조사 AI 스킬. 소상공인24·기업마당의 모집중 공고를 전수 수집하고, 가게 프로필(업종·지역·업력·\n> 직원수·매출)로 자격을 판정해 **\"오늘 신청할 것\"** 부터 마감순으로 보고서를 만든다.\n\n[English](README.en.md) · 형제 스킬: [ir-search](https://github.com/djfksjd/ir-search) (아이템·창업팀용)\n\n## 무엇이 다른가\n\n| | 네이버 검색 | sole-search |\n|---|---|---|\n| 커버리지 | 유명한 사업 위주 | 정의된 공식 소스(소상공인24·기업마당 + 판판대로·서울신보·보조금24) **모집중 전수** + 수집·검토 카운트 공개 |\n| 자격 판정 | 직접 공고 읽어야 함 | 업종·업력·직원수·매출·지역 기준 5단계 판정 (`확인됨`/`조건부`/`확인 필요`/`신청 불가`/`사업전환 후보`) |\n| 첨부파일 | PDF·HWP 직접 열람 | PDF/HWPX 자동 추출 검증 — 못 읽은 첨부는 \"확인 필요\"로 정직하게 보고 |\n| 정책자금 | 흩어진 정보 | 융자계획 공고 원문 기반 + \"갚아야 하는 돈\" 명시, 회차 상태 확인처 안내 |\n| 재조사 | 처음부터 다시 | diff 모드 — 신규·변경(금리·마감)·소멸만 증분 보고 |\n\n세 가지 원칙: **조용한 누락 금지** (coverage_manifest 필수) · **추정 금지** (원문에 없으면 '불명') ·\n**허위신청 유도 금지** (\"변형하면 가능\" 프레이밍 없음).\n\n## 설치\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/djfksjd/sole-search/main/install.sh | bash\n```\n\nClaude Code / Codex / agy(Antigravity) / Gemini CLI를 자동 감지해 설치하고, 없으면\n`~/.agents/skills/sole-search`로 클론한다(Cursor·Grok Build 등 파일 기반 호스트용).\n\n수동 설치 (Claude Code):\n\n```bash\nclaude plugin marketplace add djfksjd/sole-search\nclaude plugin install sole-search@djfksjd\n```\n\n## 빠른 시작 — 5분 안에 첫 조사 돌리기\n\n**1. 조사 전용 폴더에서 새 세션을 연다** (보고서·수집 데이터가 이 폴더에 쌓인다):\n\n```bash\nmkdir -p ~/my-shop && cd ~/my-shop && claude\n```\n\n**2. 이렇게 말한다** — 아무거나 한 마디면 스킬이 자동으로 잡힌다:\n\n> \"우리 가게에 맞는 지원사업 찾아줘\"\n\n**3. 첫 사용이면 쉬운 말 인터뷰**(6~9문항)가 나온다. 관공서 용어 없이 아는 대로만 답하면 된다:\n\n> **AI**: 무슨 장사 하세요? 어느 동네예요? 사업자등록은 언제? 직원은 몇 명? …\n>\n> **사장님**: 마포구에서 치킨집 해요. 개인사업자고 2022년 3월에 등록했어요.\n> 4대보험 직원 1명, 알바까지 3명. 소상공인확인서는 없고 작년 매출은 1억~5억 사이.\n> 필요한 건 지원금이랑 가게 시설, 온라인 판매요.\n\n인터뷰를 건너뛰고 싶으면 첫 메시지에 가게 정보를 같이 적어도 된다:\n\n```\n우리 가게 지원사업 찾아줘. 마포구 치킨집, 개인사업자, 2022년 3월 등록,\n4대보험 직원 1명(알바 포함 3명), 소상공인확인서 없음, 작년 매출 1억~5억,\n필요한 건 지원금·시설·온라인 판매.\n```\n\n**4. 기다린다.** 크롤링 2~3분(소상공인24 약 1,700건 + 기업마당 약 1,400건) 후\n전 건 선별·판정을 거쳐 `survey-YYYYMMDD/report.md`가 만들어진다. 첫 전수조사는\n수집보다 선별·상세검증에 시간이 더 걸린다.\n\n**5. 다음부터는 즉시 시작.** 프로필이 `sole-profile.md`로 저장돼 있어\n\"바뀐 것 있나요?\" 확인 한 번이면 바로 조사에 들어간다.\n\n## 이런 걸 물어보면 된다\n\n| 이렇게 말하면 | 스킬이 하는 일 |\n|---|---|\n| \"우리 가게에 맞는 지원사업 찾아줘\" | 전 범위 전수조사 (지원금·정책자금·교육 전부) |\n| \"소상공인 정책자금 알아봐줘\" | 대출·보증 중심 조사 — 한도·금리·거치기간까지 |\n| \"가게 시설개선 지원 뭐 있어?\" | 프로필 needs에 맞춰 조사 |\n| \"지난번 이후 새로 나온 거 있어?\" | **diff 모드** — 신규·변경·소멸만 증분 보고 |\n| \"이 공고 나 되는 거야?\" + 링크 | 해당 공고 원문·첨부 검증 후 판정 |\n\n단, \"예비창업\", \"K-Startup\", \"R&D 과제\", \"우리 아이템\" 같은 **창업·아이템 기반** 탐색은\n이 스킬이 아니라 [ir-search](https://github.com/djfksjd/ir-search)가 맡는다.\n\n## 조사 범위 선택\n\n사용자가 원하는 범위만 조사할 수 있습니다. `scope_plan.py`는 실제 수집 전에\n자동·수동·후보 소스를 구분한 실행계획과 안정적인 `scope_fingerprint`를 만듭니다.\n네트워크·API·LLM을 호출하지 않으므로 토큰이나 외부 쿼터를 소모하지 않습니다.\n\n| 프리셋 | 용도 |\n|---|---|\n| `quick` | 소상공인24·기업마당 핵심 공고만 빠르게 |\n| `focused` | 사용자가 고른 소스 한 곳만 |\n| `recommended` | 자동화된 핵심 소스 전체(권장) |\n| `all_registered` | 현재 등록·검증된 모든 소스 |\n| `all_known` | 정책자금·보증·지역·여성·사회적기업 등 수동·후보 소스까지 계획 |\n| `custom` | `--include`로 지정한 소스만 선택 |\n\n```bash\npython3 skills/sole-search/scripts/scope_plan.py \\\n  --preset recommended --need grant --need facility --need online_sales \\\n  --out survey-20260730/scope-plan.json\n\n# 소상공인24만 확인\npython3 skills/sole-search/scripts/scope_plan.py \\\n  --preset custom --source sbiz24 --out /tmp/sole-scope.json\n```\n\n`all_known`은 정책자금 회차, 지역신보·KOREG, 고용24, 여성기업종합정보포털,\n사회적기업진흥원, 수출바우처, 관광기업지원센터, 중진공·기보 등도 누락 없이\n계획하지만, 자동 수집이 검증되지 않은 소스는 `manual` 또는 `candidate`로 표시합니다.\n부분 수집이나 범위 변경은 종료 공고로 단정하지 않습니다.\n\n## 보고서는 이렇게 나온다\n\n`survey-YYYYMMDD/report.md` 예시 (발췌):\n\n```markdown\n# 우리 가게 지원사업 조사 보고서 (2026-07-20)\n\n## 1. 오늘 신청할 것\n| 사업명 | 혜택 | 마감 | 판정 근거 |\n|---|---|---|---|\n| 서울시 소상공인 스마트기기 지원 | 키오스크 최대 500만원 (자부담 30%) | D-4 | 공고 3p: 서울 소재 개인사업자, 상시근로자 5인 미만 충족 |\n| 온라인 판로 진출 바우처 | 스토어 입점·촬영 지원 300만원 | D-11 | 첨부 PDF 신청자격 전 항목 충족 |\n\n## 2. coverage_manifest\n| 소스 | 수집 | 선별 | 상태 |\n|---|---|---|---|\n| 소상공인24(소진공) | 493/493 | 493 | success |\n| 소상공인24 통합(지자체 포함) | 1,291/1,291 (중복 94) | 1,197 | success |\n| 기업마당 | 1,435/1,435 (96페이지) | 1,435 | success |\n| 소진공 정책자금 회차 접수상태 | — | — | manual (ols 유선·사이트 확인 필요) |\n\n## 3. 💰 받는 돈 (갚지 않는 지원금)\n### 확인됨 (2건) …\n### 확인 필요 (3건) — ○○지원사업: 첨부가 HWP라 자동 추출 불가, 창구 확인 필요 …\n\n## 4. 🏦 빌리는 돈 — ⚠️ 갚아야 하는 돈입니다\n| 상품 | 한도 | 금리(2026-07-20 기준) | 기간 | 취급 |\n|---|---|---|---|---|\n| 소상공인 일반경영안정자금 | 7천만원 | 정책자금 기준금리+0.6%p | 5년(2년 거치) | 소진공 |\n```\n\n핵심 규칙:\n- **coverage_manifest가 반드시 들어간다** — 몇 건을 수집해서 몇 건을 검토했는지 숨기지 않는다\n- **`확인됨`은 공고 원문(첨부 포함)에서 신청자격을 확인했다는 뜻**이지 선정 보장이 아니다\n- 읽지 못한 첨부(HWP 등)가 있으면 그 후보는 절대 `확인됨`이 되지 않는다\n\n## 재조사 (diff 모드)\n\n한 달 뒤 같은 폴더에서:\n\n> \"지난번 이후 새로 나온 지원사업 있어?\"\n\n직전 조사와 비교해 이것만 보고한다:\n\n```\n🆕 신규 12건 — 그중 자격 확인됨 3건\n🔄 변경 2건 — 청년몰 임대지원: 마감 연장(8/1→8/15) · 경영안정자금: 금리 변경(2.0→2.3%)\n❌ 소멸 1건 — 지난번 '확인됨'이던 △△바우처가 마감됨 (기회 소멸)\n✅ 승계 1,240건 — 변동 없음, 직전 판정 유지\n```\n\n가게 정보가 바뀌었으면(이사·직원 증가 등) 승계 없이 전체를 다시 판정한다.\n정책자금과 직전 `확인됨` 항목은 변동이 없어 보여도 접수상태를 재확인한다.\n\n## sole-profile.md — 저장되는 것과 안 되는 것\n\n인터뷰 결과는 현재 폴더의 `sole-profile.md`에 저장된다 (직접 열어 수정해도 된다):\n\n```yaml\n---\nentity_type: individual          # 개인사업자\nbusiness_status: active\nindustry_text: 치킨집 (호프 겸업)\nregistration_date: 2022-03\nregular_employee_count: 1        # 4대보험 기준\nheadcount: 3                     # 알바 포함\nsales_band: 100m_500m\nprovince: 서울\ndistrict: 마포구\nneeds: [grant, facility, online_sales]\n---\n```\n\n**저장하지 않는 것**: 세금 체납 여부, 대출 잔액, 신용점수, 출생연월.\n정책자금 후보가 나오면 그때 \"이 요건 해당되세요?\"로만 묻고 답을 기록하지 않는다.\n\n## 선택 소스: 보조금24 (API 키 등록 시 활성화)\n\n소상공인24·기업마당이 잡는 \"모집 공고\"와 달리, 보조금24는 **공고 형태가 아닌 상시 혜택**\n(공공요금 감면, 소규모 수당, 지자체 개별 혜택 등 1만여 건)을 커버한다. 정부24 사이트는\n크롤링이 허용되지 않아 공공데이터포털 오픈 API로만 접근하며, **무료 API 키를 등록하면\n자동으로 켜지는 선택 소스**다. 키가 없어도 나머지 조사는 전부 정상 동작하고, 보고서에\n\"보조금24: 미활성\"으로만 표시된다.\n\n### API 키 받는 법 (5분, 무료, 자동승인)\n\n1. **공공데이터포털 가입**: https://www.data.go.kr 접속 → 우측 상단 회원가입\n   (네이버·카카오 간편가입 가능) → 로그인\n2. **데이터 찾기**: 검색창에 **\"대한민국 공공서비스(혜택) 정보\"** 검색, 또는 바로\n   https://www.data.go.kr/data/15113968/openapi.do 접속\n3. **활용신청**: 페이지의 **[활용신청]** 버튼 클릭 → 활용목적에 \"소상공인 지원사업 조회\"\n   등 간단히 작성 → 라이선스 동의 후 신청. **자동승인**이라 제출 즉시 사용 가능\n   (개발계정 트래픽 일 10,000건 — 조사 1회에 약 22건이므로 충분)\n4. **키 확인**: 마이페이지 → 데이터 활용 → Open API → 활용신청 현황 → 해당 API 클릭 →\n   **일반 인증키(Encoding 또는 Decoding 어느 쪽이든)** 복사\n5. **키 등록** — 둘 중 하나:\n\n   ```bash\n   # 방법 A: 리포 루트 .env (권장 — ir-search와 같은 키를 공유)\n   #   .env 파일에  DATA_GO_KR_KEY=발급받은_인증키  한 줄. (.gitignore로 커밋 차단)\n\n   # 방법 B: 공용 설정 파일 (ir-search·sole-search 공통)\n   echo \"발급받은_인증키\" > ~/.config/data_go_kr_key && chmod 600 ~/.config/data_go_kr_key\n\n   # 방법 C: 환경변수 (DATA_GO_KR_KEY 권장, DATA_GO_KR_API_KEY 도 인식)\n   export DATA_GO_KR_KEY=\"발급받은_인증키\"\n   ```\n\n   > 같은 data.go.kr 서비스키가 sole-search(gov24)와 ir-search(K-Startup) 양쪽에 재사용됩니다. 키는 스크립트가 직접 읽으며 **로그·에러·명령행에 절대 출력되지 않습니다**. `~/.config/sole-search/api_key` 도 여전히 인식됩니다.\n\n6. 끝. 다음 조사부터 보조금24가 자동 포함된다. 확인하려면:\n\n   ```bash\n   python3 <스킬경로>/scripts/gov24_crawl.py list -o /tmp/gov24.jsonl --filter-target 소상공인\n   # 정상이면 마지막 줄: TOTAL 10979 COLLECTED 250 MATCHED 250 (건수는 시점에 따라 다름)\n   ```\n\n**주의**: 인증키는 비밀번호처럼 다뤄라 — 프로필(`sole-profile.md`)·보고서 폴더·git 리포에\n넣지 않는다(스킬이 자동으로 넣지 않으며, `.gitignore`에도 키 패턴이 등록돼 있다).\n키가 만료·차단되면 조사 시 \"키 확인 필요\" 경고가 나온다 — 포털에서 키를 재발급하면 된다.\n\n## 커버리지와 한계\n\n- **자동(필수)**: 소상공인24(소진공 공고+통합조회), 기업마당 모집중 전체. \"전수조사\"는 이\n  정의된 소스 범위 안에서의 전수이며, 모든 보고서에 소스별 수집·검토 상태가 명시된다\n- **자동(권장)**: 판판대로(온라인판로 세부·수시 모집), 서울신용보증재단(서울 가게 한정 —\n  고용보험료·산재보험료 지원 등 서울시 사업 원출처)\n- **자동(선택)**: 보조금24 상시 혜택 — 위의 API 키 등록 시\n- **수동 안내**: 소진공 정책자금 회차별 실시간 접수상태(ols), 지역신용보증재단 보증상품,\n  미등록 지자체 포털 — `skills/sole-search/references/region-registry.md` 참조\n- **HWP 첨부는 자동 추출이 안 된다** (HWPX·PDF는 된다). 해당 후보는 '확인 필요'로 표기되고\n  원문 링크가 첨부된다 — 정직한 실패가 조용한 오판보다 낫다\n- 크롤링이 차단(403·CAPTCHA)되면 우회하지 않고 해당 소스를 수동확인 절차로 전환한다\n- 이 스킬은 **신청자격 확인**까지만 한다. 선정 가능성·대출 심사 통과를 예측하지 않으며,\n  최종 확인은 접수기관 유선확인을 권장한다\n\n## 자주 묻는 것\n\n**Q. 시간이 얼마나 걸리나?** 첫 전수조사는 크롤링 2~3분 + 선별·상세검증 (전체 십수 분 수준,\n후보 수에 따라 다름). diff 재조사는 변경분만 검증하므로 훨씬 빠르다.\n\n**Q. 어느 지역이든 되나?** 전국 공고 + 소상공인24 통합조회에 연계된 지자체 공고까지 자동.\n연계 안 된 지자체 포털은 보고서에 수동확인 안내로 나온다.\n\n**Q. 폐업했는데 재기 지원도 찾아주나?** 된다 — 인터뷰에서 영업상태를 물으며,\n폐업·재기(희망리턴패키지 등) 트랙도 조사 범위다.\n\n**Q. 왜 어떤 사업은 '확인 필요'인가?** ① 첨부를 못 읽었거나(HWP) ② 프로필 정보로는\n판정이 안 되거나(예: 소상공인확인서 없이 매출 근사치만 있는 경우) ③ 공고 원문이 모호한\n경우다. 각 항목에 \"무엇이 부족한지\"가 같이 적힌다.\n\n## 동작 원리 (요약)\n\n```\n0. 프로필     쉬운 말 인터뷰 → sole-profile.md (원자 필드 스키마)\n1. 수집       sbiz_crawl.py    소상공인24 소진공 공고 + 통합조회(지자체 포함)\n              sources_crawl.py 기업마당 모집중 전체 전 페이지\n              region_crawl.py  판판대로 + 서울신보(서울 프로필)\n              gov24_crawl.py   보조금24 상시 혜택 (API 키 등록 시)\n1.5 선별      LLM이 전 건 검토 → screening.jsonl (감사 가능)\n2. 판정       상세 원문 + 첨부(attach_download.py 다운로드 → attach_extract.py 추출) 검증 → 5단계 판정 + 근거 인용\n3. 보고서     ① 오늘 신청할 것 ② coverage_manifest ③ 💰받는 돈/🏦빌리는 돈/🎓배우고 돕기 ④ 사업전환 후보\n재조사        diff_surveys.py  필드·해시 비교, 프로필 변경 시 전체 재판정\n```\n\n크롤러는 Python 표준 라이브러리만 사용하며 요청 간 최소 0.5초 딜레이를 강제한다.\n판단 로직은 스크립트에 없다 — **수집은 룰베이스, 판정은 LLM.**\n\n## License\n\nMIT\n",
  "bytes": 8678,
  "sha": "0dd89a7c134b4b3425d729e0042501b57aa0bd39848571a6d593373a6ca5be57",
  "repo_slug": "djfksjd/sole-search",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_djfksjd_sole_search_b35e09f7/readme"
}