Allows filtering jobs by commute time with different travel methods (for
example, driving or public transit).
Note: This only works when you specify a
[CommuteMethod][google.cloud.talent.v4beta1.CommuteMethod]. In this case,
[location_filters][google.cloud.talent.v4beta1.JobQuery.location_filters]
is ignored.
Currently we don't support sorting by commute time.
public RepeatedField<string> CompanyDisplayNames { get; }
This filter specifies the company
[Company.display_name][google.cloud.talent.v4beta1.Company.display_name] of
the jobs to search against. The company name must match the value exactly.
Alternatively, the value being searched for can be wrapped in different
match operators.
SUBSTRING_MATCH([value])
The company name must contain a case insensitive substring match of the
value. Using this function may increase latency.
Sample Value: SUBSTRING_MATCH(google)
MULTI_WORD_TOKEN_MATCH([value])
The value will be treated as a multi word token and the company name must
contain a case insensitive match of the value. Using this function may
increase latency.
Sample Value: MULTI_WORD_TOKEN_MATCH(google)
If a value isn't specified, jobs within the search results are
associated with any company.
If multiple values are specified, jobs within the search results may be
associated with any of the specified companies.
At most 20 company display name filters are allowed.
public CompensationFilter CompensationFilter { get; set; }
This search filter is applied only to
[Job.compensation_info][google.cloud.talent.v4beta1.Job.compensation_info].
For example, if the filter is specified as "Hourly job with per-hour
compensation > $15", only jobs meeting these criteria are searched. If a
filter isn't defined, all open jobs are searched.
This filter specifies a structured syntax to match against the
[Job.custom_attributes][google.cloud.talent.v4beta1.Job.custom_attributes]
marked as filterable.
The syntax for this expression is a subset of SQL syntax.
Supported operators are: =, !=, <, <=, >, and >= where the
left of the operator is a custom field key and the right of the operator
is a number or a quoted string. You must escape backslash (\) and
quote (") characters.
Supported functions are LOWER([field_name]) to
perform a case insensitive match and EMPTY([field_name]) to filter on the
existence of a key.
Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
comparisons or functions are allowed in the expression. The expression
must be < 10000 bytes in length.
Sample Query:
(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license)) AND
driving_years > 10
This flag controls the spell-check feature. If false, the
service attempts to correct a misspelled query,
for example, "enginee" is corrected to "engineer".
public RepeatedField<EmploymentType> EmploymentTypes { get; }
The employment type filter specifies the employment type of jobs to
search against, such as
[EmploymentType.FULL_TIME][google.cloud.talent.v4beta1.EmploymentType.FULL_TIME].
If a value isn't specified, jobs in the search results includes any
employment type.
If multiple values are specified, jobs in the search results include
any of the specified employment types.
public RepeatedField<JobCategory> JobCategories { get; }
The category filter specifies the categories of jobs to search against.
See [JobCategory][google.cloud.talent.v4beta1.JobCategory] for more
information.
If a value isn't specified, jobs from any category are searched against.
If multiple values are specified, jobs from any of the specified
categories are searched against.
public RepeatedField<LocationFilter> LocationFilters { get; }
The location filter specifies geo-regions containing the jobs to
search against. See
[LocationFilter][google.cloud.talent.v4beta1.LocationFilter] for more
information.
If a location value isn't specified, jobs fitting the other search
criteria are retrieved regardless of where they're located.
If multiple values are specified, jobs are retrieved from any of the
specified locations. If different values are specified for the
[LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles]
parameter, the maximum provided distance is used for all locations.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eJobQuery\u003c/code\u003e class in the Google Cloud Talent Solution v4beta1 API is used to define search criteria for job searches, enabling the filtering of job listings based on various parameters.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eJobQuery\u003c/code\u003e class allows you to filter jobs by company, employment type, category, location, commute time, compensation, custom attributes, and other criteria, providing a flexible way to define job searches.\u003c/p\u003e\n"],["\u003cp\u003eYou can specify a text query, and whether or not to use spell-check, and even filter based on the locale or language of the job postings.\u003c/p\u003e\n"],["\u003cp\u003eThe class supports specifying jobs to exclude from search results and allows for defining a range of publication times.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eJobQuery\u003c/code\u003e is implemented from several interfaces like \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e and \u003ccode\u003eIBufferMessage\u003c/code\u003e, and inherits from \u003ccode\u003eobject\u003c/code\u003e, it also supports constructors for creating new instances.\u003c/p\u003e\n"]]],[],null,["# Google Cloud Talent Solution v4beta1 API - Class JobQuery (3.0.0-beta06)\n\nVersion latestkeyboard_arrow_down\n\n- [3.0.0-beta06 (latest)](/dotnet/docs/reference/Google.Cloud.Talent.V4Beta1/latest/Google.Cloud.Talent.V4Beta1.JobQuery)\n- [3.0.0-beta05](/dotnet/docs/reference/Google.Cloud.Talent.V4Beta1/3.0.0-beta05/Google.Cloud.Talent.V4Beta1.JobQuery)\n- [2.0.0-beta07](/dotnet/docs/reference/Google.Cloud.Talent.V4Beta1/2.0.0-beta07/Google.Cloud.Talent.V4Beta1.JobQuery) \n\n public sealed class JobQuery : IMessage\u003cJobQuery\u003e, IEquatable\u003cJobQuery\u003e, IDeepCloneable\u003cJobQuery\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Cloud Talent Solution v4beta1 API class JobQuery.\n\nThe query required to perform a search query. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e JobQuery \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[JobQuery](/dotnet/docs/reference/Google.Cloud.Talent.V4Beta1/latest/Google.Cloud.Talent.V4Beta1.JobQuery), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[JobQuery](/dotnet/docs/reference/Google.Cloud.Talent.V4Beta1/latest/Google.Cloud.Talent.V4Beta1.JobQuery), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[JobQuery](/dotnet/docs/reference/Google.Cloud.Talent.V4Beta1/latest/Google.Cloud.Talent.V4Beta1.JobQuery), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Talent.V4Beta1](/dotnet/docs/reference/Google.Cloud.Talent.V4Beta1/latest/Google.Cloud.Talent.V4Beta1)\n\nAssembly\n--------\n\nGoogle.Cloud.Talent.V4Beta1.dll\n\nConstructors\n------------\n\n### JobQuery()\n\n public JobQuery()\n\n### JobQuery(JobQuery)\n\n public JobQuery(JobQuery other)\n\nProperties\n----------\n\n### CommuteFilter\n\n public CommuteFilter CommuteFilter { get; set; }\n\nAllows filtering jobs by commute time with different travel methods (for\nexample, driving or public transit).\n\nNote: This only works when you specify a\n\\[CommuteMethod\\]\\[google.cloud.talent.v4beta1.CommuteMethod\\]. In this case,\n\\[location_filters\\]\\[google.cloud.talent.v4beta1.JobQuery.location_filters\\]\nis ignored.\n\nCurrently we don't support sorting by commute time.\n\n### Companies\n\n public RepeatedField\u003cstring\u003e Companies { get; }\n\nThis filter specifies the company entities to search against.\n\nIf a value isn't specified, jobs are searched for against all\ncompanies.\n\nIf multiple values are specified, jobs are searched against the\ncompanies specified.\n\nThe format is\n\"projects/{project_id}/tenants/{tenant_id}/companies/{company_id}\". For\nexample, \"projects/foo/tenants/bar/companies/baz\".\n\nIf tenant id is unspecified, the default tenant is used. For\nexample, \"projects/foo/companies/bar\".\n\nAt most 20 company filters are allowed.\n\n### CompanyDisplayNames\n\n public RepeatedField\u003cstring\u003e CompanyDisplayNames { get; }\n\nThis filter specifies the company\n\\[Company.display_name\\]\\[google.cloud.talent.v4beta1.Company.display_name\\] of\nthe jobs to search against. The company name must match the value exactly.\n\nAlternatively, the value being searched for can be wrapped in different\nmatch operators.\n`SUBSTRING_MATCH([value])`\nThe company name must contain a case insensitive substring match of the\nvalue. Using this function may increase latency.\n\nSample Value: `SUBSTRING_MATCH(google)`\n\n`MULTI_WORD_TOKEN_MATCH([value])`\nThe value will be treated as a multi word token and the company name must\ncontain a case insensitive match of the value. Using this function may\nincrease latency.\n\nSample Value: `MULTI_WORD_TOKEN_MATCH(google)`\n\nIf a value isn't specified, jobs within the search results are\nassociated with any company.\n\nIf multiple values are specified, jobs within the search results may be\nassociated with any of the specified companies.\n\nAt most 20 company display name filters are allowed.\n\n### CompensationFilter\n\n public CompensationFilter CompensationFilter { get; set; }\n\nThis search filter is applied only to\n\\[Job.compensation_info\\]\\[google.cloud.talent.v4beta1.Job.compensation_info\\].\nFor example, if the filter is specified as \"Hourly job with per-hour\ncompensation \\\u003e $15\", only jobs meeting these criteria are searched. If a\nfilter isn't defined, all open jobs are searched.\n\n### CustomAttributeFilter\n\n public string CustomAttributeFilter { get; set; }\n\nThis filter specifies a structured syntax to match against the\n\\[Job.custom_attributes\\]\\[google.cloud.talent.v4beta1.Job.custom_attributes\\]\nmarked as `filterable`.\n\nThe syntax for this expression is a subset of SQL syntax.\n\nSupported operators are: `=`, `!=`, `\u003c`, `\u003c=`, `\u003e`, and `\u003e=` where the\nleft of the operator is a custom field key and the right of the operator\nis a number or a quoted string. You must escape backslash (\\\\) and\nquote (\") characters.\n\nSupported functions are `LOWER([field_name])` to\nperform a case insensitive match and `EMPTY([field_name])` to filter on the\nexistence of a key.\n\nBoolean expressions (AND/OR/NOT) are supported up to 3 levels of\nnesting (for example, \"((A AND B AND C) OR NOT D) AND E\"), a maximum of 100\ncomparisons or functions are allowed in the expression. The expression\nmust be \\\u003c 10000 bytes in length.\n\nSample Query:\n`(LOWER(driving_license)=\"class \\\"a\\\"\" OR EMPTY(driving_license)) AND\ndriving_years \u003e 10`\n\n### DisableSpellCheck\n\n public bool DisableSpellCheck { get; set; }\n\nThis flag controls the spell-check feature. If false, the\nservice attempts to correct a misspelled query,\nfor example, \"enginee\" is corrected to \"engineer\".\n\nDefaults to false: a spell check is performed.\n\n### EmploymentTypes\n\n public RepeatedField\u003cEmploymentType\u003e EmploymentTypes { get; }\n\nThe employment type filter specifies the employment type of jobs to\nsearch against, such as\n\\[EmploymentType.FULL_TIME\\]\\[google.cloud.talent.v4beta1.EmploymentType.FULL_TIME\\].\n\nIf a value isn't specified, jobs in the search results includes any\nemployment type.\n\nIf multiple values are specified, jobs in the search results include\nany of the specified employment types.\n\n### ExcludedJobs\n\n public RepeatedField\u003cstring\u003e ExcludedJobs { get; }\n\nThis filter specifies a list of job names to be excluded during search.\n\nAt most 400 excluded job names are allowed.\n\n### JobCategories\n\n public RepeatedField\u003cJobCategory\u003e JobCategories { get; }\n\nThe category filter specifies the categories of jobs to search against.\nSee \\[JobCategory\\]\\[google.cloud.talent.v4beta1.JobCategory\\] for more\ninformation.\n\nIf a value isn't specified, jobs from any category are searched against.\n\nIf multiple values are specified, jobs from any of the specified\ncategories are searched against.\n\n### LanguageCodes\n\n public RepeatedField\u003cstring\u003e LanguageCodes { get; }\n\nThis filter specifies the locale of jobs to search against,\nfor example, \"en-US\".\n\nIf a value isn't specified, the search results can contain jobs in any\nlocale.\n\nLanguage codes should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).\n\nAt most 10 language code filters are allowed.\n\n### LocationFilters\n\n public RepeatedField\u003cLocationFilter\u003e LocationFilters { get; }\n\nThe location filter specifies geo-regions containing the jobs to\nsearch against. See\n\\[LocationFilter\\]\\[google.cloud.talent.v4beta1.LocationFilter\\] for more\ninformation.\n\nIf a location value isn't specified, jobs fitting the other search\ncriteria are retrieved regardless of where they're located.\n\nIf multiple values are specified, jobs are retrieved from any of the\nspecified locations. If different values are specified for the\n\\[LocationFilter.distance_in_miles\\]\\[google.cloud.talent.v4beta1.LocationFilter.distance_in_miles\\]\nparameter, the maximum provided distance is used for all locations.\n\nAt most 5 location filters are allowed.\n\n### PublishTimeRange\n\n public TimestampRange PublishTimeRange { get; set; }\n\nJobs published within a range specified by this filter are searched\nagainst.\n\n### Query\n\n public string Query { get; set; }\n\nThe query string that matches against the job title, description, and\nlocation fields.\n\nThe maximum number of allowed characters is 255.\n\n### QueryLanguageCode\n\n public string QueryLanguageCode { get; set; }\n\nThe language code of \\[query\\]\\[google.cloud.talent.v4beta1.JobQuery.query\\].\nFor example, \"en-US\". This field helps to better interpret the query.\n\nIf a value isn't specified, the query language code is automatically\ndetected, which may not be accurate.\n\nLanguage code should be in BCP-47 format, such as \"en-US\" or \"sr-Latn\".\nFor more information, see\n[Tags for Identifying Languages](https://tools.ietf.org/html/bcp47)."]]