Cloud Talent Solution 中的公司资源代表一家公司。属于该公司的任何招聘信息均简称为招聘信息帖子,是针对该公司内的一个空缺职位而创建的。其中包含公司名称和地址等信息,以及将 Cloud Talent Solution 服务内的资源与您的内部数据库相关联的内部字段。
创建公司
要创建公司,请向 companies
端点发送 POST 请求,并至少指定两个必填字段。如需详细了解如何创建公司,请参阅“快速入门:创建公司和职位”页面。此外,还有视频教程和交互式 Codelab 可供使用。
Go
如需了解如何安装和使用适用于 CTS 的客户端库,请参阅 CTS 客户端库。 如需了解详情,请参阅 CTS Go API 参考文档。
如需向 CTS 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
import (
"context"
"fmt"
"io"
talent "cloud.google.com/go/talent/apiv4beta1"
"cloud.google.com/go/talent/apiv4beta1/talentpb"
)
// createCompany creates a company as given.
func createCompany(w io.Writer, projectID, externalID, displayName string) (*talentpb.Company, error) {
ctx := context.Background()
// Initializes a companyService client.
c, err := talent.NewCompanyClient(ctx)
if err != nil {
return nil, fmt.Errorf("talent.NewCompanyClient: %w", err)
}
defer c.Close()
// Construct a createCompany request.
req := &talentpb.CreateCompanyRequest{
Parent: fmt.Sprintf("projects/%s", projectID),
Company: &talentpb.Company{
ExternalId: externalID,
DisplayName: displayName,
},
}
resp, err := c.CreateCompany(ctx, req)
if err != nil {
return nil, fmt.Errorf("CreateCompany: %w", err)
}
fmt.Fprintf(w, "Created company: %q\n", resp.GetName())
return resp, nil
}
Java
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
import com.google.cloud.talent.v4beta1.Company;
import com.google.cloud.talent.v4beta1.CompanyServiceClient;
import com.google.cloud.talent.v4beta1.CreateCompanyRequest;
import com.google.cloud.talent.v4beta1.TenantName;
import java.io.IOException;
public class JobSearchCreateCompany {
public static void createCompany() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String tenantId = "your-tenant-id";
String displayName = "your-company-display-name";
String externalId = "your-external-id";
createCompany(projectId, tenantId, displayName, externalId);
}
// Create a company.
public static void createCompany(
String projectId, String tenantId, String displayName, String externalId) throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (CompanyServiceClient companyServiceClient = CompanyServiceClient.create()) {
TenantName parent = TenantName.of(projectId, tenantId);
Company company =
Company.newBuilder().setDisplayName(displayName).setExternalId(externalId).build();
CreateCompanyRequest request =
CreateCompanyRequest.newBuilder()
.setParent(parent.toString())
.setCompany(company)
.build();
Company response = companyServiceClient.createCompany(request);
System.out.println("Created Company");
System.out.format("Name: %s%n", response.getName());
System.out.format("Display Name: %s%n", response.getDisplayName());
System.out.format("External ID: %s%n", response.getExternalId());
}
}
}
Python
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
from google.cloud import talent
def create_company(project_id, tenant_id, display_name, external_id):
"""Create Company"""
client = talent.CompanyServiceClient()
# project_id = 'Your Google Cloud Project ID'
# tenant_id = 'Your Tenant ID (using tenancy is optional)'
# display_name = 'My Company Name'
# external_id = 'Identifier of this company in my system'
if isinstance(project_id, bytes):
project_id = project_id.decode("utf-8")
if isinstance(tenant_id, bytes):
tenant_id = tenant_id.decode("utf-8")
if isinstance(display_name, bytes):
display_name = display_name.decode("utf-8")
if isinstance(external_id, bytes):
external_id = external_id.decode("utf-8")
parent = f"projects/{project_id}/tenants/{tenant_id}"
company = {"display_name": display_name, "external_id": external_id}
response = client.create_company(parent=parent, company=company)
print("Created Company")
print(f"Name: {response.name}")
print(f"Display Name: {response.display_name}")
print(f"External ID: {response.external_id}")
return response.name
必填字段
创建/更新请求中必须包含以下字段:
displayName
:与职位一起显示的雇主名称,例如“ Google LLC”。externalId
:您用于该公司的内部 ID。此字段允许您将内部标识符映射到 Google 系统中的对应公司。如果公司没有单独的内部标识符,请将此字段设置为与displayName
相同的值。
常用字段
headquartersAddress
:公司总部的街道地址,可能与工作地点不同。Cloud Talent Solution 仅允许每家公司有一个公司总部地址。该服务会尝试对地址进行地理定位,并在derivedInfo.headquartersLocation
(仅为输出)中填充更具体的地点。size
:存储桶值,根据员工人数来表示公司规模(从MINI
到GIANT
)。请参阅枚举的size
参考信息及其定义。eeoText
:一个字符串,包含与该公司的所有职位关联的公平就业机会法律免责声明文本。keywordSearchableJobCustomAttributes
:指定该公司上的customAttributes
应该编入索引,并且可通过常规关键字搜索进行搜索。
保密型公司
如果您要发布保密型职位,我们建议您创建一个模仿公司字段的单独公司,但要对 displayName
、externalId
和任何其他可识别出公司的字段进行混淆处理。
如果最终雇主应该匿名(例如“劳务中介”用例),建议将 externalId
和 displayName
设置为随机但唯一的值。
检索公司
Go
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
import (
"context"
"fmt"
"io"
talent "cloud.google.com/go/talent/apiv4beta1"
"cloud.google.com/go/talent/apiv4beta1/talentpb"
)
// getCompany gets an existing company by its resource name.
func getCompany(w io.Writer, projectID, companyID string) (*talentpb.Company, error) {
ctx := context.Background()
// Initialize a companyService client.
c, err := talent.NewCompanyClient(ctx)
if err != nil {
return nil, fmt.Errorf("talent.NewCompanyClient: %w", err)
}
defer c.Close()
// Construct a getCompany request.
companyName := fmt.Sprintf("projects/%s/companies/%s", projectID, companyID)
req := &talentpb.GetCompanyRequest{
// The resource name of the company to be retrieved.
// The format is "projects/{project_id}/companies/{company_id}".
Name: companyName,
}
resp, err := c.GetCompany(ctx, req)
if err != nil {
return nil, fmt.Errorf("GetCompany: %w", err)
}
fmt.Fprintf(w, "Company: %q\n", resp.GetName())
fmt.Fprintf(w, "Company display name: %q\n", resp.GetDisplayName())
return resp, nil
}
Java
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
import com.google.cloud.talent.v4beta1.Company;
import com.google.cloud.talent.v4beta1.CompanyName;
import com.google.cloud.talent.v4beta1.CompanyServiceClient;
import com.google.cloud.talent.v4beta1.GetCompanyRequest;
import java.io.IOException;
public class JobSearchGetCompany {
public static void getCompany() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String tenantId = "your-tenant-id";
String companyId = "your-company-id";
getCompany(projectId, tenantId, companyId);
}
// Get Company.
public static void getCompany(String projectId, String tenantId, String companyId)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (CompanyServiceClient companyServiceClient = CompanyServiceClient.create()) {
CompanyName name = CompanyName.ofProjectTenantCompanyName(projectId, tenantId, companyId);
GetCompanyRequest request = GetCompanyRequest.newBuilder().setName(name.toString()).build();
Company response = companyServiceClient.getCompany(request);
System.out.format("Company name: %s%n", response.getName());
System.out.format("Display name: %s%n", response.getDisplayName());
}
}
}
Python
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
from google.cloud import talent
def get_company(project_id, tenant_id, company_id):
"""Get Company"""
client = talent.CompanyServiceClient()
# project_id = 'Your Google Cloud Project ID'
# tenant_id = 'Your Tenant ID (using tenancy is optional)'
# company_id = 'Company ID'
if isinstance(project_id, bytes):
project_id = project_id.decode("utf-8")
if isinstance(tenant_id, bytes):
tenant_id = tenant_id.decode("utf-8")
if isinstance(company_id, bytes):
company_id = company_id.decode("utf-8")
name = client.company_path(project_id, tenant_id, company_id)
response = client.get_company(name=name)
print(f"Company name: {response.name}")
print(f"Display name: {response.display_name}")
列出公司
Java
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
import com.google.cloud.talent.v4beta1.Company;
import com.google.cloud.talent.v4beta1.CompanyServiceClient;
import com.google.cloud.talent.v4beta1.ListCompaniesRequest;
import com.google.cloud.talent.v4beta1.TenantName;
import java.io.IOException;
public class JobSearchListCompanies {
public static void listCompanies() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String tenantId = "your-tenant-id";
listCompanies(projectId, tenantId);
}
// List Companies.
public static void listCompanies(String projectId, String tenantId) throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (CompanyServiceClient companyServiceClient = CompanyServiceClient.create()) {
TenantName parent = TenantName.of(projectId, tenantId);
ListCompaniesRequest request =
ListCompaniesRequest.newBuilder().setParent(parent.toString()).build();
for (Company responseItem : companyServiceClient.listCompanies(request).iterateAll()) {
System.out.format("Company Name: %s%n", responseItem.getName());
System.out.format("Display Name: %s%n", responseItem.getDisplayName());
System.out.format("External ID: %s%n", responseItem.getExternalId());
}
}
}
}
删除公司
Go
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
import (
"context"
"fmt"
"io"
talent "cloud.google.com/go/talent/apiv4beta1"
"cloud.google.com/go/talent/apiv4beta1/talentpb"
)
// deleteCompany deletes an existing company. Companies with
// existing jobs cannot be deleted until those jobs have been deleted.
func deleteCompany(w io.Writer, projectID, companyID string) error {
ctx := context.Background()
// Initialize a companyService client.
c, err := talent.NewCompanyClient(ctx)
if err != nil {
return fmt.Errorf("talent.NewCompanyClient: %w", err)
}
defer c.Close()
// Construct a deleteCompany request.
companyName := fmt.Sprintf("projects/%s/companies/%s", projectID, companyID)
req := &talentpb.DeleteCompanyRequest{
// The resource name of the company to be deleted.
// The format is "projects/{project_id}/companies/{company_id}".
Name: companyName,
}
if err := c.DeleteCompany(ctx, req); err != nil {
return fmt.Errorf("DeleteCompany(%s): %w", companyName, err)
}
fmt.Fprintf(w, "Deleted company: %q\n", companyName)
return nil
}
Java
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
import com.google.cloud.talent.v4beta1.CompanyName;
import com.google.cloud.talent.v4beta1.CompanyServiceClient;
import com.google.cloud.talent.v4beta1.DeleteCompanyRequest;
import java.io.IOException;
public class JobSearchDeleteCompany {
public static void deleteCompany() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String tenantId = "your-tenant-id";
String companyId = "your-company-id";
deleteCompany(projectId, tenantId, companyId);
}
// Delete Company.
public static void deleteCompany(String projectId, String tenantId, String companyId)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (CompanyServiceClient companyServiceClient = CompanyServiceClient.create()) {
CompanyName name = CompanyName.ofProjectTenantCompanyName(projectId, tenantId, companyId);
DeleteCompanyRequest request =
DeleteCompanyRequest.newBuilder().setName(name.toString()).build();
companyServiceClient.deleteCompany(request);
System.out.println("Deleted company");
}
}
}
Python
如需详细了解如何安装和创建 Cloud Talent Solution 客户端,请参阅 Cloud Talent Solution 客户端库。
from google.cloud import talent
def delete_company(project_id, tenant_id, company_id):
"""Delete Company"""
client = talent.CompanyServiceClient()
# project_id = 'Your Google Cloud Project ID'
# tenant_id = 'Your Tenant ID (using tenancy is optional)'
# company_id = 'ID of the company to delete'
if isinstance(project_id, bytes):
project_id = project_id.decode("utf-8")
if isinstance(tenant_id, bytes):
tenant_id = tenant_id.decode("utf-8")
if isinstance(company_id, bytes):
company_id = company_id.decode("utf-8")
name = client.company_path(project_id, tenant_id, company_id)
client.delete_company(name=name)
print("Deleted company")