Configuring Job Search
Factors affecting search results
Together, "Featured Jobs", "Enable Broadening", and "Disable Keyword Match" have a significant impact on the number and relevance of jobs returned to the job seeker. The most appropriate configuration of these three factors depends on your business needs. The best method for determining your optimal configuration is to apply different test scenarios and evaluate the outcomes during a testing phase.
Featured Jobs: You can use Featured Jobs to assign promotional values to individual jobs, which allows you to highlight jobs that are important to your business needs. See the Featured jobs documentation for best practices and implementation details.
disableKeywordMatch: This parameter allows Job Search to return keyword matches in addition to the relevant results determined by the ML algorithm. The default setting is
false. Keeping the default setting means that CTS - Job Search returns jobs that were not returned as relevant by the ML algorithm, but there is a keyword match in the title or job description with the job seeker's query string. Setting this parameter to
truedisables the keyword match, so fewer jobs (only those determined to be relevant by the ML feature) are returned.
enableBroadening: This parameter allows you expand the job seeker's query by relaxing their stated restrictions on location and job categories. It's set to
falseby default and enabled when set to
true. It's used to increase the number of search results returned.
Search configuration outcomes
To return only the most relevant jobs: Set
This improves Job Search's performance metrics related to search relevance since only the relevant jobs are returned.
However, fewer jobs overall are returned in the search results.
To return a higher number of jobs including both relevant and keyword matched results:
false. The keyword-matched
results are listed after the relevant jobs in the results, but query expansion results are not returned.
To return a higher number of jobs including both relevant and query expanded jobs:
true. The job seeker's query
is expanded to include related job categories and nearby locations, listed after the relevant results.
Keyword based matches are not returned.
To return the highest possible number of jobs: Set
true. Job Search returns the most relevant jobs at the top of the search results,
followed by keyword matched jobs and query expanded jobs (by location, job category, etc). This
maximizes the total number of jobs returned.
|-||-||Returns a higher number of jobs including both relevant and keyword matched results (but assume featured jobs is set to `false`).|
|+||+||Returns a higher number of jobs including both relevant and query expanded jobs (but assume featured jobs is set to `false`).|
|-||+||Returns the highest number of jobs (but assume featured jobs is set to `false`).|
|+||-||Returns only the most relevant jobs (but assume featured jobs is set to `false`).|
For best performance and to avoid latency, set up the results page to display 20 or fewer jobs at a time.
customAttributes gives you the flexibility to assign additional values to your jobs according to your
business needs (for example, GPA scores) and use these values to filter the results.
A detailed overview of the Location field can be found on the Location fields page. Providing the job's street address instead of GPS coordinates in the address field helps Job Search improve location detection and search relevance.
regionCode if a single company has multiple job openings located in different
geographic regions. Assigning a
regionCode to each listing ensures that a search
query returns jobs only in the job seeker's desired location rather than the global
results for that company. For example, a search on the location keyword "Cambridge"
regionCode in place returns results from both Cambridge, UK and Cambridge,
MA, USA. This decreases search relevance.
request.filters.location_filters.region_code to match the geographic location that the
user is searching (such as the United Kingdom). Set
request.filters.language_code to the appropriate
language code for that region (
en_GB in this case) so that Job Search can use localised
search logic (for example, "lorry driver" in
en_GB as opposed to "truck driver" in the United States).
This parameter sets a radius (in miles) around a job seeker's indicated location.
Job Search returns results inside this geographic range. How this distance is applied to the
geography of the search results depends on the type of location information entered. If the job seeker enters a street
radiusInMiles distance is set from a single point. If the job seeker enters a city,
Job Search applies a bounding box around the city limits and calculates distance
from the box edges. If the user enters only a state or country,
radiusInMiles is ignored.
Make sure that the mileage radius is as small as possible. Setting
the mileage to a larger range returns results that may be outside the job seeker's
desired location, decreasing relevance. For example, searching for jobs in New York
radiusInMiles set to 100 miles returns results in both upstate New York
and New Jersey. Keeping the radius as small as possible increases the relevance of the results.
This parameter sets the length of time that the job posting is active before it is removed from search results. The default is 30 days after the job creation time in the UTC time zone.
This is not a required field, however using Job_employment_type increases the relevance of the returned search results.
Configuring Job Search: Custom Ranking
Featured Jobs gives you the ability to influence search results and highlight jobs based on a single
promotionValue). See the Featured Jobs documentation for details.
Custom Ranking gives you the ability to influence the results
based on multiple variables, offering more control over the rankings regardless of relevance.
This feature is useful to applications that require balancing relevance with economic interests,
such as a multi-tiered Cost-per-Click (CPC) subscriber system. Influence on how jobs are
ranked on top of the existing relevance score is based on two variables:
rankingExpression: This variable controls how jobs are ranked based on their existing relevance scores (as determined by the Job Search algorithm). 'rankingExpression' must be set to 'filterable' in order for Job Search to index the parameter.
importanceLevel: This parameter sets the importance level of a job's ranking position when it is returned in searches. There are six different levels: Unspecified,
EXTREME. Setting the value to
EXTREMEmeans that all other API-generated relevance factors are ignored, so use this value sparingly. Jobs set to
EXTREMEare returned at the top of the job seeker's query instead of the most relevant jobs.
Featured Jobs versus Custom Ranking: Featured Jobs is most useful for promoting a single category of jobs (for example, jobs at a certain company) above the relevance ranking. If you need to rank jobs according to multi-level CPC (Cost Per Click) variables in addition to the relevance ranking, Custom Ranking is a better choice.
Commute search helps job seekers search for jobs based on commute time.
To enable it, include an additional
CommuteFilter object in the
field. This object allows the job seeker to select
startCoordinates. The job seeker can also select options such as
departureTime when calculating the commute time.
See the Commute Search implementation and how-to pages for details.
Cloud Talent Solution supports tenants as a middle organizational layer between a Google Cloud Platform project and its uploaded data. Tenants enforce data isolation without the need for multiple projects, preventing any data sharing across tenancy barriers. Multi-tenancy is useful in situations where you may have more than one customer and don't want to share data between them, but would like to maintain a single GCP project for internal billing and reporting. For example:
- Job site providers building job sites for organizations with multiple subsidiary companies.
- Hiring agencies building applicant tracking systems for multiple businesses.
Each project is assigned a single tenant id by default. To implement multi-tenancy, change the default by creating more than one tenant within a given project.
Tenants are fully isolated from one another. All APIs ask for only a single tenant to prevent data being queried across multiple tenants in a single API call. Machine learning similarly treats tenants as discrete units and does not cross tenancy barriers. A project can support as many tenants as required.
CTS provides very light tenant support. You are responsible for creating tenants, assigning tenant ids, and providing the correct tenant id when making a request. CTS verifies that the tenant id is owned by a given project and retrieves data from the tenant provided. Any additional security to catch unauthorized access must be managed in your backend system.
Data management & error handling
Uploading jobs: Data issues can prevent jobs from being uploaded to Job Search. Please see the HTTP Response Codes page for more information. Some common examples:
- Job locations are incorrect, so the request can't be resolved.
- Company or Job fields do not exist, which returns a bad request.
There are three main options for troubleshooting job uploading issues:
Indexing jobs: Job Search is designed to index all of your uploaded jobs in a set period of time. However, you may have quota restrictions on your end. Be sure to check your system for restrictions on indexing requests before sending jobs to CTS.
Error handling mechanisms
Error handling is crucial to avoid a self-inflicted DDoS attack that results in job seekers being locked out. API services provided via the internet can also have intermittent connection failure, a prolonged outage, sudden service maintenance and other events that require a client application to retry the API request. This retry must be designed with network friendly behavior, for example exponential backoff.
Duplicate jobs negatively impact a job seeker's search experience. Job Search includes two features to minimize duplicates:
Create jobs: If you try to create 2+ jobs with the following criteria, the record will be rejected and you will encounter a 4xx error:
- same location/
Search for jobs: CTS - Job Search surfaces jobs that are relevant to job seeker's search query. A built-in feature of the relevance algorithm makes sure that any returned jobs are diversified, preventing nearly identical jobs from showing up next to each other in search results.