[일주일프/07] 국가지원사업 공고 안내 슬랙 봇

예전같았으면 탄생하지 못했을 소프트웨어 덕분에 인간이 편해지는 유익이 더 커질 것을 믿습니다.
💡
'일주일프'나와 내 주변 사람을 위한 유용한 프로그램을 매주 1개씩 만들어서 소셜 미디어에 공유하는 프로젝트입니다. 2026년에 잡은 가장 중요한 목표이기도 합니다.

한줄 요약: IRIS, k-startup 두 군데서 새로 올라온 지원사업 공고를 슬랙에 올려주는 봇을 만들었습니다.

저는 이 일을 하기 전까진 한국에 지원사업이 이렇게 많은지 몰랐습니다. 특정 시기에는 하루 수십개씩 공고문이 올라오는데, 코르카 오퍼레이션 팀에서 일일이 공고 목록을 훑어보며 지원할 만한 사업을 추려내고 계시더군요. 다른 일에 치여서 체크하는 걸 잊기도 하고요.

그래서 코르카 내부 AX의 일환으로, 이러한 업무 부담을 줄이는 봇을 0.1 버전으로 만들었습니다.

  • 담당자와 짝 작업 하며 기존 업무 플로우 파악. 대상 사이트 2개의 동작 방식 이해, 크롤러 구현용 프롬프트 작성, 동작 테스트, 형식 다듬기 등
  • 2개 스크립트 통합하여 슬랙 메시지 보내는 깃헙 워크플로우로 제작. 표시 정보 및 이후 인터랙션 방식 고민, 예외 처리, 후속 확장 계획 등 논의
  • 사용 가이드 슬랙 공지문 작성 및 발송

첫 프롬프트는 대략 이랬습니다. 하나 만드는 동안 다른 쪽을 만들었고요.

주어진 목록 페이지 URL에서 '등록일자'가 특정 날짜인 모든 아이템을 뽑아내는 스크립트를 구현하고 싶습니다. 
- '접수예정'과 '접수중' 탭을 모두 봐야 함 
- 1페이지부터 찾기 시작. 필요시 다른 페이지로 넘어감

URL: https://www.iris.go.kr/contents/retrieveBsnsAncmBtinSituListView.do

구상하는 방법은 DOM parsing을 agent-browser로 해서 정적인 스크립트 하나를 만들고, 그걸 매일 슬랙 봇으로 돌려서 알림을 보내주는 것입니다. (0시 1분마다 전날 올라온 모든 아이템의 제목과 URL을 추출)
- 참고로 제가 알고 있는 문제는, '접수예정'과 '접수중' 페이지의 URL이 같고, 목록 페이지에서 상세 페이지로 들어가도 URL이 같습니다. DOM 을 보면 자바스크립트 함수를 호출해서 이동하는 식입니다. 대신 상세 페이지로 들어가서 '링크 공유'를 누르면 대략 이런 식으로 링크가 나옵니다. https://www.iris.go.kr/contents/retrieveBsnsAncmView.do?ancmId=018398&ancmPrg=ancmPre 즉 `ancmId` 만 알아내면 상세 페이지 링크를 구성할 수 있는 것으로 보입니다.

이걸 위해 일단 크롤링이 잘 되는지 확인해야겠는데, 스크립트 하나 간단히 짜서 확인해주실래요? 모호한 점이 있으면 말씀해주세요.

지금은 단방향으로 작동하기 때문에 엄밀히는 봇이 아닙니다. 접근성을 높인 수준에 불과해요. 조만간 '우리에게 적합한 공고 추천'을 하는 에이전트 기능을 추가하고, 유저 피드백을 받아 점점 더 좋은 추천을 해주도록 확장 예정입니다. 지원 확정하면 지원기간을 캘린더에 등록해주고 지원서 초안을 hwp로 작성해주는 것도 가능하겠죠.

어제 저녁에 퇴근하면서 필요성에 대해 듣고, 오늘 바로 짝 작업해서 완성. 크롤러와 슬랙용 스크립트와 깃헙 액션 구현은 예전부터도 할 수 있었지만, 걸리는 시간의 단위가 너무 달라서 아직도 실감이 안 납니다. 2년 전이었다면 안정적 구현까지 이틀은 걸렸을 (그래서 한없이 우선순위가 미뤄졌을) 일을 2시간만에, 그것도 다른 작업 하는 와중에 비동기로 해낼 수 있게 됐으니까요. 할 수 있음을 알면, 할 수 있습니다.

이렇게 구현 비용이 한없이 낮아졌기 때문에 Slop도 많이 생기고 있지만, 예전같았으면 탄생하지 못했을 소프트웨어 덕분에 인간이 편해지는 유익이 더 커질 것을 믿습니다.

26-03-13 업데이트: 담당자 댓글 기반으로 필터링 규칙 자동 반영

매일 아침에 전날 공고를 훑어서 추천 공고를 슬랙에 올려줍니다. 이걸 담당자가 검토해보고 '확실히 아닌' 것들을 간단하게 평가해서 메시지로 남기고 있었고, 제가 에이전트에게 수동으로 '이 댓글 참고해서 필터링 로직을 개선하라'고 하고 있었는데요.

생각해보니 제가 하는 일이 어차피 그냥 에이전트에게 시키는 게 다라서... 매일 특정 시간에 사람의 신규 댓글을 확인하여, Codex가 규칙을 업데이트하는 PR을 자동으로 올리고 머지하게 했습니다. 인간의 판단이 필요하면 자동 머지를 하지 않고요. 잘 작동해서 기분이 좋네요 😄