Creare e aggiornare aziende (v3)

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

Crea un'azienda

Per creare una società, 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: creazione di aziende e offerte di lavoro.

Java

Per saperne di più sull'installazione e sulla creazione di un client di 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 di 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 di 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 l'offerta di 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 può essere diverso dalla località del lavoro. Cloud Talent Solution accetta solo una singola sede centrale per azienda. Il servizio tenta di geolocalizzare l'indirizzo e compila una località più specifica, se possibile, in derivedInfo.headquartersLocation (che è solo di output).

  • size: un valore del bucket che rappresenta le dimensioni dell'azienda in termini di dipendenti, dal giorno MINI al giorno GIANT. Consulta il riferimento size per le enum e le relative definizioni.

  • eeoText: una stringa contenente il testo della limitazione di responsabilità legale per le pari opportunità di lavoro da associare a tutte le offerte di lavoro per questa azienda.

  • keywordSearchableJobCustomAttributes: specifica quali customAttributes nelle offerte di lavoro di questa azienda devono essere indicizzati e disponibili per la ricerca tramite la ricerca di parole chiave generiche.

Aggiorna 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 per l'azienda. name è l'identificatore univoco dell'azienda che viene 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 che non vengono aggiornati. Questi campi possono essere impostati in updateMask. Se i campi vengono impostati in updateMask, vengono aggiornati solo quei campi e quelli degli 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 di 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 di 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 di 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 azienda con updateMask

Java

Per saperne di più sull'installazione e sulla creazione di un client di 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 di 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 di 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

Società riservate

Nei casi in cui vuoi pubblicare un'offerta di lavoro riservata, ti consigliamo di creare una società separata che riproduca i campi dell'azienda, ma offusca i campi displayName, externalId e qualsiasi altro campo di identificazione.

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