Advanced search

title and description take Google-style queries. For full control, the _advanced parameters take Boolean expressions: title_advanced, description_advanced (title, employer and description), organization_advanced and location_advanced. An advanced parameter replaces its plain counterpart.

Google-style syntax

You writeMeaningNotes
nurse managerBoth wordsAnywhere in the field, any order.
"nurse manager"PhraseThe words next to each other, in order.
nurse OR rnEitherOR binds the terms on each side.
nurse -studentExcludeJobs without the word.
engineer*Prefixengineer, engineering, engineers…

Boolean syntax

OperatorMeaningNotes
&ANDBoth sides match.
|OREither side matches.
!NOTThe term or group does not match.
<->Followed byThe next word comes immediately after.
<N>DistanceThe next word comes exactly N words later: senior <2> engineer matches "senior software engineer".
'…'PhraseShorthand for words joined with <->.
( )GroupingEvaluate the inner expression first.
:*Prefixdevelop:* matches develop, developer, development.

Terms written side by side without an operator are combined with &. Matching ignores case and accents, and punctuation splits words (node.js is the phrase node <-> js). A malformed expression returns 400 with the reason.

Examples

text
title_advanced=(software | data | platform) & engineer & !(intern | co-op)
title_advanced='registered nurse' | rn | rpn
description_advanced=(python | golang) & kubernetes & !'security clearance'
organization_advanced=health & !(pet | animal)

Encode the value in the URL: & becomes %26, | %7C, spaces %20. curl --data-urlencode and HTTP libraries do this for you.