/// <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
 }
Example #4
0
 /// <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
 }
Example #5
0
        /// <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
        }
Example #6
0
 /// <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
 }
Example #7
0
        /// <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
        }
Example #8
0
        /// <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
        }
Example #9
0
        /// <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
        }
Example #11
0
        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);
        }
Example #13
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);
        }
Example #14
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);
        }
Example #16
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);
        }