@brivioio/api-server-types 7.21.0 → 7.23.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/shortlists.types.d.ts +27 -20
- package/dist/shortlists.types.d.ts.map +1 -1
- package/dist/shortlists.types.js +4 -4
- 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
|
@@ -18,17 +18,25 @@ export declare enum EShortlistFeedbackVerdict {
|
|
|
18
18
|
BAD = "bad"
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* Lifecycle of a piece of feedback. Drafts accumulate as
|
|
22
|
-
* (
|
|
23
|
-
*
|
|
24
|
-
*
|
|
21
|
+
* Lifecycle of a piece of feedback. Drafts accumulate as a recruiter reviews
|
|
22
|
+
* (saved per-card but not yet acted on); they become `submitted` when someone
|
|
23
|
+
* clicks "Find new candidates", which consumes the team's saved feedback to
|
|
24
|
+
* drive a fresh sourcing run.
|
|
25
25
|
*/
|
|
26
26
|
export declare enum EShortlistFeedbackStatus {
|
|
27
27
|
DRAFT = "draft",
|
|
28
28
|
SUBMITTED = "submitted"
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* One teammate's verdict + note on a single shortlisted candidate. Feedback is
|
|
32
|
+
* tracked per-user so the whole team can weigh in on the same candidate and see
|
|
33
|
+
* who said what. There is at most one entry per user per candidate.
|
|
34
|
+
*/
|
|
31
35
|
export interface IShortlistFeedback {
|
|
36
|
+
/** The organization user who left this feedback. */
|
|
37
|
+
userId: string;
|
|
38
|
+
/** Their email, denormalized for display (org users have no name field). */
|
|
39
|
+
userEmail: string;
|
|
32
40
|
verdict: EShortlistFeedbackVerdict;
|
|
33
41
|
/** Free-text rationale (optional, but strongly encouraged). */
|
|
34
42
|
note: string;
|
|
@@ -38,6 +46,8 @@ export interface IShortlistFeedback {
|
|
|
38
46
|
updatedAt: string;
|
|
39
47
|
}
|
|
40
48
|
export type TShortlistFeedback = {
|
|
49
|
+
userId: string;
|
|
50
|
+
userEmail: string;
|
|
41
51
|
verdict: EShortlistFeedbackVerdict;
|
|
42
52
|
note: string;
|
|
43
53
|
status: EShortlistFeedbackStatus;
|
|
@@ -62,8 +72,13 @@ export type TFitSubScores = {
|
|
|
62
72
|
};
|
|
63
73
|
/**
|
|
64
74
|
* A curated, ranked shortlist entry for a (role, requirementVersion). This is
|
|
65
|
-
* what the frontend shortlist page reads.
|
|
66
|
-
*
|
|
75
|
+
* what the frontend shortlist page reads.
|
|
76
|
+
*
|
|
77
|
+
* The candidate's profile is NOT replicated here — the entry references the exact
|
|
78
|
+
* `candidateSearchResults` snapshot it was scored against via
|
|
79
|
+
* `candidateSearchResultId`. Identity/display fields (name, headline, etc.) are
|
|
80
|
+
* read off that referenced snapshot at serialization time. `candidateKey` is kept
|
|
81
|
+
* for dedup, "do-not-resurface" lists, and cheap identity checks without a join.
|
|
67
82
|
*/
|
|
68
83
|
export interface IShortlist {
|
|
69
84
|
_id: string;
|
|
@@ -72,14 +87,8 @@ export interface IShortlist {
|
|
|
72
87
|
requirementVersion: number;
|
|
73
88
|
sourcingRunId: string;
|
|
74
89
|
candidateKey: string;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
name: string;
|
|
78
|
-
headline: string;
|
|
79
|
-
avatarUrl: string | null;
|
|
80
|
-
location: string;
|
|
81
|
-
currentTitle: string;
|
|
82
|
-
currentCompany: string;
|
|
90
|
+
/** Reference to the immutable `candidateSearchResults` snapshot scored for this entry. */
|
|
91
|
+
candidateSearchResultId: string;
|
|
83
92
|
/** Composite fit score 0-100. */
|
|
84
93
|
fitScore: number;
|
|
85
94
|
subScores: TFitSubScores;
|
|
@@ -90,10 +99,8 @@ export interface IShortlist {
|
|
|
90
99
|
/** One short paragraph on why this candidate made the shortlist. */
|
|
91
100
|
reasoning: string;
|
|
92
101
|
source: EShortlistSource;
|
|
93
|
-
/**
|
|
94
|
-
feedback: IShortlistFeedback
|
|
95
|
-
/** Complete CrustData profile (stored verbatim). */
|
|
96
|
-
fullProfile: unknown;
|
|
102
|
+
/** Per-teammate verdict + note on this candidate; empty until anyone reviews. */
|
|
103
|
+
feedback: IShortlistFeedback[];
|
|
97
104
|
internalTags: {
|
|
98
105
|
key: string;
|
|
99
106
|
value: string;
|
|
@@ -120,7 +127,7 @@ export type TShortlistEntry = {
|
|
|
120
127
|
remarks: string[];
|
|
121
128
|
reasoning: string;
|
|
122
129
|
source: EShortlistSource;
|
|
123
|
-
feedback: TShortlistFeedback
|
|
130
|
+
feedback: TShortlistFeedback[];
|
|
124
131
|
createdAt: string;
|
|
125
132
|
};
|
|
126
133
|
export declare namespace ShortlistsAPITypes {
|
|
@@ -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,oBAAY,yBAAyB;IACnC,+DAA+D;IAC/D,SAAS,cAAc;IACvB,sBAAsB;IACtB,IAAI,SAAS;IACb,8DAA8D;IAC9D,GAAG,QAAQ;CACZ;AAED;;;;;GAKG;AACH,oBAAY,wBAAwB;IAClC,KAAK,UAAU;IACf,SAAS,cAAc;CACxB;AAED
|
|
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
|
@@ -19,10 +19,10 @@ export var EShortlistFeedbackVerdict;
|
|
|
19
19
|
EShortlistFeedbackVerdict["BAD"] = "bad";
|
|
20
20
|
})(EShortlistFeedbackVerdict || (EShortlistFeedbackVerdict = {}));
|
|
21
21
|
/**
|
|
22
|
-
* Lifecycle of a piece of feedback. Drafts accumulate as
|
|
23
|
-
* (
|
|
24
|
-
*
|
|
25
|
-
*
|
|
22
|
+
* Lifecycle of a piece of feedback. Drafts accumulate as a recruiter reviews
|
|
23
|
+
* (saved per-card but not yet acted on); they become `submitted` when someone
|
|
24
|
+
* clicks "Find new candidates", which consumes the team's saved feedback to
|
|
25
|
+
* drive a fresh sourcing run.
|
|
26
26
|
*/
|
|
27
27
|
export var EShortlistFeedbackStatus;
|
|
28
28
|
(function (EShortlistFeedbackStatus) {
|