aboutsummaryrefslogtreecommitdiff
path: root/google/cloud/talent/v4beta1/application.proto
blob: 330afe82d902301a8c61c903700dac98305b6308 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
// 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/cloud/talent/v4beta1/common.proto";
import "google/cloud/talent/v4beta1/job.proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "google/type/date.proto";
import "google/api/annotations.proto";

option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4beta1;talent";
option java_multiple_files = true;
option java_outer_classname = "ApplicationResourceProto";
option java_package = "com.google.cloud.talent.v4beta1";
option objc_class_prefix = "CTS";

// Resource that represents a job application record of a candidate.
message Application {
  // Enum that represents the application status.
  enum ApplicationState {
    // Default value.
    APPLICATION_STATE_UNSPECIFIED = 0;

    // The current stage is in progress or pending, for example, interviews in
    // progress.
    IN_PROGRESS = 1;

    // The current stage was terminated by a candidate decision.
    CANDIDATE_WITHDREW = 2;

    // The current stage was terminated by an employer or agency decision.
    EMPLOYER_WITHDREW = 3;

    // The current stage is successfully completed, but the next stage (if
    // applicable) has not begun.
    COMPLETED = 4;

    // The current stage was closed without an exception, or terminated for
    // reasons unrealated to the candidate.
    CLOSED = 5;
  }

  // The stage of the application.
  enum ApplicationStage {
    // Default value.
    APPLICATION_STAGE_UNSPECIFIED = 0;

    // Candidate has applied or a recruiter put candidate into consideration but
    // candidate is not yet screened / no decision has been made to move or not
    // move the candidate to the next stage.
    NEW = 1;

    // A recruiter decided to screen the candidate for this role.
    SCREEN = 2;

    // Candidate is being / was sent to the customer / hiring manager for
    // detailed review.
    HIRING_MANAGER_REVIEW = 3;

    // Candidate was approved by the client / hiring manager and is being / was
    // interviewed for the role.
    INTERVIEW = 4;

    // Candidate will be / has been given an offer of employment.
    OFFER_EXTENDED = 5;

    // Candidate has accepted their offer of employment.
    OFFER_ACCEPTED = 6;

    // Candidate has begun (or completed) their employment or assignment with
    // the employer.
    STARTED = 7;
  }

  // Required during application update.
  //
  // Resource name assigned to an application by the API.
  //
  // The format is
  // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}/applications/{application_id}",
  // for example,
  // "projects/api-test-project/tenants/foo/profiles/bar/applications/baz".
  string name = 1;

  // Required.
  //
  // Client side application identifier, used to uniquely identify the
  // recruiter.
  //
  // The maximum number of allowed characters is 255.
  string external_id = 31;

  // Required.
  //
  // Resource name of the candidate of this application.
  //
  // The format is
  // "projects/{project_id}/tenants/{tenant_id}/profiles/{profile_id}",
  // for example, "projects/api-test-project/tenants/foo/profiles/bar".
  string profile = 2;

  // One of either a job or a company is required.
  //
  // Resource name of the job which the candidate applied for.
  //
  // The format is
  // "projects/{project_id}/tenants/{tenant_id}/jobs/{job_id}",
  // for example, "projects/api-test-project/tenants/foo/jobs/bar".
  string job = 4;

  // One of either a job or a company is required.
  //
  // Resource name of the company which the candidate applied for.
  //
  // The format is
  // "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}",
  // for example, "projects/api-test-project/tenants/foo/companies/bar".
  string company = 5;

  // Optional.
  //
  // The application date.
  google.type.Date application_date = 7;

  // Required.
  //
  // What is the most recent stage of the application (that is, new, screen,
  // send cv, hired, finished work)?  This field is intentionally not
  // comprehensive of every possible status, but instead, represents statuses
  // that would be used to indicate to the ML models good / bad matches.
  ApplicationStage stage = 11;

  // Optional.
  //
  // The application state.
  ApplicationState state = 13;

  // Optional.
  //
  // All interviews (screen, onsite, and so on) conducted as part of this
  // application (includes details such as user conducting the interview,
  // timestamp, feedback, and so on).
  repeated Interview interviews = 16;

  // Optional.
  //
  // If the candidate is referred by a employee.
  google.protobuf.BoolValue referral = 18;

  // Required.
  //
  // Reflects the time that the application was created.
  google.protobuf.Timestamp create_time = 19;

  // Optional.
  //
  // The last update timestamp.
  google.protobuf.Timestamp update_time = 20;

  // Optional.
  //
  // Free text reason behind the recruitement outcome (for example, reason for
  // withdraw / reject, reason for an unsuccessful finish, and so on).
  //
  // Number of characters allowed is 100.
  string outcome_notes = 21;

  // Optional.
  //
  // Outcome positiveness shows how positive the outcome is.
  Outcome outcome = 22;

  // Output only. Indicates whether this job application is a match to
  // application related filters. This value is only applicable in profile
  // search response.
  google.protobuf.BoolValue is_match = 28;

  // Output only. Job title snippet shows how the job title is related to a
  // search query. It's empty if the job title isn't related to the search
  // query.
  string job_title_snippet = 29;
}