Creare e aggiornare le aziende (v3)

Una risorsa Company nell'API Talent Solution rappresenta una singola azienda. Qualsiasi lavoro appartenente a questa azienda si riferisce a un'offerta di lavoro creata per una posizione aperta in quell'azienda. Contiene informazioni come il nome e l'indirizzo dell'azienda, nonché campi interni che collegano la risorsa nel servizio Cloud Talent Solution ai tuoi database interni.

Creare un'azienda

Per creare un'azienda, invia una richiesta POST all'endpoint companies, specificando almeno i due campi obbligatori. Per informazioni dettagliate su come creare un'azienda, consulta la pagina Guida rapida: crea aziende e lavori.

Java

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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
}

Campi obbligatori

I seguenti campi sono obbligatori nelle richieste di creazione/aggiornamento:

  • displayName: il nome del datore di lavoro visualizzato con il lavoro, ad esempio "Google LLC".

  • externalId: il tuo ID interno per questa azienda. Questo campo ti consente di mappare i tuoi identificatori interni all'azienda nel sistema di Google. Se l'azienda non ha un identificatore interno separato, imposta questo campo sullo stesso valore di displayName.

Campi di uso comune

  • headquartersAddress: l'indirizzo della sede principale dell'azienda, che potrebbe essere diverso dalla sede di lavoro. Cloud Talent Solution accetta una sola sede centrale per azienda. Il servizio tenta di geolocalizzare l'indirizzo e, se possibile, inserisce una località più specifica in derivedInfo.headquartersLocation (che è solo in output).

  • size: un valore di bucket che rappresenta le dimensioni dell'azienda in termini di numero di dipendenti, da MINI a GIANT. Consulta il size riferimento per gli enum e le relative definizioni.

  • eeoText: una stringa contenente il testo della dichiarazione di non discriminazione in base alle pari opportunità di impiego da associare a tutti i lavori di questa azienda.

  • keywordSearchableJobCustomAttributes: specifica quali customAttributes dei lavori di questa azienda devono essere indicizzati e ricercabili tramite la ricerca generale per parole chiave.

Aggiornare un'azienda

Per aggiornare un'azienda, invia una richiesta PATCH al seguente endpoint:

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

Dove COMPANY_NAME è il valore del campo name dell'azienda. name è l'identificatore univoco dell'azienda restituito al momento della creazione e anche dalle richieste company.get e list.

Il corpo della richiesta deve contenere l'intera risorsa, inclusi i campi non aggiornati. Questi campi possono essere impostati in updateMask. Se i campi sono impostati in updateMask, vengono aggiornati solo questi campi e gli aggiornamenti agli altri campi vengono ignorati. Se updateMask non è impostato, vengono aggiornati tutti i campi.

Java

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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
}

Aggiorna l'azienda con updateMask

Java

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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

Per saperne di più sull'installazione e sulla creazione di un client Cloud Talent Solution, consulta Librerie client di 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
}

Best practice

Aziende riservate

Nei casi in cui vuoi pubblicare un lavoro riservato, ti consigliamo di creare un'azienda separata che imiti i campi dell'azienda, ma offuschi displayName, externalId e qualsiasi altro campo identificativo.

Nei casi in cui il datore di lavoro finale deve essere anonimo (ad esempio, nel caso d'uso dell'agenzia di reclutamento), ti consigliamo di impostare externalId e displayName su valori casuali ma univoci.