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

C#

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.


public static Company CreateCompany(Company companyToBeCreated)
{
    try
    {
        CreateCompanyRequest createCompanyRequest = new CreateCompanyRequest();
        createCompanyRequest.Company = companyToBeCreated;
        Company companyCreated = jobServiceClient.Projects.Companies.Create(createCompanyRequest, parent).Execute();
        Console.WriteLine("Created company: " + ToJsonString(companyCreated));
        return companyCreated;
    }
    catch (Exception e)
    {
        Console.WriteLine("Got exception while creating company");
        throw 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: %v", err)
	}
	// Create the jobs service client.
	service, err := talent.New(client)
	if err != nil {
		return nil, fmt.Errorf("talent.New: %v", 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: %v", companyToCreate.DisplayName, err)
	}

	return company, nil
}

Node.js

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.
 */
const createCompany = async (jobServiceClient, companyToBeCreated) => {
  try {
    const request = {
      parent: `projects/${PROJECT_ID}`,
      resource: {
        company: companyToBeCreated,
      },
    };

    const companyCreated = await jobServiceClient.projects.companies.create(
      request
    );

    console.log(`Company created: ${JSON.stringify(companyCreated.data)}`);
    return companyCreated.data;
  } catch (e) {
    console.error(`Failed to create company! ${e}`);
    throw e;
  }
};

Ruby

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

# project_id              = "Id of the project"
# company_to_be_created   = "Company to be created"

require "google/apis/jobs_v3"

jobs = Google::Apis::JobsV3
talent_solution_client = jobs::CloudTalentSolutionService.new
# @see
# https://developers.google.com/identity/protocols/application-default-credentials#callingruby
talent_solution_client.authorization = Google::Auth.get_application_default(
  "https://www.googleapis.com/auth/jobs"
)

begin
  create_company_request = jobs::CreateCompanyRequest.new company: company_to_be_created
  company_created = talent_solution_client.create_company project_id, create_company_request
  puts "Company created: #{company_created.to_json}"
  return company_created
rescue StandardError => e
  puts "Exception occurred while creating company: #{e}"
end

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 desta 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 de trabalho. 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 size para enumerações 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

C#

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.


public static Company UpdateCompany(String companyName, Company companyToBeUpdated)
{
    try
    {
        UpdateCompanyRequest updateCompanyRequest = new UpdateCompanyRequest()
        {
            Company = companyToBeUpdated
        };
        Company companyUpdated = jobServiceClient.Projects.Companies.Patch(updateCompanyRequest, companyName).Execute();
        Console.WriteLine("Company updated: " + ToJsonString(companyUpdated));
        return companyUpdated;
    }
    catch (Exception e)
    {
        Console.WriteLine("Got exception while updating company");
        throw 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: %v", err)
	}
	// Create the jobs service client.
	service, err := talent.New(client)
	if err != nil {
		return nil, fmt.Errorf("talent.New: %v", 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: %v", name, err)
	}

	return company, nil
}

Node.js

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.
 */
const updateCompany = async (
  jobServiceClient,
  companyName,
  companyToBeUpdated
) => {
  try {
    const request = {
      name: companyName,
      resource: {
        company: companyToBeUpdated,
      },
    };

    const companyUpdated = await jobServiceClient.projects.companies.patch(
      request
    );

    console.log(`Company updated: ${JSON.stringify(companyUpdated.data)}`);
    return companyUpdated.data;
  } catch (e) {
    console.error(`Got exception while updating company! ${e}`);
    throw e;
  }
};

Ruby

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

# company_name     = "The name of the company you want to update. The format is "projects/{project_id}/companies/{company_id}""
# company_updated  = "The new company object to be updated"

require "google/apis/jobs_v3"

jobs = Google::Apis::JobsV3
talent_solution_client = jobs::CloudTalentSolutionService.new
# @see
# https://developers.google.com/identity/protocols/application-default-credentials#callingruby
talent_solution_client.authorization = Google::Auth.get_application_default(
  "https://www.googleapis.com/auth/jobs"
)

begin
  update_company_request = jobs::UpdateCompanyRequest.new company: company_updated
  company_updated = talent_solution_client
                    .patch_project_company(company_name, update_company_request)
  puts "Company updated: #{company_updated.to_json}"
  return company_updated
rescue StandardError => e
  puts "Exception occurred while updating company: #{e}"
end

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

C#

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.


public static Company UpdateCompanyWithFieldMask(string companyName, string fieldMask, Company companyToBeUpdated)
{
    try
    {
        UpdateCompanyRequest updateCompanyRequest = new UpdateCompanyRequest()
        {
            UpdateMask = fieldMask,
            Company = companyToBeUpdated
        };
        Company companyUpdated = jobServiceClient.Projects.Companies.Patch(updateCompanyRequest, companyName).Execute();
        Console.WriteLine("Company updated with updateMask: " + ToJsonString(companyUpdated));
        return companyUpdated;
    }
    catch (Exception e)
    {
        Console.WriteLine("Got exception while updating company with update mask");
        throw 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: %v", err)
	}
	// Create the jobs service client.
	service, err := talent.New(client)
	if err != nil {
		return nil, fmt.Errorf("talent.New: %v", 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: %v", name, mask, err)
	}

	return company, nil
}

Node.js

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 with field mask.
 */
const updateCompanyWithFieldMask = async (
  jobServiceClient,
  companyName,
  companyToBeUpdated,
  fieldMask
) => {
  try {
    const request = {
      name: companyName,
      resource: {
        company: companyToBeUpdated,
        updateMask: fieldMask,
      },
    };

    const companyUpdated = await jobServiceClient.projects.companies.patch(
      request
    );

    console.log(`Company updated: ${JSON.stringify(companyUpdated.data)}`);
    return companyUpdated.data;
  } catch (e) {
    console.error(`Got exception while updating company with field mask! ${e}`);
    throw e;
  }
};

Ruby

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

# company_name     = "The name of the company you want to update. The format is "projects/{project_id}/companies/{company_id}""
# field_mask       = "The field mask you want to update"
# company_updated  = "The new company object to be updated"

require "google/apis/jobs_v3"

jobs = Google::Apis::JobsV3
talent_solution_client = jobs::CloudTalentSolutionService.new
# @see
# https://developers.google.com/identity/protocols/application-default-credentials#callingruby
talent_solution_client.authorization = Google::Auth.get_application_default(
  "https://www.googleapis.com/auth/jobs"
)

begin
  update_company_request = jobs::UpdateCompanyRequest.new company:     company_updated,
                                                          update_mask: field_mask
  company_updated = talent_solution_client
                    .patch_project_company(company_name, update_company_request)
  puts "Company updated with filedMask #{update_company_request.update_mask}. "
  puts "Updated company: #{company_updated.to_json}"
  return company_updated
rescue StandardError => e
  puts "Exception occurred while updating company with fieldMask: #{e}"
end

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.