Alertas de email (v3)

A Cloud Talent Solution também oferece uma API de pesquisa, SearchJobsForAlert, ajustada às necessidades de "candidatos passivos". Estes são indivíduos que não estão necessariamente à procura de emprego ativamente, mas que podem estar inclinados a candidatar-se a um se surgirem as circunstâncias certas. Por exemplo, um cliente pode tirar partido da Cloud Talent Solution para preencher o conteúdo de uma campanha de email concebida para oferecer atualizações periódicas de empregos nos quais os indivíduos possam estar interessados. Os resultados de SearchJobsForAlert podem ser diferentes dos de searchJobs e destinam-se a ser usados em emails de alertas de emprego e outras campanhas segmentadas para candidatos a emprego passivos. Use o filtro de data de publicação quando chamar SearchJobsForAlert para restringir o conjunto de trabalhos pesquisados aos publicados desde a última geração do alerta. Para mais informações sobre a utilização desta funcionalidade, consulte o guia de implementação de alertas por email.

As pesquisas de alertas por email são feitas da mesma forma que uma pesquisa normal:

Java

Para mais informações sobre a instalação e a criação de um cliente da Cloud Talent Solution, consulte as bibliotecas de cliente da Cloud Talent Solution.


/** Search jobs for alert. */
public static void searchForAlerts(String companyName) 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");

  SearchJobsRequest request =
      new SearchJobsRequest()
          .setRequestMetadata(requestMetadata)
          .setSearchMode("JOB_SEARCH"); // Set the search mode to a regular search
  if (companyName != null) {
    request.setJobQuery(new JobQuery().setCompanyNames(Arrays.asList(companyName)));
  }

  SearchJobsResponse response =
      talentSolutionClient
          .projects()
          .jobs()
          .searchForAlert(DEFAULT_PROJECT_ID, request)
          .execute();
  Thread.sleep(1000);
  System.out.printf("Search jobs for alert results: %s\n", response);
}

Python

Para mais informações sobre a instalação e a criação de um cliente da Cloud Talent Solution, consulte as bibliotecas de cliente da Cloud Talent Solution.

def search_for_alerts(client_service, company_name):
    request_metadata = {
        "user_id": "HashedUserId",
        "session_id": "HashedSessionId",
        "domain": "www.google.com",
    }
    request = {
        "search_mode": "JOB_SEARCH",
        "request_metadata": request_metadata,
    }
    if company_name is not None:
        request.update({"job_query": {"company_names": [company_name]}})
    response = (
        client_service.projects()
        .jobs()
        .searchForAlert(parent=parent, body=request)
        .execute()
    )
    print(response)

Go

Para mais informações sobre a instalação e a criação de um cliente da Cloud Talent Solution, consulte as bibliotecas de cliente da Cloud Talent Solution.


// searchForAlerts searches for jobs with email alert set which could receive
// updates later if search result updates.
func searchForAlerts(w io.Writer, projectID, companyName 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)
	}

	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 search mode to a regular search.
		SearchMode: "JOB_SEARCH",
	}
	if companyName != "" {
		req.JobQuery = &talent.JobQuery{
			CompanyNames: []string{companyName},
		}
	}

	resp, err := service.Projects.Jobs.SearchForAlert(parent, req).Do()
	if err != nil {
		return nil, fmt.Errorf("failed to search for jobs with alerts: %w", err)
	}

	fmt.Fprintln(w, "Jobs:")
	for _, j := range resp.MatchingJobs {
		fmt.Fprintf(w, "\t%q\n", j.Job.Name)
	}

	return resp, nil
}

Para informações sobre a pesquisa, consulte o artigo Noções básicas de pesquisa.