@activepieces/piece-greenhouse 0.0.3 → 0.0.5
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/package.json +7 -12
- package/src/index.js +13 -50
- package/src/index.d.ts +0 -2
- package/src/index.d.ts.map +0 -1
- package/src/index.js.map +0 -1
- package/src/lib/actions/create-candidate-note.d.ts +0 -8
- package/src/lib/actions/create-candidate-note.d.ts.map +0 -1
- package/src/lib/actions/create-candidate-note.js +0 -97
- package/src/lib/actions/create-candidate-note.js.map +0 -1
- package/src/lib/actions/create-candidate.d.ts +0 -14
- package/src/lib/actions/create-candidate.d.ts.map +0 -1
- package/src/lib/actions/create-candidate.js +0 -122
- package/src/lib/actions/create-candidate.js.map +0 -1
- package/src/lib/actions/create-prospect.d.ts +0 -14
- package/src/lib/actions/create-prospect.d.ts.map +0 -1
- package/src/lib/actions/create-prospect.js +0 -126
- package/src/lib/actions/create-prospect.js.map +0 -1
- package/src/lib/actions/find-candidate.d.ts +0 -4
- package/src/lib/actions/find-candidate.d.ts.map +0 -1
- package/src/lib/actions/find-candidate.js +0 -43
- package/src/lib/actions/find-candidate.js.map +0 -1
- package/src/lib/actions/find-due-scorecard.d.ts +0 -4
- package/src/lib/actions/find-due-scorecard.d.ts.map +0 -1
- package/src/lib/actions/find-due-scorecard.js +0 -59
- package/src/lib/actions/find-due-scorecard.js.map +0 -1
- package/src/lib/actions/find-or-create-candidate.d.ts +0 -14
- package/src/lib/actions/find-or-create-candidate.d.ts.map +0 -1
- package/src/lib/actions/find-or-create-candidate.js +0 -131
- package/src/lib/actions/find-or-create-candidate.js.map +0 -1
- package/src/lib/actions/update-candidate.d.ts +0 -15
- package/src/lib/actions/update-candidate.d.ts.map +0 -1
- package/src/lib/actions/update-candidate.js +0 -132
- package/src/lib/actions/update-candidate.js.map +0 -1
- package/src/lib/auth.d.ts +0 -2
- package/src/lib/auth.d.ts.map +0 -1
- package/src/lib/auth.js +0 -30
- package/src/lib/auth.js.map +0 -1
- package/src/lib/common/index.d.ts +0 -58
- package/src/lib/common/index.d.ts.map +0 -1
- package/src/lib/common/index.js +0 -44
- package/src/lib/common/index.js.map +0 -1
- package/src/lib/triggers/candidate-hired.d.ts +0 -3
- package/src/lib/triggers/candidate-hired.d.ts.map +0 -1
- package/src/lib/triggers/candidate-hired.js +0 -93
- package/src/lib/triggers/candidate-hired.js.map +0 -1
- package/src/lib/triggers/job-updated.d.ts +0 -3
- package/src/lib/triggers/job-updated.d.ts.map +0 -1
- package/src/lib/triggers/job-updated.js +0 -96
- package/src/lib/triggers/job-updated.js.map +0 -1
- package/src/lib/triggers/new-candidate-application.d.ts +0 -3
- package/src/lib/triggers/new-candidate-application.d.ts.map +0 -1
- package/src/lib/triggers/new-candidate-application.js +0 -106
- package/src/lib/triggers/new-candidate-application.js.map +0 -1
- package/src/lib/triggers/new-job-post.d.ts +0 -3
- package/src/lib/triggers/new-job-post.d.ts.map +0 -1
- package/src/lib/triggers/new-job-post.js +0 -102
- package/src/lib/triggers/new-job-post.js.map +0 -1
- package/src/lib/triggers/new-scheduled-interview.d.ts +0 -11
- package/src/lib/triggers/new-scheduled-interview.d.ts.map +0 -1
- package/src/lib/triggers/new-scheduled-interview.js +0 -102
- package/src/lib/triggers/new-scheduled-interview.js.map +0 -1
- package/src/lib/triggers/new-scorecard-due.d.ts +0 -3
- package/src/lib/triggers/new-scorecard-due.d.ts.map +0 -1
- package/src/lib/triggers/new-scorecard-due.js +0 -90
- package/src/lib/triggers/new-scorecard-due.js.map +0 -1
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare const createCandidateAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
-
first_name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
-
last_name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
-
email: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
5
|
-
email_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
6
|
-
phone: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
7
|
-
phone_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
8
|
-
company: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
9
|
-
title: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
10
|
-
linkedin_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
11
|
-
website_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
12
|
-
tags: import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
13
|
-
}>;
|
|
14
|
-
//# sourceMappingURL=create-candidate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-candidate.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-candidate.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAyHhC,CAAC"}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createCandidateAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
-
const auth_1 = require("../auth");
|
|
8
|
-
const common_1 = require("../common");
|
|
9
|
-
exports.createCandidateAction = (0, pieces_framework_1.createAction)({
|
|
10
|
-
name: 'create_candidate',
|
|
11
|
-
displayName: 'Create Candidate',
|
|
12
|
-
description: 'Creates a new candidate profile in Greenhouse.',
|
|
13
|
-
audience: 'both',
|
|
14
|
-
aiMetadata: {
|
|
15
|
-
description: 'Creates a new candidate record in Greenhouse from name plus optional contact details, current role, links, and tags. Use when adding someone to the candidate database; first and last name are required. Not idempotent — each call creates a separate candidate even with identical input, so to avoid duplicates use Find or Create Candidate when the person may already exist.',
|
|
16
|
-
idempotent: false,
|
|
17
|
-
},
|
|
18
|
-
auth: auth_1.greenhouseAuth,
|
|
19
|
-
props: {
|
|
20
|
-
first_name: pieces_framework_1.Property.ShortText({
|
|
21
|
-
displayName: 'First Name',
|
|
22
|
-
description: "The candidate's first name.",
|
|
23
|
-
required: true,
|
|
24
|
-
}),
|
|
25
|
-
last_name: pieces_framework_1.Property.ShortText({
|
|
26
|
-
displayName: 'Last Name',
|
|
27
|
-
description: "The candidate's last name.",
|
|
28
|
-
required: true,
|
|
29
|
-
}),
|
|
30
|
-
email: pieces_framework_1.Property.ShortText({
|
|
31
|
-
displayName: 'Email Address',
|
|
32
|
-
description: "The candidate's email address.",
|
|
33
|
-
required: false,
|
|
34
|
-
}),
|
|
35
|
-
email_type: pieces_framework_1.Property.StaticDropdown({
|
|
36
|
-
displayName: 'Email Type',
|
|
37
|
-
description: 'The type of email address provided.',
|
|
38
|
-
required: false,
|
|
39
|
-
defaultValue: 'personal',
|
|
40
|
-
options: {
|
|
41
|
-
options: [
|
|
42
|
-
{ label: 'Personal', value: 'personal' },
|
|
43
|
-
{ label: 'Work', value: 'work' },
|
|
44
|
-
{ label: 'Other', value: 'other' },
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
}),
|
|
48
|
-
phone: pieces_framework_1.Property.ShortText({
|
|
49
|
-
displayName: 'Phone Number',
|
|
50
|
-
description: "The candidate's phone number.",
|
|
51
|
-
required: false,
|
|
52
|
-
}),
|
|
53
|
-
phone_type: pieces_framework_1.Property.StaticDropdown({
|
|
54
|
-
displayName: 'Phone Type',
|
|
55
|
-
description: 'The type of phone number provided.',
|
|
56
|
-
required: false,
|
|
57
|
-
defaultValue: 'mobile',
|
|
58
|
-
options: {
|
|
59
|
-
options: [
|
|
60
|
-
{ label: 'Mobile', value: 'mobile' },
|
|
61
|
-
{ label: 'Home', value: 'home' },
|
|
62
|
-
{ label: 'Work', value: 'work' },
|
|
63
|
-
{ label: 'Skype', value: 'skype' },
|
|
64
|
-
{ label: 'Other', value: 'other' },
|
|
65
|
-
],
|
|
66
|
-
},
|
|
67
|
-
}),
|
|
68
|
-
company: pieces_framework_1.Property.ShortText({
|
|
69
|
-
displayName: 'Current Company',
|
|
70
|
-
description: "The candidate's current employer.",
|
|
71
|
-
required: false,
|
|
72
|
-
}),
|
|
73
|
-
title: pieces_framework_1.Property.ShortText({
|
|
74
|
-
displayName: 'Current Job Title',
|
|
75
|
-
description: "The candidate's current job title.",
|
|
76
|
-
required: false,
|
|
77
|
-
}),
|
|
78
|
-
linkedin_url: pieces_framework_1.Property.ShortText({
|
|
79
|
-
displayName: 'LinkedIn URL',
|
|
80
|
-
description: "URL to the candidate's LinkedIn profile (e.g. `https://linkedin.com/in/johndoe`).",
|
|
81
|
-
required: false,
|
|
82
|
-
}),
|
|
83
|
-
website_url: pieces_framework_1.Property.ShortText({
|
|
84
|
-
displayName: 'Website URL',
|
|
85
|
-
description: "URL to the candidate's personal website or portfolio.",
|
|
86
|
-
required: false,
|
|
87
|
-
}),
|
|
88
|
-
tags: pieces_framework_1.Property.Array({
|
|
89
|
-
displayName: 'Tags',
|
|
90
|
-
description: 'Labels to attach to this candidate (e.g. `referral`, `engineering`). Each item in the list becomes one tag.',
|
|
91
|
-
required: false,
|
|
92
|
-
}),
|
|
93
|
-
},
|
|
94
|
-
run(context) {
|
|
95
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
const { first_name, last_name, email, email_type, phone, phone_type, company, title, linkedin_url, website_url, tags, } = context.propsValue;
|
|
97
|
-
const body = { first_name, last_name };
|
|
98
|
-
if (company)
|
|
99
|
-
body['company'] = company;
|
|
100
|
-
if (title)
|
|
101
|
-
body['title'] = title;
|
|
102
|
-
if (tags && tags.length > 0)
|
|
103
|
-
body['tags'] = tags;
|
|
104
|
-
if (email)
|
|
105
|
-
body['email_addresses'] = [{ value: email, type: email_type !== null && email_type !== void 0 ? email_type : 'personal' }];
|
|
106
|
-
if (phone)
|
|
107
|
-
body['phone_numbers'] = [{ value: phone, type: phone_type !== null && phone_type !== void 0 ? phone_type : 'mobile' }];
|
|
108
|
-
if (website_url)
|
|
109
|
-
body['website_addresses'] = [{ value: website_url, type: 'personal' }];
|
|
110
|
-
if (linkedin_url)
|
|
111
|
-
body['social_media_addresses'] = [{ value: linkedin_url }];
|
|
112
|
-
const response = yield (0, common_1.greenhouseApiCall)({
|
|
113
|
-
accessToken: context.auth.access_token,
|
|
114
|
-
method: pieces_common_1.HttpMethod.POST,
|
|
115
|
-
endpoint: '/candidates',
|
|
116
|
-
body,
|
|
117
|
-
});
|
|
118
|
-
return (0, common_1.shapeCandidate)(response.body.candidate);
|
|
119
|
-
});
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
//# sourceMappingURL=create-candidate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-candidate.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-candidate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare const createProspectAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
-
first_name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
-
last_name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
-
email: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
5
|
-
email_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
6
|
-
phone: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
7
|
-
phone_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
8
|
-
company: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
9
|
-
title: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
10
|
-
linkedin_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
11
|
-
website_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
12
|
-
tags: import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
13
|
-
}>;
|
|
14
|
-
//# sourceMappingURL=create-prospect.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-prospect.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-prospect.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EA6H/B,CAAC"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createProspectAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
-
const auth_1 = require("../auth");
|
|
8
|
-
const common_1 = require("../common");
|
|
9
|
-
exports.createProspectAction = (0, pieces_framework_1.createAction)({
|
|
10
|
-
name: 'create_prospect',
|
|
11
|
-
displayName: 'Create Prospect',
|
|
12
|
-
description: 'Creates a new prospect in Greenhouse — a person who has not yet applied to a specific job.',
|
|
13
|
-
audience: 'both',
|
|
14
|
-
aiMetadata: {
|
|
15
|
-
description: 'Creates a prospect in Greenhouse — a sourced person flagged as not yet applied to a specific job — from name plus optional contact details, current role, links, and tags. Use for proactive sourcing rather than active applicants (use Create Candidate for those); first and last name are required. Not idempotent — each call creates a separate prospect even with identical input.',
|
|
16
|
-
idempotent: false,
|
|
17
|
-
},
|
|
18
|
-
auth: auth_1.greenhouseAuth,
|
|
19
|
-
props: {
|
|
20
|
-
first_name: pieces_framework_1.Property.ShortText({
|
|
21
|
-
displayName: 'First Name',
|
|
22
|
-
description: "The prospect's first name.",
|
|
23
|
-
required: true,
|
|
24
|
-
}),
|
|
25
|
-
last_name: pieces_framework_1.Property.ShortText({
|
|
26
|
-
displayName: 'Last Name',
|
|
27
|
-
description: "The prospect's last name.",
|
|
28
|
-
required: true,
|
|
29
|
-
}),
|
|
30
|
-
email: pieces_framework_1.Property.ShortText({
|
|
31
|
-
displayName: 'Email Address',
|
|
32
|
-
description: "The prospect's email address.",
|
|
33
|
-
required: false,
|
|
34
|
-
}),
|
|
35
|
-
email_type: pieces_framework_1.Property.StaticDropdown({
|
|
36
|
-
displayName: 'Email Type',
|
|
37
|
-
description: 'The type of email address provided.',
|
|
38
|
-
required: false,
|
|
39
|
-
defaultValue: 'personal',
|
|
40
|
-
options: {
|
|
41
|
-
options: [
|
|
42
|
-
{ label: 'Personal', value: 'personal' },
|
|
43
|
-
{ label: 'Work', value: 'work' },
|
|
44
|
-
{ label: 'Other', value: 'other' },
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
}),
|
|
48
|
-
phone: pieces_framework_1.Property.ShortText({
|
|
49
|
-
displayName: 'Phone Number',
|
|
50
|
-
description: "The prospect's phone number.",
|
|
51
|
-
required: false,
|
|
52
|
-
}),
|
|
53
|
-
phone_type: pieces_framework_1.Property.StaticDropdown({
|
|
54
|
-
displayName: 'Phone Type',
|
|
55
|
-
description: 'The type of phone number provided.',
|
|
56
|
-
required: false,
|
|
57
|
-
defaultValue: 'mobile',
|
|
58
|
-
options: {
|
|
59
|
-
options: [
|
|
60
|
-
{ label: 'Mobile', value: 'mobile' },
|
|
61
|
-
{ label: 'Home', value: 'home' },
|
|
62
|
-
{ label: 'Work', value: 'work' },
|
|
63
|
-
{ label: 'Skype', value: 'skype' },
|
|
64
|
-
{ label: 'Other', value: 'other' },
|
|
65
|
-
],
|
|
66
|
-
},
|
|
67
|
-
}),
|
|
68
|
-
company: pieces_framework_1.Property.ShortText({
|
|
69
|
-
displayName: 'Current Company',
|
|
70
|
-
description: "The prospect's current employer.",
|
|
71
|
-
required: false,
|
|
72
|
-
}),
|
|
73
|
-
title: pieces_framework_1.Property.ShortText({
|
|
74
|
-
displayName: 'Current Job Title',
|
|
75
|
-
description: "The prospect's current job title.",
|
|
76
|
-
required: false,
|
|
77
|
-
}),
|
|
78
|
-
linkedin_url: pieces_framework_1.Property.ShortText({
|
|
79
|
-
displayName: 'LinkedIn URL',
|
|
80
|
-
description: "URL to the prospect's LinkedIn profile (e.g. `https://linkedin.com/in/johndoe`).",
|
|
81
|
-
required: false,
|
|
82
|
-
}),
|
|
83
|
-
website_url: pieces_framework_1.Property.ShortText({
|
|
84
|
-
displayName: 'Website URL',
|
|
85
|
-
description: "URL to the prospect's personal website or portfolio.",
|
|
86
|
-
required: false,
|
|
87
|
-
}),
|
|
88
|
-
tags: pieces_framework_1.Property.Array({
|
|
89
|
-
displayName: 'Tags',
|
|
90
|
-
description: 'Labels to attach to this prospect (e.g. `referral`, `engineering`). Each item in the list becomes one tag.',
|
|
91
|
-
required: false,
|
|
92
|
-
}),
|
|
93
|
-
},
|
|
94
|
-
run(context) {
|
|
95
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
const { first_name, last_name, email, email_type, phone, phone_type, company, title, linkedin_url, website_url, tags, } = context.propsValue;
|
|
97
|
-
const body = {
|
|
98
|
-
first_name,
|
|
99
|
-
last_name,
|
|
100
|
-
application: { prospect: true },
|
|
101
|
-
};
|
|
102
|
-
if (company)
|
|
103
|
-
body['company'] = company;
|
|
104
|
-
if (title)
|
|
105
|
-
body['title'] = title;
|
|
106
|
-
if (tags && tags.length > 0)
|
|
107
|
-
body['tags'] = tags;
|
|
108
|
-
if (email)
|
|
109
|
-
body['email_addresses'] = [{ value: email, type: email_type !== null && email_type !== void 0 ? email_type : 'personal' }];
|
|
110
|
-
if (phone)
|
|
111
|
-
body['phone_numbers'] = [{ value: phone, type: phone_type !== null && phone_type !== void 0 ? phone_type : 'mobile' }];
|
|
112
|
-
if (website_url)
|
|
113
|
-
body['website_addresses'] = [{ value: website_url, type: 'personal' }];
|
|
114
|
-
if (linkedin_url)
|
|
115
|
-
body['social_media_addresses'] = [{ value: linkedin_url }];
|
|
116
|
-
const response = yield (0, common_1.greenhouseApiCall)({
|
|
117
|
-
accessToken: context.auth.access_token,
|
|
118
|
-
method: pieces_common_1.HttpMethod.POST,
|
|
119
|
-
endpoint: '/candidates',
|
|
120
|
-
body,
|
|
121
|
-
});
|
|
122
|
-
return (0, common_1.shapeCandidate)(response.body.candidate);
|
|
123
|
-
});
|
|
124
|
-
},
|
|
125
|
-
});
|
|
126
|
-
//# sourceMappingURL=create-prospect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-prospect.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-prospect.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,kCAAyC;AACzC,sCAAmF;AAEtE,QAAA,oBAAoB,GAAG,IAAA,+BAAY,EAAC;IAC/C,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,4FAA4F;IACzG,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,2XAA2X;QAC7X,UAAU,EAAE,KAAK;KAClB;IACD,IAAI,EAAE,qBAAc;IACpB,KAAK,EAAE;QACL,UAAU,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC7B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,2BAA2B;YACxC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,+BAA+B;YAC5C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,UAAU,EAAE,2BAAQ,CAAC,cAAc,CAAC;YAClC,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,qCAAqC;YAClD,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;oBACxC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;oBAChC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;iBACnC;aACF;SACF,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,UAAU,EAAE,2BAAQ,CAAC,cAAc,CAAC;YAClC,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACpC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;oBAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;oBAChC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;oBAClC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;iBACnC;aACF;SACF,CAAC;QACF,OAAO,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EAAE,kCAAkC;YAC/C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,mBAAmB;YAChC,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,YAAY,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC/B,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,kFAAkF;YAC/F,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,EAAE,2BAAQ,CAAC,KAAK,CAAC;YACnB,WAAW,EAAE,MAAM;YACnB,WAAW,EACT,4GAA4G;YAC9G,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EACJ,UAAU,EACV,SAAS,EACT,KAAK,EACL,UAAU,EACV,KAAK,EACL,UAAU,EACV,OAAO,EACP,KAAK,EACL,YAAY,EACZ,WAAW,EACX,IAAI,GACL,GAAG,OAAO,CAAC,UAAU,CAAC;YAEvB,MAAM,IAAI,GAA4B;gBACpC,UAAU;gBACV,SAAS;gBACT,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;aAChC,CAAC;YAEF,IAAI,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;YACvC,IAAI,KAAK;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YACjC,IAAI,IAAI,IAAK,IAAiB,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YAC/D,IAAI,KAAK;gBAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,UAAU,EAAE,CAAC,CAAC;YACxF,IAAI,KAAK;gBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,QAAQ,EAAE,CAAC,CAAC;YACpF,IAAI,WAAW;gBAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACxF,IAAI,YAAY;gBAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YAE7E,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAiB,EAAqC;gBAC3E,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;gBACtC,MAAM,EAAE,0BAAU,CAAC,IAAI;gBACvB,QAAQ,EAAE,aAAa;gBACvB,IAAI;aACL,CAAC,CAAC;YAEH,OAAO,IAAA,uBAAc,EAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare const findCandidateAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
-
email: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
-
}>;
|
|
4
|
-
//# sourceMappingURL=find-candidate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"find-candidate.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/find-candidate.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB;;EAoC9B,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findCandidateAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
-
const auth_1 = require("../auth");
|
|
8
|
-
const common_1 = require("../common");
|
|
9
|
-
exports.findCandidateAction = (0, pieces_framework_1.createAction)({
|
|
10
|
-
name: 'find_candidate',
|
|
11
|
-
displayName: 'Find Candidate',
|
|
12
|
-
description: 'Searches for a candidate in Greenhouse by email address. Returns the first match.',
|
|
13
|
-
audience: 'both',
|
|
14
|
-
aiMetadata: {
|
|
15
|
-
description: 'Looks up a candidate by exact email address and returns the first match, or a not-found result if none exists. Use to resolve a candidate ID or check whether someone already exists before creating them. Idempotent read-only lookup; matches only on a full email, not partial names.',
|
|
16
|
-
idempotent: true,
|
|
17
|
-
},
|
|
18
|
-
auth: auth_1.greenhouseAuth,
|
|
19
|
-
props: {
|
|
20
|
-
email: pieces_framework_1.Property.ShortText({
|
|
21
|
-
displayName: 'Email Address',
|
|
22
|
-
description: 'The email address to search for. Returns the first candidate whose profile contains this address.',
|
|
23
|
-
required: true,
|
|
24
|
-
}),
|
|
25
|
-
},
|
|
26
|
-
run(context) {
|
|
27
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
const { email } = context.propsValue;
|
|
29
|
-
const response = yield (0, common_1.greenhouseApiCall)({
|
|
30
|
-
accessToken: context.auth.access_token,
|
|
31
|
-
method: pieces_common_1.HttpMethod.GET,
|
|
32
|
-
endpoint: '/candidates',
|
|
33
|
-
queryParams: { email },
|
|
34
|
-
});
|
|
35
|
-
const candidates = Array.isArray(response.body) ? response.body : [];
|
|
36
|
-
if (candidates.length === 0) {
|
|
37
|
-
return { found: false };
|
|
38
|
-
}
|
|
39
|
-
return Object.assign({ found: true }, (0, common_1.shapeCandidate)(candidates[0]));
|
|
40
|
-
});
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
//# sourceMappingURL=find-candidate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"find-candidate.js","sourceRoot":"","sources":["../../../../src/lib/actions/find-candidate.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,kCAAyC;AACzC,sCAAmF;AAEtE,QAAA,mBAAmB,GAAG,IAAA,+BAAY,EAAC;IAC9C,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,mFAAmF;IAChG,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,0RAA0R;QAC5R,UAAU,EAAE,IAAI;KACjB;IACD,IAAI,EAAE,qBAAc;IACpB,KAAK,EAAE;QACL,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,eAAe;YAC5B,WAAW,EAAE,mGAAmG;YAChH,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAErC,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAiB,EAAwB;gBAC9D,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;gBACtC,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,EAAE,KAAK,EAAE;aACvB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAErE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC1B,CAAC;YAED,uBAAS,KAAK,EAAE,IAAI,IAAK,IAAA,uBAAc,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAG;QAC3D,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare const findDueScorecardAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
-
scorecard_id: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
-
}>;
|
|
4
|
-
//# sourceMappingURL=find-due-scorecard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"find-due-scorecard.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/find-due-scorecard.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,sBAAsB;;EAsDjC,CAAC"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findDueScorecardAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
-
const auth_1 = require("../auth");
|
|
8
|
-
const common_1 = require("../common");
|
|
9
|
-
exports.findDueScorecardAction = (0, pieces_framework_1.createAction)({
|
|
10
|
-
name: 'find_due_scorecard',
|
|
11
|
-
displayName: 'Find Due Scorecard',
|
|
12
|
-
description: 'Retrieves the full details of a scorecard by its ID. Use with the New Scorecard Due trigger to look up the scorecard that fired the flow.',
|
|
13
|
-
audience: 'both',
|
|
14
|
-
aiMetadata: {
|
|
15
|
-
description: 'Fetches the full details of a single scorecard by its numeric ID, returning null if no scorecard matches. Use to enrich a New Scorecard Due trigger event with the complete scorecard record. Idempotent read-only lookup.',
|
|
16
|
-
idempotent: true,
|
|
17
|
-
},
|
|
18
|
-
auth: auth_1.greenhouseAuth,
|
|
19
|
-
props: {
|
|
20
|
-
scorecard_id: pieces_framework_1.Property.ShortText({
|
|
21
|
-
displayName: 'Scorecard ID',
|
|
22
|
-
description: 'The numeric ID of the scorecard to retrieve. Typically mapped from a **New Scorecard Due** trigger step.',
|
|
23
|
-
required: true,
|
|
24
|
-
}),
|
|
25
|
-
},
|
|
26
|
-
run(context) {
|
|
27
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
const { scorecard_id } = context.propsValue;
|
|
29
|
-
const response = yield (0, common_1.greenhouseApiCall)({
|
|
30
|
-
accessToken: context.auth.access_token,
|
|
31
|
-
method: pieces_common_1.HttpMethod.GET,
|
|
32
|
-
endpoint: '/scorecards',
|
|
33
|
-
queryParams: { ids: scorecard_id },
|
|
34
|
-
});
|
|
35
|
-
const scorecards = Array.isArray(response.body) ? response.body : [];
|
|
36
|
-
const s = scorecards[0];
|
|
37
|
-
if (!s) {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
return {
|
|
41
|
-
id: s.id,
|
|
42
|
-
application_id: s.application_id,
|
|
43
|
-
interview_kit_id: s.interview_kit_id,
|
|
44
|
-
interviewer_id: s.interviewer_id,
|
|
45
|
-
submitter_id: s.submitter_id,
|
|
46
|
-
status: s.status,
|
|
47
|
-
candidate_rating: s.candidate_rating,
|
|
48
|
-
notes: s.notes,
|
|
49
|
-
public_notes: s.public_notes,
|
|
50
|
-
private_notes: s.private_notes,
|
|
51
|
-
interviewed_at: s.interviewed_at,
|
|
52
|
-
submitted_at: s.submitted_at,
|
|
53
|
-
created_at: s.created_at,
|
|
54
|
-
updated_at: s.updated_at,
|
|
55
|
-
};
|
|
56
|
-
});
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=find-due-scorecard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"find-due-scorecard.js","sourceRoot":"","sources":["../../../../src/lib/actions/find-due-scorecard.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,kCAAyC;AACzC,sCAA8C;AAmBjC,QAAA,sBAAsB,GAAG,IAAA,+BAAY,EAAC;IACjD,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,oBAAoB;IACjC,WAAW,EACT,2IAA2I;IAC7I,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,4NAA4N;QAC9N,UAAU,EAAE,IAAI;KACjB;IACD,IAAI,EAAE,qBAAc;IACpB,KAAK,EAAE;QACL,YAAY,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC/B,WAAW,EAAE,cAAc;YAC3B,WAAW,EACT,0GAA0G;YAC5G,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAE5C,MAAM,QAAQ,GAAG,MAAM,IAAA,0BAAiB,EAAwB;gBAC9D,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;gBACtC,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE;aACnC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;gBACpC,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;gBACpC,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,cAAc,EAAE,CAAC,CAAC,cAAc;gBAChC,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,UAAU,EAAE,CAAC,CAAC,UAAU;aACzB,CAAC;QACJ,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export declare const findOrCreateCandidateAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
-
email: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
-
first_name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
4
|
-
last_name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
5
|
-
email_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
6
|
-
phone: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
7
|
-
phone_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
8
|
-
company: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
9
|
-
title: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
10
|
-
linkedin_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
11
|
-
website_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
12
|
-
tags: import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
13
|
-
}>;
|
|
14
|
-
//# sourceMappingURL=find-or-create-candidate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"find-or-create-candidate.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/find-or-create-candidate.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,2BAA2B;;;;;;;;;;;;EAwItC,CAAC"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findOrCreateCandidateAction = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
-
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
-
const auth_1 = require("../auth");
|
|
8
|
-
const common_1 = require("../common");
|
|
9
|
-
exports.findOrCreateCandidateAction = (0, pieces_framework_1.createAction)({
|
|
10
|
-
name: 'find_or_create_candidate',
|
|
11
|
-
displayName: 'Find or Create Candidate',
|
|
12
|
-
description: 'Searches for a candidate by email address. If no match is found, creates a new candidate profile instead.',
|
|
13
|
-
audience: 'both',
|
|
14
|
-
aiMetadata: {
|
|
15
|
-
description: 'Looks up a candidate by exact email and returns the existing match if found, otherwise creates a new candidate from the supplied name and details. Prefer this over Create Candidate when the person may already exist, to avoid duplicates. Idempotent — keyed on email, so repeating with the same email returns the same candidate rather than creating another; first and last name are required for the create path.',
|
|
16
|
-
idempotent: true,
|
|
17
|
-
},
|
|
18
|
-
auth: auth_1.greenhouseAuth,
|
|
19
|
-
props: {
|
|
20
|
-
email: pieces_framework_1.Property.ShortText({
|
|
21
|
-
displayName: 'Email Address',
|
|
22
|
-
description: 'The email address to search for. If a candidate with this address already exists, they will be returned as-is.',
|
|
23
|
-
required: true,
|
|
24
|
-
}),
|
|
25
|
-
first_name: pieces_framework_1.Property.ShortText({
|
|
26
|
-
displayName: 'First Name',
|
|
27
|
-
description: 'Required when creating a new candidate. Ignored if a match is found.',
|
|
28
|
-
required: true,
|
|
29
|
-
}),
|
|
30
|
-
last_name: pieces_framework_1.Property.ShortText({
|
|
31
|
-
displayName: 'Last Name',
|
|
32
|
-
description: 'Required when creating a new candidate. Ignored if a match is found.',
|
|
33
|
-
required: true,
|
|
34
|
-
}),
|
|
35
|
-
email_type: pieces_framework_1.Property.StaticDropdown({
|
|
36
|
-
displayName: 'Email Type',
|
|
37
|
-
description: 'The type of email address. Used only when creating a new candidate.',
|
|
38
|
-
required: false,
|
|
39
|
-
defaultValue: 'personal',
|
|
40
|
-
options: {
|
|
41
|
-
options: [
|
|
42
|
-
{ label: 'Personal', value: 'personal' },
|
|
43
|
-
{ label: 'Work', value: 'work' },
|
|
44
|
-
{ label: 'Other', value: 'other' },
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
}),
|
|
48
|
-
phone: pieces_framework_1.Property.ShortText({
|
|
49
|
-
displayName: 'Phone Number',
|
|
50
|
-
description: 'Phone number to set on the new candidate. Ignored if a match is found.',
|
|
51
|
-
required: false,
|
|
52
|
-
}),
|
|
53
|
-
phone_type: pieces_framework_1.Property.StaticDropdown({
|
|
54
|
-
displayName: 'Phone Type',
|
|
55
|
-
description: 'The type of phone number. Used only when creating a new candidate.',
|
|
56
|
-
required: false,
|
|
57
|
-
defaultValue: 'mobile',
|
|
58
|
-
options: {
|
|
59
|
-
options: [
|
|
60
|
-
{ label: 'Mobile', value: 'mobile' },
|
|
61
|
-
{ label: 'Home', value: 'home' },
|
|
62
|
-
{ label: 'Work', value: 'work' },
|
|
63
|
-
{ label: 'Skype', value: 'skype' },
|
|
64
|
-
{ label: 'Other', value: 'other' },
|
|
65
|
-
],
|
|
66
|
-
},
|
|
67
|
-
}),
|
|
68
|
-
company: pieces_framework_1.Property.ShortText({
|
|
69
|
-
displayName: 'Current Company',
|
|
70
|
-
description: 'Current employer to set on the new candidate. Ignored if a match is found.',
|
|
71
|
-
required: false,
|
|
72
|
-
}),
|
|
73
|
-
title: pieces_framework_1.Property.ShortText({
|
|
74
|
-
displayName: 'Current Job Title',
|
|
75
|
-
description: 'Current job title to set on the new candidate. Ignored if a match is found.',
|
|
76
|
-
required: false,
|
|
77
|
-
}),
|
|
78
|
-
linkedin_url: pieces_framework_1.Property.ShortText({
|
|
79
|
-
displayName: 'LinkedIn URL',
|
|
80
|
-
description: "LinkedIn profile URL to set on the new candidate (e.g. `https://linkedin.com/in/johndoe`). Ignored if a match is found.",
|
|
81
|
-
required: false,
|
|
82
|
-
}),
|
|
83
|
-
website_url: pieces_framework_1.Property.ShortText({
|
|
84
|
-
displayName: 'Website URL',
|
|
85
|
-
description: 'Personal website or portfolio URL to set on the new candidate. Ignored if a match is found.',
|
|
86
|
-
required: false,
|
|
87
|
-
}),
|
|
88
|
-
tags: pieces_framework_1.Property.Array({
|
|
89
|
-
displayName: 'Tags',
|
|
90
|
-
description: 'Tags to attach to the new candidate. Ignored if a match is found.',
|
|
91
|
-
required: false,
|
|
92
|
-
}),
|
|
93
|
-
},
|
|
94
|
-
run(context) {
|
|
95
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
const { email, first_name, last_name, email_type, phone, phone_type, company, title, linkedin_url, website_url, tags, } = context.propsValue;
|
|
97
|
-
const searchResponse = yield (0, common_1.greenhouseApiCall)({
|
|
98
|
-
accessToken: context.auth.access_token,
|
|
99
|
-
method: pieces_common_1.HttpMethod.GET,
|
|
100
|
-
endpoint: '/candidates',
|
|
101
|
-
queryParams: { email },
|
|
102
|
-
});
|
|
103
|
-
const existing = Array.isArray(searchResponse.body) ? searchResponse.body : [];
|
|
104
|
-
if (existing.length > 0) {
|
|
105
|
-
return Object.assign({ created: false }, (0, common_1.shapeCandidate)(existing[0]));
|
|
106
|
-
}
|
|
107
|
-
const body = { first_name, last_name };
|
|
108
|
-
body['email_addresses'] = [{ value: email, type: email_type !== null && email_type !== void 0 ? email_type : 'personal' }];
|
|
109
|
-
if (company)
|
|
110
|
-
body['company'] = company;
|
|
111
|
-
if (title)
|
|
112
|
-
body['title'] = title;
|
|
113
|
-
if (tags && tags.length > 0)
|
|
114
|
-
body['tags'] = tags;
|
|
115
|
-
if (phone)
|
|
116
|
-
body['phone_numbers'] = [{ value: phone, type: phone_type !== null && phone_type !== void 0 ? phone_type : 'mobile' }];
|
|
117
|
-
if (website_url)
|
|
118
|
-
body['website_addresses'] = [{ value: website_url, type: 'personal' }];
|
|
119
|
-
if (linkedin_url)
|
|
120
|
-
body['social_media_addresses'] = [{ value: linkedin_url }];
|
|
121
|
-
const createResponse = yield (0, common_1.greenhouseApiCall)({
|
|
122
|
-
accessToken: context.auth.access_token,
|
|
123
|
-
method: pieces_common_1.HttpMethod.POST,
|
|
124
|
-
endpoint: '/candidates',
|
|
125
|
-
body,
|
|
126
|
-
});
|
|
127
|
-
return Object.assign({ created: true }, (0, common_1.shapeCandidate)(createResponse.body.candidate));
|
|
128
|
-
});
|
|
129
|
-
},
|
|
130
|
-
});
|
|
131
|
-
//# sourceMappingURL=find-or-create-candidate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"find-or-create-candidate.js","sourceRoot":"","sources":["../../../../src/lib/actions/find-or-create-candidate.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,kCAAyC;AACzC,sCAAmF;AAEtE,QAAA,2BAA2B,GAAG,IAAA,+BAAY,EAAC;IACtD,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE,0BAA0B;IACvC,WAAW,EACT,2GAA2G;IAC7G,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE;QACV,WAAW,EACT,2ZAA2Z;QAC7Z,UAAU,EAAE,IAAI;KACjB;IACD,IAAI,EAAE,qBAAc;IACpB,KAAK,EAAE;QACL,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,eAAe;YAC5B,WAAW,EACT,gHAAgH;YAClH,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,UAAU,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC7B,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,sEAAsE;YACnF,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,sEAAsE;YACnF,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,UAAU,EAAE,2BAAQ,CAAC,cAAc,CAAC;YAClC,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,qEAAqE;YAClF,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,UAAU;YACxB,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;oBACxC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;oBAChC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;iBACnC;aACF;SACF,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,cAAc;YAC3B,WAAW,EAAE,wEAAwE;YACrF,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,UAAU,EAAE,2BAAQ,CAAC,cAAc,CAAC;YAClC,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,oEAAoE;YACjF,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;oBACpC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;oBAChC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;oBAChC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;oBAClC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;iBACnC;aACF;SACF,CAAC;QACF,OAAO,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EAAE,4EAA4E;YACzF,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,mBAAmB;YAChC,WAAW,EAAE,6EAA6E;YAC1F,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,YAAY,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC/B,WAAW,EAAE,cAAc;YAC3B,WAAW,EACT,yHAAyH;YAC3H,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,6FAA6F;YAC1G,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,EAAE,2BAAQ,CAAC,KAAK,CAAC;YACnB,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,mEAAmE;YAChF,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,EACJ,KAAK,EACL,UAAU,EACV,SAAS,EACT,UAAU,EACV,KAAK,EACL,UAAU,EACV,OAAO,EACP,KAAK,EACL,YAAY,EACZ,WAAW,EACX,IAAI,GACL,GAAG,OAAO,CAAC,UAAU,CAAC;YAEvB,MAAM,cAAc,GAAG,MAAM,IAAA,0BAAiB,EAAwB;gBACpE,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;gBACtC,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,QAAQ,EAAE,aAAa;gBACvB,WAAW,EAAE,EAAE,KAAK,EAAE;aACvB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAE/E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,uBAAS,OAAO,EAAE,KAAK,IAAK,IAAA,uBAAc,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAG;YAC5D,CAAC;YAED,MAAM,IAAI,GAA4B,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;YAChE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,UAAU,EAAE,CAAC,CAAC;YAE7E,IAAI,OAAO;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;YACvC,IAAI,KAAK;gBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;YACjC,IAAI,IAAI,IAAK,IAAiB,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YAC/D,IAAI,KAAK;gBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,QAAQ,EAAE,CAAC,CAAC;YACpF,IAAI,WAAW;gBAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACxF,IAAI,YAAY;gBAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YAE7E,MAAM,cAAc,GAAG,MAAM,IAAA,0BAAiB,EAAqC;gBACjF,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;gBACtC,MAAM,EAAE,0BAAU,CAAC,IAAI;gBACvB,QAAQ,EAAE,aAAa;gBACvB,IAAI;aACL,CAAC,CAAC;YAEH,uBAAS,OAAO,EAAE,IAAI,IAAK,IAAA,uBAAc,EAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAG;QAC7E,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export declare const updateCandidateAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
-
candidate_id: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
3
|
-
first_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
4
|
-
last_name: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
5
|
-
email: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
6
|
-
email_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
7
|
-
phone: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
8
|
-
phone_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
9
|
-
company: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
10
|
-
title: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
11
|
-
linkedin_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
12
|
-
website_url: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
13
|
-
tags: import("@activepieces/pieces-framework").ArrayProperty<false>;
|
|
14
|
-
}>;
|
|
15
|
-
//# sourceMappingURL=update-candidate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-candidate.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/update-candidate.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;EAmIhC,CAAC"}
|