ProfileServiceClient

ProfileServiceClient

A service that handles profile management, including profile CRUD, enumeration and search.

Constructor

new ProfileServiceClient(optionsopt)

Construct an instance of ProfileServiceClient.

Parameters:
Name Type Attributes Description
options object <optional>

The configuration object. The options accepted by the constructor are described in detail in this document. The common options are:

Properties
Name Type Attributes Description
credentials object <optional>

Credentials object.

Properties
Name Type Attributes Description
client_email string <optional>
private_key string <optional>
email string <optional>

Account email address. Required when using a .pem or .p12 keyFilename.

keyFilename string <optional>

Full path to the a .json, .pem, or .p12 key downloaded from the Google Developers Console. If you provide a path to a JSON file, the projectId option below is not necessary. NOTE: .pem and .p12 require you to specify options.email as well.

port number <optional>

The port on which to connect to the remote host.

projectId string <optional>

The project ID from the Google Developer's Console, e.g. 'grape-spaceship-123'. We will also check the environment variable GCLOUD_PROJECT for your project ID. If your app is running in an environment which supports Application Default Credentials, your project ID will be detected automatically.

apiEndpoint string <optional>

The domain name of the API remote host.

clientConfig gax.ClientConfig <optional>

Client configuration override. Follows the structure of gapicConfig.

fallback boolean <optional>

Use HTTP fallback mode. In fallback mode, a special browser-compatible transport implementation is used instead of gRPC transport. In browser context (if the window object is defined) the fallback mode is enabled automatically; set options.fallback to false if you need to override this behavior.

Members

apiEndpoint

The DNS address for this API service - same as servicePath(), exists for compatibility reasons.

port

The port for this API service.

scopes

The scopes needed to make gRPC calls for every method defined in this service.

servicePath

The DNS address for this API service.

Methods

applicationPath(project, tenant, profile, application) → {string}

Return a fully-qualified application resource name string.

Parameters:
Name Type Description
project string
tenant string
profile string
application string
Returns:
Type Description
string

Resource name string.

close() → {Promise}

Terminate the gRPC channel and close the client.

The client will no longer be usable and all future behavior is undefined.

Returns:
Type Description
Promise

A promise that resolves when the client is closed.

createProfile(request, optionsopt) → {Promise}

Creates and returns a new profile.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. The name of the tenant this profile belongs to.

The format is "projects/{project_id}/tenants/{tenant_id}". For example, "projects/foo/tenants/bar".

profile google.cloud.talent.v4beta1.Profile

Required. The profile to be created.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Promise
  • The promise which resolves to an array. The first element of the array is an object representing Profile. Please see the documentation for more details and examples.
Example
const [response] = await client.createProfile(request);

deleteProfile(request, optionsopt) → {Promise}

Deletes the specified profile. Prerequisite: The profile has no associated applications or assignments associated.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
name string

Required. Resource name of the profile to be deleted.

The format is "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}". For example, "projects/foo/tenants/bar/profiles/baz".

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Promise
  • The promise which resolves to an array. The first element of the array is an object representing Empty. Please see the documentation for more details and examples.
Example
const [response] = await client.deleteProfile(request);

getProfile(request, optionsopt) → {Promise}

Gets the specified profile.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
name string

Required. Resource name of the profile to get.

The format is "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}". For example, "projects/foo/tenants/bar/profiles/baz".

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Promise
  • The promise which resolves to an array. The first element of the array is an object representing Profile. Please see the documentation for more details and examples.
Example
const [response] = await client.getProfile(request);

getProjectId() → {Promise}

Return the project ID used by this class.

Returns:
Type Description
Promise

A promise that resolves to string containing the project ID.

initialize() → {Promise}

Initialize the client. Performs asynchronous operations (such as authentication) and prepares the client. This function will be called automatically when any class method is called for the first time, but if you need to initialize it before calling an actual method, feel free to call initialize() directly.

You can await on this method if you want to make sure the client is initialized.

Returns:
Type Description
Promise

A promise that resolves to an authenticated service stub.

listProfiles(request, optionsopt) → {Promise}

Lists profiles by filter. The order is unspecified.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. The resource name of the tenant under which the profile is created.

The format is "projects/{project_id}/tenants/{tenant_id}". For example, "projects/foo/tenants/bar".

filter string

The filter string specifies the profiles to be enumerated.

Supported operator: =, AND

The field(s) eligible for filtering are:

  • externalId
  • groupId

externalId and groupId cannot be specified at the same time. If both externalId and groupId are provided, the API will return a bad request error.

Sample Query:

  • externalId = "externalId-1"
  • groupId = "groupId-1"
pageToken string

The token that specifies the current offset (that is, starting result).

Please set the value to ListProfilesResponse.next_page_token to continue the list.

pageSize number

The maximum number of profiles to be returned, at most 100.

Default is 100 unless a positive number smaller than 100 is specified.

readMask google.protobuf.FieldMask

A field mask to specify the profile fields to be listed in response. All fields are listed if it is unset.

Valid values are:

  • name
options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Promise
  • The promise which resolves to an array. The first element of the array is Array of Profile. The client library will perform auto-pagination by default: it will call the API as many times as needed and will merge results from all the pages into this array. Note that it can affect your quota. We recommend using listProfilesAsync() method described below for async iteration which you can stop as needed. Please see the documentation for more details and examples.

listProfilesAsync(request, optionsopt) → {Object}

Equivalent to listProfiles, but returns an iterable object.

for-await-of syntax is used with the iterable to get response elements on-demand.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. The resource name of the tenant under which the profile is created.

The format is "projects/{project_id}/tenants/{tenant_id}". For example, "projects/foo/tenants/bar".

filter string

The filter string specifies the profiles to be enumerated.

Supported operator: =, AND

The field(s) eligible for filtering are:

  • externalId
  • groupId

externalId and groupId cannot be specified at the same time. If both externalId and groupId are provided, the API will return a bad request error.

Sample Query:

  • externalId = "externalId-1"
  • groupId = "groupId-1"
pageToken string

The token that specifies the current offset (that is, starting result).

Please set the value to ListProfilesResponse.next_page_token to continue the list.

pageSize number

The maximum number of profiles to be returned, at most 100.

Default is 100 unless a positive number smaller than 100 is specified.

readMask google.protobuf.FieldMask

A field mask to specify the profile fields to be listed in response. All fields are listed if it is unset.

Valid values are:

  • name
options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Object

An iterable Object that allows async iteration. When you iterate the returned iterable, each element will be an object representing Profile. The API will be called under the hood as needed, once per the page, so you can stop the iteration when you don't need more results. Please see the documentation for more details and examples.

Example
const iterable = client.listProfilesAsync(request);
for await (const response of iterable) {
  // process response
}

listProfilesStream(request, optionsopt) → {Stream}

Equivalent to method.name.toCamelCase(), but returns a NodeJS Stream object.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. The resource name of the tenant under which the profile is created.

The format is "projects/{project_id}/tenants/{tenant_id}". For example, "projects/foo/tenants/bar".

filter string

The filter string specifies the profiles to be enumerated.

Supported operator: =, AND

The field(s) eligible for filtering are:

  • externalId
  • groupId

externalId and groupId cannot be specified at the same time. If both externalId and groupId are provided, the API will return a bad request error.

Sample Query:

  • externalId = "externalId-1"
  • groupId = "groupId-1"
pageToken string

The token that specifies the current offset (that is, starting result).

Please set the value to ListProfilesResponse.next_page_token to continue the list.

pageSize number

The maximum number of profiles to be returned, at most 100.

Default is 100 unless a positive number smaller than 100 is specified.

readMask google.protobuf.FieldMask

A field mask to specify the profile fields to be listed in response. All fields are listed if it is unset.

Valid values are:

  • name
options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Stream

An object stream which emits an object representing Profile on 'data' event. The client library will perform auto-pagination by default: it will call the API as many times as needed. Note that it can affect your quota. We recommend using listProfilesAsync() method described below for async iteration which you can stop as needed. Please see the documentation for more details and examples.

matchApplicationFromApplicationName(applicationName) → {string}

Parse the application from Application resource.

Parameters:
Name Type Description
applicationName string

A fully-qualified path representing Application resource.

Returns:
Type Description
string

A string representing the application.

matchCompanyFromProjectCompanyName(projectCompanyName) → {string}

Parse the company from ProjectCompany resource.

Parameters:
Name Type Description
projectCompanyName string

A fully-qualified path representing project_company resource.

Returns:
Type Description
string

A string representing the company.

matchCompanyFromProjectTenantCompanyName(projectTenantCompanyName) → {string}

Parse the company from ProjectTenantCompany resource.

Parameters:
Name Type Description
projectTenantCompanyName string

A fully-qualified path representing project_tenant_company resource.

Returns:
Type Description
string

A string representing the company.

matchJobFromProjectJobName(projectJobName) → {string}

Parse the job from ProjectJob resource.

Parameters:
Name Type Description
projectJobName string

A fully-qualified path representing project_job resource.

Returns:
Type Description
string

A string representing the job.

matchJobFromProjectTenantJobName(projectTenantJobName) → {string}

Parse the job from ProjectTenantJob resource.

Parameters:
Name Type Description
projectTenantJobName string

A fully-qualified path representing project_tenant_job resource.

Returns:
Type Description
string

A string representing the job.

matchProfileFromApplicationName(applicationName) → {string}

Parse the profile from Application resource.

Parameters:
Name Type Description
applicationName string

A fully-qualified path representing Application resource.

Returns:
Type Description
string

A string representing the profile.

matchProfileFromProfileName(profileName) → {string}

Parse the profile from Profile resource.

Parameters:
Name Type Description
profileName string

A fully-qualified path representing Profile resource.

Returns:
Type Description
string

A string representing the profile.

matchProjectFromApplicationName(applicationName) → {string}

Parse the project from Application resource.

Parameters:
Name Type Description
applicationName string

A fully-qualified path representing Application resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromProfileName(profileName) → {string}

Parse the project from Profile resource.

Parameters:
Name Type Description
profileName string

A fully-qualified path representing Profile resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromProjectCompanyName(projectCompanyName) → {string}

Parse the project from ProjectCompany resource.

Parameters:
Name Type Description
projectCompanyName string

A fully-qualified path representing project_company resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromProjectJobName(projectJobName) → {string}

Parse the project from ProjectJob resource.

Parameters:
Name Type Description
projectJobName string

A fully-qualified path representing project_job resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromProjectName(projectName) → {string}

Parse the project from Project resource.

Parameters:
Name Type Description
projectName string

A fully-qualified path representing Project resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromProjectTenantCompanyName(projectTenantCompanyName) → {string}

Parse the project from ProjectTenantCompany resource.

Parameters:
Name Type Description
projectTenantCompanyName string

A fully-qualified path representing project_tenant_company resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromProjectTenantJobName(projectTenantJobName) → {string}

Parse the project from ProjectTenantJob resource.

Parameters:
Name Type Description
projectTenantJobName string

A fully-qualified path representing project_tenant_job resource.

Returns:
Type Description
string

A string representing the project.

matchProjectFromTenantName(tenantName) → {string}

Parse the project from Tenant resource.

Parameters:
Name Type Description
tenantName string

A fully-qualified path representing Tenant resource.

Returns:
Type Description
string

A string representing the project.

matchTenantFromApplicationName(applicationName) → {string}

Parse the tenant from Application resource.

Parameters:
Name Type Description
applicationName string

A fully-qualified path representing Application resource.

Returns:
Type Description
string

A string representing the tenant.

matchTenantFromProfileName(profileName) → {string}

Parse the tenant from Profile resource.

Parameters:
Name Type Description
profileName string

A fully-qualified path representing Profile resource.

Returns:
Type Description
string

A string representing the tenant.

matchTenantFromProjectTenantCompanyName(projectTenantCompanyName) → {string}

Parse the tenant from ProjectTenantCompany resource.

Parameters:
Name Type Description
projectTenantCompanyName string

A fully-qualified path representing project_tenant_company resource.

Returns:
Type Description
string

A string representing the tenant.

matchTenantFromProjectTenantJobName(projectTenantJobName) → {string}

Parse the tenant from ProjectTenantJob resource.

Parameters:
Name Type Description
projectTenantJobName string

A fully-qualified path representing project_tenant_job resource.

Returns:
Type Description
string

A string representing the tenant.

matchTenantFromTenantName(tenantName) → {string}

Parse the tenant from Tenant resource.

Parameters:
Name Type Description
tenantName string

A fully-qualified path representing Tenant resource.

Returns:
Type Description
string

A string representing the tenant.

profilePath(project, tenant, profile) → {string}

Return a fully-qualified profile resource name string.

Parameters:
Name Type Description
project string
tenant string
profile string
Returns:
Type Description
string

Resource name string.

projectCompanyPath(project, company) → {string}

Return a fully-qualified projectCompany resource name string.

Parameters:
Name Type Description
project string
company string
Returns:
Type Description
string

Resource name string.

projectJobPath(project, job) → {string}

Return a fully-qualified projectJob resource name string.

Parameters:
Name Type Description
project string
job string
Returns:
Type Description
string

Resource name string.

projectPath(project) → {string}

Return a fully-qualified project resource name string.

Parameters:
Name Type Description
project string
Returns:
Type Description
string

Resource name string.

projectTenantCompanyPath(project, tenant, company) → {string}

Return a fully-qualified projectTenantCompany resource name string.

Parameters:
Name Type Description
project string
tenant string
company string
Returns:
Type Description
string

Resource name string.

projectTenantJobPath(project, tenant, job) → {string}

Return a fully-qualified projectTenantJob resource name string.

Parameters:
Name Type Description
project string
tenant string
job string
Returns:
Type Description
string

Resource name string.

searchProfiles(request, optionsopt) → {Promise}

Searches for profiles within a tenant.

For example, search by raw queries "software engineer in Mountain View" or search by structured filters (location filter, education filter, etc.).

See SearchProfilesRequest for more information.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
parent string

Required. The resource name of the tenant to search within.

The format is "projects/{project_id}/tenants/{tenant_id}". For example, "projects/foo/tenants/bar".

requestMetadata google.cloud.talent.v4beta1.RequestMetadata

Required. The meta information collected about the profile search user. This is used to improve the search quality of the service. These values are provided by users, and must be precise and consistent.

profileQuery google.cloud.talent.v4beta1.ProfileQuery

Search query to execute. See ProfileQuery for more details.

pageSize number

A limit on the number of profiles returned in the search results. A value above the default value 10 can increase search response time.

The maximum value allowed is 100. Otherwise an error is thrown.

pageToken string

The pageToken, similar to offset enables users of the API to paginate through the search results. To retrieve the first page of results, set the pageToken to empty. The search response includes a nextPageToken field that can be used to populate the pageToken field for the next page of results. Using pageToken instead of offset increases the performance of the API, especially compared to larger offset values.

offset number

An integer that specifies the current offset (that is, starting result) in search results. This field is only considered if page_token is unset.

The maximum allowed value is 5000. Otherwise an error is thrown.

For example, 0 means to search from the first profile, and 10 means to search from the 11th profile. This can be used for pagination, for example pageSize = 10 and offset = 10 means to search from the second page.

disableSpellCheck boolean

This flag controls the spell-check feature. If false, the service attempts to correct a misspelled query.

For example, "enginee" is corrected to "engineer".

orderBy string

The criteria that determines how search results are sorted. Defaults is "relevance desc" if no value is specified.

Supported options are:

  • "relevance desc": By descending relevance, as determined by the API algorithms.
  • "update_date desc": Sort by Profile.update_time in descending order (recently updated profiles first).
  • "create_date desc": Sort by Profile.create_time in descending order (recently created profiles first).
  • "first_name": Sort by PersonName.PersonStructuredName.given_name in ascending order.
  • "first_name desc": Sort by PersonName.PersonStructuredName.given_name in descending order.
  • "last_name": Sort by PersonName.PersonStructuredName.family_name in ascending order.
  • "last_name desc": Sort by PersonName.PersonStructuredName.family_name in ascending order.
caseSensitiveSort boolean

When sort by field is based on alphabetical order, sort values case sensitively (based on ASCII) when the value is set to true. Default value is case in-sensitive sort (false).

histogramQueries Array.<number>

A list of expressions specifies histogram requests against matching profiles for SearchProfilesRequest.

The expression syntax looks like a function definition with parameters.

Function syntax: function_name(histogram_facet[, list of buckets])

Data types:

  • Histogram facet: facet names with format a-zA-Z+.
  • String: string like "any string with backslash escape for quote(")."
  • Number: whole number and floating point number like 10, -1 and -0.01.
  • List: list of elements with comma(,) separator surrounded by square brackets. For example, [1, 2, 3] and ["one", "two", "three"].

Built-in constants:

  • MIN (minimum number similar to java Double.MIN_VALUE)
  • MAX (maximum number similar to java Double.MAX_VALUE)

Built-in functions:

  • bucket(start, end[, label]) Bucket build-in function creates a bucket with range of [start, end). Note that the end is exclusive. For example, bucket(1, MAX, "positive number") or bucket(1, 10).

Histogram Facets:

  • admin1: Admin1 is a global placeholder for referring to state, province, or the particular term a country uses to define the geographic structure below the country level. Examples include states codes such as "CA", "IL", "NY", and provinces, such as "BC".
  • locality: Locality is a global placeholder for referring to city, town, or the particular term a country uses to define the geographic structure below the admin1 level. Examples include city names such as "Mountain View" and "New York".
  • extended_locality: Extended locality is concatenated version of admin1 and locality with comma separator. For example, "Mountain View, CA" and "New York, NY".
  • postal_code: Postal code of profile which follows locale code.
  • country: Country code (ISO-3166-1 alpha-2 code) of profile, such as US, JP, GB.
  • job_title: Normalized job titles specified in EmploymentHistory.
  • company_name: Normalized company name of profiles to match on.
  • institution: The school name. For example, "MIT", "University of California, Berkeley"
  • degree: Highest education degree in ISCED code. Each value in degree covers a specific level of education, without any expansion to upper nor lower levels of education degree.
  • experience_in_months: experience in months. 0 means 0 month to 1 month (exclusive).
  • application_date: The application date specifies application start dates. See ApplicationDateFilter for more details.
  • application_outcome_notes: The application outcome reason specifies the reasons behind the outcome of the job application. See ApplicationOutcomeNotesFilter for more details.
  • application_job_title: The application job title specifies the job applied for in the application. See ApplicationJobFilter for more details.
  • hirable_status: Hirable status specifies the profile's hirable status.
  • string_custom_attribute: String custom attributes. Values can be accessed via square bracket notation like string_custom_attribute["key1"].
  • numeric_custom_attribute: Numeric custom attributes. Values can be accessed via square bracket notation like numeric_custom_attribute["key1"].

Example expressions:

  • count(admin1)
  • count(experience_in_months, [bucket(0, 12, "1 year"), bucket(12, 36, "1-3 years"), bucket(36, MAX, "3+ years")])
  • count(string_custom_attribute["assigned_recruiter"])
  • count(numeric_custom_attribute["favorite_number"], [bucket(MIN, 0, "negative"), bucket(0, MAX, "non-negative")])
resultSetId string

An id that uniquely identifies the result set of a SearchProfiles call. The id should be retrieved from the SearchProfilesResponse message returned from a previous invocation of SearchProfiles.

A result set is an ordered list of search results.

If this field is not set, a new result set is computed based on the profile_query. A new result_set_id is returned as a handle to access this result set.

If this field is set, the service will ignore the resource and profile_query values, and simply retrieve a page of results from the corresponding result set. In this case, one and only one of page_token or offset must be set.

A typical use case is to invoke SearchProfilesRequest without this field, then use the resulting result_set_id in SearchProfilesResponse to page through the results.

strictKeywordsSearch boolean

This flag is used to indicate whether the service will attempt to understand synonyms and terms related to the search query or treat the query "as is" when it generates a set of results. By default this flag is set to false, thus allowing expanded results to also be returned. For example a search for "software engineer" might also return candidates who have experience in jobs similar to software engineer positions. By setting this flag to true, the service will only attempt to deliver candidates has software engineer in his/her global fields by treating "software engineer" as a keyword.

It is recommended to provide a feature in the UI (such as a checkbox) to allow recruiters to set this flag to true if they intend to search for longer boolean strings.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Promise
  • The promise which resolves to an array. The first element of the array is an object representing SearchProfilesResponse. Please see the documentation for more details and examples.
Example
const [response] = await client.searchProfiles(request);

tenantPath(project, tenant) → {string}

Return a fully-qualified tenant resource name string.

Parameters:
Name Type Description
project string
tenant string
Returns:
Type Description
string

Resource name string.

updateProfile(request, optionsopt) → {Promise}

Updates the specified profile and returns the updated result.

Parameters:
Name Type Attributes Description
request Object

The request object that will be sent.

Properties
Name Type Description
profile google.cloud.talent.v4beta1.Profile

Required. Profile to be updated.

updateMask google.protobuf.FieldMask

A field mask to specify the profile fields to update.

A full update is performed if it is unset.

options object <optional>

Call options. See CallOptions for more details.

Returns:
Type Description
Promise
  • The promise which resolves to an array. The first element of the array is an object representing Profile. Please see the documentation for more details and examples.
Example
const [response] = await client.updateProfile(request);