중소기업 지원사업 텔레그램 알림

소개

업무상 중소기업 지원사업 정보를 자주 확인해야 하는데, 기업마당에서 매일 보내주는 뉴스레터 메일을 일일이 열어서 관심 지역(전남) 공고를 찾아내는 게 번거로웠습니다. 전국 대상 공고와 전남(전남광주) 지역 공고만 골라 봐야 하는데, 매번 눈으로 스크롤하며 걸러내는 시간이 아까워서 이 필터링을 자동화하고, 결과만 매일 아침 텔레그램으로 받아보고 싶었습니다.

진행 방법

사용 도구: Claude Code(CLI), 기업마당 오픈API, Python, GitHub Actions, Telegram Bot API

처음엔 "이메일을 파싱하면 되겠다"고 생각했는데, Claude가 뉴스레터의 원본 데이터가 기업마당 공식 오픈API로도 제공된다는 걸 웹서치로 찾아내고 실제로 호출해서 응답 구조까지 검증해줬습니다. 덕분에 불안정한 이메일 파싱 대신 API에서 바로 구조화된 데이터를 받아오는 방식으로 설계했습니다.

전체 흐름:

  1. 기업마당 오픈API 인증키 발급 (신청 페이지에서 직접 진행)

  2. Python 스크립트가 매일 API를 호출해 최신 지원사업 목록을 가져옴

  3. 지역/발행기관 정보를 기준으로 "전남" 관련 + "전국 대상" 공고만 필터링

  4. 이미 보낸 공고는 제외(중복 방지)하고 새 공고만 텔레그램 봇으로 전송

  5. GitHub Actions로 매일 07시(KST) 자동 실행 — 별도 서버 없이 클라우드에서 스케줄 실행

사용한 프롬프트 (핵심만 발췌)

  1. (최초 요청, 뉴스레터 원문과 함께)

"이것은 중소벤처기업부에서 기업마당 최신 중소기업지원 정책정보 모음 이라는 제목으로 보내주는 메일이야. 메일에 있는 최신지원사업들 중에서 [전남광주] 지역표시가 되어 있거나, 전국 모두 해당이 되어서 지역표시가 없는 새로운 지원사업들에 대해 스크롤링을 해서 매일 아침 텔레그램으로 지원정보 뉴스를 받아보고 싶어. 어떻게 자동화할지 세부적으로 검토해서 차근차근 진행방법을 알려줘"

  1. "진행해줘"

  2. "bizinfo.go.kr에서 본인 명의 API 키 발급 자세히 알려줘"

  3. "GitHub에 bizinfo-telegram-notifier 레포지토리 만들었어, 이 폴더 push해줘"

  4. (실제 운영 중 필터 오류 발견 후) "잘 실행되네. 지원사업 검색범위를 수정해야 할 듯. 사업공고 주체가 충청남도 세종특별자치시와 같이 전남광주통합특별시가 아닌 다른 지역에서 올리는 지원사업은 제외해줘"

  5. "다지역 협업사업은 포함해줘"

  6. "내가 관심이 있는 부분은 전남이야. [광주] 만 표기된 것은 제외해줘"

핵심 코드 — 지역 필터링 로직

코드를 보여주는 컴퓨터 화면의 스크린샷

GitHub Actions 스케줄 (매일 07:00 KST 자동 실행, 서버 불필요)

하얀 화면에 쓰여진 프로그램의 이미지

한국어로 된 문자 메시지의 스크린샷

결과와 배운 점

  • 결과: 매일 아침 별도 조작 없이 전남(전남광주) 지역 + 전국 대상 지원사업만 텔레그램으로 자동 수신 중입니다. 노트북을 꺼둬도 GitHub Actions가 클라우드에서 알아서 실행되기 때문에 완전히 손이 안 갑니다.

  • 배운 점:

    • 뉴스레터를 파싱하기보다, 그 뉴스레터가 어디서 데이터를 가져오는지(원본 오픈API)부터 찾는 게 훨씬 안정적이고 깔끔한 접근이었습니다.

    • "지역 표시가 없으면 전국 공고"라는 단순 가정이 실제로는 틀렸습니다. 지자체가 올린 공고인데 제목에 지역 태그가 안 붙은 경우가 있어서, hashtags(정규화된 지역코드)와 jrsdInsttNm(발행기관명)을 같이 봐야 정확하게 걸러진다는 걸 실제 데이터를 직접 뜯어보고서야 알았습니다.

    • GitHub Actions만으로 "24시간 도는 서비스"를 만들 수 있다는 걸 체감했습니다. 굳이 별도 서버(VPS)를 빌릴 필요가 없었습니다.

  • 시행착오:

    • 처음엔 제목의 [지역] 표시만 보고 필터링했는데, 충남/세종처럼 표시가 아예 없는 지자체 공고가 새어 나가고, 반대로 [전남]/[광주]처럼 다르게 표기된 진짜 전남 공고가 걸러지는 문제가 있었습니다 → API 응답의 해시태그·발행기관 필드를 직접 뜯어보고 규칙을 다시 짰습니다.

    • 텔레그램 봇 토큰을 실수로 채팅에 그대로 붙여넣었다가, 보안상 토큰을 재발급하는 해프닝이 있었습니다. (API 키·토큰은 채팅에 남기지 말고 바로 GitHub Secrets 같은 안전한 곳에만 등록하는 게 좋습니다.)

  • 도움이 필요한 부분: 딱히 막힌 곳은 없었지만, 지역 분류 기준(전남 vs 광주 vs 전남광주 통합)이 완전히 정형화돼 있지 않아서, 앞으로 새로운 케이스가 나오면 필터를 조금씩 더 다듬어야 할 것 같습니다.

  • 앞으로의 계획: 지금은 단방향 알림만 오는데, 나중에 텔레그램 봇에 /오늘공고, /검색 키워드 같은 명령어를 추가해서 필요할 때 바로 조회할 수 있게 만들어보고 싶습니다.

도움 받은 글 (옵션)

3
2개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 오후,
읽고 바로 써먹을 AI 소식만