按日期搜索职位。
深入探索
如需查看包含此代码示例的详细文档,请参阅以下内容:
代码示例
Go
如需了解如何安装和使用适用于 CTS 的客户端库,请参阅 CTS 客户端库。 如需了解详情,请参阅 CTS Go API 参考文档。
如需向 CTS 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
// /dateRangeSearch searches for jobs on date range.
// In JSON format, the Timestamp type is encoded as a string in the
// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
// e.g. "2017-01-15T01:30:15.01Z".
func dateRangeSearch(w io.Writer, projectID, companyName, startTime, endTime string) (*talent.SearchJobsResponse, error) {
ctx := context.Background()
client, err := google.DefaultClient(ctx, talent.CloudPlatformScope)
if err != nil {
return nil, fmt.Errorf("google.DefaultClient: %w", err)
}
// Create the jobs service client.
service, err := talent.New(client)
if err != nil {
return nil, fmt.Errorf("talent.New: %w", err)
}
jobQuery := &talent.JobQuery{
PublishTimeRange: &talent.TimestampRange{
StartTime: startTime,
EndTime: endTime,
},
}
if companyName != "" {
jobQuery.CompanyNames = []string{companyName}
}
parent := "projects/" + projectID
req := &talent.SearchJobsRequest{
// Make sure to set the RequestMetadata the same as the associated
// search request.
RequestMetadata: &talent.RequestMetadata{
// Make sure to hash your userID.
UserId: "HashedUsrId",
// Make sure to hash the sessionID.
SessionId: "HashedSessionId",
// Domain of the website where the search is conducted.
Domain: "www.googlesample.com",
},
// Set the actual search term as defined in the jobQuery.
JobQuery: jobQuery,
// Set the search mode to a regular search.
SearchMode: "JOB_SEARCH",
}
resp, err := service.Projects.Jobs.Search(parent, req).Do()
if err != nil {
return nil, fmt.Errorf("failed to search for jobs with date range [%s, %s]: %w", startTime, endTime, err)
}
fmt.Fprintln(w, "Jobs:")
for _, j := range resp.MatchingJobs {
fmt.Fprintf(w, "\t%q\n", j.Job.Name)
}
return resp, nil
}
Java
如需了解如何安装和使用适用于 CTS 的客户端库,请参阅 CTS 客户端库。 如需了解详情,请参阅 CTS Java API 参考文档。
如需向 CTS 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
/**
* Search on date range. In JSON format, the Timestamp type is encoded as a string in the [RFC
* 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the format is
* "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" e.g. "2017-01-15T01:30:15.01Z"
*/
public static void dateRangeSearch(String companyName, String startTime, String endTime)
throws IOException, InterruptedException {
// Make sure to set the requestMetadata the same as the associated search request
RequestMetadata requestMetadata =
new RequestMetadata()
// Make sure to hash your userID
.setUserId("HashedUserId")
// Make sure to hash the sessionID
.setSessionId("HashedSessionID")
// Domain of the website where the search is conducted
.setDomain("www.google.com");
TimestampRange timestampRange =
new TimestampRange().setStartTime(startTime).setEndTime(endTime);
JobQuery jobQuery = new JobQuery().setPublishTimeRange(timestampRange);
// JobQuery jobQuery = new JobQuery().setPublishTimeRange(dateRange);
if (companyName != null) {
jobQuery.setCompanyNames(Arrays.asList(companyName));
}
SearchJobsRequest searchJobsRequest =
new SearchJobsRequest()
.setRequestMetadata(requestMetadata)
.setJobQuery(jobQuery) // Set the actual search term as defined in the jobQurey
.setSearchMode("JOB_SEARCH"); // Set the search mode to a regular search
SearchJobsResponse searchJobsResponse =
talentSolutionClient
.projects()
.jobs()
.search(DEFAULT_PROJECT_ID, searchJobsRequest)
.execute();
Thread.sleep(1000);
System.out.printf("Search results on jobs with a date range: %s\n", searchJobsResponse);
}
Python
如需了解如何安装和使用适用于 CTS 的客户端库,请参阅 CTS 客户端库。 如需了解详情,请参阅 CTS Python API 参考文档。
如需向 CTS 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
def date_range_search(client_service, company_name, date_range):
request_metadata = {
"user_id": "HashedUserId",
"session_id": "HashedSessionId",
"domain": "www.google.com",
}
job_query = {"publish_time_range": date_range}
if company_name is not None:
job_query.update({"company_names": [company_name]})
request = {
"search_mode": "JOB_SEARCH",
"request_metadata": request_metadata,
"job_query": job_query,
}
response = (
client_service.projects().jobs().search(parent=parent, body=request).execute()
)
print(response)
Ruby
如需了解如何安装和使用适用于 CTS 的客户端库,请参阅 CTS 客户端库。
如需向 CTS 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
# project_id = "Id of the project"
# company_name = "The resource name of the company listing the job. The format is "projects/{project_id}/companies/{company_id}""
# start_time = "Start time of the date range we want to search on"
# end_time = "End time of the date range we want to search on"
require "google/apis/jobs_v3"
# Instantiate the client
jobs = Google::Apis::JobsV3
talent_solution_client = jobs::CloudTalentSolutionService.new
# @see
# https://developers.google.com/identity/protocols/application-default-credentials#callingruby
talent_solution_client.authorization = Google::Auth.get_application_default(
"https://www.googleapis.com/auth/jobs"
)
# Make sure to set the request_metadata the same as the associated search request
request_metadata = jobs::RequestMetadata.new user_id: "HashedUserId",
session_id: "HashedSessionId",
domain: "http://careers.google.com"
# Perform a search for analyst related jobs
timestamp_range = jobs::TimestampRange.new start_time: start_time,
end_time: end_time
job_query = jobs::JobQuery.new publish_time_range: timestamp_range,
company_names: [company_name]
search_jobs_request = jobs::SearchJobsRequest.new request_metadata: request_metadata,
job_query: job_query,
search_mode: "JOB_SEARCH"
search_jobs_response = talent_solution_client.search_jobs project_id, search_jobs_request
puts search_jobs_response.to_json
search_jobs_response
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器。