Keywords & expressions
A keyword is what Refresh Pilot looks for on the page. Plain words work out of the box — and with PRO you can use small prefixes to match prices, page structure, or whole "this AND that but NOT the other" conditions.
Plain text FREE
Type words, press Enter, done. A plain keyword matches anywhere in the page's text —
in stock matches "In stock", "Back in stock!" and "in stock — ships tomorrow".
Matching ignores letter case by default, and even ignores accents: cafe will match
"café". (You can make it strict with the Case sensitive option.)
Multiple keywords PRO
The keyword box is a chip input: press Enter to add a keyword, paste a comma-separated list to add several at once, and press Backspace to remove the last one. The free plan allows exactly one plain keyword; with PRO you can add as many chips as you like and every one of them is checked on each scan.
Power syntaxes PRO
Start a keyword with a special prefix to unlock smarter matching. The little helper line under the
box reminds you of them: Prefixes: re: xp: css: ##a AND b.
re: — regular expressions
A regular expression ("regex") is a small pattern language for describing text — for example "a dollar sign, then digits, then a dot, then two digits" instead of one exact price.
re:\$\d+\.\d{2}— matches any price like $19.99 or $249.00.re:\d+%\s*off— matches "25% off", "10 % off", any percentage discount.
Now only $19.99 — free shipping
re:\$\d+\.\d{2} → "$19.99"The regex re:\$\d+\.\d{2} doesn't know the price in advance — it fires on any price the page shows.
xp: — XPath
XPath is a way to point at page structure by "path", a bit like a folder path for HTML. Useful when the position of an element matters more than its text.
xp://h1— matches when the page has a top-level heading.xp://button[@aria-disabled="false"]— matches when a button becomes enabled.
XPath queries that return a yes/no answer, a number, or a text string all work.
css: — element exists
A CSS selector names elements by their id or class. A css: keyword matches as soon as
such an element exists on the page — no text needed.
css:.error-banner— matches when an error banner element appears.css:button.add-to-cart— matches when an "add to cart" button exists.
css: keyword asks "does this element exist?". That's different from the
area selector, which limits where all your keywords look.
## — boolean expressions
Start with ## to combine plain words with logic. The operator words
AND, OR and NOT must be in UPPERCASE,
parentheses group things, | is a shortcut for OR, and two terms next to each other
count as AND.
##in stock AND ready— both phrases must be on the page.##(small OR medium) AND NOT sold out— a size is available and it's not sold out.##ticket | seat— either word is enough.
Cheat sheet
| Syntax | Tier | Matches when… | Example |
|---|---|---|---|
| plain text | FREE | the words appear anywhere in the page text | in stock |
re: | PRO | a text pattern (regex) matches | re:\$\d+\.\d{2} |
xp: | PRO | an XPath query finds something | xp://button[@aria-disabled="false"] |
css: | PRO | an element matching the selector exists | css:.error-banner |
## | PRO | a boolean combination of words is true | ##(small OR medium) AND NOT sold out |
Built an expression you're proud of? The web dashboard has a Saved Expressions page (up to 100) and the popup offers them back as suggestions — see The web dashboard.