How it works · Semantic search
Instead of stacking a dozen filters one at a time, you can just write a sentence - "quiet hotel near a subway station, not in a loud nightlife area, rooms that don't feel tiny" - and StayRank AI turns that into a real ranking, not a keyword-matching gimmick.
Two real mechanisms run on your free-text description, not one black box:
AI intent parsing - when configured, an LLM reads your description and turns phrases like "quiet is essential" into an actual weight increase on the quiet metric, on a continuous scale, rather than a fixed keyword bump.
Real text-match scoring - independently, a TF-IDF cosine-similarity comparison checks your exact wording against each hotel's real neighborhood description, tags, strengths, and review text, and blends that into the final score at a fixed 20% weight. This runs regardless of whether the AI parser is available.
Every LLM call in StayRank AI is wrapped in error handling that falls back to a rule-based keyword parser automatically - no key configured, a rate limit, a timeout, or a malformed response all land on the same fallback path, on the same request. You're never shown an error for it, and the text-match scoring keeps running either way, since it doesn't depend on the LLM at all.
Opens the live app with an example description already in the search box for Tokyo - edit it to your own trip.
Try the search →The search doesn't fail - it falls back to a rule-based keyword and TF-IDF parser automatically, with no visible error.
Generally yes for the text-match component - more specific wording gives the real TF-IDF comparison more to match against each hotel's actual data.