Créer et mettre à jour des entreprises (v3)

Une ressource d'entreprise dans l'API Cloud Talent Solution correspond à une seule entreprise. Les postes appartenant à cette entreprise font référence à des offres d'emploi créées pour des postes vacants au sein de cette entreprise. La ressource comporte des informations telles que le nom et l'adresse de l'entreprise, ainsi que des champs internes qui relient la ressource du service Cloud Talent Solution à vos bases de données internes.

Créer une entreprise

Pour créer une entreprise, envoyez une requête POST au point de terminaison companies, en spécifiant au moins les deux champs obligatoires. Reportez-vous à la page Démarrage rapide : créer des entreprises et des offres d'emploi pour en savoir plus sur la création d'une entreprise.

Java

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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
}

Champs obligatoires

Veuillez remplir les champs suivants dans les requêtes de création/mise à jour :

  • displayName : nom de l'employeur associé au poste, par exemple, "Google LLC".

  • externalId : votre ID interne pour cette entreprise. Ce champ vous permet de mapper vos identifiants internes avec l'entreprise dans le système de Google. Si l'entreprise n'a pas d'identifiant interne distinct, définissez ce champ sur la même valeur que displayName.

Champs couramment utilisés

  • headquartersAddress : adresse postale du siège social de l'entreprise, qui peut être différente de la zone géographique du poste à pourvoir. Cloud Talent Solution n'accepte qu'un seul siège social par entreprise. Le service tente de géolocaliser l'adresse et, dans la mesure du possible, renseigne une zone géographique plus spécifique dans derivedInfo.headquartersLocation (uniquement en sortie).

  • size : valeur d'un bucket représentant la taille de l'entreprise en fonction du nombre d'employés, de MINI à GIANT. Consultez la documentation de référence sur size pour connaître les énumérations et leurs définitions.

  • eeoText : chaîne contenant la clause de non-responsabilité sur l'égalité d'accès à l'emploi, à associer à tous les postes de cette entreprise.

  • keywordSearchableJobCustomAttributes : customAttributes des postes de cette entreprise à inclure dans l'index et la recherche par mot clé général.

Mettre à jour une entreprise

Pour mettre à jour une entreprise, envoyez une requête PATCH au point de terminaison suivant :

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

COMPANY_NAME est la valeur du champ name pour l'entreprise. name est l'identifiant unique de l'entreprise renvoyé au moment de la création, ainsi que par les requêtes company.get et list.

Le corps de la requête doit contenir l'intégralité de la ressource, y compris les champs non mis à jour. Ces champs peuvent être définis dans updateMask. Si des champs sont définis dans updateMask, seuls ces champs sont mis à jour et les mises à jour des autres champs sont ignorées. Si updateMask n'est pas défini, tous les champs sont mis à jour.

Java

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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
}

Mettre à jour l'entreprise avec updateMask

Java

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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

Pour en savoir plus sur l'installation et la création d'un client Cloud Talent Solution, consultez la page Bibliothèques clientes 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
}

Bonnes pratiques

Entreprises confidentielles

Si vous souhaitez publier une offre d'emploi confidentielle, nous vous recommandons de créer une entreprise distincte reprenant les champs de l'entreprise initiale, en masquant les valeurs displayName, externalId et tout autre champ d'identification.

Si vous souhaitez que l'employeur final reste anonyme (par exemple, dans le cas d'une agence de recrutement), nous vous recommandons de définir externalId et displayName sur des valeurs aléatoires, mais uniques.