event.proto 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. // Copyright 2020 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.cloud.talent.v4beta1;
  16. import "google/api/field_behavior.proto";
  17. import "google/protobuf/timestamp.proto";
  18. import "google/api/annotations.proto";
  19. option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
  20. option java_multiple_files = true;
  21. option java_outer_classname = "EventProto";
  22. option java_package = "com.google.cloud.talent.v4beta1";
  23. option objc_class_prefix = "CTS";
  24. // An event issued when an end user interacts with the application that
  25. // implements Cloud Talent Solution. Providing this information improves the
  26. // quality of results for the API clients, enabling the
  27. // service to perform optimally. The number of events sent must be consistent
  28. // with other calls, such as job searches, issued to the service by the client.
  29. message ClientEvent {
  30. // Strongly recommended for the best service experience.
  31. //
  32. // A unique ID generated in the API responses. It can be found in
  33. // [ResponseMetadata.request_id][google.cloud.talent.v4beta1.ResponseMetadata.request_id].
  34. string request_id = 1;
  35. // Required. A unique identifier, generated by the client application.
  36. string event_id = 2 [(google.api.field_behavior) = REQUIRED];
  37. // Required. The timestamp of the event.
  38. google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = REQUIRED];
  39. // Required.
  40. //
  41. // The detail information of a specific event type.
  42. oneof event {
  43. // An event issued when a job seeker interacts with the application that
  44. // implements Cloud Talent Solution.
  45. JobEvent job_event = 5;
  46. // An event issued when a profile searcher interacts with the application
  47. // that implements Cloud Talent Solution.
  48. ProfileEvent profile_event = 6;
  49. }
  50. // Notes about the event provided by recruiters or other users, for example,
  51. // feedback on why a profile was bookmarked.
  52. string event_notes = 9;
  53. }
  54. // An event issued when a job seeker interacts with the application that
  55. // implements Cloud Talent Solution.
  56. message JobEvent {
  57. // An enumeration of an event attributed to the behavior of the end user,
  58. // such as a job seeker.
  59. enum JobEventType {
  60. // The event is unspecified by other provided values.
  61. JOB_EVENT_TYPE_UNSPECIFIED = 0;
  62. // The job seeker or other entity interacting with the service has
  63. // had a job rendered in their view, such as in a list of search results in
  64. // a compressed or clipped format. This event is typically associated with
  65. // the viewing of a jobs list on a single page by a job seeker.
  66. IMPRESSION = 1;
  67. // The job seeker, or other entity interacting with the service, has
  68. // viewed the details of a job, including the full description. This
  69. // event doesn't apply to the viewing a snippet of a job appearing as a
  70. // part of the job search results. Viewing a snippet is associated with an
  71. // [impression][google.cloud.talent.v4beta1.JobEvent.JobEventType.IMPRESSION]).
  72. VIEW = 2;
  73. // The job seeker or other entity interacting with the service
  74. // performed an action to view a job and was redirected to a different
  75. // website for job.
  76. VIEW_REDIRECT = 3;
  77. // The job seeker or other entity interacting with the service
  78. // began the process or demonstrated the intention of applying for a job.
  79. APPLICATION_START = 4;
  80. // The job seeker or other entity interacting with the service
  81. // submitted an application for a job.
  82. APPLICATION_FINISH = 5;
  83. // The job seeker or other entity interacting with the service
  84. // submitted an application for a job with a single click without
  85. // entering information. If a job seeker performs this action, send only
  86. // this event to the service. Do not also send
  87. // [JobEventType.APPLICATION_START][google.cloud.talent.v4beta1.JobEvent.JobEventType.APPLICATION_START] or [JobEventType.APPLICATION_FINISH][google.cloud.talent.v4beta1.JobEvent.JobEventType.APPLICATION_FINISH]
  88. // events.
  89. APPLICATION_QUICK_SUBMISSION = 6;
  90. // The job seeker or other entity interacting with the service
  91. // performed an action to apply to a job and was redirected to a different
  92. // website to complete the application.
  93. APPLICATION_REDIRECT = 7;
  94. // The job seeker or other entity interacting with the service began the
  95. // process or demonstrated the intention of applying for a job from the
  96. // search results page without viewing the details of the job posting.
  97. // If sending this event, JobEventType.VIEW event shouldn't be sent.
  98. APPLICATION_START_FROM_SEARCH = 8;
  99. // The job seeker, or other entity interacting with the service, performs an
  100. // action with a single click from the search results page to apply to a job
  101. // (without viewing the details of the job posting), and is redirected
  102. // to a different website to complete the application. If a candidate
  103. // performs this action, send only this event to the service. Do not also
  104. // send [JobEventType.APPLICATION_START][google.cloud.talent.v4beta1.JobEvent.JobEventType.APPLICATION_START],
  105. // [JobEventType.APPLICATION_FINISH][google.cloud.talent.v4beta1.JobEvent.JobEventType.APPLICATION_FINISH] or [JobEventType.VIEW][google.cloud.talent.v4beta1.JobEvent.JobEventType.VIEW] events.
  106. APPLICATION_REDIRECT_FROM_SEARCH = 9;
  107. // This event should be used when a company submits an application
  108. // on behalf of a job seeker. This event is intended for use by staffing
  109. // agencies attempting to place candidates.
  110. APPLICATION_COMPANY_SUBMIT = 10;
  111. // The job seeker or other entity interacting with the service demonstrated
  112. // an interest in a job by bookmarking or saving it.
  113. BOOKMARK = 11;
  114. // The job seeker or other entity interacting with the service was
  115. // sent a notification, such as an email alert or device notification,
  116. // containing one or more jobs listings generated by the service.
  117. NOTIFICATION = 12;
  118. // The job seeker or other entity interacting with the service was
  119. // employed by the hiring entity (employer). Send this event
  120. // only if the job seeker was hired through an application that was
  121. // initiated by a search conducted through the Cloud Talent Solution
  122. // service.
  123. HIRED = 13;
  124. // A recruiter or staffing agency submitted an application on behalf of the
  125. // candidate after interacting with the service to identify a suitable job
  126. // posting.
  127. SENT_CV = 14;
  128. // The entity interacting with the service (for example, the job seeker),
  129. // was granted an initial interview by the hiring entity (employer). This
  130. // event should only be sent if the job seeker was granted an interview as
  131. // part of an application that was initiated by a search conducted through /
  132. // recommendation provided by the Cloud Talent Solution service.
  133. INTERVIEW_GRANTED = 15;
  134. }
  135. // Required. The type of the event (see [JobEventType][google.cloud.talent.v4beta1.JobEvent.JobEventType]).
  136. JobEventType type = 1 [(google.api.field_behavior) = REQUIRED];
  137. // Required. The [job name(s)][google.cloud.talent.v4beta1.Job.name] associated with this event.
  138. // For example, if this is an [impression][google.cloud.talent.v4beta1.JobEvent.JobEventType.IMPRESSION] event,
  139. // this field contains the identifiers of all jobs shown to the job seeker.
  140. // If this was a [view][google.cloud.talent.v4beta1.JobEvent.JobEventType.VIEW] event, this field contains the
  141. // identifier of the viewed job.
  142. //
  143. // The format is
  144. // "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}", for
  145. // example, "projects/foo/tenants/bar/jobs/baz".
  146. repeated string jobs = 2 [(google.api.field_behavior) = REQUIRED];
  147. // The [profile name][google.cloud.talent.v4beta1.Profile.name] associated with this client event.
  148. //
  149. // The format is
  150. // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
  151. // for example, "projects/foo/tenants/bar/profiles/baz".
  152. string profile = 3;
  153. }
  154. // An event issued when a profile searcher interacts with the application
  155. // that implements Cloud Talent Solution.
  156. message ProfileEvent {
  157. // The enum represents types of client events for a candidate profile.
  158. enum ProfileEventType {
  159. // Default value.
  160. PROFILE_EVENT_TYPE_UNSPECIFIED = 0;
  161. // Send this event when a [ProfileEvent.profiles][google.cloud.talent.v4beta1.ProfileEvent.profiles] was sent as a part of
  162. // a result set for a CTS API call and was rendered in the end user's UI
  163. // (that is, the [ProfileEvent.recruiter][google.cloud.talent.v4beta1.ProfileEvent.recruiter]).
  164. IMPRESSION = 1;
  165. // The VIEW event records the action of a candidate's profile being
  166. // viewed by an end user. This is critical to tracking product metrics and
  167. // should be sent for every profile VIEW that happens in your system,
  168. // whether the event is associated with an API call (for example, a
  169. // recruiter making a request for a result set and clicking on a profile)
  170. // or not (a recruiter using the system to view profile details without
  171. // making a request).
  172. //
  173. // For a VIEW events associated with API calls, the
  174. // [ClientEvent.request_id][google.cloud.talent.v4beta1.ClientEvent.request_id] should be populated. If the VIEW is not
  175. // associated with an API call, [request_id][google.cloud.talent.v4beta1.ClientEvent.request_id] should
  176. // not be populated.
  177. //
  178. // This event requires a valid recruiter and one valid ID in profiles.
  179. VIEW = 2;
  180. // The profile is bookmarked.
  181. BOOKMARK = 3;
  182. }
  183. // Required. Type of event.
  184. ProfileEventType type = 1 [(google.api.field_behavior) = REQUIRED];
  185. // Required. The [profile name(s)][google.cloud.talent.v4beta1.Profile.name] associated with this client event.
  186. //
  187. // The format is
  188. // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
  189. // for example, "projects/foo/tenants/bar/profiles/baz".
  190. repeated string profiles = 2 [(google.api.field_behavior) = REQUIRED];
  191. // The [job name(s)][google.cloud.talent.v4beta1.Job.name] associated with this client event. Leave it
  192. // empty if the event isn't associated with a job.
  193. //
  194. // The format is
  195. // "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}", for
  196. // example, "projects/foo/tenants/bar/jobs/baz".
  197. repeated string jobs = 6;
  198. }