Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions talent/google/cloud/talent_v4beta1/gapic/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,64 @@
import enum


class AvailabilitySignalType(enum.IntEnum):
"""
The type of candidate availability signal.

Attributes:
AVAILABILITY_SIGNAL_TYPE_UNSPECIFIED (int): Default value.
JOB_APPLICATION (int): Job application signal.

In the context of ``Profile.availability_signals``, this signal is
related to the candidate's most recent application. ``last_update_time``
is calculated from max(\ ``Application.create_time``) from all
``Application`` records where ``Application.source`` is any of the
following: ``APPLY_DIRECT_WEB`` ``APPLY_DIRECT_MOBILE_WEB``
``APPLY_DIRECT_MOBILE_APP`` ``APPLY_DIRECT_IN_PERSON``
``APPLY_INDIRECT``

In the context of ``AvailabilityFilter``, the filter is applied on
``Profile.availability_signals`` where ``type`` is JOB\_APPLICATION.
RESUME_UPDATE (int): Resume update signal.

In the context of ``Profile.availability_signals``, this signal is
related to the candidate’s most recent update to their resume. For a
``SummarizedProfile.summary``, ``last_update_time`` is calculated from
max(\ ``Profile.resume_update_time``) from all
``SummarizedProfile.profiles``.

In the context of ``AvailabilityFilter``, the filter is applied on
``Profile.availability_signals`` where ``type`` is RESUME\_UPDATE.
CANDIDATE_UPDATE (int): Candidate update signal.

In the context of ``Profile.availability_signals``, this signal is
related to the candidate’s most recent update to their profile. For a
``SummarizedProfile.summary``, ``last_update_time`` is calculated from
max(\ ``Profile.candidate_update_time``) from all
``SummarizedProfile.profiles``.

In the context of ``AvailabilityFilter``, the filter is applied on
``Profile.availability_signals`` where ``type`` is CANDIDATE\_UPDATE.
CLIENT_SUBMISSION (int): Client submission signal.

In the context of ``Profile.availability_signals``, this signal is
related to the candidate’s most recent submission. ``last_update_time``
is calculated from max(\ ``Application.create_time``) from all
``Application`` records where ``Application.stage`` is any of the
following: ``HIRING_MANAGER_REVIEW`` ``INTERVIEW`` ``OFFER_EXTENDED``
``OFFER_ACCEPTED`` ``STARTED``

In the context of ``AvailabilityFilter``, the filter is applied on
``Profile.availability_signals`` where ``type`` is CLIENT\_SUBMISSION.
"""

AVAILABILITY_SIGNAL_TYPE_UNSPECIFIED = 0
JOB_APPLICATION = 1
RESUME_UPDATE = 2
CANDIDATE_UPDATE = 3
CLIENT_SUBMISSION = 4


class CommuteMethod(enum.IntEnum):
"""
Method for commute.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -549,10 +549,13 @@ def update_profile(

- external\_id
- source
- source\_types
- uri
- is\_hirable
- create\_time
- update\_time
- candidate\_update\_time
- resume\_update\_time
- resume
- person\_names
- addresses
Expand Down
94 changes: 94 additions & 0 deletions talent/google/cloud/talent_v4beta1/proto/common.proto
Original file line number Diff line number Diff line change
Expand Up @@ -1066,3 +1066,97 @@ enum Outcome {
// candidate did not complete assessment).
OUTCOME_NOT_AVAILABLE = 4;
}

// The type of candidate availability signal.
enum AvailabilitySignalType {
// Default value.
AVAILABILITY_SIGNAL_TYPE_UNSPECIFIED = 0;

// Job application signal.
//
// In the context of
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals],
// this signal is related to the candidate's most recent application.
// [last_update_time][Profile.availability_signals.last_update_time] is
// calculated from
// max([Application.create_time][google.cloud.talent.v4beta1.Application.create_time])
// from all [Application][google.cloud.talent.v4beta1.Application] records
// where [Application.source][google.cloud.talent.v4beta1.Application.source]
// is any of the following:
// [APPLY_DIRECT_WEB][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_DIRECT_WEB]
// [APPLY_DIRECT_MOBILE_WEB][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_DIRECT_MOBILE_WEB]
// [APPLY_DIRECT_MOBILE_APP][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_DIRECT_MOBILE_APP]
// [APPLY_DIRECT_IN_PERSON][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_DIRECT_IN_PERSON]
// [APPLY_INDIRECT][google.cloud.talent.v4beta1.Application.ApplicationSource.APPLY_INDIRECT]
//
// In the context of
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter], the
// filter is applied on
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals]
// where [type][Profile.availability_signals.type] is JOB_APPLICATION.
JOB_APPLICATION = 1;

// Resume update signal.
//
// In the context of
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals],
// this signal is related to the candidate’s most recent update to their
// resume. For a
// [SummarizedProfile.summary][google.cloud.talent.v4beta1.SummarizedProfile.summary],
// [last_update_time][Profile.availability_signals.last_update_time] is
// calculated from
// max([Profile.resume_update_time][google.cloud.talent.v4beta1.Profile.resume_update_time])
// from all
// [SummarizedProfile.profiles][google.cloud.talent.v4beta1.SummarizedProfile.profiles].
//
// In the context of
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter], the
// filter is applied on
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals]
// where [type][Profile.availability_signals.type] is RESUME_UPDATE.
RESUME_UPDATE = 2;

// Candidate update signal.
//
// In the context of
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals],
// this signal is related to the candidate’s most recent update to their
// profile. For a
// [SummarizedProfile.summary][google.cloud.talent.v4beta1.SummarizedProfile.summary],
// [last_update_time][Profile.availability_signals.last_update_time] is
// calculated from
// max([Profile.candidate_update_time][google.cloud.talent.v4beta1.Profile.candidate_update_time])
// from all
// [SummarizedProfile.profiles][google.cloud.talent.v4beta1.SummarizedProfile.profiles].
//
// In the context of
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter], the
// filter is applied on
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals]
// where [type][Profile.availability_signals.type] is CANDIDATE_UPDATE.
CANDIDATE_UPDATE = 3;

// Client submission signal.
//
// In the context of
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals],
// this signal is related to the candidate’s most recent submission.
// [last_update_time][Profile.availability_signals.last_update_time] is
// calculated from
// max([Application.create_time][google.cloud.talent.v4beta1.Application.create_time])
// from all [Application][google.cloud.talent.v4beta1.Application] records
// where [Application.stage][google.cloud.talent.v4beta1.Application.stage] is
// any of the following:
// [HIRING_MANAGER_REVIEW][google.cloud.talent.v4beta1.Application.ApplicationStage.HIRING_MANAGER_REVIEW]
// [INTERVIEW][google.cloud.talent.v4beta1.Application.ApplicationStage.INTERVIEW]
// [OFFER_EXTENDED][google.cloud.talent.v4beta1.Application.ApplicationStage.OFFER_EXTENDED]
// [OFFER_ACCEPTED][google.cloud.talent.v4beta1.Application.ApplicationStage.OFFER_ACCEPTED]
// [STARTED][google.cloud.talent.v4beta1.Application.ApplicationStage.STARTED]
//
// In the context of
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter], the
// filter is applied on
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals]
// where [type][Profile.availability_signals.type] is CLIENT_SUBMISSION.
CLIENT_SUBMISSION = 4;
}
54 changes: 53 additions & 1 deletion talent/google/cloud/talent_v4beta1/proto/common_pb2.py

Large diffs are not rendered by default.

46 changes: 45 additions & 1 deletion talent/google/cloud/talent_v4beta1/proto/filters.proto
Original file line number Diff line number Diff line change
Expand Up @@ -408,6 +408,8 @@ message ProfileQuery {
// (key1 = "TEST" OR LOWER(key1)="test" OR NOT EMPTY(key1))
string custom_attribute_filter = 15;

// Deprecated. Use availability_filters instead.
//
// The candidate availability filter which filters based on availability
// signals.
//
Expand All @@ -424,7 +426,26 @@ message ProfileQuery {
// based on an aggregated set of signals. Specifically, the intent is NOT to
// indicate the candidate's potential qualification / interest / close ability
// for a specific job.
CandidateAvailabilityFilter candidate_availability_filter = 16;
CandidateAvailabilityFilter candidate_availability_filter = 16
[deprecated = true];

// The availability filter which filters based on
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals].
//
// The availability filter helps a recruiter understand if a
// specific candidate is likely to be actively seeking new job opportunities
// based on an aggregated set of signals. Specifically, the intent is NOT to
// indicate the candidate's potential qualification / interest / close ability
// for a specific job.
//
// There can be at most one
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] per
// [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type].
// If there are multiple
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] for a
// [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type],
// an error is thrown.
repeated AvailabilityFilter availability_filters = 18;

// Person name filter specifies person name of profiles to match on.
//
Expand Down Expand Up @@ -792,13 +813,36 @@ message TimeFilter {
TimeField time_field = 3;
}

// Deprecated. Use AvailabilityFilter instead.
//
// Filter on availability signals.
message CandidateAvailabilityFilter {
option deprecated = true;

// It is false by default. If true, API excludes all the potential available
// profiles.
bool negated = 1;
}

// Filter on availability signals.
message AvailabilityFilter {
// Required. Type of signal to apply filter on.
AvailabilitySignalType signal_type = 1
[(google.api.field_behavior) = REQUIRED];

// Required. Range of times to filter candidate signals by.
TimestampRange range = 2 [(google.api.field_behavior) = REQUIRED];

// If multiple
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] are
// provided, the default behavior is to OR all filters, but if this field is
// set to true, this particular
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] will
// be AND'ed against other
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter].
bool required = 3;
}

// Filter on person name.
message PersonNameFilter {
// Required. The person name. For example, "John Smith".
Expand Down
Loading