建立及更新公司 (v3)

Cloud Talent Solution API 中的一個 Company 資源代表一家公司。而任何屬於這家公司的工作,就是指針對這家公司的職缺所建立的工作張貼項目。工作張貼項目包含公司名稱和地址等資訊,以及可將 Cloud Talent Solution 服務中的資源連回您內部資料庫的內部欄位。

建立公司

如要建立公司,請將 POST 要求傳送至 companies 端點,而且至少要指定兩個必填欄位。想進一步瞭解如何建立公司,請參閱快速入門:建立公司和工作頁面。

Java

如要進一步瞭解如何安裝及建立 Cloud Talent Solution 用戶端,請參閱 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

如要進一步瞭解如何安裝及建立 Cloud Talent Solution 用戶端,請參閱 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

如要進一步瞭解如何安裝及建立 Cloud Talent Solution 用戶端,請參閱 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
}

必填欄位

以下是建立/更新要求中的必填欄位:

  • displayName:與職缺一同顯示的雇主名稱,例如「Google LLC」。

  • externalId:這家公司的內部 ID。這個欄位可讓您將內部 ID 對應到 Google 系統中的公司。如果公司沒有個別的內部 ID,請將這個欄位設定成與 displayName 相同的值。

常用欄位

  • headquartersAddress:公司總部的街道地址,可能與工作地點不同。針對每家公司,Cloud Talent Solution 只接受一個總部地址。服務會嘗試取得該地址的地理位置,並盡可能在 derivedInfo.headquartersLocation (僅限輸出) 中填入更具體的地點。

  • size:代表公司規模 (以員工人數判斷) 的值區值 (從 MINIGIANT)。如需列舉和定義,請參閱 size 參考資料。

  • eeoText:一個字串,包含與這家公司所有職缺相關聯的公平就業機會法律免責事項文字。

  • keywordSearchableJobCustomAttributes:指定系統應該為這家公司所提供工作的哪些 customAttributes 建立索引,供使用者以一般關鍵字進行搜尋。

更新公司

如要更新公司,請將 PATCH 要求傳送至下列端點:

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

其中 COMPANY_NAME 是公司 name 欄位的值。name 是公司專屬 ID,系統會在建立公司時傳回這個 ID,也會在收到 company.getlist 要求時傳回這個 ID。

要求的主體必須包含整個資源 (包括沒有要更新的欄位)。您可以在 updateMask 中設定這些欄位。如果您在 updateMask 中設定欄位,系統只會更新這些欄位,並忽略其他欄位的更新。如未設定 updateMask,系統就會更新所有欄位。

Java

如要進一步瞭解如何安裝及建立 Cloud Talent Solution 用戶端,請參閱 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

如要進一步瞭解如何安裝及建立 Cloud Talent Solution 用戶端,請參閱 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

如要進一步瞭解如何安裝及建立 Cloud Talent Solution 用戶端,請參閱 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
}

利用 updateMask 更新公司

Java

如要進一步瞭解如何安裝及建立 Cloud Talent Solution 用戶端,請參閱 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

如要進一步瞭解如何安裝及建立 Cloud Talent Solution 用戶端,請參閱 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

如要進一步瞭解如何安裝及建立 Cloud Talent Solution 用戶端,請參閱 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
}

最佳做法

要保密的公司

如果您想張貼要保密的工作,我們建議您建立個別的公司,並模仿原本公司的欄位,但是將 displayNameexternalId 和所有其他可辨識公司的欄位進行模糊處理。

如果雇主的身分必須保密 (例如人力仲介機構),建議您將 externalIddisplayName 設為不重複的隨機值。