Skip to content

Search References

By default, endpoints return all records when a specific ID is not supplied. You can add a query parameter to narrow results.

Relational Operators

The following operators are supported in the query parameter on searchable GET endpoints:

  • eq equal
  • ne not equal
  • gt greater than
  • lt less than
  • ge greater than or equal
  • le less than or equal
  • sw starts with
  • ew ends with
  • co contains

Examples

Find all candidate/name records with a status equal to candidate:

../CandidatesV2?query=Status eq 'candidate'

Find all candidate/name records entered on or after a specified date:

../CandidatesV2?query=DateEntered ge '2013-01-01T10:07:40.840'

Find all candidate/name records where the title starts with sales:

../CandidatesV2?query=Title sw 'sales'

Find all candidate/name records where the title contains manager:

../CandidatesV2?query=Title co 'manager'

Logical Operators

The following logical operators are supported:

  • AND
  • OR

Combine multiple conditions with AND:

../CandidatesV2?query=Status eq 'candidate' AND Title sw 'sales'

Combine alternatives with OR:

../CandidatesV2?query=Status eq 'candidate' OR Status eq 'unverified'

Group conditions with parentheses:

../CandidatesV2?query=Status eq 'candidate' AND (State eq 'ohio' OR State eq 'new york')

Custom Fields

Custom Fields exist for Candidate, Company, Position, and Placement records, but query support depends on the searchable endpoint being used.

Use explicit EXISTS syntax to query Custom Fields:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Language' AND CustomFields.Value eq 'English')

Custom Field conditions can be combined with standard fields:

../CandidatesV2?query=Status eq 'candidate' AND EXISTS (CustomFields.FieldName eq 'Language' AND CustomFields.Value eq 'English')

For multi-value Custom Fields, the same syntax matches records where any stored value matches:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Language' AND CustomFields.Value eq 'Spanish')

Field Name Collisions

If a Custom Field has the same name as a standard field, query the Custom Field explicitly with EXISTS:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Title' AND CustomFields.Value eq 'Manager')

Empty Or Missing Custom Field Values

Custom Fields are generated as needed on individual records. A defined Custom Field may be present with a value, present with an empty value, or absent from a record.

Find records where a Custom Field is present with an empty value:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Specialty' AND CustomFields.Value eq '')

Find records where a Custom Field has any non-empty value:

../CandidatesV2?query=EXISTS (CustomFields.FieldName eq 'Specialty' AND CustomFields.Value ne '')

Find records that do not have a specific Custom Field value:

../CandidatesV2?query=NOTEXISTS (CustomFields.FieldName eq 'Do Not Contact' AND CustomFields.Value eq 'True')

Supported Endpoints

Use V2 searchable endpoints where available:

  • ../CandidatesV2
  • ../CompaniesV2
  • ../PositionsV2

Placement Custom Fields may be defined in PCR, but confirm the available searchable placement endpoint in your API surface before documenting placement search support.

Finding Records On A Rollup List

To search for candidate/name records on a rollup list, query the Rollup field with the rollup code:

../CandidatesV2?query=Rollup eq 'ADMIN.0002'

You can also query rollup membership records directly:

../CandidatesV2/RollupLists?query=Code eq 'ADMIN.0002'

Special Cases

If a search contains a field value that matches a logical operator, escape it with a backslash (\).

Searching for state value OR:

../CandidatesV2?query=State eq '\OR'

Searching for a company name containing AND:

../CandidatesV2?query=CompanyName eq 'Smith \AND Smith'