Autocomplete

Cloud Talent Solution provides autocomplete suggestions for job titles and company names. Only active job postings and companies with at least one open job are considered eligible for suggestion results. Once a new job or company is added, it takes up to 48 hours for the information to be added to the autocomplete result set.

To use autocomplete, call the complete method when the search bar is updated.

Go

To learn how to install and use the client library for CTS, see CTS client libraries . For more information, see the CTS Go API reference documentation .

To authenticate to CTS, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 ( 
  
 "context" 
  
 "fmt" 
  
 "io" 
  
 talent 
  
 "cloud.google.com/go/talent/apiv4beta1" 
  
 "cloud.google.com/go/talent/apiv4beta1/talentpb" 
 ) 
 // jobTitleAutoComplete suggests the job titles of the given 
 // company identifier on query. 
 func 
  
 jobTitleAutocomplete 
 ( 
 w 
  
 io 
 . 
 Writer 
 , 
  
 projectID 
 , 
  
 query 
  
 string 
 ) 
  
 ( 
 * 
 talentpb 
 . 
 CompleteQueryResponse 
 , 
  
 error 
 ) 
  
 { 
  
 ctx 
  
 := 
  
 context 
 . 
 Background 
 () 
  
 // Initialize a completionService client. 
  
 c 
 , 
  
 err 
  
 := 
  
 talent 
 . 
 NewCompletionClient 
 ( 
 ctx 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 nil 
 , 
  
 fmt 
 . 
 Errorf 
 ( 
 "talent.NewCompletionClient: %w" 
 , 
  
 err 
 ) 
  
 } 
  
 defer 
  
 c 
 . 
 Close 
 () 
  
 // Construct a completeQuery request. 
  
 req 
  
 := 
  
& talentpb 
 . 
 CompleteQueryRequest 
 { 
  
 Parent 
 : 
  
 fmt 
 . 
 Sprintf 
 ( 
 "projects/%s" 
 , 
  
 projectID 
 ), 
  
 Query 
 : 
  
 query 
 , 
  
 LanguageCodes 
 : 
  
 [] 
 string 
 { 
 "en-US" 
 }, 
  
 PageSize 
 : 
  
 5 
 , 
  
 // Number of completion results returned. 
  
 Scope 
 : 
  
 talentpb 
 . 
  CompleteQueryRequest_PUBLIC 
 
 , 
  
 Type 
 : 
  
 talentpb 
 . 
  CompleteQueryRequest_JOB_TITLE 
 
 , 
  
 } 
  
 resp 
 , 
  
 err 
  
 := 
  
 c 
 . 
 CompleteQuery 
 ( 
 ctx 
 , 
  
 req 
 ) 
  
 if 
  
 err 
  
 != 
  
 nil 
  
 { 
  
 return 
  
 nil 
 , 
  
 fmt 
 . 
 Errorf 
 ( 
 "CompleteQuery(%s): %w" 
 , 
  
 query 
 , 
  
 err 
 ) 
  
 } 
  
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
  
 "Auto complete results:" 
 ) 
  
 for 
  
 _ 
 , 
  
 c 
  
 := 
  
 range 
  
 resp 
 . 
 GetCompletionResults 
 () 
  
 { 
  
 fmt 
 . 
 Fprintf 
 ( 
 w 
 , 
  
 "\t%v\n" 
 , 
  
 c 
 . 
 Suggestion 
 ) 
  
 } 
  
 return 
  
 resp 
 , 
  
 nil 
 } 
 

Java

To learn how to install and use the client library for CTS, see CTS client libraries . For more information, see the CTS Java API reference documentation .

To authenticate to CTS, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.talent.v4. CompleteQueryRequest 
 
 ; 
 import 
  
 com.google.cloud.talent.v4. CompleteQueryResponse 
 
 ; 
 import 
  
 com.google.cloud.talent.v4. CompletionClient 
 
 ; 
 import 
  
 com.google.cloud.talent.v4. TenantName 
 
 ; 
 import 
  
 java.io.IOException 
 ; 
 public 
  
 class 
 JobSearchAutoCompleteJobTitle 
  
 { 
  
 public 
  
 static 
  
 void 
  
 completeQuery 
 () 
  
 throws 
  
 IOException 
  
 { 
  
 // TODO(developer): Replace these variables before running the sample. 
  
 String 
  
 projectId 
  
 = 
  
 "your-project-id" 
 ; 
  
 String 
  
 tenantId 
  
 = 
  
 "your-tenant-id" 
 ; 
  
 String 
  
 query 
  
 = 
  
 "your-query-for-job-title" 
 ; 
  
 completeQuery 
 ( 
 projectId 
 , 
  
 tenantId 
 , 
  
 query 
 ); 
  
 } 
  
 // Complete job title given partial text (autocomplete). 
  
 public 
  
 static 
  
 void 
  
 completeQuery 
 ( 
 String 
  
 projectId 
 , 
  
 String 
  
 tenantId 
 , 
  
 String 
  
 query 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
 // Initialize client that will be used to send requests. This client only needs to be created 
  
 // once, and can be reused for multiple requests. After completing all of your requests, call 
  
 // the "close" method on the client to safely clean up any remaining background resources. 
  
 try 
  
 ( 
  CompletionClient 
 
  
 completionClient 
  
 = 
  
  CompletionClient 
 
 . 
 create 
 ()) 
  
 { 
  
  TenantName 
 
  
 parent 
  
 = 
  
  TenantName 
 
 . 
 of 
 ( 
 projectId 
 , 
  
 tenantId 
 ); 
  
  CompleteQueryRequest 
 
  
 request 
  
 = 
  
  CompleteQueryRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setTenant 
 ( 
 parent 
 . 
  toString 
 
 ()) 
  
 . 
 setQuery 
 ( 
 query 
 ) 
  
 . 
 setPageSize 
 ( 
 5 
 ) 
  
 // limit for number of results 
  
 . 
 addLanguageCodes 
 ( 
 "en-US" 
 ) 
  
 // language code 
  
 . 
 build 
 (); 
  
  CompleteQueryResponse 
 
  
 response 
  
 = 
  
 completionClient 
 . 
 completeQuery 
 ( 
 request 
 ); 
  
 for 
  
 ( 
  CompleteQueryResponse 
 
 . 
  CompletionResult 
 
  
 result 
  
 : 
  
 response 
 . 
  getCompletionResultsList 
 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 format 
 ( 
 "Suggested title: %s%n" 
 , 
  
 result 
 . 
 getSuggestion 
 ()); 
  
 // Suggestion type is JOB_TITLE or COMPANY_TITLE 
  
 System 
 . 
 out 
 . 
 format 
 ( 
 "Suggestion type: %s%n" 
 , 
  
 result 
 . 
 getType 
 ()); 
  
 } 
  
 } 
  
 } 
 } 
 

Node.js

To learn how to install and use the client library for CTS, see CTS client libraries . For more information, see the CTS Node.js API reference documentation .

To authenticate to CTS, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  const 
  
 talent 
  
 = 
  
 require 
 ( 
 ' @google-cloud/talent 
' 
 ). 
 v4 
 ; 
 /** 
 * Complete job title given partial text (autocomplete) 
 * 
 * @param projectId {string} Your Google Cloud Project ID 
 * @param tenantId {string} Identifier of the TenantId 
 */ 
 function 
  
 sampleCompleteQuery 
 ( 
  
 projectId 
 , 
  
 tenantId 
 , 
  
 query 
 , 
  
 numResults 
 , 
  
 languageCode 
 ) 
  
 { 
  
 const 
  
 client 
  
 = 
  
 new 
  
 talent 
 . 
  CompletionClient 
 
 (); 
  
 // const projectId = 'Your Google Cloud Project ID'; 
  
 // const tenantId = 'Your Tenant ID (using tenancy is optional)'; 
  
 // const query = '[partially typed job title]'; 
  
 // const numResults = 5; 
  
 // const languageCode = 'en-US'; 
  
 const 
  
 formattedParent 
  
 = 
  
 client 
 . 
 tenantPath 
 ( 
 projectId 
 , 
  
 tenantId 
 ); 
  
 const 
  
 languageCodes 
  
 = 
  
 [ 
 languageCode 
 ]; 
  
 const 
  
 request 
  
 = 
  
 { 
  
 parent 
 : 
  
 formattedParent 
 , 
  
 query 
 : 
  
 query 
 , 
  
 pageSize 
 : 
  
 numResults 
 , 
  
 languageCodes 
 : 
  
 languageCodes 
 , 
  
 }; 
  
 client 
  
 . 
 completeQuery 
 ( 
 request 
 ) 
  
 . 
 then 
 ( 
 responses 
  
 = 
>  
 { 
  
 const 
  
 response 
  
 = 
  
 responses 
 [ 
 0 
 ]; 
  
 for 
  
 ( 
 const 
  
 result 
  
 of 
  
 response 
 . 
 completionResults 
 ) 
  
 { 
  
 console 
 . 
 log 
 ( 
 `Suggested title: 
 ${ 
 result 
 . 
 suggestion 
 } 
 ` 
 ); 
  
 // Suggestion type is JOB_TITLE or COMPANY_TITLE 
  
 console 
 . 
 log 
 ( 
 `Suggestion type: 
 ${ 
  result 
 
 . 
 type 
 } 
 ` 
 ); 
  
 } 
  
 }) 
  
 . 
 catch 
 ( 
 err 
  
 = 
>  
 { 
  
 console 
 . 
 error 
 ( 
 err 
 ); 
  
 }); 
 } 
 

Python

To learn how to install and use the client library for CTS, see CTS client libraries . For more information, see the CTS Python API reference documentation .

To authenticate to CTS, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  from 
  
 google.cloud 
  
 import 
 talent_v4beta1 
 def 
  
 complete_query 
 ( 
 project_id 
 , 
 tenant_id 
 , 
 query 
 ): 
  
 """Complete job title given partial text (autocomplete)""" 
 client 
 = 
 talent_v4beta1 
 . 
  CompletionClient 
 
 () 
 # project_id = 'Your Google Cloud Project ID' 
 # tenant_id = 'Your Tenant ID (using tenancy is optional)' 
 # query = '[partially typed job title]' 
 if 
 isinstance 
 ( 
 project_id 
 , 
 bytes 
 ): 
 project_id 
 = 
 project_id 
 . 
 decode 
 ( 
 "utf-8" 
 ) 
 if 
 isinstance 
 ( 
 tenant_id 
 , 
 bytes 
 ): 
 tenant_id 
 = 
 tenant_id 
 . 
 decode 
 ( 
 "utf-8" 
 ) 
 if 
 isinstance 
 ( 
 query 
 , 
 bytes 
 ): 
 query 
 = 
 query 
 . 
 decode 
 ( 
 "utf-8" 
 ) 
 parent 
 = 
 f 
 "projects/ 
 { 
 project_id 
 } 
 /tenants/ 
 { 
 tenant_id 
 } 
 " 
 request 
 = 
 talent_v4beta1 
 . 
  CompleteQueryRequest 
 
 ( 
 parent 
 = 
 parent 
 , 
 query 
 = 
 query 
 , 
 page_size 
 = 
 5 
 , 
 # limit for number of results 
 language_codes 
 = 
 [ 
 "en-US" 
 ], 
 # language code 
 ) 
 response 
 = 
 client 
 . 
  complete_query 
 
 ( 
 request 
 = 
 request 
 ) 
 for 
 result 
 in 
 response 
 . 
 completion_results 
 : 
 print 
 ( 
 f 
 "Suggested title: 
 { 
 result 
 . 
 suggestion 
 } 
 " 
 ) 
 # Suggestion type is JOB_TITLE or COMPANY_TITLE 
 print 
 ( 
 f 
 "Suggestion type: 
 { 
 talent_v4beta1 
 . 
  CompleteQueryRequest 
 
 . 
  CompletionType 
 
 ( 
 result 
 . 
 type_ 
 ) 
 . 
 name 
 } 
 " 
 ) 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: