/// <summary>Snippet for UpdateJob</summary> public void UpdateJob_RequestObject() { // Snippet: UpdateJob(UpdateJobRequest,CallSettings) // Create client JobServiceClient jobServiceClient = JobServiceClient.Create(); // Initialize request argument(s) UpdateJobRequest request = new UpdateJobRequest { Job = new Job(), }; // Make the request Job response = jobServiceClient.UpdateJob(request); // End snippet }
// [START job_search_delete_job_beta] public static object DeleteJob(string projectId, string tenantId, string jobId) { JobServiceClient jobServiceClient = JobServiceClient.Create(); JobName name = new JobName(projectId, tenantId, jobId); DeleteJobRequest request = new DeleteJobRequest { JobNameOneof = JobNameOneof.From(name) }; jobServiceClient.DeleteJob(request); Console.WriteLine("Deleted Job."); return(0); }
/// <summary>Snippet for GetJob</summary> public void GetJob_RequestObject() { // Snippet: GetJob(GetJobRequest,CallSettings) // Create client JobServiceClient jobServiceClient = JobServiceClient.Create(); // Initialize request argument(s) GetJobRequest request = new GetJobRequest { JobName = new JobName("[PROJECT]", "[JOBS]"), }; // Make the request Job response = jobServiceClient.GetJob(request); // End snippet }
/// <summary>Snippet for CreateJob</summary> public void CreateJob_RequestObject() { // Snippet: CreateJob(CreateJobRequest,CallSettings) // Create client JobServiceClient jobServiceClient = JobServiceClient.Create(); // Initialize request argument(s) CreateJobRequest request = new CreateJobRequest { ParentAsTenantOrProjectNameOneof = TenantOrProjectNameOneof.From(new TenantName("[PROJECT]", "[TENANT]")), Job = new Job(), }; // Make the request Job response = jobServiceClient.CreateJob(request); // End snippet }
/// <summary>Snippet for DeleteJob</summary> public void DeleteJob_RequestObject() { // Snippet: DeleteJob(DeleteJobRequest,CallSettings) // Create client JobServiceClient jobServiceClient = JobServiceClient.Create(); // Initialize request argument(s) DeleteJobRequest request = new DeleteJobRequest { JobNameOneof = JobNameOneof.From(new JobName("[PROJECT]", "[TENANT]", "[JOBS]")), }; // Make the request jobServiceClient.DeleteJob(request); // End snippet }
/// <summary>Snippet for CreateJob</summary> public void CreateJob_RequestObject() { // Snippet: CreateJob(CreateJobRequest,CallSettings) // Create client JobServiceClient jobServiceClient = JobServiceClient.Create(); // Initialize request argument(s) CreateJobRequest request = new CreateJobRequest { Parent = new ProjectName("[PROJECT]").ToString(), Job = new Job(), }; // Make the request Job response = jobServiceClient.CreateJob(request); // End snippet }
/// <summary>Snippet for BatchDeleteJobs</summary> public void BatchDeleteJobs_RequestObject() { // Snippet: BatchDeleteJobs(BatchDeleteJobsRequest,CallSettings) // Create client JobServiceClient jobServiceClient = JobServiceClient.Create(); // Initialize request argument(s) BatchDeleteJobsRequest request = new BatchDeleteJobsRequest { ParentAsTenantOrProjectNameOneof = TenantOrProjectNameOneof.From(new TenantName("[PROJECT]", "[TENANT]")), Filter = "", }; // Make the request jobServiceClient.BatchDeleteJobs(request); // End snippet }
/// <summary>Snippet for BatchDeleteJobs</summary> public void BatchDeleteJobs_RequestObject() { // Snippet: BatchDeleteJobs(BatchDeleteJobsRequest,CallSettings) // Create client JobServiceClient jobServiceClient = JobServiceClient.Create(); // Initialize request argument(s) BatchDeleteJobsRequest request = new BatchDeleteJobsRequest { Parent = new ProjectName("[PROJECT]").ToString(), Filter = "", }; // Make the request jobServiceClient.BatchDeleteJobs(request); // End snippet }
/// <summary>Snippet for SearchJobsForAlert</summary> public void SearchJobsForAlert_RequestObject() { // Snippet: SearchJobsForAlert(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.SearchJobsForAlert(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 }
/// <summary>Snippet for ListJobs</summary> public void ListJobs_RequestObject() { // Snippet: ListJobs(ListJobsRequest,CallSettings) // Create client JobServiceClient jobServiceClient = JobServiceClient.Create(); // Initialize request argument(s) ListJobsRequest request = new ListJobsRequest { ParentAsProjectName = new ProjectName("[PROJECT]"), Filter = "", }; // Make the request PagedEnumerable <ListJobsResponse, Job> response = jobServiceClient.ListJobs(request); // Iterate over all response items, lazily performing RPCs as required foreach (Job 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 (ListJobsResponse page in response.AsRawResponses()) { // Do something with each page of items Console.WriteLine("A page of results:"); foreach (Job 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 <Job> 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 (Job item in singlePage) { Console.WriteLine(item); } // Store the pageToken, for when the next page is required. string nextPageToken = singlePage.NextPageToken; // End snippet }
private static int Main(string[] args) { if (args.Length != 1) { Console.Error.WriteLine("Specify the project ID as the only command line argument"); return(1); } string projectId = args[0]; var companyClient = CompanyServiceClient.Create(); var jobClient = JobServiceClient.Create(); var parentName = TenantOrProjectName.FromProject(projectId); var testCompanies = companyClient.ListCompanies(parentName) .Where(cn => cn.ExternalId.StartsWith("test-")) .Select(c => c.CompanyName) .ToList(); Console.WriteLine($"Companies to delete: {testCompanies.Count}"); foreach (var companyName in testCompanies) { var jobs = jobClient.ListJobs(parentName, $"companyName=\"{companyName}\"").ToList(); Console.WriteLine($"Jobs for company {companyName}: {jobs.Count}"); foreach (var job in jobs) { try { jobClient.DeleteJob(job.JobName); } catch (RpcException e) { Console.WriteLine($"Failed to delete job {job.Name}: {e.Message}"); } } try { companyClient.DeleteCompany(companyName); } catch (RpcException e) { Console.WriteLine($"Failed to delete company {companyName}: {e.Message}"); } } return(0); }
// [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_list_jobs] public static object ListJobs(string projectId, string tenantId, string filter) { JobServiceClient jobServiceClient = JobServiceClient.Create(); TenantName tenantName = TenantName.FromProjectTenant(projectId, tenantId); ListJobsRequest request = new ListJobsRequest { ParentAsTenantName = tenantName, Filter = filter }; PagedEnumerable <ListJobsResponse, Job> jobs = jobServiceClient.ListJobs(request); foreach (var job in jobs) { Console.WriteLine($"Job name: {job.Name}"); Console.WriteLine($"Job requisition ID: {job.RequisitionId}"); Console.WriteLine($"Job title: {job.Title}"); Console.WriteLine($"Job description: {job.Description}"); } return(0); }
// [START job_search_create_job_custom_attributes] public static object CreateJobCustomAttributes(string projectId, string tenantId, string companyId, string requisitionId) { JobServiceClient jobServiceClient = JobServiceClient.Create(); TenantName tenantName = TenantName.FromProjectTenant(projectId, tenantId); // Custom attribute can be string or numeric value, and can be filtered in search queries. // https://cloud.google.com/talent-solution/job-search/docs/custom-attributes CustomAttribute customAttributes = new CustomAttribute { Filterable = true }; customAttributes.StringValues.Add("Internship"); customAttributes.StringValues.Add("Intern"); customAttributes.StringValues.Add("Apprenticeship"); Job job = new Job { Company = companyId, RequisitionId = requisitionId, Title = "Software Developer I", Description = "This is a description of this <i>wonderful</i> job!", LanguageCode = "en-US" }; job.CustomAttributes.Add("FOR_STUDENTS", customAttributes); CreateJobRequest request = new CreateJobRequest { ParentAsTenantName = tenantName, Job = job }; Job response = jobServiceClient.CreateJob(request); Console.WriteLine($"Created Job: {response.Name}"); 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); }