application.proto 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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/annotations.proto";
  17. import "google/api/field_behavior.proto";
  18. import "google/api/resource.proto";
  19. import "google/cloud/talent/v4beta1/common.proto";
  20. import "google/protobuf/timestamp.proto";
  21. import "google/protobuf/wrappers.proto";
  22. import "google/type/date.proto";
  23. option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
  24. option java_multiple_files = true;
  25. option java_outer_classname = "ApplicationResourceProto";
  26. option java_package = "com.google.cloud.talent.v4beta1";
  27. option objc_class_prefix = "CTS";
  28. // Resource that represents a job application record of a candidate.
  29. message Application {
  30. option (google.api.resource) = {
  31. type: "jobs.googleapis.com/Application"
  32. pattern: "projects/{project}/tenants/{tenant}/profiles/{profile}/applications/{application}"
  33. };
  34. // Enum that represents the application status.
  35. enum ApplicationState {
  36. // Default value.
  37. APPLICATION_STATE_UNSPECIFIED = 0;
  38. // The current stage is in progress or pending, for example, interviews in
  39. // progress.
  40. IN_PROGRESS = 1;
  41. // The current stage was terminated by a candidate decision.
  42. CANDIDATE_WITHDREW = 2;
  43. // The current stage was terminated by an employer or agency decision.
  44. EMPLOYER_WITHDREW = 3;
  45. // The current stage is successfully completed, but the next stage (if
  46. // applicable) has not begun.
  47. COMPLETED = 4;
  48. // The current stage was closed without an exception, or terminated for
  49. // reasons unrealated to the candidate.
  50. CLOSED = 5;
  51. }
  52. // The stage of the application.
  53. enum ApplicationStage {
  54. // Default value.
  55. APPLICATION_STAGE_UNSPECIFIED = 0;
  56. // Candidate has applied or a recruiter put candidate into consideration but
  57. // candidate is not yet screened / no decision has been made to move or not
  58. // move the candidate to the next stage.
  59. NEW = 1;
  60. // A recruiter decided to screen the candidate for this role.
  61. SCREEN = 2;
  62. // Candidate is being / was sent to the customer / hiring manager for
  63. // detailed review.
  64. HIRING_MANAGER_REVIEW = 3;
  65. // Candidate was approved by the client / hiring manager and is being / was
  66. // interviewed for the role.
  67. INTERVIEW = 4;
  68. // Candidate will be / has been given an offer of employment.
  69. OFFER_EXTENDED = 5;
  70. // Candidate has accepted their offer of employment.
  71. OFFER_ACCEPTED = 6;
  72. // Candidate has begun (or completed) their employment or assignment with
  73. // the employer.
  74. STARTED = 7;
  75. }
  76. // Required during application update.
  77. //
  78. // Resource name assigned to an application by the API.
  79. //
  80. // The format is
  81. // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}/applications/{application_id}".
  82. // For example, "projects/foo/tenants/bar/profiles/baz/applications/qux".
  83. string name = 1;
  84. // Required. Client side application identifier, used to uniquely identify the
  85. // application.
  86. //
  87. // The maximum number of allowed characters is 255.
  88. string external_id = 31 [(google.api.field_behavior) = REQUIRED];
  89. // Output only. Resource name of the candidate of this application.
  90. //
  91. // The format is
  92. // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}".
  93. // For example, "projects/foo/tenants/bar/profiles/baz".
  94. string profile = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  95. // Required. Resource name of the job which the candidate applied for.
  96. //
  97. // The format is
  98. // "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}". For example,
  99. // "projects/foo/tenants/bar/jobs/baz".
  100. string job = 4 [
  101. (google.api.resource_reference).type = "jobs.googleapis.com/Job",
  102. (google.api.field_behavior) = REQUIRED
  103. ];
  104. // Resource name of the company which the candidate applied for.
  105. //
  106. // The format is
  107. // "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}".
  108. // For example, "projects/foo/tenants/bar/companies/baz".
  109. string company = 5 [
  110. (google.api.resource_reference) = { type: "jobs.googleapis.com/Company" }
  111. ];
  112. // The application date.
  113. google.type.Date application_date = 7;
  114. // Required. What is the most recent stage of the application (that is, new,
  115. // screen, send cv, hired, finished work)? This field is intentionally not
  116. // comprehensive of every possible status, but instead, represents statuses
  117. // that would be used to indicate to the ML models good / bad matches.
  118. ApplicationStage stage = 11 [(google.api.field_behavior) = REQUIRED];
  119. // The application state.
  120. ApplicationState state = 13;
  121. // All interviews (screen, onsite, and so on) conducted as part of this
  122. // application (includes details such as user conducting the interview,
  123. // timestamp, feedback, and so on).
  124. repeated Interview interviews = 16;
  125. // If the candidate is referred by a employee.
  126. google.protobuf.BoolValue referral = 18;
  127. // Required. Reflects the time that the application was created.
  128. google.protobuf.Timestamp create_time = 19
  129. [(google.api.field_behavior) = REQUIRED];
  130. // The last update timestamp.
  131. google.protobuf.Timestamp update_time = 20;
  132. // Free text reason behind the recruitement outcome (for example, reason for
  133. // withdraw / reject, reason for an unsuccessful finish, and so on).
  134. //
  135. // Number of characters allowed is 100.
  136. string outcome_notes = 21;
  137. // Outcome positiveness shows how positive the outcome is.
  138. Outcome outcome = 22;
  139. // Output only. Indicates whether this job application is a match to
  140. // application related filters. This value is only applicable in profile
  141. // search response.
  142. google.protobuf.BoolValue is_match = 28
  143. [(google.api.field_behavior) = OUTPUT_ONLY];
  144. // Output only. Job title snippet shows how the job title is related to a
  145. // search query. It's empty if the job title isn't related to the search
  146. // query.
  147. string job_title_snippet = 29 [(google.api.field_behavior) = OUTPUT_ONLY];
  148. }