유지나 님께 · 읽고 그대로 만들 수 있게

집 찾기를 자동 파이프라인으로

네이버 부동산을 매시간 모아서, 내 기준(통근·층·향·예산)대로 LLM이 0~100점을 매기고, 괜찮은 매물이 뜨면 알림을 보낸다. 마음에 드는 집은 중개사 문의 문자와 임장 노트까지 자동으로 준비한다. 이 문서는 그 시스템이 어떻게 돌아가고, 직접 만들려면 뭐가 필요한지 정리한 것이다.

핵심 흐름
수집 → 채점 → 알림 → 컨택
데이터
네이버 · 국토부 · 호갱노노
두뇌
Claude (claude -p)
자동화
매시간 cron
최소 인프라
노트북 + Claude 키
01 · 무엇을 푸는가

사람이 하던 매물 노동을 코드와 LLM에 넘긴다

집을 구할 때 반복되는 일이 있다. 매일 네이버 부동산에 들어가 새 매물이 떴는지 보고, 조건(가격·평수·층·향·통근)이 맞는지 하나씩 비교하고, 괜찮은 집이 보이면 중개사에게 문자를 보낸다. 매물은 빨리 빠지니까 자주 들여다봐야 하고, 비교 기준은 머릿속에만 있어서 매번 다시 따지게 된다.

이 시스템은 그 흐름을 셋으로 나눠 자동화한다. 수집은 코드가 매시간 대신 훑고, 판단은 LLM이 내 기준을 읽어 점수로 환산하고, 결정과 연락은 사람이 추려진 결과만 보고 한다.

02 · 전체 그림

네 단계 파이프라인

핵심 흐름은 네 단계다. 매시간 도는 cron이 ① ~ ④를 자동으로 돌린다. 마음에 드는 매물이 뜨면, 그때부터 중개사 컨택과 임장은 사람이 trigger한다.

Figure · 수집에서 컨택까지 (박스 클릭)
자동 · 매시간 CRON ① 수집 네이버·당근·피터팬 ② 정리·필터 중복제거·지역분류 ③ LLM 채점 claude -p · 0~100 ④ 알림·대시보드 텔레그램·HTML 중개사 문자·임장 사람이 trigger 고른 매물
박스를 클릭해 보세요. 각 단계 설명이 여기 나타납니다.
읽는 법: 점선 박스 안(① ~ ④)은 매시간 cron이 자동으로 돈다. ③ 채점에는 국토부 실거래가·호갱노노 후기를 곁들여 호가 거품까지 같이 본다(선택). 사람은 ④ 대시보드에서 고른 매물에만 개입해, 아래로 내려가 중개사 컨택과 임장으로 넘어간다.
03 · 단계별 동작

수집 · 정리 · 채점 · 알림

수집: 네이버 부동산을 빌린 크롬으로

네이버 부동산에 공개 문서화된 API는 없지만, 웹이 내부적으로 호출하는 매물 목록 엔드포인트가 있다. 지도 영역(bbox)을 주면 그 안의 매물 목록을 JSON으로 돌려준다. 걸림돌은 봇 차단이다. 인증 토큰(JWT)이 발급된 IP에 묶여 있어서, 프록시로 IP를 바꾸면 막힌다.

그래서 상세 정보(중개사 연락처, 입주가능일 등)는 로그인된 크롬 세션을 빌려서 가져온다. 크롬이 띄운 페이지에서 토큰을 꺼내, 같은 브라우저 컨텍스트로 상세 API를 호출하면 IP가 일치해 통과한다. 당근·피터팬 같은 직거래 소스도 옵션으로 붙인다.

소스무엇을 주나접근 방식
네이버 부동산매물 목록 + 상세(중개사·실거래)목록은 직접 호출, 상세는 크롬 세션
국토부 실거래가같은 단지 실제 거래가 (전세가율 체크)공개 API
호갱노노실거주 후기웹 스크랩
당근·피터팬직거래 매물각 소스 API (선택)

정리: 중복 제거와 지역 분류

같은 집이 여러 소스로, 여러 번 올라온다. 그래서 주소+면적+연식+가격을 묶은 지문(canonical key)으로 중복을 합친다. 평수 범위를 벗어나거나 반지하·옥탑인 매물은 여기서 하드 필터로 걸러낸다. 남은 매물은 통근권에 따라 1순위·2순위·참고용으로 나눈다.

채점: 페르소나 + claude -p

채점의 핵심은 페르소나 문서다. 내 기준을 자연어로 적은 마크다운 파일 하나(예산, 통근 기준, 층·향 선호, 하드 reject 규칙, 점수 구간 정의)다. cron은 이 문서와 매물 JSON을 묶어 claude -p에 던지고, 점수·강점·약점·한줄평을 JSON으로 돌려받는다.

83SCORE

○○스카이뷰 · 12층

월세 1,000/90 · 9평 · 남향 · 통근 도보 9분
정남향 고층 통근 도보권 풀옵션 관리비 별도
S tier 3개 충족, 정남향 고층에 통근 도보권. 실거래 대비 적정가.

LLM이 매물 하나당 돌려주는 결과 예시: 점수, 강점(초록)·약점(빨강), 한 줄 요약. 페르소나 문서의 S/A/B tier 기준이 그대로 반영된다.

알림과 대시보드

70점을 넘기면 그 즉시 텔레그램으로 알림이 온다(제목·가격·점수·강점). 전체 매물은 자기완결 HTML 대시보드로 만들어, 점수·가격·통근으로 정렬하고 필터한다. 마음에 드는 매물은 별표를 눌러 따로 모은다(별표한 매물은 자동 만료에서 제외된다).

실제 대시보드 (운영 당시)
주거 대시보드 스크린샷: 점수·tier·건물·보증금/월세·실거래 비교·면적·층·향·한줄평 정렬 테이블
주목: 매물마다 점수와 한줄평(LLM 결과)이 붙고, 실거래 대비 ±% 비교까지 한 줄에 들어온다. 상단에서 점수·월세·면적·tier로 정렬·필터하고, ⭐로 관심 매물을 추린다. (운영 당시 실제 화면. 표시되는 건 누구나 네이버에서 보는 공개 호가·단지명이고, 중개사 연락처 같은 개인정보는 들어가지 않는다.)
04 · 컨택과 임장

고른 매물은 문자 초안과 임장 노트까지

대시보드에서 갈 만한 집을 고르면, 매물 번호 하나로 (1) 중개사에게 보낼 문의 문자 초안, (2) 임장(방문) 노트, (3) 단지·중개사 기록 갱신이 한 번에 만들어진다. 캘린더를 읽어 방문 가능한 슬롯까지 문자에 넣는다.

중개사 문의 문자 (초안)안녕하세요. 네이버부동산에서 ○○스카이뷰 12층 월세 1,000/90 매물(매물번호 0000000000) 보고 연락드립니다. 7월 초 입주를 생각하고 있어 직접 보고 싶은데, 아래 시간 중 가능한 일정 있을지 확인 부탁드립니다. - 6/13 (토) 14:00 - 6/14 (일) 11:00 - 6/18 (목) 18:30 - 6/20 (토) 13:00 - 6/21 (일) 15:00 같은 단지에 다른 매물도 보유하시면 같이 보여주셔도 좋습니다. 감사합니다. ○○○ 드림.
임장 노트 (자동 생성)
source_id: 0000000000 agent_name: TBD 보증금/월세: 1000 / 90 verdict: pending visit_status: contacted
  • 컨택 타임라인
  • 사전 확인 사항 (전입신고·융자·옵션)
  • 방문 후 실측·인상 (빈 칸)
  • 방문 녹음 embed 자리

단지·중개사 정보는 매물 노트에 흩어지지 않고 단지 페이지·중개사 페이지에 누적된다. 같은 단지를 다시 보게 되면 예전 임장 기록과 후기, 실거래가가 이미 거기 모여 있다. 방문 때 녹음한 건 따로 전사해서 임장 노트 아래에 붙인다.

05 · 데이터가 사는 곳

코드와 데이터를 분리한다

구성은 단순하다. 코드(수집·채점·배포 로직)와 노트·데이터를 따로 둔다. 데이터 쪽은 다시 자동으로 채워지는 영역사람이 직접 만지는 영역으로 나눈다. 노트는 노트 앱(예: Obsidian)에 두면 검색·편집이 편하다.

프로젝트
├── 코드            수집 · 채점 · 배포 로직
└── 노트 · 데이터
    ├── [자동]   매물 데이터 · 상태 · 대시보드   (cron이 채움)
    ├── [기준]   채점 기준 문서 한 개            (사람이 편집)
    └── [기록]   단지 · 중개사 · 임장 기록        (사람이 누적)
06 · 필요한 인프라

핵심만 갖추면 돈다, 나머지는 선택

전부 갖출 필요는 없다. 핵심 네 가지만 있으면 "수집 → 채점 → 로컬 HTML/알림"까지 돌아간다. 클라우드 대시보드·접근 게이트·프록시 같은 건 편의 기능이라 나중에 붙여도 된다.

구성요소구분역할 · 없으면
돌릴 컴퓨터 (맥/리눅스 + cron)핵심매시간 자동 실행
Python + uv핵심코드 실행 환경
Claude (claude -p 또는 API 키)핵심매물 채점
크롬 (헤드리스)핵심네이버 상세 조회
텔레그램 봇선택즉시 알림 (없으면 대시보드로만 확인)
Cloudflare Pages + 접근 게이트선택클라우드 대시보드 (없으면 로컬 HTML 파일)
프록시 (BrightData 등)선택대량 수집 안정화
국토부 · 호갱노노선택실거래·후기 보강
07 · 너라면 바꿀 부분

이 줄들이 곧 너의 기준이다

시스템 구조는 그대로 쓰고, 페르소나 문서만 너의 상황으로 바꾸면 된다. 통근 기준·예산·선호·하드 reject가 거기 다 모여 있다. 아래는 예시다(내 셋업에서 민감한 숫자는 뺐다).

## 페르소나
- 1인 가구, 직장: [너의 직장 / 통근 기준점]
- 거주 기간: 단기(이동성 우선) / 장기(전세) 둘 다 열어둠
- [핵심 지하철 노선] 직통 중요

## 가중치
- S tier (×3): 남향계열 · 중·고층 · [통근 기준점] 도보권 · 풀옵션
- A tier (×2): 가성비 · 엘베·주차 · 핵심 노선 직통 · 신축
- 하드 reject: 반지하 · 옥탑 · 북향 단독 · 지식산업센터(전입 불가)

## 점수 구간 (절대 척도)
- 85~94: 강점 다수, 약점 거의 없음
- 70~84: 알림 임계 (이 점수부터 텔레그램)
- 50~69: 중립
- 30 이하: 결격

예산 상한(보증금·월세)은 페르소나 맨 위 frontmatter에 적어 두면, 초과 매물에 "예산 초과" 표시가 붙는다. 너의 숫자로 채우면 된다. 이 문서를 Claude Code 세션에 그대로 넘기고 "이런 시스템을 내 상황으로 만들어 달라"고 시작하면, 위 구조를 토대로 뼈대를 잡아 준다.

·

References

자료용도
네이버 부동산매물 수집 소스
국토부 실거래가 공개시스템 · 공공데이터포털실거래가 (전세가율 체크)
호갱노노실거주 후기
Anthropic Claude · claude CLI매물 채점 (claude -p)
Cloudflare Pages대시보드 호스팅 (선택)