QuickStart: criar empresas e vagas

Este tutorial foi desenvolvido para você começar a explorar e desenvolver aplicativos com o Cloud Talent Solution. Consideramos que já exista uma familiaridade com a programação básica e, mesmo sem muito conhecimento de programação, você seja capaz de acompanhar. Após concluir este tutorial, você estará apto a usar a Documentação de referência para criar seus aplicativos básicos. Tutoriais em vídeo e codelabs interativos também estão disponíveis. Por favor, entre em contato se você tiver perguntas.

Pré-requisitos

Você:

Criar uma empresa com vagas e pesquisar essas vagas

Este tutorial orienta você em um aplicativo básico da Cloud Talent Solution e na criação de um único recurso de vaga associado a um recurso de empresa. No próximo tutorial, orientaremos você pelas etapas para procurar vagas na empresa com base nos atributos das vagas e na consulta de pesquisa. A API search tenta retornar vagas mais relevantes à consulta de um candidato com base nos campos disponíveis em uma vaga (nome da empresa, cargo, descrição, categorias, local da vaga e assim em diante).

Criar uma empresa

Empresa é uma entidade associada a um conjunto de listas de vagas. É preciso criar o objeto empresa antes de poder publicar vagas no Cloud Talent Solution para essa empresa. É possível enviar qualquer sequência de forma livre como externalId ao criar a empresa. Isso significa que você usa a chave primária do banco de dados atual (caso tenha uma) ao criar e se referir a uma empresa.

Go

import (
	"context"
	"fmt"
	"io"

	talent "cloud.google.com/go/talent/apiv4beta1"
	talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
)

// createCompany creates a company as given.
func createCompany(w io.Writer, projectID, externalID, displayName string) (*talentpb.Company, error) {
	ctx := context.Background()

	// Initializes a companyService client.
	c, err := talent.NewCompanyClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("talent.NewCompanyClient: %v", err)
	}

	// Construct a createCompany request.
	req := &talentpb.CreateCompanyRequest{
		Parent: fmt.Sprintf("projects/%s", projectID),
		Company: &talentpb.Company{
			ExternalId:  externalID,
			DisplayName: displayName,
		},
	}

	resp, err := c.CreateCompany(ctx, req)
	if err != nil {
		return nil, fmt.Errorf("CreateCompany: %v", err)
	}

	fmt.Fprintf(w, "Created company: %q\n", resp.GetName())

	return resp, nil
}

Java

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.


import com.google.cloud.talent.v4beta1.Company;
import com.google.cloud.talent.v4beta1.CompanyServiceClient;
import com.google.cloud.talent.v4beta1.CreateCompanyRequest;
import com.google.cloud.talent.v4beta1.TenantName;
import java.io.IOException;

public class JobSearchCreateCompany {

  public static void createCompany() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String tenantId = "your-tenant-id";
    String displayName = "your-company-display-name";
    String externalId = "your-external-id";
    createCompany(projectId, tenantId, displayName, externalId);
  }

  // Create a company.
  public static void createCompany(
      String projectId, String tenantId, String displayName, String externalId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (CompanyServiceClient companyServiceClient = CompanyServiceClient.create()) {
      TenantName parent = TenantName.of(projectId, tenantId);
      Company company =
          Company.newBuilder().setDisplayName(displayName).setExternalId(externalId).build();

      CreateCompanyRequest request =
          CreateCompanyRequest.newBuilder()
              .setParent(parent.toString())
              .setCompany(company)
              .build();

      Company response = companyServiceClient.createCompany(request);
      System.out.println("Created Company");
      System.out.format("Name: %s%n", response.getName());
      System.out.format("Display Name: %s%n", response.getDisplayName());
      System.out.format("External ID: %s%n", response.getExternalId());
    }
  }
}

Python

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte a Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback

from google.cloud import talent
import six

def create_company(project_id, tenant_id, display_name, external_id):
    """Create Company"""

    client = talent.CompanyServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID (using tenancy is optional)'
    # display_name = 'My Company Name'
    # external_id = 'Identifier of this company in my system'

    if isinstance(project_id, six.binary_type):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, six.binary_type):
        tenant_id = tenant_id.decode("utf-8")
    if isinstance(display_name, six.binary_type):
        display_name = display_name.decode("utf-8")
    if isinstance(external_id, six.binary_type):
        external_id = external_id.decode("utf-8")
    parent = f"projects/{project_id}/tenants/{tenant_id}"
    company = {"display_name": display_name, "external_id": external_id}

    response = client.create_company(parent=parent, company=company)
    print("Created Company")
    print("Name: {}".format(response.name))
    print("Display Name: {}".format(response.display_name))
    print("External ID: {}".format(response.external_id))
    return response.name

Ruby

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback
require "google/cloud/talent"

# Instantiate a client
company_service = Google::Cloud::Talent.company_service

# project_id = "Your Google Cloud Project ID"
# tenant_id = "Your Tenant ID (using tenancy is optional)"
parent = company_service.tenant_path project: project_id, tenant: tenant_id

# display_name = "My Company Name"
# external_id = "Identifier of this company in my system"
company = { display_name: display_name, external_id: external_id }

response = company_service.create_company parent: parent, company: company
puts "Created Company"
puts "Name: #{response.name}"
puts "Display Name: #{response.display_name}"
puts "External ID: #{response.external_id}"

C#

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback
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;
}

Criar uma vaga

Para postar um novo recurso de vaga, informe todos os campos obrigatórios sobre a vaga, assim como o companyName da empresa que você quer associar a este trabalho. Você especificou companyName anteriormente, quando criou o recurso da empresa.

O objeto de dados com os dados da vaga preenchidos é enviado para o terminal do Cloud Talent Solution por uma solicitação POST. O campo name não deve ser definido na solicitação inicial, porque é um campo "somente saída" da API createJob: faz parte da resposta da API quando uma nova entidade de vaga é criada pelo servidor. O terminal da API para interagir com um recurso de vagas é especificado no documento Bibliotecas de clientes do Cloud Talent Solution.

A resposta à solicitação é um novo objeto de vaga. Ele deve incluir um trabalho name que represente exclusivamente a postagem. A vaga name é usada quando a postagem precisa ser atualizada ou excluída. Como prática recomendada, armazene essa name e mapeie-a para seu próprio ID exclusivo da vaga.

O servidor retornará um erro se você tentar criar uma nova vaga quando já houver uma vaga no sistema com os mesmos companyName, requisitionId e languageCode.

O Cloud Talent Solution também permite criar vagas específicas para um local. Consulte locations para ver mais informações.

O código a seguir cria uma vaga com apenas os campos obrigatórios para a empresa especificados no campo companyName.

É possível criar uma vaga usando o exemplo de código abaixo. Veja Início rápido: criar empresas e vagas para mais detalhes.

Go

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

import (
	"context"
	"fmt"
	"io"

	talent "cloud.google.com/go/talent/apiv4beta1"
	talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
)

// createJob create a job as given.
func createJob(w io.Writer, projectID, companyID, requisitionID, title, URI, description, address1, address2, languageCode string) (*talentpb.Job, error) {
	ctx := context.Background()

	// Initialize a jobService client.
	c, err := talent.NewJobClient(ctx)
	if err != nil {
		fmt.Printf("talent.NewJobClient: %v\n", err)
		return nil, err
	}

	jobToCreate := &talentpb.Job{
		CompanyName:   fmt.Sprintf("projects/%s/companies/%s", projectID, companyID),
		RequisitionId: requisitionID,
		Title:         title,
		ApplicationInfo: &talentpb.Job_ApplicationInfo{
			Uris: []string{URI},
		},
		Description:  description,
		Addresses:    []string{address1, address2},
		LanguageCode: languageCode,
	}

	// Construct a createJob request.
	req := &talentpb.CreateJobRequest{
		Parent: fmt.Sprintf("projects/%s", projectID),
		Job:    jobToCreate,
	}

	resp, err := c.CreateJob(ctx, req)
	if err != nil {
		fmt.Printf("Failed to create job: %v\n", err)
		return nil, err
	}

	fmt.Printf("Created job: %q\n", resp.GetName())

	return resp, nil
}

Java

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.


import com.google.cloud.talent.v4beta1.CreateJobRequest;
import com.google.cloud.talent.v4beta1.Job;
import com.google.cloud.talent.v4beta1.JobServiceClient;
import com.google.cloud.talent.v4beta1.TenantName;
import java.io.IOException;
import java.sql.Timestamp;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
import java.util.Locale;

public class JobSearchCreateJob {

  public static void createJob() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String tenantId = "your-tenant-id";
    String companyId = "your-company-id";
    String requisitionId = "your-unique-req-id";
    String jobApplicationUrl = "your-job-url";
    createJob(projectId, tenantId, companyId, requisitionId, jobApplicationUrl);
  }

  // Create a job.
  public static void createJob(
      String projectId,
      String tenantId,
      String companyId,
      String requisitionId,
      String jobApplicationUrl)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (JobServiceClient jobServiceClient = JobServiceClient.create()) {
      TenantName parent = TenantName.of(projectId, tenantId);
      Job.ApplicationInfo applicationInfo =
          Job.ApplicationInfo.newBuilder().addUris(jobApplicationUrl).build();

      List<String> addresses =
          Arrays.asList(
              "1600 Amphitheatre Parkway, Mountain View, CA 94043",
              "111 8th Avenue, New York, NY 10011");

      // By default, job will expire in 30 days.
      // https://cloud.google.com/talent-solution/job-search/docs/jobs
      Job job =
          Job.newBuilder()
              .setCompany(companyId)
              .setRequisitionId(requisitionId)
              .setTitle("Software Developer")
              .setDescription("Develop, maintain the software solutions.")
              .setApplicationInfo(applicationInfo)
              .addAllAddresses(addresses)
              .setLanguageCode("en-US")
              .build();

      CreateJobRequest request =
          CreateJobRequest.newBuilder().setParent(parent.toString()).setJob(job).build();

      Job response = jobServiceClient.createJob(request);
      System.out.format("Created job: %s%n", response.getName());
    }
  }
}

Python

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte a Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback

from google.cloud import talent
import six

def create_job(
    project_id, tenant_id, company_id, requisition_id, job_application_url,
):
    """Create Job"""

    client = talent.JobServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID (using tenancy is optional)'
    # company_id = 'Company name, e.g. projects/your-project/companies/company-id'
    # requisition_id = 'Job requisition ID, aka Posting ID. Unique per job.'
    # title = 'Software Engineer'
    # description = 'This is a description of this <i>wonderful</i> job!'
    # job_application_url = 'https://www.example.org/job-posting/123'
    # address_one = '1600 Amphitheatre Parkway, Mountain View, CA 94043'
    # address_two = '111 8th Avenue, New York, NY 10011'
    # language_code = 'en-US'

    if isinstance(project_id, six.binary_type):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, six.binary_type):
        tenant_id = tenant_id.decode("utf-8")
    if isinstance(company_id, six.binary_type):
        company_id = company_id.decode("utf-8")
    if isinstance(requisition_id, six.binary_type):
        requisition_id = requisition_id.decode("utf-8")
    if isinstance(job_application_url, six.binary_type):
        job_application_url = job_application_url.decode("utf-8")
    parent = f"projects/{project_id}/tenants/{tenant_id}"
    uris = [job_application_url]
    application_info = {"uris": uris}
    addresses = [
        "1600 Amphitheatre Parkway, Mountain View, CA 94043",
        "111 8th Avenue, New York, NY 10011",
    ]
    job = {
        "company": company_id,
        "requisition_id": requisition_id,
        "title": "Software Developer",
        "description": "Develop, maintain the software solutions.",
        "application_info": application_info,
        "addresses": addresses,
        "language_code": "en-US",
    }

    response = client.create_job(parent=parent, job=job)
    print("Created job: {}".format(response.name))
    return response.name

Ruby

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback
require "google/cloud/talent"

# Instantiate a client
job_service = Google::Cloud::Talent.job_service

# project_id = "Your Google Cloud Project ID"
# tenant_id = "Your Tenant ID (using tenancy is optional)"
parent = job_service.tenant_path project: project_id, tenant: tenant_id

# job_application_url = "https://www.example.org/job-posting/123"
uris = [job_application_url]
application_info = { uris: uris }

# address = "1600 Amphitheatre Parkway, Mountain View, CA 94043"
addresses = [address]

# company_name = "Company name, e.g. projects/your-project/companies/company-id"
# requisition_id = "Job requisition ID, aka Posting ID. Unique per job."
# title = "Software Engineer"
# description = "This is a description of this <i>wonderful</i> job!"
# language_code = "en-US"
job = {
  company:          company_name,
  requisition_id:   requisition_id,
  title:            title,
  description:      description,
  application_info: application_info,
  addresses:        addresses,
  language_code:    language_code
}

response = job_service.create_job parent: parent, job: job
puts "Created job: #{response.name}"

C#

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback
public static object CreateJob(string projectId, string tenantId, string companyId, string requisitionId, string jobApplicationUrl)
{
    JobServiceClient jobServiceClient = JobServiceClient.Create();
    TenantName tenantName = TenantName.FromProjectTenant(projectId, tenantId);

    ApplicationInfo applicationInfo = new ApplicationInfo();
    applicationInfo.Uris.Add(jobApplicationUrl);

    Job job = new Job
    {
        Company = companyId,
        RequisitionId = requisitionId,
        Title = "Software Developer",
        Description = "Develop, maintain the software solutions.",
        ApplicationInfo = applicationInfo,
        LanguageCode = "en-US"
    };
    string[] addresses = { "1600 Amphitheatre Parkway, Mountain View, CA 94043", "111 8th Avenue, New York, NY 10011" };
    job.Addresses.Add(addresses);

    CreateJobRequest request = new CreateJobRequest
    {
        ParentAsTenantName = tenantName,
        Job = job
    };

    Job response = jobServiceClient.CreateJob(request);

    Console.WriteLine($"Created Job: {response.Name}");
    return 0;
}

Criar uma vaga com campos personalizados

O Cloud Talent Solution inclui vários campos de vagas incorporados ao esquema da API. No entanto, pode ser preciso adicionar campos extras que não estão presentes nas opções prontas para uso. Embora seja recomendável usar os campos prontos sempre que possível, o Cloud Talent Solution também fornece alguns campos customAttributes para uma vaga. Eles podem ser filtráveis ou não filtráveis. Consulte a documentação de customAttributes para mais informações.

O exemplo de código a seguir mostra como criar uma vaga com customAttribute:

Go

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

import (
	"context"
	"fmt"
	"io"

	talent "cloud.google.com/go/talent/apiv4beta1"
	"github.com/gofrs/uuid"
	talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
	money "google.golang.org/genproto/googleapis/type/money"
)

// createJobWithCustomAttributes creates a job with custom attributes.
func createJobWithCustomAttributes(w io.Writer, projectID, companyID, jobTitle string) (*talentpb.Job, error) {
	ctx := context.Background()

	// Initialize a job service client.
	c, err := talent.NewJobClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("talent.NewJobClient: %v", err)
	}

	// requisitionID shoud be the unique ID in your system
	requisitionID := fmt.Sprintf("job-with-custom-attribute-%s", uuid.Must(uuid.NewV4()).String())
	jobToCreate := &talentpb.Job{
		Company:       fmt.Sprintf("projects/%s/companies/%s", projectID, companyID),
		RequisitionId: requisitionID,
		Title:         jobTitle,
		ApplicationInfo: &talentpb.Job_ApplicationInfo{
			Uris: []string{"https://googlesample.com/career"},
		},
		Description:     "Design, devolop, test, deploy, maintain and improve software.",
		LanguageCode:    "en-US",
		PromotionValue:  2,
		EmploymentTypes: []talentpb.EmploymentType{talentpb.EmploymentType_FULL_TIME},
		Addresses:       []string{"Mountain View, CA"},
		CustomAttributes: map[string]*talentpb.CustomAttribute{
			"someFieldString": {
				Filterable:   true,
				StringValues: []string{"someStrVal"},
			},
			"someFieldLong": {
				Filterable: true,
				LongValues: []int64{900},
			},
		},
		CompensationInfo: &talentpb.CompensationInfo{
			Entries: []*talentpb.CompensationInfo_CompensationEntry{
				{
					Type: talentpb.CompensationInfo_BASE,
					Unit: talentpb.CompensationInfo_HOURLY,
					CompensationAmount: &talentpb.CompensationInfo_CompensationEntry_Amount{
						Amount: &money.Money{
							CurrencyCode: "USD",
							Units:        1,
						},
					},
				},
			},
		},
	}

	// Construct a createJob request.
	req := &talentpb.CreateJobRequest{
		Parent: fmt.Sprintf("projects/%s", projectID),
		Job:    jobToCreate,
	}

	resp, err := c.CreateJob(ctx, req)
	if err != nil {
		return nil, fmt.Errorf("CreateJob: %v", err)
	}

	fmt.Fprintf(w, "Created job with custom attributres: %q\n", resp.GetName())
	fmt.Fprintf(w, "Custom long field has value: %v\n", resp.GetCustomAttributes()["someFieldLong"].GetLongValues())

	return resp, nil
}

Java

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.


import com.google.cloud.talent.v4beta1.CreateJobRequest;
import com.google.cloud.talent.v4beta1.CustomAttribute;
import com.google.cloud.talent.v4beta1.Job;
import com.google.cloud.talent.v4beta1.JobServiceClient;
import com.google.cloud.talent.v4beta1.TenantName;
import java.io.IOException;

public class JobSearchCreateJobCustomAttributes {

  public static void createJob() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String tenantId = "your-tenant-id";
    String companyId = "your-company-id";
    String requisitionId = "your-unique-req-id";
    createJob(projectId, tenantId, companyId, requisitionId);
  }

  // Create Job with Custom Attributes.
  public static void createJob(
          String projectId,
          String tenantId,
          String companyId,
          String requisitionId)
          throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (JobServiceClient jobServiceClient = JobServiceClient.create()) {
      TenantName parent = TenantName.of(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 customAttribute = CustomAttribute.newBuilder()
              .addStringValues("Internship")
              .addStringValues("Apprenticeship")
              .setFilterable(true)
              .build();

      Job job =
              Job.newBuilder()
                      .setCompany(companyId)
                      .setTitle("Software Developer I")
                      .setDescription("This is a description of this <i>wonderful</i> job!")
                      .putCustomAttributes("FOR_STUDENTS", customAttribute)
                      .setRequisitionId(requisitionId)
                      .setLanguageCode("en-US")
                      .build();

      CreateJobRequest request =
              CreateJobRequest.newBuilder().setParent(parent.toString()).setJob(job).build();
      Job response = jobServiceClient.createJob(request);
      System.out.printf("Created job: %s\n", response.getName());
    }
  }
}

Python

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte a Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback

from google.cloud import talent
import six

def create_job(project_id, tenant_id, company_id, requisition_id):
    """Create Job with Custom Attributes"""

    client = talent.JobServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID (using tenancy is optional)'
    # company_id = 'Company name, e.g. projects/your-project/companies/company-id'
    # requisition_id = 'Job requisition ID, aka Posting ID. Unique per job.'
    # language_code = 'en-US'

    if isinstance(project_id, six.binary_type):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, six.binary_type):
        tenant_id = tenant_id.decode("utf-8")
    if isinstance(company_id, six.binary_type):
        company_id = company_id.decode("utf-8")

    # 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
    custom_attribute = talent.CustomAttribute()
    custom_attribute.filterable = True
    custom_attribute.string_values.append("Intern")
    custom_attribute.string_values.append("Apprenticeship")

    parent = f"projects/{project_id}/tenants/{tenant_id}"

    job = talent.Job(
        company=company_id,
        title="Software Engineer",
        requisition_id=requisition_id,
        description="This is a description of this job",
        language_code="en-us",
        custom_attributes={"FOR_STUDENTS": custom_attribute}
    )

    response = client.create_job(parent=parent, job=job)
    print(f"Created job: {response.name}")
    return response.name

Ruby

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback
require "google/cloud/talent"

# Instantiate a client
job_service = Google::Cloud::Talent.job_service

# project_id = "Your Google Cloud Project ID"
# tenant_id = "Your Tenant ID (using tenancy is optional)"
parent = job_service.tenant_path project: project_id, tenant: tenant_id

# title = "Software Engineer"
# description = "This is a description of this <i>wonderful</i> job!"
# company_name = "Company name, e.g. projects/your-project/companies/company-id"
# requisition_id = "Job requisition ID, aka Posting ID. Unique per job."
# language_code = "en-US"
job = {
  title:          title,
  description:    description,
  company:        company_name,
  requisition_id: requisition_id,
  language_code:  language_code
}

response = job_service.create_job parent: parent, job: job
puts "Created job: #{response.name}"

C#

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback
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;
}

Recuperar uma vaga

Confirme se a vaga foi criada usando a operação GET para RECEBER os detalhes dela. Observe que pode levar alguns minutos para que a vaga fique disponível, de acordo com o volume atual de vagas sendo criadas no Cloud Talent Solution.

É possível recuperar os detalhes de uma vaga inserida anteriormente enviando uma solicitação GET para a API Cloud Talent Solution. O URI precisa incluir o name da vaga inserida anteriormente retornado pela solicitação de criação original, como um parâmetro de URL.

O exemplo a seguir usa uma operação GET para recuperar os detalhes de uma vaga com um determinado name:

Go

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

import (
	"context"
	"fmt"
	"io"

	talent "cloud.google.com/go/talent/apiv4beta1"
	talentpb "google.golang.org/genproto/googleapis/cloud/talent/v4beta1"
)

// getJob gets an existing job by its resource name.
func getJob(w io.Writer, projectID, jobID string) (*talentpb.Job, error) {
	ctx := context.Background()

	// Initialize a jobService client.
	c, err := talent.NewJobClient(ctx)
	if err != nil {
		fmt.Printf("talent.NewJobClient: %v\n", err)
		return nil, err
	}

	// Construct a getJob request.
	jobName := fmt.Sprintf("projects/%s/jobs/%s", projectID, jobID)
	req := &talentpb.GetJobRequest{
		// The resource name of the job to retrieve.
		// The format is "projects/{project_id}/jobs/{job_id}".
		Name: jobName,
	}

	resp, err := c.GetJob(ctx, req)
	if err != nil {
		fmt.Printf("Failed to get job %s: %v\n", jobName, err)
		return nil, err
	}

	fmt.Fprintf(w, "Job: %q\n", resp.GetName())
	fmt.Fprintf(w, "Job title: %v\n", resp.GetTitle())

	return resp, err
}

Java

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.


import com.google.cloud.talent.v4beta1.GetJobRequest;
import com.google.cloud.talent.v4beta1.Job;
import com.google.cloud.talent.v4beta1.JobName;
import com.google.cloud.talent.v4beta1.JobServiceClient;
import java.io.IOException;

public class JobSearchGetJob {

  public static void getJob() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String tenantId = "your-tenant-id";
    String jobId = "your-job-id";
    getJob(projectId, tenantId, jobId);
  }

  // Get Job.
  public static void getJob(String projectId, String tenantId, String jobId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (JobServiceClient jobServiceClient = JobServiceClient.create()) {
      JobName name = JobName.ofProjectTenantJobName(projectId, tenantId, jobId);

      GetJobRequest request = GetJobRequest.newBuilder().setName(name.toString()).build();

      Job response = jobServiceClient.getJob(request);
      System.out.format("Job name: %s%n", response.getName());
      System.out.format("Requisition ID: %s%n", response.getRequisitionId());
      System.out.format("Title: %s%n", response.getTitle());
      System.out.format("Description: %s%n", response.getDescription());
      System.out.format("Posting language: %s%n", response.getLanguageCode());
      for (String address : response.getAddressesList()) {
        System.out.format("Address: %s%n", address);
      }
      for (String email : response.getApplicationInfo().getEmailsList()) {
        System.out.format("Email: %s%n", email);
      }
      for (String websiteUri : response.getApplicationInfo().getUrisList()) {
        System.out.format("Website: %s%n", websiteUri);
      }
    }
  }
}

Python

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte a Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback

from google.cloud import talent
import six

def get_job(project_id, tenant_id, job_id):
    """Get Job"""

    client = talent.JobServiceClient()

    # project_id = 'Your Google Cloud Project ID'
    # tenant_id = 'Your Tenant ID (using tenancy is optional)'
    # job_id = 'Job ID'

    if isinstance(project_id, six.binary_type):
        project_id = project_id.decode("utf-8")
    if isinstance(tenant_id, six.binary_type):
        tenant_id = tenant_id.decode("utf-8")
    if isinstance(job_id, six.binary_type):
        job_id = job_id.decode("utf-8")
    name = client.job_path(project_id, tenant_id, job_id)

    response = client.get_job(name=name)
    print(f"Job name: {response.name}")
    print(f"Requisition ID: {response.requisition_id}")
    print(f"Title: {response.title}")
    print(f"Description: {response.description}")
    print(f"Posting language: {response.language_code}")
    for address in response.addresses:
        print(f"Address: {address}")
    for email in response.application_info.emails:
        print(f"Email: {email}")
    for website_uri in response.application_info.uris:
        print(f"Website: {website_uri}")

Ruby

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback
require "google/cloud/talent"

# Instantiate a client
job_service = Google::Cloud::Talent.job_service

# project_id = "Your Google Cloud Project ID"
# tenant_id = "Your Tenant ID (using tenancy is optional)"
# job_id = "Job ID"
formatted_name = job_service.job_path project: project_id,
                                      tenant:  tenant_id,
                                      job:     job_id

response = job_service.get_job name: formatted_name
puts "Job name: #{response.name}"
puts "Requisition ID: #{response.requisition_id}"
puts "Title: #{response.title}"
puts "Description: #{response.description}"
puts "Posting language: #{response.language_code}"
response.addresses.each do |address|
  puts "Address: #{address}"
end
response.application_info.emails.each do |email|
  puts "Email: #{email}"
end
response.application_info.uris.each do |website_uri|
  puts "Website: #{website_uri}"
end

C#

Para mais informações sobre a instalação e criação de um cliente no Cloud Talent Solution, consulte Bibliotecas de clientes do Cloud Talent Solution.

Ver no GitHub (em inglês) Feedback
public static object GetJob(string projectId, string tenantId, string jobId)
{
    JobServiceClient jobServiceClient = JobServiceClient.Create();
    JobName jobName = JobName.FromProjectTenantJob(projectId, tenantId, jobId);
    GetJobRequest request = new GetJobRequest
    {
        JobName = jobName
    };
    var response = jobServiceClient.GetJob(request);

    Console.WriteLine($"Job name: {response.Name}");
    Console.WriteLine($"Requisition ID: {response.RequisitionId}");
    Console.WriteLine($"Title: {response.Title}");
    Console.WriteLine($"Description: {response.Description}");
    Console.WriteLine($"Posting language: {response.LanguageCode}");
    foreach (string address in response.Addresses)
    {
        Console.WriteLine($"Address: {address}");
    }
    foreach (string email in response.ApplicationInfo.Emails)
    {
        Console.WriteLine($"Email: {email}");
    }
    foreach (string websiteUri in response.ApplicationInfo.Uris)
    {
        Console.WriteLine($"Website: {websiteUri}");
    }
    return 0;
}

Pesquisar vagas de emprego

Você criou sua primeira empresa e vaga usando o Cloud Talent Solution. Agora você está pronto para realizar uma pesquisa nessas vagas.

Mais APIs

Para mais informações sobre as APIs e as diferentes configurações disponíveis, consulte a documentação de referência mais recente.