Skip to main content

The problem

Finding the right place to stay means reading listings. Filters cover price, bedrooms, and guests, but not “allows dogs”, “walk to the beach”, or “has backup power for load-shedding”. Those details sit in the description, written differently by every host, so the only way to check them is to read each one. With 1,000 listings in a spreadsheet, that’s an afternoon of scrolling.

Why Jev fits

Whether a listing matches a request is a quick reading judgment. Jev makes it in a fraction of a second and returns a probability or a score rather than free text, so a spreadsheet formula can sort on it.

One request per listing is too slow

The obvious approach is one request per listing, with a Score question: “How well does this listing match the request?” Each request is fast, but 1,000 of them one after another take more than 30 seconds, and Google Sheets stops a custom formula at 30 seconds.

Shortlist, then score

One request can hold many listings. A Choice question can have 100 listing IDs as its options, and its answer gives a probability for each, so a whole group is ranked at once. We split the search into two steps: The Score question has five levels, from “Not a match at all” to “Matches everything asked for”, so each mark says how much of the request a listing covers. For “6 people and a dog on the beach”, the top result scores 8.8: its description says it sleeps 10, is minutes from the beach, and is pet-friendly.

1,000 requests become 11

The two steps take 11 requests instead of 1,000, and the search finishes in about a second instead of running past the 30-second limit.

Any request, same sheet

The formula is =JEV_TOP10(B1, Listings!A2:H1001), so a new request in B1 is a new search. The sheet caches each request’s results, so editing other cells doesn’t run the search again.

Build it

Copy the Google Sheet

The 1,000 listings and the JEV_TOP10 formula. Add your TypeSafe API key under Extensions > Apps Script > Project Settings > Script properties, as TYPESAFE_API_KEY.

Get an API key

Create a key in the TypeSafe console.
Code.gs
The listings come from Inside Airbnb’s 23 September 2026 scrape of Cape Town, licensed under CC BY 4.0. We took a random sample of 1,000 listings with a price and a description of at least 200 characters, removed HTML line breaks and repeated whitespace, and flattened the amenities to a comma-separated list.