@activepieces/piece-greenhouse 0.0.1

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.
Files changed (65) hide show
  1. package/package.json +17 -0
  2. package/src/index.d.ts +2 -0
  3. package/src/index.d.ts.map +1 -0
  4. package/src/index.js +50 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/actions/create-candidate-note.d.ts +8 -0
  7. package/src/lib/actions/create-candidate-note.d.ts.map +1 -0
  8. package/src/lib/actions/create-candidate-note.js +92 -0
  9. package/src/lib/actions/create-candidate-note.js.map +1 -0
  10. package/src/lib/actions/create-candidate.d.ts +14 -0
  11. package/src/lib/actions/create-candidate.d.ts.map +1 -0
  12. package/src/lib/actions/create-candidate.js +117 -0
  13. package/src/lib/actions/create-candidate.js.map +1 -0
  14. package/src/lib/actions/create-prospect.d.ts +14 -0
  15. package/src/lib/actions/create-prospect.d.ts.map +1 -0
  16. package/src/lib/actions/create-prospect.js +121 -0
  17. package/src/lib/actions/create-prospect.js.map +1 -0
  18. package/src/lib/actions/find-candidate.d.ts +4 -0
  19. package/src/lib/actions/find-candidate.d.ts.map +1 -0
  20. package/src/lib/actions/find-candidate.js +38 -0
  21. package/src/lib/actions/find-candidate.js.map +1 -0
  22. package/src/lib/actions/find-due-scorecard.d.ts +4 -0
  23. package/src/lib/actions/find-due-scorecard.d.ts.map +1 -0
  24. package/src/lib/actions/find-due-scorecard.js +54 -0
  25. package/src/lib/actions/find-due-scorecard.js.map +1 -0
  26. package/src/lib/actions/find-or-create-candidate.d.ts +14 -0
  27. package/src/lib/actions/find-or-create-candidate.d.ts.map +1 -0
  28. package/src/lib/actions/find-or-create-candidate.js +126 -0
  29. package/src/lib/actions/find-or-create-candidate.js.map +1 -0
  30. package/src/lib/actions/update-candidate.d.ts +15 -0
  31. package/src/lib/actions/update-candidate.d.ts.map +1 -0
  32. package/src/lib/actions/update-candidate.js +127 -0
  33. package/src/lib/actions/update-candidate.js.map +1 -0
  34. package/src/lib/auth.d.ts +2 -0
  35. package/src/lib/auth.d.ts.map +1 -0
  36. package/src/lib/auth.js +30 -0
  37. package/src/lib/auth.js.map +1 -0
  38. package/src/lib/common/index.d.ts +58 -0
  39. package/src/lib/common/index.d.ts.map +1 -0
  40. package/src/lib/common/index.js +44 -0
  41. package/src/lib/common/index.js.map +1 -0
  42. package/src/lib/triggers/candidate-hired.d.ts +3 -0
  43. package/src/lib/triggers/candidate-hired.d.ts.map +1 -0
  44. package/src/lib/triggers/candidate-hired.js +90 -0
  45. package/src/lib/triggers/candidate-hired.js.map +1 -0
  46. package/src/lib/triggers/job-updated.d.ts +3 -0
  47. package/src/lib/triggers/job-updated.d.ts.map +1 -0
  48. package/src/lib/triggers/job-updated.js +93 -0
  49. package/src/lib/triggers/job-updated.js.map +1 -0
  50. package/src/lib/triggers/new-candidate-application.d.ts +3 -0
  51. package/src/lib/triggers/new-candidate-application.d.ts.map +1 -0
  52. package/src/lib/triggers/new-candidate-application.js +103 -0
  53. package/src/lib/triggers/new-candidate-application.js.map +1 -0
  54. package/src/lib/triggers/new-job-post.d.ts +3 -0
  55. package/src/lib/triggers/new-job-post.d.ts.map +1 -0
  56. package/src/lib/triggers/new-job-post.js +99 -0
  57. package/src/lib/triggers/new-job-post.js.map +1 -0
  58. package/src/lib/triggers/new-scheduled-interview.d.ts +11 -0
  59. package/src/lib/triggers/new-scheduled-interview.d.ts.map +1 -0
  60. package/src/lib/triggers/new-scheduled-interview.js +99 -0
  61. package/src/lib/triggers/new-scheduled-interview.js.map +1 -0
  62. package/src/lib/triggers/new-scorecard-due.d.ts +3 -0
  63. package/src/lib/triggers/new-scorecard-due.d.ts.map +1 -0
  64. package/src/lib/triggers/new-scorecard-due.js +87 -0
  65. package/src/lib/triggers/new-scorecard-due.js.map +1 -0
@@ -0,0 +1,126 @@
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
+ auth: auth_1.greenhouseAuth,
14
+ props: {
15
+ email: pieces_framework_1.Property.ShortText({
16
+ displayName: 'Email Address',
17
+ description: 'The email address to search for. If a candidate with this address already exists, they will be returned as-is.',
18
+ required: true,
19
+ }),
20
+ first_name: pieces_framework_1.Property.ShortText({
21
+ displayName: 'First Name',
22
+ description: 'Required when creating a new candidate. Ignored if a match is found.',
23
+ required: true,
24
+ }),
25
+ last_name: pieces_framework_1.Property.ShortText({
26
+ displayName: 'Last Name',
27
+ description: 'Required when creating a new candidate. Ignored if a match is found.',
28
+ required: true,
29
+ }),
30
+ email_type: pieces_framework_1.Property.StaticDropdown({
31
+ displayName: 'Email Type',
32
+ description: 'The type of email address. Used only when creating a new candidate.',
33
+ required: false,
34
+ defaultValue: 'personal',
35
+ options: {
36
+ options: [
37
+ { label: 'Personal', value: 'personal' },
38
+ { label: 'Work', value: 'work' },
39
+ { label: 'Other', value: 'other' },
40
+ ],
41
+ },
42
+ }),
43
+ phone: pieces_framework_1.Property.ShortText({
44
+ displayName: 'Phone Number',
45
+ description: 'Phone number to set on the new candidate. Ignored if a match is found.',
46
+ required: false,
47
+ }),
48
+ phone_type: pieces_framework_1.Property.StaticDropdown({
49
+ displayName: 'Phone Type',
50
+ description: 'The type of phone number. Used only when creating a new candidate.',
51
+ required: false,
52
+ defaultValue: 'mobile',
53
+ options: {
54
+ options: [
55
+ { label: 'Mobile', value: 'mobile' },
56
+ { label: 'Home', value: 'home' },
57
+ { label: 'Work', value: 'work' },
58
+ { label: 'Skype', value: 'skype' },
59
+ { label: 'Other', value: 'other' },
60
+ ],
61
+ },
62
+ }),
63
+ company: pieces_framework_1.Property.ShortText({
64
+ displayName: 'Current Company',
65
+ description: 'Current employer to set on the new candidate. Ignored if a match is found.',
66
+ required: false,
67
+ }),
68
+ title: pieces_framework_1.Property.ShortText({
69
+ displayName: 'Current Job Title',
70
+ description: 'Current job title to set on the new candidate. Ignored if a match is found.',
71
+ required: false,
72
+ }),
73
+ linkedin_url: pieces_framework_1.Property.ShortText({
74
+ displayName: 'LinkedIn URL',
75
+ description: "LinkedIn profile URL to set on the new candidate (e.g. `https://linkedin.com/in/johndoe`). Ignored if a match is found.",
76
+ required: false,
77
+ }),
78
+ website_url: pieces_framework_1.Property.ShortText({
79
+ displayName: 'Website URL',
80
+ description: 'Personal website or portfolio URL to set on the new candidate. Ignored if a match is found.',
81
+ required: false,
82
+ }),
83
+ tags: pieces_framework_1.Property.Array({
84
+ displayName: 'Tags',
85
+ description: 'Tags to attach to the new candidate. Ignored if a match is found.',
86
+ required: false,
87
+ }),
88
+ },
89
+ run(context) {
90
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
91
+ const { email, first_name, last_name, email_type, phone, phone_type, company, title, linkedin_url, website_url, tags, } = context.propsValue;
92
+ const searchResponse = yield (0, common_1.greenhouseApiCall)({
93
+ accessToken: context.auth.access_token,
94
+ method: pieces_common_1.HttpMethod.GET,
95
+ endpoint: '/candidates',
96
+ queryParams: { email },
97
+ });
98
+ const existing = Array.isArray(searchResponse.body) ? searchResponse.body : [];
99
+ if (existing.length > 0) {
100
+ return Object.assign({ created: false }, (0, common_1.shapeCandidate)(existing[0]));
101
+ }
102
+ const body = { first_name, last_name };
103
+ body['email_addresses'] = [{ value: email, type: email_type !== null && email_type !== void 0 ? email_type : 'personal' }];
104
+ if (company)
105
+ body['company'] = company;
106
+ if (title)
107
+ body['title'] = title;
108
+ if (tags && tags.length > 0)
109
+ body['tags'] = tags;
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 createResponse = 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 Object.assign({ created: true }, (0, common_1.shapeCandidate)(createResponse.body.candidate));
123
+ });
124
+ },
125
+ });
126
+ //# sourceMappingURL=find-or-create-candidate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find-or-create-candidate.js","sourceRoot":"","sources":["../../../../src/lib/actions/find-or-create-candidate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-candidate.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/update-candidate.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;EA6HhC,CAAC"}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateCandidateAction = 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.updateCandidateAction = (0, pieces_framework_1.createAction)({
10
+ name: 'update_candidate',
11
+ displayName: 'Update Candidate',
12
+ description: 'Updates an existing candidate profile in Greenhouse. Only fields you provide will be changed.',
13
+ auth: auth_1.greenhouseAuth,
14
+ props: {
15
+ candidate_id: pieces_framework_1.Property.ShortText({
16
+ displayName: 'Candidate ID',
17
+ description: 'The numeric ID of the candidate to update. Found in the candidate URL in Greenhouse ' +
18
+ '(e.g. `https://app.greenhouse.io/people/**123456**`), or mapped from a previous **Create Candidate** step.',
19
+ required: true,
20
+ }),
21
+ first_name: pieces_framework_1.Property.ShortText({
22
+ displayName: 'First Name',
23
+ description: "Updated first name for the candidate.",
24
+ required: false,
25
+ }),
26
+ last_name: pieces_framework_1.Property.ShortText({
27
+ displayName: 'Last Name',
28
+ description: "Updated last name for the candidate.",
29
+ required: false,
30
+ }),
31
+ email: pieces_framework_1.Property.ShortText({
32
+ displayName: 'Email Address',
33
+ description: "Updated email address. This replaces the candidate's primary email.",
34
+ required: false,
35
+ }),
36
+ email_type: pieces_framework_1.Property.StaticDropdown({
37
+ displayName: 'Email Type',
38
+ description: 'The type of the updated email address.',
39
+ required: false,
40
+ defaultValue: 'personal',
41
+ options: {
42
+ options: [
43
+ { label: 'Personal', value: 'personal' },
44
+ { label: 'Work', value: 'work' },
45
+ { label: 'Other', value: 'other' },
46
+ ],
47
+ },
48
+ }),
49
+ phone: pieces_framework_1.Property.ShortText({
50
+ displayName: 'Phone Number',
51
+ description: "Updated phone number. This replaces the candidate's primary phone.",
52
+ required: false,
53
+ }),
54
+ phone_type: pieces_framework_1.Property.StaticDropdown({
55
+ displayName: 'Phone Type',
56
+ description: 'The type of the updated phone number.',
57
+ required: false,
58
+ defaultValue: 'mobile',
59
+ options: {
60
+ options: [
61
+ { label: 'Mobile', value: 'mobile' },
62
+ { label: 'Home', value: 'home' },
63
+ { label: 'Work', value: 'work' },
64
+ { label: 'Skype', value: 'skype' },
65
+ { label: 'Other', value: 'other' },
66
+ ],
67
+ },
68
+ }),
69
+ company: pieces_framework_1.Property.ShortText({
70
+ displayName: 'Current Company',
71
+ description: "Updated current employer.",
72
+ required: false,
73
+ }),
74
+ title: pieces_framework_1.Property.ShortText({
75
+ displayName: 'Current Job Title',
76
+ description: "Updated current job title.",
77
+ required: false,
78
+ }),
79
+ linkedin_url: pieces_framework_1.Property.ShortText({
80
+ displayName: 'LinkedIn URL',
81
+ description: "Updated LinkedIn profile URL (e.g. `https://linkedin.com/in/johndoe`).",
82
+ required: false,
83
+ }),
84
+ website_url: pieces_framework_1.Property.ShortText({
85
+ displayName: 'Website URL',
86
+ description: "Updated personal website or portfolio URL.",
87
+ required: false,
88
+ }),
89
+ tags: pieces_framework_1.Property.Array({
90
+ displayName: 'Tags',
91
+ description: 'Replaces all existing tags on the candidate with this list. Leave blank to keep existing tags unchanged.',
92
+ required: false,
93
+ }),
94
+ },
95
+ run(context) {
96
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
97
+ const { candidate_id, first_name, last_name, email, email_type, phone, phone_type, company, title, linkedin_url, website_url, tags, } = context.propsValue;
98
+ const body = {};
99
+ if (first_name)
100
+ body['first_name'] = first_name;
101
+ if (last_name)
102
+ body['last_name'] = last_name;
103
+ if (company)
104
+ body['company'] = company;
105
+ if (title)
106
+ body['title'] = title;
107
+ if (tags && tags.length > 0)
108
+ body['tags'] = tags;
109
+ if (email)
110
+ body['email_addresses'] = [{ value: email, type: email_type !== null && email_type !== void 0 ? email_type : 'personal' }];
111
+ if (phone)
112
+ body['phone_numbers'] = [{ value: phone, type: phone_type !== null && phone_type !== void 0 ? phone_type : 'mobile' }];
113
+ if (website_url)
114
+ body['website_addresses'] = [{ value: website_url, type: 'personal' }];
115
+ if (linkedin_url)
116
+ body['social_media_addresses'] = [{ value: linkedin_url }];
117
+ const response = yield (0, common_1.greenhouseApiCall)({
118
+ accessToken: context.auth.access_token,
119
+ method: pieces_common_1.HttpMethod.PATCH,
120
+ endpoint: `/candidates/${candidate_id}`,
121
+ body,
122
+ });
123
+ return (0, common_1.shapeCandidate)(response.body.candidate);
124
+ });
125
+ },
126
+ });
127
+ //# sourceMappingURL=update-candidate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-candidate.js","sourceRoot":"","sources":["../../../../src/lib/actions/update-candidate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const greenhouseAuth: import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>;
2
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,+GAwBzB,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.greenhouseAuth = void 0;
4
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
5
+ exports.greenhouseAuth = pieces_framework_1.PieceAuth.OAuth2({
6
+ displayName: 'Greenhouse',
7
+ description: `To connect Greenhouse, you need OAuth2 credentials from a registered Greenhouse partner application.
8
+
9
+ **Steps to get credentials:**
10
+ 1. Contact **partner-support@greenhouse.io** to register your integration.
11
+ 2. Provide: integration name, required scopes, and your redirect URI.
12
+ 3. Greenhouse will issue a **Client ID** and **Client Secret**.
13
+
14
+ **Required scopes:** \`harvest:candidates:list\`, \`harvest:candidates:create\`, \`harvest:candidates:update\`, \`harvest:applications:list\`, \`harvest:jobs:list\`, \`harvest:job_posts:list\`, \`harvest:interviews:list\`, \`harvest:scorecards:list\`, \`harvest:notes:create\``,
15
+ authUrl: 'https://auth.greenhouse.io/authorize',
16
+ tokenUrl: 'https://auth.greenhouse.io/token',
17
+ scope: [
18
+ 'harvest:candidates:list',
19
+ 'harvest:candidates:create',
20
+ 'harvest:candidates:update',
21
+ 'harvest:applications:list',
22
+ 'harvest:jobs:list',
23
+ 'harvest:job_posts:list',
24
+ 'harvest:interviews:list',
25
+ 'harvest:scorecards:list',
26
+ 'harvest:notes:create',
27
+ ],
28
+ required: true,
29
+ });
30
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":";;;AAAA,qEAA2D;AAE9C,QAAA,cAAc,GAAG,4BAAS,CAAC,MAAM,CAAC;IAC7C,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE;;;;;;;qRAOsQ;IACnR,OAAO,EAAE,sCAAsC;IAC/C,QAAQ,EAAE,kCAAkC;IAC5C,KAAK,EAAE;QACL,yBAAyB;QACzB,2BAA2B;QAC3B,2BAA2B;QAC3B,2BAA2B;QAC3B,mBAAmB;QACnB,wBAAwB;QACxB,yBAAyB;QACzB,yBAAyB;QACzB,sBAAsB;KACvB;IACD,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { HttpMethod, HttpMessageBody, QueryParams } from '@activepieces/pieces-common';
2
+ export declare function greenhouseApiCall<T extends HttpMessageBody>({ accessToken, method, endpoint, body, queryParams, }: {
3
+ accessToken: string;
4
+ method: HttpMethod;
5
+ endpoint: string;
6
+ body?: Record<string, unknown>;
7
+ queryParams?: QueryParams;
8
+ }): Promise<import("@activepieces/pieces-common").HttpResponse<T>>;
9
+ export type GreenhouseCandidate = {
10
+ id: number;
11
+ first_name: string;
12
+ last_name: string;
13
+ preferred_name: string | null;
14
+ company: string | null;
15
+ title: string | null;
16
+ created_at: string;
17
+ updated_at: string;
18
+ last_activity_at: string | null;
19
+ private: boolean;
20
+ can_email: boolean;
21
+ tags: string[];
22
+ email_addresses: {
23
+ value: string;
24
+ type: string;
25
+ }[];
26
+ phone_numbers: {
27
+ value: string;
28
+ type: string;
29
+ }[];
30
+ website_addresses: {
31
+ value: string;
32
+ type: string;
33
+ }[];
34
+ social_media_addresses: {
35
+ value: string;
36
+ }[];
37
+ };
38
+ export declare function shapeCandidate(c: GreenhouseCandidate): {
39
+ id: number;
40
+ first_name: string;
41
+ last_name: string;
42
+ preferred_name: string | null;
43
+ company: string | null;
44
+ title: string | null;
45
+ created_at: string;
46
+ updated_at: string;
47
+ last_activity_at: string | null;
48
+ private: boolean;
49
+ can_email: boolean;
50
+ primary_email: string;
51
+ primary_email_type: string;
52
+ primary_phone: string;
53
+ primary_phone_type: string;
54
+ website_url: string | null;
55
+ linkedin_url: string;
56
+ tags: string;
57
+ };
58
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,eAAe,EACf,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAIrC,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,eAAe,EAAE,EACjE,WAAW,EACX,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,WAAW,GACZ,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,kEAUA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,eAAe,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,sBAAsB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC7C,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;EAqBpD"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.greenhouseApiCall = greenhouseApiCall;
4
+ exports.shapeCandidate = shapeCandidate;
5
+ const tslib_1 = require("tslib");
6
+ const pieces_common_1 = require("@activepieces/pieces-common");
7
+ const BASE_URL = 'https://harvest.greenhouse.io/v3';
8
+ function greenhouseApiCall(_a) {
9
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ accessToken, method, endpoint, body, queryParams, }) {
10
+ return pieces_common_1.httpClient.sendRequest({
11
+ method,
12
+ url: `${BASE_URL}${endpoint}`,
13
+ headers: {
14
+ Authorization: `Bearer ${accessToken}`,
15
+ },
16
+ body,
17
+ queryParams,
18
+ });
19
+ });
20
+ }
21
+ function shapeCandidate(c) {
22
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
23
+ return {
24
+ id: c.id,
25
+ first_name: c.first_name,
26
+ last_name: c.last_name,
27
+ preferred_name: (_a = c.preferred_name) !== null && _a !== void 0 ? _a : null,
28
+ company: c.company,
29
+ title: c.title,
30
+ created_at: c.created_at,
31
+ updated_at: c.updated_at,
32
+ last_activity_at: c.last_activity_at,
33
+ private: c.private,
34
+ can_email: c.can_email,
35
+ primary_email: (_d = (_c = (_b = c.email_addresses) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : null,
36
+ primary_email_type: (_g = (_f = (_e = c.email_addresses) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.type) !== null && _g !== void 0 ? _g : null,
37
+ primary_phone: (_k = (_j = (_h = c.phone_numbers) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.value) !== null && _k !== void 0 ? _k : null,
38
+ primary_phone_type: (_o = (_m = (_l = c.phone_numbers) === null || _l === void 0 ? void 0 : _l[0]) === null || _m === void 0 ? void 0 : _m.type) !== null && _o !== void 0 ? _o : null,
39
+ website_url: (_r = (_q = (_p = c.website_addresses) === null || _p === void 0 ? void 0 : _p.find((w) => w.type === 'personal')) === null || _q === void 0 ? void 0 : _q.value) !== null && _r !== void 0 ? _r : null,
40
+ linkedin_url: (_u = (_t = (_s = c.social_media_addresses) === null || _s === void 0 ? void 0 : _s[0]) === null || _t === void 0 ? void 0 : _t.value) !== null && _u !== void 0 ? _u : null,
41
+ tags: ((_v = c.tags) !== null && _v !== void 0 ? _v : []).join(', '),
42
+ };
43
+ }
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":";;AASA,8CAsBC;AAqBD,wCAqBC;;AAzED,+DAKqC;AAErC,MAAM,QAAQ,GAAG,kCAAkC,CAAC;AAEpD,SAAsB,iBAAiB;iEAA4B,EACjE,WAAW,EACX,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,WAAW,GAOZ;QACC,OAAO,0BAAU,CAAC,WAAW,CAAI;YAC/B,MAAM;YACN,GAAG,EAAE,GAAG,QAAQ,GAAG,QAAQ,EAAE;YAC7B,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,WAAW,EAAE;aACvC;YACD,IAAI;YACJ,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;CAAA;AAqBD,SAAgB,cAAc,CAAC,CAAsB;;IACnD,OAAO;QACL,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,cAAc,EAAE,MAAA,CAAC,CAAC,cAAc,mCAAI,IAAI;QACxC,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;QACpC,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,aAAa,EAAE,MAAA,MAAA,MAAA,CAAC,CAAC,eAAe,0CAAG,CAAC,CAAC,0CAAE,KAAK,mCAAI,IAAI;QACpD,kBAAkB,EAAE,MAAA,MAAA,MAAA,CAAC,CAAC,eAAe,0CAAG,CAAC,CAAC,0CAAE,IAAI,mCAAI,IAAI;QACxD,aAAa,EAAE,MAAA,MAAA,MAAA,CAAC,CAAC,aAAa,0CAAG,CAAC,CAAC,0CAAE,KAAK,mCAAI,IAAI;QAClD,kBAAkB,EAAE,MAAA,MAAA,MAAA,CAAC,CAAC,aAAa,0CAAG,CAAC,CAAC,0CAAE,IAAI,mCAAI,IAAI;QACtD,WAAW,EAAE,MAAA,MAAA,MAAA,CAAC,CAAC,iBAAiB,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,0CAAE,KAAK,mCAAI,IAAI;QACnF,YAAY,EAAE,MAAA,MAAA,MAAA,CAAC,CAAC,sBAAsB,0CAAG,CAAC,CAAC,0CAAE,KAAK,mCAAI,IAAI;QAC1D,IAAI,EAAE,CAAC,MAAA,CAAC,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;KAChC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { TriggerStrategy } from '@activepieces/pieces-framework';
2
+ export declare const candidateHiredTrigger: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {}>;
3
+ //# sourceMappingURL=candidate-hired.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidate-hired.d.ts","sourceRoot":"","sources":["../../../../src/lib/triggers/candidate-hired.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEhB,MAAM,gCAAgC,CAAC;AAqExC,eAAO,MAAM,qBAAqB,kwBAiChC,CAAC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.candidateHiredTrigger = 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
+ const polling = {
10
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
11
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, lastFetchEpochMS }) {
12
+ const createdAfter = lastFetchEpochMS > 0
13
+ ? new Date(lastFetchEpochMS).toISOString()
14
+ : new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
15
+ const response = yield (0, common_1.greenhouseApiCall)({
16
+ accessToken: auth.access_token,
17
+ method: pieces_common_1.HttpMethod.GET,
18
+ endpoint: '/applications',
19
+ queryParams: {
20
+ status: 'hired',
21
+ 'created_at[gte]': createdAfter,
22
+ per_page: '500',
23
+ },
24
+ });
25
+ const applications = Array.isArray(response.body) ? response.body : [];
26
+ return applications.map((app) => {
27
+ var _a;
28
+ return ({
29
+ epochMilliSeconds: new Date((_a = app.last_activity_at) !== null && _a !== void 0 ? _a : app.created_at).getTime(),
30
+ data: {
31
+ id: app.id,
32
+ candidate_id: app.candidate_id,
33
+ job_id: app.job_id,
34
+ job_post_id: app.job_post_id,
35
+ prospect: app.prospect,
36
+ status: app.status,
37
+ created_at: app.created_at,
38
+ hired_at: app.last_activity_at,
39
+ location_address: app.location_address,
40
+ source_id: app.source_id,
41
+ referrer_id: app.referrer_id,
42
+ stage_id: app.stage_id,
43
+ },
44
+ });
45
+ });
46
+ }),
47
+ };
48
+ exports.candidateHiredTrigger = (0, pieces_framework_1.createTrigger)({
49
+ auth: auth_1.greenhouseAuth,
50
+ name: 'candidate_hired',
51
+ displayName: 'Candidate Hired',
52
+ description: 'Triggers when a candidate is hired.',
53
+ props: {},
54
+ sampleData: {
55
+ id: 48206478,
56
+ candidate_id: 36952451,
57
+ job_id: 211706,
58
+ job_post_id: 123,
59
+ prospect: false,
60
+ status: 'hired',
61
+ created_at: '2024-02-01T14:26:02.000Z',
62
+ hired_at: '2024-03-15T10:00:00.000Z',
63
+ location_address: 'New York, New York, USA',
64
+ source_id: 33,
65
+ referrer_id: null,
66
+ stage_id: null,
67
+ },
68
+ type: pieces_framework_1.TriggerStrategy.POLLING,
69
+ test(context) {
70
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
71
+ return yield pieces_common_1.pollingHelper.test(polling, context);
72
+ });
73
+ },
74
+ onEnable(context) {
75
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
76
+ yield pieces_common_1.pollingHelper.onEnable(polling, context);
77
+ });
78
+ },
79
+ onDisable(context) {
80
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
81
+ yield pieces_common_1.pollingHelper.onDisable(polling, context);
82
+ });
83
+ },
84
+ run(context) {
85
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
86
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
87
+ });
88
+ },
89
+ });
90
+ //# sourceMappingURL=candidate-hired.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidate-hired.js","sourceRoot":"","sources":["../../../../src/lib/triggers/candidate-hired.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { TriggerStrategy } from '@activepieces/pieces-framework';
2
+ export declare const jobUpdatedTrigger: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {}>;
3
+ //# sourceMappingURL=job-updated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job-updated.d.ts","sourceRoot":"","sources":["../../../../src/lib/triggers/job-updated.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEhB,MAAM,gCAAgC,CAAC;AA+ExC,eAAO,MAAM,iBAAiB,kwBAmC5B,CAAC"}