Crie e atualize empresas (v3)

Um recurso Company na API Cloud Talent Solution representa uma única empresa. Qualquer trabalho pertencente a essa empresa refere-se a um anúncio de emprego criado para um cargo disponível nessa empresa. Contém informações como o nome e a morada da empresa, bem como campos internos que associam o recurso no serviço Cloud Talent Solution às suas bases de dados internas.

Crie uma empresa

Para criar uma empresa, envie um pedido POST para o ponto final companies, especificando, pelo menos, os dois campos obrigatórios. Consulte a página Início rápido: crie empresas e trabalhos para ver detalhes sobre como criar uma empresa.

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.


/** 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 a criação de um cliente da Cloud Talent Solution, consulte as bibliotecas de cliente da 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 a criação de um cliente da Cloud Talent Solution, consulte as bibliotecas de cliente da 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 pedidos de criação/atualização:

  • displayName: o nome da entidade patronal apresentado com o trabalho, por exemplo, "Google LLC".

  • externalId: O seu ID interno para esta empresa. Este campo permite-lhe mapear os seus identificadores internos para a empresa no sistema da Google. Se a empresa não tiver um identificador interno separado, defina este campo com o mesmo valor que displayName.

Campos usados frequentemente

  • headquartersAddress: A morada da sede principal da empresa, que pode ser diferente da localização do trabalho. A Cloud Talent Solution só aceita uma localização da sede por empresa. O serviço tenta geolocalizar a morada e preenche uma localização mais específica quando possível em derivedInfo.headquartersLocation (que é apenas de saída).

  • size: um valor de contentor que representa a dimensão da empresa em termos do número de funcionários, de MINI a GIANT. Consulte a size referência para enumerações e respetivas definições.

  • eeoText: uma string que contém o texto de exclusão de responsabilidade legal de igualdade de oportunidades de emprego a associar a todos os trabalhos desta empresa.

  • keywordSearchableJobCustomAttributes: Especifica que customAttributes nos trabalhos desta empresa devem ser indexados e pesquisáveis por pesquisa geral de palavras-chave.

Atualize uma empresa

Para atualizar uma empresa, envie um pedido PATCH para o seguinte ponto final:

 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 que é devolvido no momento da criação e também pelas solicitações company.get e list.

O corpo do pedido tem de conter o recurso completo, incluindo os campos que não estão a ser atualizados. Estes campos podem ser definidos na updateMask. Se os campos estiverem definidos no updateMask, apenas esses campos são atualizados e as atualizações a outros campos são ignoradas. Se o elemento updateMask não estiver definido, todos os campos são atualizados.

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.


/** 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 a criação de um cliente da Cloud Talent Solution, consulte as bibliotecas de cliente da 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 a criação de um cliente da Cloud Talent Solution, consulte as bibliotecas de cliente da 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
}

Atualize a empresa com updateMask

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.


/** 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 a criação de um cliente da Cloud Talent Solution, consulte as bibliotecas de cliente da 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 a criação de um cliente da Cloud Talent Solution, consulte as bibliotecas de cliente da 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 pretender publicar um trabalho confidencial, recomendamos que crie uma empresa separada que imite os campos da empresa, mas ofusque os campos displayName, externalId e quaisquer outros campos de identificação.

Nos casos em que o empregador final deve ser anónimo (por exemplo, o exemplo de utilização da agência de recrutamento), recomendamos que defina externalId e displayName para valores aleatórios, mas únicos.