Crea y actualiza empresas (versión 3)

En la API de Cloud Talent Solution, cada empresa se representa mediante un recurso de empresa. Todos los trabajos que le pertenecen hacen referencia a una publicación de trabajo que se creó para uno de sus puestos vacantes. El recurso de empresa contiene datos, como su nombre y su dirección, así como campos internos que relacionan el recurso del servicio de Cloud Talent Solution con tus bases de datos internas.

Crea una empresa

Para crear una empresa, envía una solicitud POST al extremo companies, mediante la especificación de al menos los dos campos obligatorios. Consulta la Guía de inicio rápido: Crea empresas y trabajos para obtener más información sobre cómo crear una empresa.

Java

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un 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

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un 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

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un 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 para las solicitudes de creación y actualización:

  • displayName: El nombre del empleador que se muestra con el trabajo, por ejemplo, “Google LLC”.

  • externalId: Tu ID interno para de la empresa. Este campo permite asignar tus identificadores internos a la empresa que se encuentra en el sistema de Google. Si la empresa no tiene un identificador interno independiente, establece este campo con el mismo valor que displayName.

Campos de uso común

  • headquartersAddress: La dirección de la oficina central de la empresa, que puede ser diferente de la ubicación del trabajo. Cloud Talent Solution solo acepta una ubicación de la oficina central por cada empresa. El servicio intenta determinar la ubicación geográfica de la dirección y, cuando es posible, propaga una ubicación más específica en derivedInfo.headquartersLocation (que es un campo de solo salida).

  • size: Un intervalo que representa el tamaño de la empresa en cuanto a cantidad de empleados, desde MINI hasta GIANT. Consulta la referencia de size para las enumeraciones y sus definiciones.

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

  • keywordSearchableJobCustomAttributes: Especifica qué customAttributes de los trabajos de esta empresa que se deben indexar y que se pueden buscar mediante la búsqueda general de palabras clave.

Actualiza una empresa

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

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

En el ejemplo anterior, se ilustra lo siguiente: COMPANY_NAME es el valor del campo name para la empresa. name es el identificador único de la empresa que se muestra en el momento de la creación y también mediante las solicitudes company.get y list.

El cuerpo de la solicitud debe contener el recurso completo, incluidos los campos que no quieres actualizar. Estos campos se pueden configurar en updateMask. Si se configuran campos en updateMask, solo se actualizan y se omiten las actualizaciones de los demás. Si no se configura updateMask, todos los campos se actualizan.

Java

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un 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

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un 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

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un 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
}

Actualiza la empresa con updateMask

Java

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un 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

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un 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

Consulta Bibliotecas cliente de Cloud Talent Solution para obtener más información sobre cómo instalar y crear un 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

Cuando desees publicar un trabajo confidencial, le recomendamos crear una empresa separada que contenga los mismos campos de la empresa original, pero en la que se ofusquen los campos displayName, externalId y cualquier otro que permita identificarla.

Si el empleador final debe ser anónimo (por ejemplo, el caso práctico de las agencias de empleo), recomendamos configurar externalId y displayName como valores aleatorios que sean únicos.