Creare e aggiornare le aziende (v3)

Una risorsa Company nell'API Cloud Talent Solution rappresenta una singola azienda. Qualsiasi lavoro appartenente a quell'azienda si riferisce a un annuncio di lavoro creato 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 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: crea società e offerte di lavoro.

Java

Per saperne di più sull'installazione e la creazione di un client Cloud Talent Solution, consulta Librerie client 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 la creazione di un client Cloud Talent Solution, consulta Librerie client 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 la creazione di un client Cloud Talent Solution, consulta Librerie client 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 società. 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 utilizzati di frequente

  • 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 output).

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

  • eeoText: una stringa contenente il testo della dichiarazione di non responsabilità legale relativa alle pari opportunità di lavoro da associare a tutti i lavori di questa azienda.

  • keywordSearchableJobCustomAttributes: Specifica quali customAttributes relativi ai lavori di questa azienda devono essere indicizzati e ricercabili tramite la ricerca generale di parole chiave.

Aggiornare una società

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 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 la creazione di un client Cloud Talent Solution, consulta Librerie client 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 la creazione di un client Cloud Talent Solution, consulta Librerie client 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 la creazione di un client Cloud Talent Solution, consulta Librerie client 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 società con updateMask

Java

Per saperne di più sull'installazione e la creazione di un client Cloud Talent Solution, consulta Librerie client 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 la creazione di un client Cloud Talent Solution, consulta Librerie client 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 la creazione di un client Cloud Talent Solution, consulta Librerie client 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'offerta di lavoro riservata, 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, il caso d'uso dell'agenzia di collocamento), ti consigliamo di impostare externalId e displayName su valori casuali ma univoci.