“under 150 euro”
Is a price filter, not a keyword
Keyword engines look for the text “150”. Your customer meant price_max: 150.
Natural-language search · runs in the browser
A compact AI model that runs on your visitor's device. It finishes their sentence as they type,
turns waterproof hiking boots for women under 150 euro, not Salomon
into editable filters for the search you already have,
and lets them simply say it. No API calls. No per-query bill.
01 / One control, three ways in
From the first few words to the exact filters: one search box that starts wherever your customer does — and one on-device model behind all three. Autocomplete is free; tags & filters and voice come with the paid plans.
After a few words, SIFT offers up to three ways to finish the sentence. Tab takes the first, a click takes any.
02 · In your words Starter+One sentence becomes tags and filters your customer can review, edit or remove before the search runs.
03 · With your voice Starter+No need to find the right keywords. Customers speak naturally and watch the request become filters.
02 / The problem
“under 150 euro”
Keyword engines look for the text “150”. Your customer meant price_max: 150.
“not Salomon”
A classic search happily matches the brand your customer just ruled out — and puts it first.
“for a small living room”
The more precisely people describe what they want, the more likely they see “0 results” — and leave.
03 / How it works
SIFT doesn't replace your search engine — it makes it understand people. The model produces a validated tool call; your backend keeps full control of the catalog, prices, stock and permissions.
A full sentence, the way they'd ask a shop assistant — or a suggestion SIFT offered them.
“red leather sofa for a small living room, max 900 euro, no IKEA”
A compact model compiled to WebAssembly, in a background worker. No server, no API key, no round-trip.
WASM · SIMD · int8 · web worker
Show them as chips your visitor can adjust, then map them to Elasticsearch, Algolia, Meilisearch, SQL — or your own API.
color: red · material: leather · price_max: 900 · exclude brand: IKEA
04 / Live demo
The real model, running in this tab. Start typing for suggestions, describe what you want, or press the microphone and say it. The model downloads once (5.6 MB, encrypted); after that the AI never sends what you type anywhere. This demo shows all three — autocomplete is in the free plan, tags & filters and voice in the paid plans.
Your search takes shape here. Every filter is editable — click a value to change it, × to remove it.
{ }
The free model is strongest in English today. Results are suggestions: your app validates them against its own catalog schema. Voice uses your browser's speech recognition, which may rely on its vendor's online service (e.g. Google in Chrome); the search model itself always runs here.
05 / For developers
Install the package, drop in the component, and route the filters to the search you already run. No backend to deploy, no keys to hide, no rate limits to plan for.
<SearchBox>, or a headless createEngine() for any frameworkengine.complete() for autocomplete (free plan), engine.search() for tags & filters (paid plans) — same model, same devicelocalhost never uses up a domain, so development is free// npm install @siftsearch/react import { SearchBox } from "@siftsearch/react"; export function StoreSearch() { return ( <SearchBox platformUrl="https://app.sift-search.com" model="search-lite" onResult={(result, meta) => { if (!result.ok) return; const { filters } = result.calls[0].arguments; runYourSearch(meta.query, filters); }} /> ); }
import { createEngine } from "@siftsearch/react"; const engine = await createEngine({ platformUrl: "https://app.sift-search.com", model: "search-lite", }); const result = await engine.search( "red leather sofa, max 900 euro, no IKEA" ); // result.calls[0].arguments.filters → // { color: ["red"], material: ["leather"], // price_max: 900, exclude: { brand: ["IKEA"] } }
let controller; input.addEventListener("input", async () => { controller?.abort(); // the user kept typing controller = new AbortController(); const suggestions = await engine.complete(input.value, { count: 3, signal: controller.signal, }); showSuggestions(suggestions); }); // "waterproof hiking boots" → // ["waterproof hiking boots under $150", // "waterproof hiking boots, size 10", …]
// Filters → an Elasticsearch bool query (or SQL, Algolia…) function toQuery(text, f) { return { bool: { must: [{ match: { title: text } }], filter: [ f.category && { terms: { category: f.category } }, f.color && { terms: { color: f.color } }, f.price_max && { range: { price: { lte: f.price_max } } }, f.in_stock && { term: { in_stock: true } }, ].filter(Boolean), must_not: f.exclude?.brand ? [{ terms: { brand: f.exclude.brand } }] : [], } }; }
06 / Why SIFT
Inference happens on the visitor's device. Queries never reach us or any AI provider — an easy story for GDPR.
Your visitors' devices do the work. Black Friday traffic costs the same as a quiet Tuesday.
The model is cached by the browser. Repeat visits start instantly — and keep working offline.
A schema-checked tool call: query, category, price range, brand, color, material, size, compatibility, stock, exclusions and tags.
New model versions roll out from the SIFT platform on the next page load. Choose stable or beta, or pin a version.
Every model ships encrypted. Activate your site with one click; licenses are signed (Ed25519) and keys go only to activated domains.
The same model finishes sentences as customers type, and turns what they say into filters — no second service.
Plain JSON out, so it works with any catalog and any search backend. Your existing ranking stays in charge.
07 / Compare
| SIFT Search | Cloud AI API | Keyword search | |
|---|---|---|---|
| Understands full sentences | Yes | Yes | No |
| Autocomplete from the same model | Yes | Extra paid calls | Prefix match only |
| Cost per search | €0 | Per token, every query | €0 |
| Query sent to an AI provider | Never | Always | No |
| Network round-trip for AI | None | Every query | – |
| Works offline after first load | Yes | No | No |
| What you have to run | One component | API keys, a proxy, rate limits | Synonyms, tuning |
08 / Pricing
Inference runs on your visitors' devices, so we never charge per query — on any plan. Autocomplete is free forever; upgrade for tags & filters, voice and the pro models.
€0forever
Autocomplete for any search box.
€19/ month
The full SIFT control on one site.
Most popular
€79/ month
Production, staging and apps.
Customannual
For marketplaces and regulated teams.
Custom model
We train a SIFT model on your catalog, attributes and real customer searches — so it knows your brands, your product types and the way your customers ask, in your language.
On request
Contact usPrices exclude VAT. Cancel anytime — a cancelled plan stops at the end of the billing period.
Autocomplete: up to three on-device suggestions to finish what your visitor types, on one domain plus localhost, unlimited and with no card — just a confirmed email. Turning a sentence into tags & filters, and voice search, come with Starter and above. The plan is signed into your site's license, so the package knows what it may run.
No. SIFT understands the request and hands you structured filters. Your existing search — Elasticsearch, Algolia, SQL or a custom API — still finds and ranks the products, so you keep full control of inventory, prices and permissions.
Not for the AI part. The model runs in a web worker on the visitor's device; the only requests SIFT makes are the one-time model download and a small catalog check on page load. What you then send to your own search backend is up to you.
Autocomplete uses the same on-device model as the filters: after a few words it proposes up to three ways to finish the sentence, with no network call — and it is included in the free plan. Tags & filters and voice are part of the paid plans. Voice uses the browser's own speech recognition to turn speech into text (Chrome, Edge and Safari; it may use the browser vendor's online service), and SIFT then builds the filters on the device.
The model is about 5.6 MB, downloaded once and cached by the browser. It runs in a background worker, so the page stays responsive. On a typical laptop it generates around 1,000 tokens per second.
Any current browser with WebAssembly SIMD and module workers, over HTTPS (or localhost). The free model is strongest in English today; more languages are on the roadmap.
Every response is a schema-validated tool call, and you always also receive exactly what the user typed. Treat the filters as suggestions: show them as editable chips, validate them against your catalog, and fall back to a plain text search when needed.
Every model — the free one included — is delivered encrypted, and the platform releases its key only to domains activated on a plan. Downloading the file gets you ciphertext. As with anything that runs in a browser, a determined visitor could still dig into memory; the license agreement covers that.
New versions are published to the SIFT platform and picked up automatically on the next page load in your chosen channel (stable or beta). You can also pin an exact version. No new npm release, no redeploy.
Yes. We train a custom SIFT model on your catalog, attributes and (anonymised) search logs, so the filters match your schema, brands and language. It is delivered through the same platform — encrypted, only to your domains, with automatic updates. Contact us for a quote.
SIFT Search is built by Inovlab. The models are developed together with Robotron, whose compact, portable model runtime powers the on-device inference.
Start free with autocomplete: one npm install and a free account. Upgrade for tags & filters, voice and the pro models.