PluginBench
Skill
Review
Audit score 70

catchtable-sniper

nomadamas/k-skill

Auto-book Catchtable restaurant slots by monitoring for cancellations every 30 seconds.

What is catchtable-sniper?

Monitors Catchtable for open reservation slots and automatically books them using an existing logged-in Chrome session. Supports multi-restaurant watching, reservation open-time mode, flexible party sizes, and notification-only dry-run mode. Requires Chrome MCP and an active Catchtable login.

  • Monitor multiple restaurants simultaneously for cancellation slots at 30-second intervals
  • Auto-book available slots or notify-only in dry-run mode
  • Support reservation open-time mode to catch slots exactly when booking opens
  • Match flexible party sizes (e.g., book 4-person if 2-person unavailable)
  • Parse natural language requests for dates, times, party size, and restaurant names

How to install catchtable-sniper

npx skills add https://github.com/nomadamas/k-skill --skill catchtable-sniper
Prerequisites
  • Chrome MCP connection required
  • Active logged-in Catchtable session in Chrome (manual Kakao/Naver login required)
  • No API keys or additional packages needed
Claude Code
Cursor
Windsurf
Cline

How to use catchtable-sniper

  1. 1.Ensure you are logged into Catchtable in Chrome (via Kakao or Naver)
  2. 2.Provide a natural language request with restaurant name(s), date, party size, and optional time/mode
  3. 3.The skill will parse your input and begin monitoring for available slots
  4. 4.When a slot is found, it will either auto-book or notify you (if dry-run mode)
  5. 5.Confirm any additional steps like payment for prepaid restaurants

Use cases

Good for
  • Monitor a single restaurant for a specific date/time and auto-book when a slot opens
  • Watch multiple restaurants and book whichever has availability first
  • Catch a reservation the moment booking opens at a scheduled time
  • Get notified of available slots without auto-booking so you can decide
  • Book with flexible party sizes if your preferred size is unavailable
Who it's for
  • Restaurant diners in Korea using Catchtable
  • Users seeking hard-to-get reservations at popular restaurants
  • Anyone wanting to automate cancellation slot monitoring

catchtable-sniper FAQ

Do I need to provide login credentials?

No. The skill uses your existing Chrome session. You must manually log into Catchtable in Chrome first using Kakao or Naver login.

Can it book restaurants outside Catchtable?

No. This skill only works with Catchtable (app.catchtable.co.kr). Other platforms like Naver Reservation or Siksin are not supported.

What happens if a slot is already booked by someone else after I click it?

The skill detects the slot is gone and immediately resumes polling for the next available slot.

Can it handle prepaid restaurants?

The skill will detect prepaid restaurants and ask for confirmation before payment. You must enter payment details manually; the skill does not auto-fill payment info.

What is the minimum polling interval?

30 seconds. Shorter intervals are not supported to avoid server overload.

Full instructions (SKILL.md)

Source of truth, from nomadamas/k-skill.


name: catchtable-sniper description: Monitor Catchtable for open reservation slots and attempt booking using a logged-in Chrome session. license: MIT metadata: category: lifestyle subcategory: food locale: ko-KR phase: v1 requires: - Chrome MCP - Logged-in Catchtable Chrome session

catchtable-sniper

📋 기본 정보

  • 스킬명: catchtable-sniper
  • 라이선스: MIT
  • 단계: v1
  • 카테고리: lifestyle / food
  • 로케일: ko-KR
  • 요구사항: Chrome MCP, 캐치테이블 로그인된 Chrome 세션

🎯 주요 기능

캐치테이블에서 원하는 식당의 빈자리(취소 슬롯)를 30초 간격으로 감시하다가 발견하는 즉시 자동 예약합니다.
멀티 타겟 동시 감시, 예약 오픈런 모드, 인원 유연 매칭, Dry-run 알림 전용 모드를 지원합니다.


✅ 적합한 사용 사례

  • "온지음 5월 토요일 저녁 2인 빈자리 나오면 예약해줘"
  • "온지음, 밍글스, 라연 중 5월 주말 2인 아무데나 먼저 뜨는 거 잡아줘" ← 멀티 타겟
  • "라연 5월 예약 오픈이 4월 30일 오전 10시야, 그때 맞춰서 잡아줘" ← 오픈런 모드
  • "스시야마 이번달 안에 2인 — 못 잡으면 4인 있으면 알려줘" ← 인원 유연
  • "밍글스 빈자리 뜨면 예약은 내가 할게 알림만 줘" ← Dry-run 모드
  • "https://app.catchtable.co.kr/ct/shop/mingles 토요일 4명 자동예약"

❌ 부적합한 사용 사례

  • 로그인 자동화 (카카오/네이버 로그인은 직접 해야 함)
  • 선결제 식당의 결제 정보 자동 입력 (결제 단계는 사람이 직접)
  • 캐치테이블 외 플랫폼 예약 (네이버 예약, 식신 등)
  • 30초 미만 폴링 간격 (서버 부하 방지)

🔧 기술 요구사항

  • Chrome MCP 연결 필수
  • 캐치테이블(app.catchtable.co.kr)에 로그인된 Chrome 세션 필요
  • 별도 API 키, 패키지 설치 불필요

🔐 인증 처리

이 스킬은 이미 Chrome에 로그인된 세션을 그대로 사용합니다.
로그인 정보를 스킬에 전달하지 않습니다.

로그인 안 된 경우:

"캐치테이블에 로그인되어 있지 않습니다.
 Chrome에서 캐치테이블에 카카오/네이버 로그인 후 다시 실행해주세요."

→ 스킬 중단. 로그인 자동화 없음.


🗂️ 입력 파싱

사용자 입력에서 다음을 추출한다:

항목예시필수 여부
식당명 또는 URL"온지음" / app.catchtable.co.kr/ct/shop/onjium필수 (복수 가능)
날짜"5월 3일", "이번 주 토요일", "5월 주말 전체"필수
인원"2명", "4인"필수
시간대"저녁", "19시 이후"선택 (없으면 전체)
모드"알림만", "dry-run"선택 (없으면 자동예약)
인원 유연"2인 없으면 4인도 괜찮아"선택
오픈 시간"4월 30일 오전 10시 오픈"선택 (오픈런 모드)
폴링 간격"30초마다"선택 (기본: 30초)

멀티 타겟 감지: 식당명이 쉼표/슬래시로 구분되거나 "중 아무데나", "먼저 뜨는 거" 표현이 있으면 멀티 타겟 모드로 전환.


📊 실행 플로우

STEP 1 — 브라우저 준비 및 로그인 확인

Chrome MCP로 캐치테이블 접속:

navigate: https://app.catchtable.co.kr

MY 탭에서 로그인 상태 확인. 미로그인 시 중단.


STEP 2 — 모드 분기

입력 파싱 완료
 ├─ 오픈 시간 명시됨 → STEP 2-A (오픈런 모드)
 └─ 오픈 시간 없음  → STEP 2-B (취소 스나이핑 모드)

STEP 2-A: 오픈런 모드

예약 오픈 시간까지 대기:

[10:00:00 오픈 예정] 현재 09:58:42 — 77초 후 오픈
[10:00:00] ✅ 오픈 시각 도달 — 즉시 예약 시도

오픈 시각 정각에 날짜 선택 → 슬롯 클릭 → 예약 폼 진입.
슬롯이 이미 마감이면 → 취소 스나이핑 모드(STEP 2-B)로 자동 전환.

STEP 2-B: 취소 스나이핑 모드 (폴링 루프)

while 빈자리 없음:
    {폴링 간격}초 대기
    페이지 새로고침 또는 날짜 재클릭
    슬롯 파싱
    빈자리 발견 → STEP 3

STEP 3 — 멀티 타겟 처리

단일 타겟: 해당 식당 슬롯 확인.

멀티 타겟: 지정된 식당들을 순차 순회하며 슬롯 확인.

[14:23:15] 온지음 5/3 확인 중... 없음
[14:23:17] 밍글스 5/3 확인 중... 없음
[14:23:19] 라연 5/3 확인 중... 없음 (30초 후 재시도)
[14:23:49] ✅ 밍글스 5/3 19:30 빈자리 발견! — 예약 시작

한 곳에서 슬롯 발견 시 나머지 감시 즉시 중단 → 발견된 식당 예약 진행.


STEP 4 — 인원 유연 매칭

지정 인원(예: 2인) 슬롯이 없을 경우:

if 인원_유연 == True:
    대안_인원(예: 4인) 슬롯 확인
    발견 시:
        "2인 슬롯은 없지만 4인 슬롯(19:00)이 있습니다.
         4인으로 예약할까요? (예/아니오)"
    → 사용자 확인 후 진행

STEP 5 — 예약 진행 (모드 분기)

Dry-run 모드 ("알림만" / "dry-run" 입력 시):

✅ 빈자리 발견! 예약은 진행하지 않습니다.
식당: 밍글스
날짜: 5월 3일(토)
시간: 19:30
인원: 2명
→ 지금 바로 예약하시겠습니까? (예/아니오)

→ 예약 여부는 사람이 결정.

자동예약 모드 (기본):

빈 슬롯 버튼 즉시 클릭 → 예약 폼 진입.

폼 자동 입력:

  • 인원수: 지정한 인원 선택
  • 방문 목적: "식사" (기본값)
  • 주의사항 동의: 전체 동의 체크
  • 예약자 정보: 앱 저장 정보 자동 사용

선결제 식당인 경우:

"빈자리를 발견했습니다! 결제가 필요합니다.
 결제 금액: {금액}원
 지금 결제를 진행할까요? (예/아니오)"

→ 결제 정보 자동 입력 없음. 사용자 확인 후 결제 진행.

무료 예약: "예약하기" 최종 확인 버튼 클릭.


STEP 6 — 완료 확인

🎉 예약 완료!

식당: {식당명}
날짜: {날짜}
시간: {시간}
인원: {인원}명
모드: {자동예약 / Dry-run}
예약번호: {예약번호}

캐치테이블 앱 > MY > 예약내역에서 확인 가능합니다.

💡 중간 상태 출력 형식

[14:23:15] 밍글스 5/3 저녁 슬롯 확인 중... 빈자리 없음 (30초 후 재시도)
[14:23:45] 온지음 5/3 저녁 슬롯 확인 중... 빈자리 없음
[14:24:15] ✅ 밍글스 5/3 19:30 (2인) 빈자리 발견! — 예약 시작

⚙️ 설정값

항목기본값범위
폴링 간격30초30초 이상
최대 감시 시간2시간
멀티 타겟 최대 수5개

2시간 초과 시:

"2시간 동안 빈자리가 없었습니다. 계속 시도할까요? (예/아니오)"

🚨 에러 핸들링

상황대응
식당 페이지 404"식당을 찾을 수 없습니다. 이름을 다시 확인해주세요."
예약 오픈 전오픈 일정 안내 후 오픈런 모드로 전환 제안
슬롯 클릭 후 이미 마감즉시 재폴링 재개
네트워크 오류10초 후 재시도, 3회 연속 실패 시 사용자 알림
멀티 타겟 중 일부 404해당 식당 제외, 나머지 계속 감시
2시간 초과"계속 시도할까요?" 확인 후 연장 또는 종료

✨ 완료 기준

다음 중 하나:

  • 예약 완료 화면 확인 + 예약번호 수집
  • Dry-run 모드에서 빈자리 발견 및 사용자 알림 완료
  • 사용자가 명시적으로 중단 요청

사용 예시

"온지음 5월 10일 저녁 2인 빈자리 나오면 예약해줘"
"온지음, 밍글스, 라연 5월 토요일 저녁 2인 중 아무데나 먼저 뜨는 거 잡아줘"
"라연 5월 예약이 4월 30일 오전 10시 오픈이야, 그때 맞춰 2인 잡아줘"
"스시야마 이번달 2인 — 없으면 4인도 괜찮아, dry-run으로"
"https://app.catchtable.co.kr/ct/shop/mingles 토요일 4명 자동예약"

⚠️ 주의사항

  • Chrome에 캐치테이블 로그인 세션이 있어야 동작합니다.
  • 선결제 식당의 결제 정보는 직접 입력해야 합니다.
  • 폴링 간격은 최소 30초를 유지합니다 (서버 부하 방지).
  • 캐치테이블 이용약관을 준수하는 범위에서 사용하세요.