/// <summary>Snippet for SearchJobs</summary> public void SearchJobs_RequestObject() { // Snippet: SearchJobs(SearchJobsRequest,CallSettings) // Create client JobServiceClient jobServiceClient = JobServiceClient.Create(); // Initialize request argument(s) SearchJobsRequest request = new SearchJobsRequest { ParentAsTenantOrProjectNameOneof = TenantOrProjectNameOneof.From(new TenantName("[PROJECT]", "[TENANT]")), RequestMetadata = new RequestMetadata(), }; // Make the request PagedEnumerable <SearchJobsResponse, MatchingJob> response = jobServiceClient.SearchJobs(request); // Iterate over all response items, lazily performing RPCs as required foreach (SearchJobsResponse.Types.MatchingJob item in response) { // Do something with each item Console.WriteLine(item); } // Or iterate over pages (of server-defined size), performing one RPC per page foreach (SearchJobsResponse page in response.AsRawResponses()) { // Do something with each page of items Console.WriteLine("A page of results:"); foreach (SearchJobsResponse.Types.MatchingJob item in page) { Console.WriteLine(item); } } // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required int pageSize = 10; Page <SearchJobsResponse.Types.MatchingJob> singlePage = response.ReadPage(pageSize); // Do something with the page of items Console.WriteLine($"A page of {pageSize} results (unless it's the final page):"); foreach (SearchJobsResponse.Types.MatchingJob item in singlePage) { Console.WriteLine(item); } // Store the pageToken, for when the next page is required. string nextPageToken = singlePage.NextPageToken; // End snippet }
// [START job_search_custom_ranking_search] public static object CustomRankingSearch(string projectId, string tenantId) { JobServiceClient jobServiceClient = JobServiceClient.Create(); TenantName name = new TenantName(projectId, tenantId); string domain = "www.example.com"; string sessionId = "Hashed session identifier"; string userId = "Hashed user identifier"; RequestMetadata requestMetadata = new RequestMetadata { Domain = domain, SessionId = sessionId, UserId = userId }; CustomRankingInfo customRankingInfo = new CustomRankingInfo { ImportanceLevel = ImportanceLevel.Extreme, // Custom ranking supports math operators, and Field name can be CPC or Freshness // https://cloud.google.com/talent-solution/job-search/docs/custom-ranking#how_to_use RankingExpression = "(someFieldLong + 25) * 0.25" }; string orderBy = "custom_ranking desc"; SearchJobsRequest request = new SearchJobsRequest { ParentAsTenantOrProjectNameOneof = TenantOrProjectNameOneof.From(name), CustomRankingInfo = customRankingInfo, RequestMetadata = requestMetadata, OrderBy = orderBy }; var response = jobServiceClient.SearchJobs(request); foreach (var result in response) { Console.WriteLine($"Job summary: {result.JobSummary}"); Console.WriteLine($"Job title snippet: {result.JobTitleSnippet}"); Job job = result.Job; Console.WriteLine($"Job name: {job.Name}"); Console.WriteLine($"Job title: {job.Title}"); } return(0); }
// [START job_search_histogram_search] public static object HistogramSearchJobs(string projectId, string tenantId, string query) { JobServiceClient jobServiceClient = JobServiceClient.Create(); TenantName name = TenantName.FromProjectTenant(projectId, tenantId); string domain = "www.example.com"; string sessionId = "Hashed session identifier"; string userId = "Hashed user identifier"; RequestMetadata requestMetadata = new RequestMetadata { Domain = domain, SessionId = sessionId, UserId = userId }; // Examples and formats are explained in the following link: // https://cloud.google.com/talent-solution/job-search/docs/reference/rest/v4beta1/projects.tenants.jobs/search#body.request_body.FIELDS.histogram_queries HistogramQuery histogramQuery = new HistogramQuery { HistogramQuery_ = query }; SearchJobsRequest request = new SearchJobsRequest { ParentAsTenantName = name, RequestMetadata = requestMetadata, }; request.HistogramQueries.Add(histogramQuery); var response = jobServiceClient.SearchJobs(request); foreach (var result in response) { Console.WriteLine($"Job summary: {result.JobSummary}"); Console.WriteLine($"Job title snippet: {result.JobTitleSnippet}"); Job job = result.Job; Console.WriteLine($"Job name: {job.Name}"); Console.WriteLine($"Job title: {job.Title}"); } return(0); }
// [START job_search_commute_search] public static object CommuteSearchJobs(string projectId, string tenantId) { JobServiceClient jobServiceClient = JobServiceClient.Create(); TenantName name = TenantName.FromProjectTenant(projectId, tenantId); string domain = "www.example.com"; string sessionId = "Hashed session identifier"; string userId = "Hashed user identifier"; RequestMetadata requestMetadata = new RequestMetadata { Domain = domain, SessionId = sessionId, UserId = userId }; CommuteMethod commuteMethod = CommuteMethod.Driving; long seconds = 3600L; Duration travelDuration = new Duration { Seconds = seconds }; double latitude = 37.422408; double longitude = -122.084068; LatLng startCoordinates = new LatLng { Latitude = latitude, Longitude = longitude }; CommuteFilter commuteFilter = new CommuteFilter { CommuteMethod = commuteMethod, TravelDuration = travelDuration, StartCoordinates = startCoordinates }; JobQuery jobQuery = new JobQuery { CommuteFilter = commuteFilter }; SearchJobsRequest request = new SearchJobsRequest { ParentAsTenantName = name, RequestMetadata = requestMetadata, JobQuery = jobQuery }; var response = jobServiceClient.SearchJobs(request); foreach (var result in response) { Console.WriteLine($"Job summary: {result.JobSummary}"); Console.WriteLine($"Job title snippet: {result.JobTitleSnippet}"); Job job = result.Job; Console.WriteLine($"Job name: {job.Name}"); Console.WriteLine($"Job title: {job.Title}"); } return(0); }