// Copyright 2019 Google LLC. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // syntax = "proto3"; package google.cloud.talent.v4beta1; import "google/api/annotations.proto"; import "google/protobuf/timestamp.proto"; option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent"; option java_multiple_files = true; option java_outer_classname = "EventProto"; option java_package = "com.google.cloud.talent.v4beta1"; option objc_class_prefix = "CTS"; // An event issued when an end user interacts with the application that // implements Cloud Talent Solution. Providing this information improves the // quality of search and recommendation for the API clients, enabling the // service to perform optimally. The number of events sent must be consistent // with other calls, such as job searches, issued to the service by the client. message ClientEvent { // Required. // // A unique ID generated in the API responses. It can be found in // [ResponseMetadata.request_id][google.cloud.talent.v4beta1.ResponseMetadata.request_id]. string request_id = 1; // Required. // // A unique identifier, generated by the client application. string event_id = 2; // Required. // // The timestamp of the event. google.protobuf.Timestamp create_time = 4; // Required. // // The detail information of a specific event type. oneof event { // An event issued when a job seeker interacts with the application that // implements Cloud Talent Solution. JobEvent job_event = 5; // An event issued when a profile searcher interacts with the application // that implements Cloud Talent Solution. ProfileEvent profile_event = 6; } // Optional. // // Notes about the event provided by recruiters or other users, for example, // feedback on why a profile was bookmarked. string event_notes = 9; } // An event issued when a job seeker interacts with the application that // implements Cloud Talent Solution. message JobEvent { // An enumeration of an event attributed to the behavior of the end user, // such as a job seeker. enum JobEventType { // The event is unspecified by other provided values. JOB_EVENT_TYPE_UNSPECIFIED = 0; // The job seeker or other entity interacting with the service has // had a job rendered in their view, such as in a list of search results in // a compressed or clipped format. This event is typically associated with // the viewing of a jobs list on a single page by a job seeker. IMPRESSION = 1; // The job seeker, or other entity interacting with the service, has // viewed the details of a job, including the full description. This // event doesn't apply to the viewing a snippet of a job appearing as a // part of the job search results. Viewing a snippet is associated with an // [impression][google.cloud.talent.v4beta1.JobEvent.JobEventType.IMPRESSION]). VIEW = 2; // The job seeker or other entity interacting with the service // performed an action to view a job and was redirected to a different // website for job. VIEW_REDIRECT = 3; // The job seeker or other entity interacting with the service // began the process or demonstrated the intention of applying for a job. APPLICATION_START = 4; // The job seeker or other entity interacting with the service // submitted an application for a job. APPLICATION_FINISH = 5; // The job seeker or other entity interacting with the service // submitted an application for a job with a single click without // entering information. If a job seeker performs this action, send only // this event to the service. Do not also send // [JobEventType.APPLICATION_START][google.cloud.talent.v4beta1.JobEvent.JobEventType.APPLICATION_START] or [JobEventType.APPLICATION_FINISH][google.cloud.talent.v4beta1.JobEvent.JobEventType.APPLICATION_FINISH] // events. APPLICATION_QUICK_SUBMISSION = 6; // The job seeker or other entity interacting with the service // performed an action to apply to a job and was redirected to a different // website to complete the application. APPLICATION_REDIRECT = 7; // The job seeker or other entity interacting with the service began the // process or demonstrated the intention of applying for a job from the // search results page without viewing the details of the job posting. // If sending this event, JobEventType.VIEW event shouldn't be sent. APPLICATION_START_FROM_SEARCH = 8; // The job seeker, or other entity interacting with the service, performs an // action with a single click from the search results page to apply to a job // (without viewing the details of the job posting), and is redirected // to a different website to complete the application. If a candidate // performs this action, send only this event to the service. Do not also // send [JobEventType.APPLICATION_START][google.cloud.talent.v4beta1.JobEvent.JobEventType.APPLICATION_START], // [JobEventType.APPLICATION_FINISH][google.cloud.talent.v4beta1.JobEvent.JobEventType.APPLICATION_FINISH] or [JobEventType.VIEW][google.cloud.talent.v4beta1.JobEvent.JobEventType.VIEW] events. APPLICATION_REDIRECT_FROM_SEARCH = 9; // This event should be used when a company submits an application // on behalf of a job seeker. This event is intended for use by staffing // agencies attempting to place candidates. APPLICATION_COMPANY_SUBMIT = 10; // The job seeker or other entity interacting with the service demonstrated // an interest in a job by bookmarking or saving it. BOOKMARK = 11; // The job seeker or other entity interacting with the service was // sent a notification, such as an email alert or device notification, // containing one or more jobs listings generated by the service. NOTIFICATION = 12; // The job seeker or other entity interacting with the service was // employed by the hiring entity (employer). Send this event // only if the job seeker was hired through an application that was // initiated by a search conducted through the Cloud Talent Solution // service. HIRED = 13; // A recruiter or staffing agency submitted an application on behalf of the // candidate after interacting with the service to identify a suitable job // posting. SENT_CV = 14; // The entity interacting with the service (for example, the job seeker), // was granted an initial interview by the hiring entity (employer). This // event should only be sent if the job seeker was granted an interview as // part of an application that was initiated by a search conducted through / // recommendation provided by the Cloud Talent Solution service. INTERVIEW_GRANTED = 15; // The job seeker or other entity interacting with the service showed // no interest in the job. NOT_INTERESTED = 16; } // Required. // // The type of the event (see [JobEventType][google.cloud.talent.v4beta1.JobEvent.JobEventType]). JobEventType type = 1; // Required. // // The [job name(s)][google.cloud.talent.v4beta1.Job.name] associated with this event. // For example, if this is an [impression][google.cloud.talent.v4beta1.JobEvent.JobEventType.IMPRESSION] event, // this field contains the identifiers of all jobs shown to the job seeker. // If this was a [view][google.cloud.talent.v4beta1.JobEvent.JobEventType.VIEW] event, this field contains the // identifier of the viewed job. repeated string jobs = 2; } // An event issued when a profile searcher interacts with the application // that implements Cloud Talent Solution. message ProfileEvent { // The enum represents types of client events for a candidate profile. enum ProfileEventType { // Default value. PROFILE_EVENT_TYPE_UNSPECIFIED = 0; // The profile is displayed. IMPRESSION = 1; // The profile is viewed. VIEW = 2; // The profile is bookmarked. BOOKMARK = 3; } // Required. // // Type of event. ProfileEventType type = 1; // Required. // // The [profile name(s)][google.cloud.talent.v4beta1.Profile.name] associated with this client event. repeated string profiles = 2; // Optional. // // The job ID associated with this client event if there is one. Leave it // empty if the event isn't associated with a job. // // The job ID should be consistent with the // [JobApplication.job.requisition_id][] in the profile. repeated string jobs = 6; }