Autocomplete (v4beta1)

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

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries .

  import 
  
 com.google.cloud.talent.v4beta1.CompleteQueryRequest 
 ; 
 import 
  
 com.google.cloud.talent.v4beta1.CompleteQueryResponse 
 ; 
 import 
  
 com.google.cloud.talent.v4beta1.CompletionClient 
 ; 
 import 
  
 com.google.cloud.talent.v4beta1.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 
 () 
  
 . 
 setParent 
 ( 
 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 
 ()); 
  
 } 
  
 } 
  
 } 
 } 
 

Python

For more on installing and creating a Cloud Talent Solution client, see Cloud Talent Solution Client Libraries .

  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: