基本的な場所検索
Java
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
/** Basic location Search */
public static void basicLocationSearch(String companyName, String location, double distance)
throws IOException, InterruptedException {
// Make sure to set the requestMetadata the same as the associated search request
RequestMetadata requestMetadata =
new RequestMetadata()
// Make sure to hash the userID
.setUserId("HashedUserId")
// Make sure to hash the sessionID
.setSessionId("HashedSessionID")
// Domain of the website where the search is conducted
.setDomain("www.google.com");
LocationFilter locationFilter =
new LocationFilter().setAddress(location).setDistanceInMiles(distance);
JobQuery jobQuery = new JobQuery().setLocationFilters(Arrays.asList(locationFilter));
if (companyName != null) {
jobQuery.setCompanyNames(Arrays.asList(companyName));
}
SearchJobsRequest request =
new SearchJobsRequest()
.setRequestMetadata(requestMetadata)
.setJobQuery(jobQuery)
.setSearchMode("JOB_SEARCH");
SearchJobsResponse response =
talentSolutionClient.projects().jobs().search(DEFAULT_PROJECT_ID, request).execute();
Thread.sleep(1000);
System.out.printf("Basic location search results: %s", response);
}
Python
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
def basic_location_search(client_service, company_name, location, distance):
request_metadata = {
"user_id": "HashedUserId",
"session_id": "HashedSessionId",
"domain": "www.google.com",
}
location_filter = {"address": location, "distance_in_miles": distance}
job_query = {"location_filters": [location_filter]}
if company_name is not None:
job_query.update({"company_names": [company_name]})
request = {
"job_query": job_query,
"request_metadata": request_metadata,
"search_mode": "JOB_SEARCH",
}
response = (
client_service.projects().jobs().search(parent=parent, body=request).execute()
)
print(response)
場所検索のキーワード
Java
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
/** Keyword location Search */
public static void keywordLocationSearch(
String companyName, String location, double distance, String keyword)
throws IOException, InterruptedException {
// Make sure to set the requestMetadata the same as the associated search request
RequestMetadata requestMetadata =
new RequestMetadata()
// Make sure to hash the userID
.setUserId("HashedUserId")
// Make sure to hash the sessionID
.setSessionId("HashedSessionID")
// Domain of the website where the search is conducted
.setDomain("www.google.com");
LocationFilter locationFilter =
new LocationFilter().setAddress(location).setDistanceInMiles(distance);
JobQuery jobQuery =
new JobQuery().setQuery(keyword).setLocationFilters(Arrays.asList(locationFilter));
if (companyName != null) {
jobQuery.setCompanyNames(Arrays.asList(companyName));
}
SearchJobsRequest request =
new SearchJobsRequest()
.setRequestMetadata(requestMetadata)
.setJobQuery(jobQuery)
.setSearchMode("JOB_SEARCH");
SearchJobsResponse response =
talentSolutionClient.projects().jobs().search(DEFAULT_PROJECT_ID, request).execute();
Thread.sleep(1000);
System.out.printf("Keyword location search results: %s", response);
}
Python
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
def keyword_location_search(client_service, company_name, location, distance, keyword):
request_metadata = {
"user_id": "HashedUserId",
"session_id": "HashedSessionId",
"domain": "www.google.com",
}
location_filter = {"address": location, "distance_in_miles": distance}
job_query = {"location_filters": [location_filter], "query": keyword}
if company_name is not None:
job_query.update({"company_names": [company_name]})
request = {
"job_query": job_query,
"request_metadata": request_metadata,
"search_mode": "JOB_SEARCH",
}
response = (
client_service.projects().jobs().search(parent=parent, body=request).execute()
)
print(response)
Go
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
// keywordLocationSearch searches for jobs with given keyword and within the
// distance of given location.
func keywordLocationSearch(w io.Writer, projectID, companyName, location string, distance float64, keyword 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{
LocationFilters: []*talent.LocationFilter{
{
Address: location,
DistanceInMiles: distance,
},
},
Query: keyword,
}
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 keyword %q in location %v within %f miles: %w", keyword, location, distance, err)
}
fmt.Fprintln(w, "Jobs:")
for _, j := range resp.MatchingJobs {
fmt.Fprintf(w, "\t%q\n", j.Job.Name)
}
return resp, nil
}
address
は文字列で表される実際の勤務地です。これは、番地まで入力することも、国レベルまでの任意のレベルで入力することもできます。たとえば、「123 Main Street, Anytown, WA, USA」または単に「USA」とします。distanceInMiles
:name
またはlatLng
からの検索対象とするマイル単位の距離。デフォルト値は 20 です。最大値は 5,000 です。name
の値が番地の場合、その単一ポイントから設定済み distanceInMiles 以内の求人が返されます。name
の値が近隣または都市の場合、近隣 / 市街中心から設定済み distanceInMiles 以内の求人が返されます。近隣 / 都市内のすべての求人を返すには、distanceInMiles
を 0 に設定します。distanceInMiles が 0 より大きい場合、適用される検索範囲の半径は、近隣 / 都市の地理的境界線に、リクエスト内に設定された distanceInMiles を加算した距離です(地理的境界線は、Google Maps Geocoding API を使用して推定されます)。name
の値が「Bay Area」や「Silicon Valley」など通称で呼ばれるエリアの場合、適用される検索範囲の半径は、そのエリアの地理的境界線に、リクエスト内に設定された distanceInMiles を加算した距離です。- 値
name
が都道府県(州)または国の場合、distanceInMiles
は無視され、指定された都道府県(州)または国の求人が返されます。
都市レベルの場所のみを持つ基本的な場所と出力
Java
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
/** City location Search */
public static void cityLocationSearch(String companyName, String location)
throws IOException, InterruptedException {
// Make sure to set the requestMetadata the same as the associated search request
RequestMetadata requestMetadata =
new RequestMetadata()
// Make sure to hash the userID
.setUserId("HashedUserId")
// Make sure to hash the sessionID
.setSessionId("HashedSessionID")
// Domain of the website where the search is conducted
.setDomain("www.google.com");
LocationFilter locationFilter = new LocationFilter().setAddress(location);
JobQuery jobQuery = new JobQuery().setLocationFilters(Arrays.asList(locationFilter));
if (companyName != null) {
jobQuery.setCompanyNames(Arrays.asList(companyName));
}
SearchJobsRequest request =
new SearchJobsRequest()
.setRequestMetadata(requestMetadata)
.setJobQuery(jobQuery)
.setSearchMode("JOB_SEARCH");
SearchJobsResponse response =
talentSolutionClient.projects().jobs().search(DEFAULT_PROJECT_ID, request).execute();
Thread.sleep(1000);
System.out.printf("City locations search results: %s", response);
}
Python
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
def city_location_search(client_service, company_name, location):
request_metadata = {
"user_id": "HashedUserId",
"session_id": "HashedSessionId",
"domain": "www.google.com",
}
location_filter = {"address": location}
job_query = {"location_filters": [location_filter]}
if company_name is not None:
job_query.update({"company_names": [company_name]})
request = {
"job_query": job_query,
"request_metadata": request_metadata,
"search_mode": "JOB_SEARCH",
}
response = (
client_service.projects().jobs().search(parent=parent, body=request).execute()
)
print(response)
Go
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
// cityLocationSearch searches for jobs in the same city of given location.
func cityLocationSearch(w io.Writer, projectID, companyName, location 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{
LocationFilters: []*talent.LocationFilter{
{
Address: location,
},
},
}
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 city location %s: %w", location, err)
}
fmt.Fprintln(w, "Jobs:")
for _, j := range resp.MatchingJobs {
fmt.Fprintf(w, "\t%q\n", j.Job.Name)
}
return resp, nil
}
複数の場所
複数の半径とともに、複数の場所が検索クエリに渡された場合、最大半径が考慮され、すべての場所に適用されます。 場所は、求人ごとに 5 つまでに制限されています。
Java
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
/** Multiple locations Search */
public static void multiLocationsSearch(
String companyName, String location1, double distance1, String location2)
throws IOException, InterruptedException {
// Make sure to set the requestMetadata the same as the associated search request
RequestMetadata requestMetadata =
new RequestMetadata()
// Make sure to hash the userID
.setUserId("HashedUserId")
// Make sure to hash the sessionID
.setSessionId("HashedSessionID")
// Domain of the website where the search is conducted
.setDomain("www.google.com");
JobQuery jobQuery =
new JobQuery()
.setLocationFilters(
Arrays.asList(
new LocationFilter().setAddress(location1).setDistanceInMiles(distance1),
new LocationFilter().setAddress(location2)));
if (companyName != null) {
jobQuery.setCompanyNames(Arrays.asList(companyName));
}
SearchJobsRequest request =
new SearchJobsRequest()
.setRequestMetadata(requestMetadata)
.setJobQuery(jobQuery)
.setSearchMode("JOB_SEARCH");
SearchJobsResponse response =
talentSolutionClient.projects().jobs().search(DEFAULT_PROJECT_ID, request).execute();
Thread.sleep(1000);
System.out.printf("Multiple locations search results: %s", response);
}
Python
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
def multi_locations_search(
client_service, company_name, location1, distance1, location2
):
request_metadata = {
"user_id": "HashedUserId",
"session_id": "HashedSessionId",
"domain": "www.google.com",
}
location_filter1 = {"address": location1, "distance_in_miles": distance1}
location_filter2 = {"address": location2}
job_query = {"location_filters": [location_filter1, location_filter2]}
if company_name is not None:
job_query.update({"company_names": [company_name]})
request = {
"job_query": job_query,
"request_metadata": request_metadata,
"search_mode": "JOB_SEARCH",
}
response = (
client_service.projects().jobs().search(parent=parent, body=request).execute()
)
print(response)
Go
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
// multiLocationsSearch searches for jobs that fall in the distance of any given
// locations.
func multiLocationsSearch(w io.Writer, projectID, companyName, location, location2 string, distance float64) (*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{
LocationFilters: []*talent.LocationFilter{
{
Address: location,
DistanceInMiles: distance,
},
{
Address: location2,
DistanceInMiles: distance,
},
},
}
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 multi locations %s and %s within %f miles, Err: %w", location, location2, distance, err)
}
fmt.Fprintln(w, "Jobs:")
for _, j := range resp.MatchingJobs {
fmt.Fprintf(w, "\t%q\n", j.Job.Name)
}
return resp, nil
}
enableBroadening フラグの設定
enableBroadening フラグを使用すると、返される結果の件数を増やすために、場所および職種の制限を緩和できます。
Java
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
/** Broadening location Search */
public static void broadeningLocationsSearch(String companyName, String location)
throws IOException, InterruptedException {
// Make sure to set the requestMetadata the same as the associated search request
RequestMetadata requestMetadata =
new RequestMetadata()
// Make sure to hash the userID
.setUserId("HashedUserId")
// Make sure to hash the sessionID
.setSessionId("HashedSessionID")
// Domain of the website where the search is conducted
.setDomain("www.google.com");
JobQuery jobQuery =
new JobQuery().setLocationFilters(Arrays.asList(new LocationFilter().setAddress(location)));
if (companyName != null) {
jobQuery.setCompanyNames(Arrays.asList(companyName));
}
SearchJobsRequest request =
new SearchJobsRequest()
.setRequestMetadata(requestMetadata)
.setJobQuery(jobQuery)
.setEnableBroadening(true)
.setSearchMode("JOB_SEARCH");
SearchJobsResponse response =
talentSolutionClient.projects().jobs().search(DEFAULT_PROJECT_ID, request).execute();
Thread.sleep(1000);
System.out.printf("Broadening locations search results: %s", response);
}
Python
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
def broadening_location_search(client_service, company_name, location):
request_metadata = {
"user_id": "HashedUserId",
"session_id": "HashedSessionId",
"domain": "www.google.com",
}
location_filter = {"address": location}
job_query = {"location_filters": [location_filter]}
if company_name is not None:
job_query.update({"company_names": [company_name]})
request = {
"job_query": job_query,
"request_metadata": request_metadata,
"search_mode": "JOB_SEARCH",
"enable_broadening": True,
}
response = (
client_service.projects().jobs().search(parent=parent, body=request).execute()
)
print(response)
Go
Cloud Talent Solution クライアントのインストールと作成の詳細については、Cloud Talent Solution クライアント ライブラリをご覧ください。
// broadeningLocationSearch searches for jobs with a broadening area of given
// location.
func broadeningLocationSearch(w io.Writer, projectID, companyName, location 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{
LocationFilters: []*talent.LocationFilter{
{
Address: location,
},
},
}
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",
EnableBroadening: true,
}
resp, err := service.Projects.Jobs.Search(parent, req).Do()
if err != nil {
return nil, fmt.Errorf("failed to search for jobs with broadening location %v: %w", location, err)
}
fmt.Fprintln(w, "Jobs:")
for _, j := range resp.MatchingJobs {
fmt.Fprintf(w, "\t%q\n", j.Job.Name)
}
return resp, nil
}