Crear y actualizar empresas (v3)

Un recurso Company de la API Cloud Talent Solution representa a una sola empresa. Cualquier oferta de empleo de esa empresa se refiere a una oferta de empleo creada para un puesto vacante en esa empresa. Contiene información como el nombre y la dirección de la empresa, así como campos internos que vinculan el recurso del servicio Cloud Talent Solution con tus bases de datos internas.

Crear una empresa

Para crear una empresa, envía una solicitud POST al endpoint companies y especifica al menos los dos campos obligatorios. Consulta la página Guía de inicio rápido: crear empresas y empleos para obtener información sobre cómo crear una empresa.

Java

Para obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de cliente de 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 obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de cliente de 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 obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de cliente de 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 obligatorios

Los siguientes campos son obligatorios en las solicitudes de creación o actualización:

  • displayName: nombre de la empresa que se muestra junto al empleo. Por ejemplo, "Google LLC".

  • externalId: tu ID interno de esta empresa. Este campo le permite asignar sus identificadores internos a la empresa en el sistema de Google. Si la empresa no tiene un identificador interno independiente, asigna a este campo el mismo valor que displayName.

Campos de uso habitual

  • headquartersAddress: La dirección postal de la sede principal de la empresa, que puede ser diferente de la ubicación del puesto. Cloud Talent Solution solo acepta una sede central por empresa. El servicio intenta geolocalizar la dirección y, cuando es posible, rellena una ubicación más específica en derivedInfo.headquartersLocation (que es solo de salida).

  • size: valor de un segmento que representa el tamaño de la empresa en función del número de empleados, que va de MINI a GIANT. Consulta la referencia de size para ver las enumeraciones y sus definiciones.

  • eeoText: cadena que contiene el texto de la renuncia de responsabilidad legal sobre igualdad de oportunidades en el empleo que se asociará a todos los puestos de esta empresa.

  • keywordSearchableJobCustomAttributes: especifica qué customAttributes de los empleos de esta empresa se deben indexar y se pueden buscar por palabras clave generales.

Actualizar una empresa

Para actualizar una empresa, envía una solicitud PATCH al siguiente endpoint:

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

Donde COMPANY_NAME es el valor del campo name de la empresa. name es el identificador único de la empresa que se devuelve en el momento de la creación y también en las solicitudes company.get y list.

El cuerpo de la solicitud debe contener todo el recurso, incluidos los campos que no se actualizan. Estos campos se pueden definir en updateMask. Si se definen campos en updateMask, solo se actualizarán esos campos y se ignorarán las actualizaciones de otros campos. Si no se define updateMask, se actualizarán todos los campos.

Java

Para obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de cliente de 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 obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de cliente de 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 obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de cliente de 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
}

Actualizar empresa con updateMask

Java

Para obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de cliente de 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 obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de cliente de 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 obtener más información sobre cómo instalar y crear un cliente de Cloud Talent Solution, consulta las bibliotecas de cliente de 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ácticas recomendadas

Empresas confidenciales

Si quieres publicar una oferta de empleo confidencial, te recomendamos que crees una empresa independiente que imite los campos de la empresa real, pero que ofusque el displayName, el externalId y cualquier otro campo identificativo.

En los casos en los que el empleador final deba ser anónimo (por ejemplo, en el caso práctico de la agencia de contratación de personal), le recomendamos que asigne valores aleatorios, pero únicos, a externalId y displayName.