jpskill.com
💼 ビジネス コミュニティ

expedia-stay-search

Use this skill when the user wants to search for hotels on Expedia by destination and dates, find available stays, check hotel pricing, or get a Hotel-Search URL. Triggers on "find a hotel", "search Expedia", "look up hotels in <city>", "book a stay", "hotel availability", or any request that implies Expedia stay search. Requires an authenticated Tabby browser session for the `expedia` profile; not usable as a generic hotel search tool for sites other than Expedia.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o expedia-stay-search.zip https://jpskill.com/download/9725.zip && unzip -o expedia-stay-search.zip && rm expedia-stay-search.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9725.zip -OutFile "$d\expedia-stay-search.zip"; Expand-Archive "$d\expedia-stay-search.zip" -DestinationPath $d -Force; ri "$d\expedia-stay-search.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して expedia-stay-search.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → expedia-stay-search フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1
📖 Claude が読む原文 SKILL.md(中身を展開)

この本文は AI(Claude)が読むための原文(英語または中国語)です。日本語訳は順次追加中。

Expedia Stay Search

Search Expedia for available hotels by destination and dates using an authenticated Tabby browser session. Returns a Hotel-Search URL and extracted listings (name, nightly price, total price, rating, reviews, refundable flag, link).

This skill drives the real Expedia site inside a Tabby-managed browser via CDP (Chrome DevTools Protocol) instead of a Python HTTP client. That is intentional: Expedia sits behind Akamai, which blocks non-browser TLS fingerprints. Do not try to port the operations to httpx or requests — you will get 429 Too Many Requests.

Prerequisites

Before invoking any operation:

  1. Tabby is running with the expedia profile. Verify with .venv/bin/python cli/main.py tabby session ensure --profile expedia from the noui/ directory. If that command fails, the user needs to re-run /noui-record-login for the expedia profile first — do not try to proceed without a live session.
  2. PROFILE_SLUG=expedia is exported in the shell that runs the operation. This is the slug, not the DB UUID. The runtime reads it (or the --profile-slug flag) to fetch live credentials from Tabby.
  3. The Expedia profile is ACTIVE. Check with the Tabby admin endpoint if in doubt — a STAGING profile returns empty credentials and the operation fails with "Tabby returned empty credentials for profile 'expedia'".

Operations

search_hotels

Search Expedia for hotels in a destination, on given check-in / check-out dates, for a given number of guests and rooms. Returns up to 25 listings extracted from the first page of results.

When to use: The user asks for hotel availability, prices, or a link to Expedia results for a specific city and date range.

Command:

python operations/search_hotels.py \
  --destination "Paris" \
  --check-in 2026-05-01 \
  --check-out 2026-05-04 \
  --guests 2 \
  --rooms 1

Prints a JSON object to stdout on success. Exits non-zero on failure with a diagnostic on stderr.

Arguments:

Name Type Required Default Notes
--destination string yes City or place name. Expedia typeahead resolves it to a region ID.
--check-in string yes YYYY-MM-DD.
--check-out string yes YYYY-MM-DD. Must be after --check-in.
--guests integer no 2 Adult guests.
--rooms integer no 1 Number of rooms.
--profile-slug string no $PROFILE_SLUG or expedia Tabby profile slug. Override only if testing against a non-default profile.

Output shape:

{
  "search_url": "https://www.expedia.com/Hotel-Search?...",
  "destination": "Paris, France",
  "region_id": "178279",
  "check_in": "2026-05-01",
  "check_out": "2026-05-04",
  "guests": 2,
  "rooms": 1,
  "listings_count": 25,
  "listings": [
    {
      "name": "Hotel Le Example",
      "price_per_night": "$245",
      "price_total": "$735",
      "rating": "8.4/10",
      "rating_label": "Very Good",
      "reviews_count": "1,234",
      "refundable": true,
      "url": "https://www.expedia.com/..."
    }
  ]
}

Troubleshooting

  • No Expedia browser session found. Is Tabby running? — no Tabby CDP target found at localhost:9222 matching expedia.com. Run tabby session ensure --profile expedia and retry.
  • Expedia API returned 429: ... — Akamai is rate-limiting even through the browser. This is rare via CDP; if it happens repeatedly the Tabby session may need to rotate IPs or the profile needs re-recording.
  • Empty listings, non-zero listings_count — Expedia changed its DOM. The DOM-scrape selectors in search_hotels.py ([data-stid="lodging-card-responsive"]) need updating. Report to the NoUI maintainers; do not guess at selectors.
  • auth_plan.json missing profile_slug — this skill was mis-installed. The auth_plan.json file sitting next to noui_runtime/ must have profile_slug: "expedia". Reinstall the skill.

Notes

  • This skill performs DOM scraping after navigation, not pure API calls. Results reflect what Expedia renders to a logged-in user, which may include personalized pricing.
  • There is a ~7-second wait for the SPA to render results; a single invocation can take 10–15 seconds end-to-end.
  • This skill is the reference sample for the NoUI skills-generation pipeline. Generated skills from real recordings will share the same layout (SKILL.md, operations/, noui_runtime/auth.py, manifest.json, auth_plan.json) but will vary in operation count and complexity.