Criar e atualizar empresas (v3)

Um recurso de empresa na API Cloud Talent Solution representa uma única empresa. Qualquer trabalho pertencente a essa empresa se refere a uma postagem de vaga criada para uma vaga aberta nessa empresa. Ele contém informações, como nome e endereço da empresa, além de campos internos que vinculam o recurso no serviço da Cloud Talent Solution aos bancos de dados internos.

Criar uma empresa

Para criar uma empresa, envie uma solicitação POST para o terminal companies especificando pelo menos os dois campos obrigatórios. Consulte a página Guia de início rápido: criar empresas e vagas para saber detalhes sobre como criar uma empresa.

Java

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


/** Create a company. */
public static Company createCompany(Company companyToBeCreated) throws IOException {
  try {
    CreateCompanyRequest createCompanyRequest =
        new CreateCompanyRequest().setCompany(companyToBeCreated);
    Company companyCreated =
        talentSolutionClient
            .projects()
            .companies()
            .create(DEFAULT_PROJECT_ID, createCompanyRequest)
            .execute();
    System.out.println("Company created: " + companyCreated);
    return companyCreated;
  } catch (IOException e) {
    System.out.println("Got exception while creating company");
    throw e;
  }
}

Python

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

def create_company(client_service, company_to_be_created):
    try:
        request = {"company": company_to_be_created}
        company_created = (
            client_service.projects()
            .companies()
            .create(parent=parent, body=request)
            .execute()
        )
        print("Company created: %s" % company_created)
        return company_created
    except Error as e:
        print("Got exception while creating company")
        raise e

Go

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


// createCompany creates a company as given.
func createCompany(w io.Writer, projectID string, companyToCreate *talent.Company) (*talent.Company, 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.CreateCompanyRequest{
		Company: companyToCreate,
	}
	company, err := service.Projects.Companies.Create(parent, req).Do()
	if err != nil {
		return nil, fmt.Errorf("failed to create company %q: %w", companyToCreate.DisplayName, err)
	}

	return company, nil
}

Campos obrigatórios

Os seguintes campos são obrigatórios em solicitações de criação/atualização:

  • displayName: o nome do empregador exibido na vaga, por exemplo, "Google LLC".

  • externalId: o ID interno da empresa. Esse campo permite mapear os identificadores internos para a empresa no sistema do Google. Se a empresa não tiver um identificador interno separado, defina esse campo com o mesmo valor que displayName.

Campos mais usados

  • headquartersAddress: o endereço da sede da empresa, que pode ser diferente do local da vaga. A Cloud Talent Solution aceita apenas um único local de sede por empresa. O serviço tenta localizar geograficamente o endereço e preenche um local mais específico quando possível em derivedInfo.headquartersLocation (que é somente saída).

  • size: um valor de bucket que representa o tamanho da empresa em termos de número de funcionários, de MINI a GIANT. Consulte a referência size para tipos enumerados e as definições deles.

  • eeoText: uma string que contém o texto de aviso de isenção de responsabilidade legal da Comissão de Oportunidades Iguais de Emprego (dos EUA) a ser associado a todas as vagas da empresa.

  • keywordSearchableJobCustomAttributes: especifica quais customAttributes nas vagas desta empresa precisam ser indexados e passíveis de pesquisa geral por palavra-chave.

Atualizar uma empresa

Para atualizar uma empresa, envie uma solicitação PATCH ao seguinte ponto de extremidade:

 PATCH https://jobs.googleapis.com/v3/COMPANY_NAME 

Em que COMPANY_NAME é o valor do campo name para a empresa. name é o identificador exclusivo da empresa retornado no momento da criação e também pelas solicitações company.get e list.

O corpo da solicitação precisa conter todo o recurso, inclusive os campos que não estão sendo atualizados. Esses campos podem ser definidos em updateMask. Se os campos estiverem definidos em updateMask, somente eles serão atualizados, e as atualizações nos outros campos serão ignoradas. Se updateMask não estiver definido, todos os campos serão atualizados.

Java

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


/** Updates a company. */
public static Company updateCompany(String companyName, Company companyToBeUpdated)
    throws IOException {
  try {
    UpdateCompanyRequest updateCompanyRequest =
        new UpdateCompanyRequest().setCompany(companyToBeUpdated);

    Company companyUpdated =
        talentSolutionClient
            .projects()
            .companies()
            .patch(companyName, updateCompanyRequest)
            .execute();

    System.out.println("Company updated: " + companyUpdated);
    return companyUpdated;
  } catch (IOException e) {
    System.out.println("Got exception while updating company");
    throw e;
  }
}

Python

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

def update_company(client_service, company_name, company_to_be_updated):
    try:
        request = {"company": company_to_be_updated}
        company_updated = (
            client_service.projects()
            .companies()
            .patch(name=company_name, body=request)
            .execute()
        )
        print("Company updated: %s" % company_updated)
        return company_updated
    except Error as e:
        print("Got exception while updating company")
        raise e

Go

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


// updateCompany update a company with all fields.
func updateCompany(w io.Writer, name string, companyToUpdate *talent.Company) (*talent.Company, 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)
	}

	updateCompanyRequest := &talent.UpdateCompanyRequest{
		Company: companyToUpdate,
	}
	company, err := service.Projects.Companies.Patch(name, updateCompanyRequest).Do()
	if err != nil {
		return nil, fmt.Errorf("failed to update company %q: %w", name, err)
	}

	return company, nil
}

Atualizar empresa com updateMask

Java

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


/** Updates a company. */
public static Company updateCompanyWithFieldMask(
    String companyName, String fieldMask, Company companyToBeUpdated) throws IOException {
  try {
    // String foo = String.format("?updateCompanyFields=%s",fieldMask);
    UpdateCompanyRequest updateCompanyRequest =
        new UpdateCompanyRequest().setUpdateMask(fieldMask).setCompany(companyToBeUpdated);

    Company companyUpdated =
        talentSolutionClient
            .projects()
            .companies()
            .patch(companyName, updateCompanyRequest)
            .execute();

    System.out.println("Company updated: " + companyUpdated);
    return companyUpdated;
  } catch (IOException e) {
    System.out.println("Got exception while updating company");
    throw e;
  }
}

Python

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

def update_company_with_field_mask(
    client_service, company_name, company_to_be_updated, field_mask
):
    try:
        request = {"company": company_to_be_updated, "update_mask": field_mask}
        company_updated = (
            client_service.projects()
            .companies()
            .patch(name=company_name, body=request)
            .execute()
        )
        print("Company updated: %s" % company_updated)
        return company_updated
    except Error as e:
        print("Got exception while updating company with field mask")
        raise e

Go

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


// updateCompanyWithMask updates a company with specific fields.
// mask is a comma separated list of top-level fields of talent.Company.
func updateCompanyWithMask(w io.Writer, name string, mask string, companyToUpdate *talent.Company) (*talent.Company, 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)
	}

	req := &talent.UpdateCompanyRequest{
		Company:    companyToUpdate,
		UpdateMask: mask,
	}
	company, err := service.Projects.Companies.Patch(name, req).Do()
	if err != nil {
		return nil, fmt.Errorf("failed to update company %q with mask %q: %w", name, mask, err)
	}

	return company, nil
}

Práticas recomendadas

Empresas confidenciais

Nos casos em que você quiser postar um vaga confidencial, recomendamos criar uma empresa separada que imite os campos da empresa, mas ofusque os displayName, externalId e quaisquer outros campos de identificação.

Quando o empregador final precisa ser anônimo (por exemplo, no caso de uso da Agência de Recursos Humanos), recomendamos definir externalId e displayName como valores aleatórios, mas únicos.