一键导入
resy
Book restaurant reservations on Resy. Use when the user asks to book a table, make a reservation, find availability, or check a specific restaurant on Resy.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Book restaurant reservations on Resy. Use when the user asks to book a table, make a reservation, find availability, or check a specific restaurant on Resy.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | resy |
| description | Book restaurant reservations on Resy. Use when the user asks to book a table, make a reservation, find availability, or check a specific restaurant on Resy. |
| triggers | ["resy","book a table","book a reservation","find me a table","restaurant reservation"] |
Your agent books Resy reservations using a persistent browser session signed into the user's Resy account. No API key, no third-party service — just a browser acting like a human.
The user must be signed into Resy in your agent's browser profile before this skill runs. One-time setup. See README for instructions.
Hard rule: one search per restaurant name. If it returns no match, STOP.
The common failure mode is looping on a name that isn't on Resy — the agent keeps retrying variations. Don't do that. If the user's exact spelling returns zero matches, tell them: "Resy returned no match for X. Did you mean Y? Want me to try OpenTable?"
Only retry once, and only if the user confirms a new spelling.
Navigate to search:
browser navigate "https://resy.com/cities/<city>/search?date=YYYY-MM-DD&seats=<N>&query=<term>"
where <city> is new-york-ny, los-angeles-ca, etc. Default to new-york-ny unless user specifies.
Detect no-results: Evaluate document.body.innerText and check for the string No results for. If present, STOP. Do not retry, do not guess variations.
Pick the venue: The first link element matching the user's requested name (case-insensitive) is the match. If the top result doesn't match the user's name, tell the user what you found and ask before proceeding.
Open the venue page:
browser navigate "https://resy.com/cities/<city>/venues/<slug>?date=YYYY-MM-DD&seats=<N>"
The <slug> comes from the link's href in the search results.
Detect no-availability: Read the page text. Signals:
At the moment, there's no online availability for — no slots for that dateNotify button is present, no time buttons — waitlist onlyIn both cases: surface the nearest alternative dates shown on the page and ask which the user wants to try. Do not auto-pick a different date.
Pick a time: Available time slots are rendered as buttons like "7:00 PM". Click the one matching the user's request (or closest within ±30 min if they gave a soft window).
Confirm before final submit: After clicking the time, Resy shows a confirmation screen. Stop here. Tell the user: "Ready to book [Venue], [Day Date], [Time] for [N]. Confirm?" Only click the final "Complete Reservation" / "Reserve" button on explicit user approval.
Handle deposit/credit card page: High-demand venues (Carbone, Torrisi, 4 Charles Prime Rib, etc.) require a deposit. If a card form appears, stop and tell the user the deposit amount — do not auto-submit.
https://resy.com/cities/<city>/search?date=YYYY-MM-DD&seats=<N>&query=<term>https://resy.com/cities/<city>/venues/<slug>?date=YYYY-MM-DD&seats=<N>Supported cities: new-york-ny, los-angeles-ca, miami-fl, chicago-il, san-francisco-bay-area, las-vegas, washington-dc-area, london
If a login form appears, the session has expired. Tell the user to sign back into Resy in the browser profile manually. Do not ask for their password.