skills/orthogonal-restaurant-booking/SKILL.md
Book restaurant reservations via browser automation. Use when asked to make dinner reservations, book a table, or find availability at restaurants. Supports OpenTable, Resy, and direct restaurant booking sites.
npx skillsauth add orthogonal-sh/skills restaurant-bookingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Book reservations using Notte browser automation via Orthogonal.
npm install -g @orth/cli) or API keyorth run notte /sessions/start \
--body '{"browser_type":"chromium","headless":true,"solve_captchas":true,"idle_timeout_minutes":10}'
Save the session_id from the response.
orth run notte /sessions/{session_id}/page/execute \
--body '{"type":"goto","url":"https://www.opentable.com/r/{restaurant}?datetime=2026-02-17T19:00&covers=2"}'
orth run notte /sessions/{session_id}/page/execute \
--body '{"type":"click","selector":"button:has-text(\"7:00 PM\")"}'
orth run notte /sessions/{session_id}/page/execute \
--body '{"type":"click","selector":"button:has-text(\"Select\")"}'
# First name
orth run notte /sessions/{session_id}/page/execute \
--body '{"type":"fill","selector":"input#firstName","value":"John"}'
# Last name
orth run notte /sessions/{session_id}/page/execute \
--body '{"type":"fill","selector":"input#lastName","value":"Doe"}'
# Email
orth run notte /sessions/{session_id}/page/execute \
--body '{"type":"fill","selector":"input#email","value":"[email protected]"}'
# Phone
orth run notte /sessions/{session_id}/page/execute \
--body '{"type":"fill","selector":"input#phoneNumber","value":"4155551234"}'
orth run notte /sessions/{session_id}/page/execute \
--body '{"type":"click","selector":"text=I agree to the restaurant"}'
orth run notte /sessions/{session_id}/page/execute \
--body '{"type":"click","selector":"button:has-text(\"Complete reservation\")"}'
orth run notte /sessions/{session_id}/page/scrape \
--body '{"only_main_content":true}'
Look for "confirmed" in the response.
# Start session
curl -X POST "https://api.orth.sh/v1/run" \
-H "Authorization: Bearer $ORTHOGONAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"api": "notte",
"path": "/sessions/start",
"body": {
"browser_type": "chromium",
"headless": true,
"solve_captchas": true,
"idle_timeout_minutes": 10
}
}'
# Execute actions (same pattern)
curl -X POST "https://api.orth.sh/v1/run" \
-H "Authorization: Bearer $ORTHOGONAL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"api": "notte",
"path": "/sessions/{session_id}/page/execute",
"body": {"type":"goto","url":"https://www.opentable.com/..."}
}'
| Field | Selector |
|-------|----------|
| First name | input#firstName |
| Last name | input#lastName |
| Email | input#email |
| Phone | input#phoneNumber |
| Terms checkbox | text=I agree to the restaurant |
| Submit | button:has-text('Complete reservation') |
| Time slots | button:has-text('7:00 PM') |
| Seating select | button:has-text('Select') |
Search OpenTable and extract from URL:
restref=1906 → Foreign CinemaExample URL format:
https://www.opentable.com/r/{restaurant-slug}?restref={id}&datetime={YYYY-MM-DDTHH:MM}&covers={n}
fill action with value param (not type with text)If restaurant uses Resy:
https://resy.com/cities/{city}/venues/{restaurant}?date={YYYY-MM-DD}&seats={n}
Similar flow but different selectors. Scrape page first to identify form fields.
gog calendar createtesting
Download videos from YouTube, Bilibili, Twitter, and thousands of other sites using yt-dlp. Use when the user provides a video URL and wants to download it, extract audio (MP3), download subtitles, or select video quality. Triggers on phrases like "下载视频", "download video", "yt-dlp", "YouTube", "B站", "抖音", "提取音频", "extract audio".
business
Send messages and manage Slack channels. Use when asked to send Slack messages, post to channels, list channels, or fetch message history.
development
Evaluate YC batch companies for investment — scrapes the YC directory, researches each company and its founders (work history, LinkedIn, website), assesses founder-company fit, and exports to Google Sheets with priority rankings. Use when asked to evaluate YC companies, research a YC batch, screen startups, or do due diligence on YC companies.
development
Take screenshots of websites and web pages