@brivioio/api-server-types 7.20.0 → 7.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/candidateContacts.types.d.ts +45 -0
- package/dist/candidateContacts.types.d.ts.map +1 -0
- package/dist/candidateContacts.types.js +18 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/jobRoleChatHistory.types.d.ts +22 -2
- package/dist/jobRoleChatHistory.types.d.ts.map +1 -1
- package/dist/jobRoleChatHistory.types.js +2 -0
- package/dist/shortlists.types.d.ts +64 -12
- package/dist/shortlists.types.d.ts.map +1 -1
- package/dist/shortlists.types.js +24 -0
- package/dist/sourcingRuns.types.d.ts +3 -1
- package/dist/sourcingRuns.types.d.ts.map +1 -1
- package/dist/sourcingRuns.types.js +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Where a contact point came from, so stale/low-trust sources can be reconciled later. */
|
|
2
|
+
export declare enum ECandidateContactSource {
|
|
3
|
+
CRUSTDATA = "crustdata",
|
|
4
|
+
MANUAL = "manual"
|
|
5
|
+
}
|
|
6
|
+
export declare enum ECandidateEmailType {
|
|
7
|
+
PERSONAL = "personal",
|
|
8
|
+
WORK = "work",
|
|
9
|
+
UNKNOWN = "unknown"
|
|
10
|
+
}
|
|
11
|
+
export declare enum ECandidatePhoneType {
|
|
12
|
+
MOBILE = "mobile",
|
|
13
|
+
WORK = "work",
|
|
14
|
+
UNKNOWN = "unknown"
|
|
15
|
+
}
|
|
16
|
+
export interface ICandidateEmail {
|
|
17
|
+
value: string;
|
|
18
|
+
type: ECandidateEmailType;
|
|
19
|
+
source: ECandidateContactSource;
|
|
20
|
+
}
|
|
21
|
+
export interface ICandidatePhone {
|
|
22
|
+
value: string;
|
|
23
|
+
type: ECandidatePhoneType;
|
|
24
|
+
source: ECandidateContactSource;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Contact details (emails / phone numbers) for a candidate, keyed by their
|
|
28
|
+
* normalized LinkedIn handle (`candidateKey` — the same identity used across the
|
|
29
|
+
* sourcing pipeline). One document per candidate: contact points are merged in
|
|
30
|
+
* over time rather than re-inserted, since unlike profile snapshots there's no
|
|
31
|
+
* value in keeping a history of every fetch. The candidate's profile lives in
|
|
32
|
+
* `candidateSearchResults`; this collection is intentionally separate so contact
|
|
33
|
+
* data (often enriched on a different cadence) isn't duplicated per snapshot.
|
|
34
|
+
*/
|
|
35
|
+
export interface ICandidateContact {
|
|
36
|
+
_id: string;
|
|
37
|
+
/** Normalized LinkedIn handle (e.g. "in/foo-bar") — the candidate identity. */
|
|
38
|
+
candidateKey: string;
|
|
39
|
+
emails: ICandidateEmail[];
|
|
40
|
+
phones: ICandidatePhone[];
|
|
41
|
+
isDeleted: boolean;
|
|
42
|
+
createdAt: string;
|
|
43
|
+
updatedAt: string;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=candidateContacts.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candidateContacts.types.d.ts","sourceRoot":"","sources":["../src/candidateContacts.types.ts"],"names":[],"mappings":"AACA,2FAA2F;AAC3F,oBAAY,uBAAuB;IACjC,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Where a contact point came from, so stale/low-trust sources can be reconciled later. */
|
|
2
|
+
export var ECandidateContactSource;
|
|
3
|
+
(function (ECandidateContactSource) {
|
|
4
|
+
ECandidateContactSource["CRUSTDATA"] = "crustdata";
|
|
5
|
+
ECandidateContactSource["MANUAL"] = "manual";
|
|
6
|
+
})(ECandidateContactSource || (ECandidateContactSource = {}));
|
|
7
|
+
export var ECandidateEmailType;
|
|
8
|
+
(function (ECandidateEmailType) {
|
|
9
|
+
ECandidateEmailType["PERSONAL"] = "personal";
|
|
10
|
+
ECandidateEmailType["WORK"] = "work";
|
|
11
|
+
ECandidateEmailType["UNKNOWN"] = "unknown";
|
|
12
|
+
})(ECandidateEmailType || (ECandidateEmailType = {}));
|
|
13
|
+
export var ECandidatePhoneType;
|
|
14
|
+
(function (ECandidatePhoneType) {
|
|
15
|
+
ECandidatePhoneType["MOBILE"] = "mobile";
|
|
16
|
+
ECandidatePhoneType["WORK"] = "work";
|
|
17
|
+
ECandidatePhoneType["UNKNOWN"] = "unknown";
|
|
18
|
+
})(ECandidatePhoneType || (ECandidatePhoneType = {}));
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,9 @@ export declare enum EJobRoleChatMessageType {
|
|
|
6
6
|
PLAIN_TEXT = "plain_text",
|
|
7
7
|
SINGLE_CHOICE = "single_choice",
|
|
8
8
|
MULTI_CHOICE = "multi_choice",
|
|
9
|
-
CANDIDATE_REVIEW = "candidate_review"
|
|
9
|
+
CANDIDATE_REVIEW = "candidate_review",
|
|
10
|
+
/** Recruiter submitted their per-candidate feedback on the shortlist. */
|
|
11
|
+
SHORTLIST_FEEDBACK = "shortlist_feedback"
|
|
10
12
|
}
|
|
11
13
|
export type TAgentSingleChoicePayload = {
|
|
12
14
|
type: EJobRoleChatMessageType.SINGLE_CHOICE;
|
|
@@ -67,7 +69,25 @@ export type TUserCandidateReviewResponse = {
|
|
|
67
69
|
note?: string;
|
|
68
70
|
}[];
|
|
69
71
|
};
|
|
70
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Submitted by the recruiter from the shortlist page when they click "Submit
|
|
74
|
+
* feedback & find new candidates". The verdicts + notes themselves live on the
|
|
75
|
+
* `shortlists` documents (persisted as drafts while reviewing); this payload is
|
|
76
|
+
* the chat-side record of the submission that triggers the agent to digest the
|
|
77
|
+
* feedback, refine requirements, and kick off a fresh sourcing run. The verdict
|
|
78
|
+
* string mirrors `EShortlistFeedbackVerdict`.
|
|
79
|
+
*/
|
|
80
|
+
export type TUserShortlistFeedbackResponse = {
|
|
81
|
+
type: EJobRoleChatMessageType.SHORTLIST_FEEDBACK;
|
|
82
|
+
items: {
|
|
83
|
+
/** `_id` of the `shortlists` document. */
|
|
84
|
+
shortlistEntryId: string;
|
|
85
|
+
candidateName: string;
|
|
86
|
+
verdict: 'excellent' | 'good' | 'bad';
|
|
87
|
+
note?: string;
|
|
88
|
+
}[];
|
|
89
|
+
};
|
|
90
|
+
export type TUserResponsePayload = TUserSingleChoiceResponse | TUserMultiChoiceResponse | TUserCandidateReviewResponse | TUserShortlistFeedbackResponse;
|
|
71
91
|
export type TChatAttachment = {
|
|
72
92
|
id: string;
|
|
73
93
|
filename: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobRoleChatHistory.types.d.ts","sourceRoot":"","sources":["../src/jobRoleChatHistory.types.ts"],"names":[],"mappings":"AACA,oBAAY,sBAAsB;IAChC,iBAAiB,qBAAqB;IACtC,KAAK,UAAU;CAChB;AAED,oBAAY,uBAAuB;IACjC,UAAU,eAAe;IACzB,aAAa,kBAAkB;IAC/B,YAAY,iBAAiB;IAC7B,gBAAgB,qBAAqB;
|
|
1
|
+
{"version":3,"file":"jobRoleChatHistory.types.d.ts","sourceRoot":"","sources":["../src/jobRoleChatHistory.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,4 +9,6 @@ export var EJobRoleChatMessageType;
|
|
|
9
9
|
EJobRoleChatMessageType["SINGLE_CHOICE"] = "single_choice";
|
|
10
10
|
EJobRoleChatMessageType["MULTI_CHOICE"] = "multi_choice";
|
|
11
11
|
EJobRoleChatMessageType["CANDIDATE_REVIEW"] = "candidate_review";
|
|
12
|
+
/** Recruiter submitted their per-candidate feedback on the shortlist. */
|
|
13
|
+
EJobRoleChatMessageType["SHORTLIST_FEEDBACK"] = "shortlist_feedback";
|
|
12
14
|
})(EJobRoleChatMessageType || (EJobRoleChatMessageType = {}));
|
|
@@ -5,6 +5,45 @@ export declare enum EShortlistSource {
|
|
|
5
5
|
/** Force-included because the recruiter shortlisted them during calibration. */
|
|
6
6
|
CALIBRATION = "calibration_shortlist"
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* The recruiter's verdict on a shortlisted candidate. Captured per-candidate on
|
|
10
|
+
* the shortlist page and fed back to the agent to refine the next sourcing run.
|
|
11
|
+
*/
|
|
12
|
+
export declare enum EShortlistFeedbackVerdict {
|
|
13
|
+
/** Spot on — exactly the kind of candidate we want more of. */
|
|
14
|
+
EXCELLENT = "excellent",
|
|
15
|
+
/** Reasonable fit. */
|
|
16
|
+
GOOD = "good",
|
|
17
|
+
/** Off the mark — steer the search away from this profile. */
|
|
18
|
+
BAD = "bad"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Lifecycle of a piece of feedback. Drafts accumulate as the recruiter reviews
|
|
22
|
+
* (GitHub-style "pending review"); they only become `submitted` when the
|
|
23
|
+
* recruiter clicks "Submit feedback & find new candidates", which is what kicks
|
|
24
|
+
* off a feedback-driven re-source.
|
|
25
|
+
*/
|
|
26
|
+
export declare enum EShortlistFeedbackStatus {
|
|
27
|
+
DRAFT = "draft",
|
|
28
|
+
SUBMITTED = "submitted"
|
|
29
|
+
}
|
|
30
|
+
/** A recruiter's verdict + note on a single shortlisted candidate. */
|
|
31
|
+
export interface IShortlistFeedback {
|
|
32
|
+
verdict: EShortlistFeedbackVerdict;
|
|
33
|
+
/** Free-text rationale (optional, but strongly encouraged). */
|
|
34
|
+
note: string;
|
|
35
|
+
status: EShortlistFeedbackStatus;
|
|
36
|
+
/** Set when the feedback transitions to `submitted`; null while a draft. */
|
|
37
|
+
submittedAt: Date | null;
|
|
38
|
+
updatedAt: string;
|
|
39
|
+
}
|
|
40
|
+
export type TShortlistFeedback = {
|
|
41
|
+
verdict: EShortlistFeedbackVerdict;
|
|
42
|
+
note: string;
|
|
43
|
+
status: EShortlistFeedbackStatus;
|
|
44
|
+
submittedAt: string | null;
|
|
45
|
+
updatedAt: string;
|
|
46
|
+
};
|
|
8
47
|
/**
|
|
9
48
|
* Per-axis fit breakdown (each 0-100). Drives the composite `fitScore` and gives
|
|
10
49
|
* the recruiter an explainable "why this rank".
|
|
@@ -23,8 +62,13 @@ export type TFitSubScores = {
|
|
|
23
62
|
};
|
|
24
63
|
/**
|
|
25
64
|
* A curated, ranked shortlist entry for a (role, requirementVersion). This is
|
|
26
|
-
* what the frontend shortlist page reads.
|
|
27
|
-
*
|
|
65
|
+
* what the frontend shortlist page reads.
|
|
66
|
+
*
|
|
67
|
+
* The candidate's profile is NOT replicated here — the entry references the exact
|
|
68
|
+
* `candidateSearchResults` snapshot it was scored against via
|
|
69
|
+
* `candidateSearchResultId`. Identity/display fields (name, headline, etc.) are
|
|
70
|
+
* read off that referenced snapshot at serialization time. `candidateKey` is kept
|
|
71
|
+
* for dedup, "do-not-resurface" lists, and cheap identity checks without a join.
|
|
28
72
|
*/
|
|
29
73
|
export interface IShortlist {
|
|
30
74
|
_id: string;
|
|
@@ -33,14 +77,8 @@ export interface IShortlist {
|
|
|
33
77
|
requirementVersion: number;
|
|
34
78
|
sourcingRunId: string;
|
|
35
79
|
candidateKey: string;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
name: string;
|
|
39
|
-
headline: string;
|
|
40
|
-
avatarUrl: string | null;
|
|
41
|
-
location: string;
|
|
42
|
-
currentTitle: string;
|
|
43
|
-
currentCompany: string;
|
|
80
|
+
/** Reference to the immutable `candidateSearchResults` snapshot scored for this entry. */
|
|
81
|
+
candidateSearchResultId: string;
|
|
44
82
|
/** Composite fit score 0-100. */
|
|
45
83
|
fitScore: number;
|
|
46
84
|
subScores: TFitSubScores;
|
|
@@ -51,8 +89,8 @@ export interface IShortlist {
|
|
|
51
89
|
/** One short paragraph on why this candidate made the shortlist. */
|
|
52
90
|
reasoning: string;
|
|
53
91
|
source: EShortlistSource;
|
|
54
|
-
/**
|
|
55
|
-
|
|
92
|
+
/** The recruiter's verdict + note on this candidate; null until they review. */
|
|
93
|
+
feedback: IShortlistFeedback | null;
|
|
56
94
|
internalTags: {
|
|
57
95
|
key: string;
|
|
58
96
|
value: string;
|
|
@@ -79,6 +117,7 @@ export type TShortlistEntry = {
|
|
|
79
117
|
remarks: string[];
|
|
80
118
|
reasoning: string;
|
|
81
119
|
source: EShortlistSource;
|
|
120
|
+
feedback: TShortlistFeedback | null;
|
|
82
121
|
createdAt: string;
|
|
83
122
|
};
|
|
84
123
|
export declare namespace ShortlistsAPITypes {
|
|
@@ -87,6 +126,19 @@ export declare namespace ShortlistsAPITypes {
|
|
|
87
126
|
requirementVersion: number | null;
|
|
88
127
|
/** True when a newer requirement version exists than the one this shortlist was sourced from. */
|
|
89
128
|
stale: boolean;
|
|
129
|
+
/** How many candidates have draft (un-submitted) feedback awaiting a re-source. */
|
|
130
|
+
draftFeedbackCount: number;
|
|
131
|
+
} | null>;
|
|
132
|
+
/** Body for upserting a draft verdict + note on one shortlist candidate. */
|
|
133
|
+
type TUpsertFeedbackBody = {
|
|
134
|
+
verdict: EShortlistFeedbackVerdict;
|
|
135
|
+
note?: string;
|
|
136
|
+
};
|
|
137
|
+
type TUpsertFeedbackResponse = IResponse<{
|
|
138
|
+
entry: TShortlistEntry;
|
|
139
|
+
} | null>;
|
|
140
|
+
type TDeleteFeedbackResponse = IResponse<{
|
|
141
|
+
entry: TShortlistEntry;
|
|
90
142
|
} | null>;
|
|
91
143
|
}
|
|
92
144
|
//# sourceMappingURL=shortlists.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shortlists.types.d.ts","sourceRoot":"","sources":["../src/shortlists.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,oBAAY,gBAAgB;IAC1B,8DAA8D;IAC9D,MAAM,WAAW;IACjB,gFAAgF;IAChF,WAAW,0BAA0B;CACtC;AAED;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"shortlists.types.d.ts","sourceRoot":"","sources":["../src/shortlists.types.ts"],"names":[],"mappings":"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"}
|
package/dist/shortlists.types.js
CHANGED
|
@@ -5,3 +5,27 @@ export var EShortlistSource;
|
|
|
5
5
|
/** Force-included because the recruiter shortlisted them during calibration. */
|
|
6
6
|
EShortlistSource["CALIBRATION"] = "calibration_shortlist";
|
|
7
7
|
})(EShortlistSource || (EShortlistSource = {}));
|
|
8
|
+
/**
|
|
9
|
+
* The recruiter's verdict on a shortlisted candidate. Captured per-candidate on
|
|
10
|
+
* the shortlist page and fed back to the agent to refine the next sourcing run.
|
|
11
|
+
*/
|
|
12
|
+
export var EShortlistFeedbackVerdict;
|
|
13
|
+
(function (EShortlistFeedbackVerdict) {
|
|
14
|
+
/** Spot on — exactly the kind of candidate we want more of. */
|
|
15
|
+
EShortlistFeedbackVerdict["EXCELLENT"] = "excellent";
|
|
16
|
+
/** Reasonable fit. */
|
|
17
|
+
EShortlistFeedbackVerdict["GOOD"] = "good";
|
|
18
|
+
/** Off the mark — steer the search away from this profile. */
|
|
19
|
+
EShortlistFeedbackVerdict["BAD"] = "bad";
|
|
20
|
+
})(EShortlistFeedbackVerdict || (EShortlistFeedbackVerdict = {}));
|
|
21
|
+
/**
|
|
22
|
+
* Lifecycle of a piece of feedback. Drafts accumulate as the recruiter reviews
|
|
23
|
+
* (GitHub-style "pending review"); they only become `submitted` when the
|
|
24
|
+
* recruiter clicks "Submit feedback & find new candidates", which is what kicks
|
|
25
|
+
* off a feedback-driven re-source.
|
|
26
|
+
*/
|
|
27
|
+
export var EShortlistFeedbackStatus;
|
|
28
|
+
(function (EShortlistFeedbackStatus) {
|
|
29
|
+
EShortlistFeedbackStatus["DRAFT"] = "draft";
|
|
30
|
+
EShortlistFeedbackStatus["SUBMITTED"] = "submitted";
|
|
31
|
+
})(EShortlistFeedbackStatus || (EShortlistFeedbackStatus = {}));
|
|
@@ -12,7 +12,9 @@ export declare enum ESourcingRunStatus {
|
|
|
12
12
|
*/
|
|
13
13
|
export declare enum ESourcingRunTrigger {
|
|
14
14
|
CLOSEOUT = "closeout",
|
|
15
|
-
MANUAL = "manual"
|
|
15
|
+
MANUAL = "manual",
|
|
16
|
+
/** Re-source kicked off after the recruiter submitted shortlist feedback. */
|
|
17
|
+
FEEDBACK = "feedback"
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* One search the agent ran during the round. Searches are sequential and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourcingRuns.types.d.ts","sourceRoot":"","sources":["../src/sourcingRuns.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED;;;;GAIG;AACH,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,MAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"sourcingRuns.types.d.ts","sourceRoot":"","sources":["../src/sourcingRuns.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED;;;;GAIG;AACH,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,6EAA6E;IAC7E,QAAQ,aAAa;CACtB;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,EAAE,oBAAoB,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,6EAA6E;IAC7E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,yBAAiB,oBAAoB,CAAC;IACpC,KAAY,yBAAyB,GAAG,SAAS,CAAC;QAChD,IAAI,EAAE,kBAAkB,EAAE,CAAC;QAC3B,oFAAoF;QACpF,cAAc,EAAE,OAAO,CAAC;QACxB,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;KACzC,GAAG,IAAI,CAAC,CAAC;IAEV,KAAY,2BAA2B,GAAG,SAAS,CAAC;QAClD,GAAG,EAAE,kBAAkB,CAAC;KACzB,GAAG,IAAI,CAAC,CAAC;CACX"}
|
|
@@ -14,4 +14,6 @@ export var ESourcingRunTrigger;
|
|
|
14
14
|
(function (ESourcingRunTrigger) {
|
|
15
15
|
ESourcingRunTrigger["CLOSEOUT"] = "closeout";
|
|
16
16
|
ESourcingRunTrigger["MANUAL"] = "manual";
|
|
17
|
+
/** Re-source kicked off after the recruiter submitted shortlist feedback. */
|
|
18
|
+
ESourcingRunTrigger["FEEDBACK"] = "feedback";
|
|
17
19
|
})(ESourcingRunTrigger || (ESourcingRunTrigger = {}));
|