@leadpoet/client 0.1.4 → 0.1.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/README.md +50 -13
- package/cli.js +46 -2
- package/cli.js.map +2 -2
- package/client.js +47 -2
- package/client.js.map +2 -2
- package/mcp.js +3969 -71
- package/mcp.js.map +4 -4
- package/package.json +13 -2
- package/skill/SKILL.md +73 -6
- package/types/scripts/leadpoet-mcp.d.ts +1 -7
- package/types/shared/account-monitoring.d.ts +1169 -0
- package/types/shared/assistant-brief.d.ts +1681 -0
- package/types/shared/assistant-memories.d.ts +62 -0
- package/types/shared/assistant-send-forecast.d.ts +442 -0
- package/types/shared/assistant.d.ts +238 -0
- package/types/shared/employee-count.d.ts +90 -0
- package/types/shared/gtm-context.d.ts +233 -0
- package/types/shared/icp-product-selection.d.ts +27 -0
- package/types/shared/icp-profile.d.ts +2625 -0
- package/types/shared/industry-taxonomy.d.ts +1 -0
- package/types/shared/lead-request-limits.d.ts +4 -0
- package/types/shared/leadpoet-client.d.ts +1315 -0
- package/types/shared/leadpoet-mcp-server.d.ts +39 -0
- package/types/shared/mcp-connect.d.ts +22 -0
- package/types/shared/monitor-technologies.d.ts +38 -0
- package/types/shared/outreach-analytics.d.ts +334 -0
- package/types/shared/outreach-audience-filters.d.ts +156 -0
- package/types/shared/outreach-audience-segments.d.ts +135 -0
- package/types/shared/outreach-enums.d.ts +22 -0
- package/types/shared/outreach-v2-contract.d.ts +253 -0
- package/types/shared/plan-entitlements.d.ts +75 -0
- package/types/shared/plan-features.d.ts +50 -0
- package/types/shared/request-credit-constants.d.ts +13 -0
- package/types/shared/website-fact-language.d.ts +9 -0
- package/types/shared/workspace-operations.d.ts +1975 -29
- package/types/shared/workspace-tool-metadata.d.ts +1083 -0
|
@@ -0,0 +1,1169 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Account monitoring watches existing accounts and their contacts for events
|
|
4
|
+
* that a provider has already classified: a job was posted, a round was
|
|
5
|
+
* announced, a contact changed roles. Each signal type maps to exactly one
|
|
6
|
+
* provider dataset, so the host relays provider facts and never infers new
|
|
7
|
+
* evidence semantics. This feature does not feed sourcing or ICP
|
|
8
|
+
* qualification, which remain owned by the sourcing model.
|
|
9
|
+
*/
|
|
10
|
+
export declare const ACCOUNT_SIGNAL_TYPES: readonly ["new_job", "funding", "product_news", "expansion", "leadership_news", "partnership", "acquisition", "customer_win", "cost_cutting", "technology_adopted"];
|
|
11
|
+
export type AccountSignalType = (typeof ACCOUNT_SIGNAL_TYPES)[number];
|
|
12
|
+
export declare const CONTACT_SIGNAL_TYPES: readonly ["job_change", "title_change"];
|
|
13
|
+
export type ContactSignalType = (typeof CONTACT_SIGNAL_TYPES)[number];
|
|
14
|
+
export declare const MONITOR_SIGNAL_TYPES: readonly ["new_job", "funding", "product_news", "expansion", "leadership_news", "partnership", "acquisition", "customer_win", "cost_cutting", "technology_adopted", "job_change", "title_change"];
|
|
15
|
+
export type MonitorSignalType = (typeof MONITOR_SIGNAL_TYPES)[number];
|
|
16
|
+
export declare const MONITOR_STATUSES: readonly ["active", "paused", "archived"];
|
|
17
|
+
export type MonitorStatus = (typeof MONITOR_STATUSES)[number];
|
|
18
|
+
export declare const CONTACT_SCOPES: readonly ["none", "all", "selected"];
|
|
19
|
+
export type ContactScope = (typeof CONTACT_SCOPES)[number];
|
|
20
|
+
/** One provider dataset that a monitor syncs on its own schedule. */
|
|
21
|
+
export declare const MONITOR_SOURCES: readonly ["jobs", "funding", "news", "technology", "contacts"];
|
|
22
|
+
export type MonitorSource = (typeof MONITOR_SOURCES)[number];
|
|
23
|
+
export declare const MONITOR_EVENT_STATES: readonly ["new", "reviewed", "dismissed"];
|
|
24
|
+
export type MonitorEventState = (typeof MONITOR_EVENT_STATES)[number];
|
|
25
|
+
export declare const MONITOR_EVENT_PROVIDERS: readonly ["theirstack", "predictleads", "role_check"];
|
|
26
|
+
export type MonitorEventProvider = (typeof MONITOR_EVENT_PROVIDERS)[number];
|
|
27
|
+
export declare const MONITOR_SOURCE_KINDS: readonly ["job_posting", "article", "company_page", "linkedin_profile"];
|
|
28
|
+
export type MonitorSourceKind = (typeof MONITOR_SOURCE_KINDS)[number];
|
|
29
|
+
/**
|
|
30
|
+
* Credits each watched account costs per billing week, charged by its first
|
|
31
|
+
* successful check that week. The database charges and gates on the same
|
|
32
|
+
* number (account_monitoring_complete, _claim and _list).
|
|
33
|
+
*/
|
|
34
|
+
export declare const ACCOUNT_MONITORING_WEEKLY_CREDITS = 2;
|
|
35
|
+
/**
|
|
36
|
+
* Opens Signals on one account's alerts by its company card id
|
|
37
|
+
* (`/dashboard/pipeline?entity=signals&signals_account=<id>`), as the Monday
|
|
38
|
+
* summary links each account.
|
|
39
|
+
*/
|
|
40
|
+
export declare const SIGNALS_ACCOUNT_PARAM = "signals_account";
|
|
41
|
+
/** The account a Signals link names, or null when it names none or a malformed id. */
|
|
42
|
+
export declare function readSignalsAccount(search: string): string | null;
|
|
43
|
+
export declare const ACCOUNT_MONITORING_LIMITS: {
|
|
44
|
+
readonly instructionsMaxLength: 1000;
|
|
45
|
+
readonly suggestTextMinLength: 3;
|
|
46
|
+
readonly keywordsMax: 10;
|
|
47
|
+
readonly keywordMaxLength: 60;
|
|
48
|
+
readonly technologiesMax: 10;
|
|
49
|
+
readonly technologyMaxLength: 80;
|
|
50
|
+
/** Contacts watched per account when the user picks all or specific ones. */
|
|
51
|
+
readonly contactsPerAccountMax: 25;
|
|
52
|
+
/** Accounts changed in one status request; the client sends more in parts. */
|
|
53
|
+
readonly statusBatchMax: 100;
|
|
54
|
+
/** Accounts started in one request; the client sends larger picks in parts. */
|
|
55
|
+
readonly watchBatchMax: 100;
|
|
56
|
+
readonly eventStateBatchMax: 100;
|
|
57
|
+
readonly sourcesPerEventMax: 3;
|
|
58
|
+
readonly feedPageSizeMax: 50;
|
|
59
|
+
/**
|
|
60
|
+
* Accounts Signals lists at once. Show more asks for more, up to this, and
|
|
61
|
+
* search finds the rest. It bounds each response and the refetch after a
|
|
62
|
+
* change, and keeps the route's ICP lookup of those ids in one request URL.
|
|
63
|
+
*/
|
|
64
|
+
readonly alertAccountsMax: 100;
|
|
65
|
+
};
|
|
66
|
+
/** Splits monitor ids into status requests the server accepts, in order. */
|
|
67
|
+
export declare function monitorStatusParts(monitorIds: readonly string[]): string[][];
|
|
68
|
+
type SignalCatalogEntry = {
|
|
69
|
+
label: string;
|
|
70
|
+
/** One alert's name in the feed and the digest. A plan names the group in the plural (NEWS_LABELS). */
|
|
71
|
+
shortLabel: string;
|
|
72
|
+
/** One sentence shown under the toggle when it helps the choice. */
|
|
73
|
+
hint: string | null;
|
|
74
|
+
source: MonitorSource;
|
|
75
|
+
};
|
|
76
|
+
export declare const ACCOUNT_SIGNAL_CATALOG: Record<AccountSignalType, SignalCatalogEntry>;
|
|
77
|
+
export declare const CONTACT_SIGNAL_CATALOG: Record<ContactSignalType, SignalCatalogEntry>;
|
|
78
|
+
export declare function signalCatalogEntry(type: MonitorSignalType): SignalCatalogEntry;
|
|
79
|
+
/**
|
|
80
|
+
* Signal types from the strongest reason to reach out to the weakest. The
|
|
81
|
+
* weekly digest ranks alerts in this order (`kind_rank` in
|
|
82
|
+
* `account_monitoring_digest_claim_v2`), and Signals opens an account the same way.
|
|
83
|
+
*/
|
|
84
|
+
export declare const SIGNAL_STRENGTH_ORDER: readonly ["job_change", "title_change", "funding", "acquisition", "leadership_news", "new_job", "expansion", "customer_win", "partnership", "technology_adopted", "cost_cutting", "product_news"];
|
|
85
|
+
/** Common requests setup offers to add with one click, so it never starts blank. */
|
|
86
|
+
export declare const MONITOR_REQUEST_EXAMPLES: readonly ["Funding, acquisitions and leadership changes", "Hiring for sales or marketing roles", "When my contacts change jobs"];
|
|
87
|
+
export declare function signalStrengthRank(type: MonitorSignalType): number;
|
|
88
|
+
/**
|
|
89
|
+
* An alert headline without what pages add around it: a press release's
|
|
90
|
+
* dateline and wire tag, trailing ":;," punctuation, a "›" or "»" link arrow
|
|
91
|
+
* from a careers page, and a title a job board sent twice ("Sales Manager,
|
|
92
|
+
* Sales Manager"). Applied when alerts are stored and again when stored
|
|
93
|
+
* alerts are shown. Only a prefix is removed, so the headline stays a literal
|
|
94
|
+
* part of its source sentence.
|
|
95
|
+
*/
|
|
96
|
+
export declare function tidyAlertHeadline(headline: string): string;
|
|
97
|
+
/**
|
|
98
|
+
* A news article's title, when it is one. Pages sometimes send a navigation
|
|
99
|
+
* label as the title, such as "Command palette."; under three words is not a
|
|
100
|
+
* title.
|
|
101
|
+
*/
|
|
102
|
+
export declare function newsArticleTitle(value: unknown): string | null;
|
|
103
|
+
/**
|
|
104
|
+
* Department filters for job alerts. A title belongs to a department when one
|
|
105
|
+
* part of it holds one of its keyword phrases in order, and no part holds
|
|
106
|
+
* every word of one of its exclusion phrases (see jobDepartmentsForTitle). The
|
|
107
|
+
* jobs provider is sent the same phrases; its title filter is looser, so this
|
|
108
|
+
* rule decides.
|
|
109
|
+
*/
|
|
110
|
+
export declare const JOB_DEPARTMENTS: readonly [{
|
|
111
|
+
readonly id: "sales";
|
|
112
|
+
readonly label: "Sales";
|
|
113
|
+
readonly keywords: readonly ["sales", "account executive", "account manager", "business development", "sdr", "bdr", "revenue operations", "revops", "sales engineer", "solutions engineer", "solutions consultant", "presales", "partnerships"];
|
|
114
|
+
readonly exclude: readonly [];
|
|
115
|
+
}, {
|
|
116
|
+
readonly id: "engineering";
|
|
117
|
+
readonly label: "Engineering";
|
|
118
|
+
readonly keywords: readonly ["engineer", "engineering", "developer", "devops", "sre", "programmer", "architect", "cto"];
|
|
119
|
+
readonly exclude: readonly ["sales engineer", "solutions engineer", "support engineer", "sales engineering", "customer engineer"];
|
|
120
|
+
}, {
|
|
121
|
+
readonly id: "data";
|
|
122
|
+
readonly label: "Data and AI";
|
|
123
|
+
readonly keywords: readonly ["data", "analytics", "machine learning", "data scientist", "scientist", "ml", "ai", "business intelligence"];
|
|
124
|
+
readonly exclude: readonly [];
|
|
125
|
+
}, {
|
|
126
|
+
readonly id: "product";
|
|
127
|
+
readonly label: "Product";
|
|
128
|
+
readonly keywords: readonly ["product manager", "product owner", "product lead", "product director", "head product", "vp product", "chief product", "product management"];
|
|
129
|
+
readonly exclude: readonly ["marketing"];
|
|
130
|
+
}, {
|
|
131
|
+
readonly id: "design";
|
|
132
|
+
readonly label: "Design";
|
|
133
|
+
readonly keywords: readonly ["designer", "ux", "ui", "user research", "design"];
|
|
134
|
+
readonly exclude: readonly [];
|
|
135
|
+
}, {
|
|
136
|
+
readonly id: "marketing";
|
|
137
|
+
readonly label: "Marketing";
|
|
138
|
+
readonly keywords: readonly ["marketing", "growth", "demand generation", "content", "brand", "seo", "communications", "social media", "copywriter"];
|
|
139
|
+
readonly exclude: readonly [];
|
|
140
|
+
}, {
|
|
141
|
+
readonly id: "customer_success";
|
|
142
|
+
readonly label: "Customer success and support";
|
|
143
|
+
readonly keywords: readonly ["customer success", "customer support", "support", "customer experience", "onboarding", "implementation", "customer service"];
|
|
144
|
+
readonly exclude: readonly [];
|
|
145
|
+
}, {
|
|
146
|
+
readonly id: "operations";
|
|
147
|
+
readonly label: "Operations";
|
|
148
|
+
readonly keywords: readonly ["operations", "ops", "supply chain", "logistics", "procurement", "chief of staff"];
|
|
149
|
+
readonly exclude: readonly [];
|
|
150
|
+
}, {
|
|
151
|
+
readonly id: "finance";
|
|
152
|
+
readonly label: "Finance";
|
|
153
|
+
readonly keywords: readonly ["finance", "financial", "accountant", "accounting", "controller", "cfo", "treasury", "payroll", "tax", "billing"];
|
|
154
|
+
readonly exclude: readonly [];
|
|
155
|
+
}, {
|
|
156
|
+
readonly id: "people";
|
|
157
|
+
readonly label: "People and recruiting";
|
|
158
|
+
readonly keywords: readonly ["recruiter", "recruiting", "talent", "people", "hr", "human resources"];
|
|
159
|
+
readonly exclude: readonly [];
|
|
160
|
+
}, {
|
|
161
|
+
readonly id: "legal";
|
|
162
|
+
readonly label: "Legal and compliance";
|
|
163
|
+
readonly keywords: readonly ["legal", "counsel", "attorney", "lawyer", "paralegal", "compliance", "privacy"];
|
|
164
|
+
readonly exclude: readonly [];
|
|
165
|
+
}, {
|
|
166
|
+
readonly id: "it";
|
|
167
|
+
readonly label: "IT";
|
|
168
|
+
readonly keywords: readonly ["it", "helpdesk", "help desk", "system administrator", "systems administrator", "sysadmin", "network administrator", "desktop support"];
|
|
169
|
+
readonly exclude: readonly [];
|
|
170
|
+
}];
|
|
171
|
+
export type JobDepartmentId = (typeof JOB_DEPARTMENTS)[number]["id"];
|
|
172
|
+
export declare const JOB_DEPARTMENT_IDS: [JobDepartmentId, ...JobDepartmentId[]];
|
|
173
|
+
export declare const JOB_SENIORITIES: readonly [{
|
|
174
|
+
readonly id: "leadership";
|
|
175
|
+
readonly label: "Leadership";
|
|
176
|
+
}, {
|
|
177
|
+
readonly id: "senior";
|
|
178
|
+
readonly label: "Senior";
|
|
179
|
+
}, {
|
|
180
|
+
readonly id: "mid_level";
|
|
181
|
+
readonly label: "Mid-level";
|
|
182
|
+
}, {
|
|
183
|
+
readonly id: "junior";
|
|
184
|
+
readonly label: "Entry-level";
|
|
185
|
+
}];
|
|
186
|
+
export type JobSeniorityId = (typeof JOB_SENIORITIES)[number]["id"];
|
|
187
|
+
export declare const JOB_SENIORITY_IDS: [JobSeniorityId, ...JobSeniorityId[]];
|
|
188
|
+
/** PredictLeads news categories behind each news signal type. */
|
|
189
|
+
export declare const NEWS_SIGNAL_CATEGORIES: {
|
|
190
|
+
readonly product_news: readonly ["launches", "integrates_with", "is_developing"];
|
|
191
|
+
readonly expansion: readonly ["expands_offices_to", "expands_offices_in", "expands_facilities", "opens_new_location"];
|
|
192
|
+
readonly leadership_news: readonly ["hires", "leaves", "promotes", "retires_from"];
|
|
193
|
+
readonly partnership: readonly ["partners_with"];
|
|
194
|
+
readonly acquisition: readonly ["acquires", "merges_with", "sells_assets_to"];
|
|
195
|
+
readonly customer_win: readonly ["signs_new_client"];
|
|
196
|
+
readonly cost_cutting: readonly ["decreases_headcount_by", "closes_offices_in"];
|
|
197
|
+
};
|
|
198
|
+
export type NewsSignalType = keyof typeof NEWS_SIGNAL_CATEGORIES;
|
|
199
|
+
export declare const NEWS_SIGNAL_TYPES: NewsSignalType[];
|
|
200
|
+
export declare function isNewsSignalType(type: string): type is NewsSignalType;
|
|
201
|
+
export declare function newsSignalTypeForCategory(category: string): NewsSignalType | null;
|
|
202
|
+
export declare const newJobSignalSchema: z.ZodObject<{
|
|
203
|
+
type: z.ZodLiteral<"new_job">;
|
|
204
|
+
departments: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it", ...("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[]]>, "many">>, ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[], ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined>;
|
|
205
|
+
seniorities: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["leadership" | "senior" | "mid_level" | "junior", ...("leadership" | "senior" | "mid_level" | "junior")[]]>, "many">>, ("leadership" | "senior" | "mid_level" | "junior")[], ("leadership" | "senior" | "mid_level" | "junior")[] | undefined>;
|
|
206
|
+
keywords: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>>;
|
|
207
|
+
}, "strict", z.ZodTypeAny, {
|
|
208
|
+
type: "new_job";
|
|
209
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
210
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
211
|
+
keywords: string[];
|
|
212
|
+
}, {
|
|
213
|
+
type: "new_job";
|
|
214
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
215
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
216
|
+
keywords?: string[] | undefined;
|
|
217
|
+
}>;
|
|
218
|
+
export declare const fundingSignalSchema: z.ZodObject<{
|
|
219
|
+
type: z.ZodLiteral<"funding">;
|
|
220
|
+
minimum_amount_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
221
|
+
}, "strict", z.ZodTypeAny, {
|
|
222
|
+
type: "funding";
|
|
223
|
+
minimum_amount_usd: number | null;
|
|
224
|
+
}, {
|
|
225
|
+
type: "funding";
|
|
226
|
+
minimum_amount_usd?: number | null | undefined;
|
|
227
|
+
}>;
|
|
228
|
+
export declare const technologySignalSchema: z.ZodObject<{
|
|
229
|
+
type: z.ZodLiteral<"technology_adopted">;
|
|
230
|
+
technologies: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>, string[], string[]>;
|
|
231
|
+
}, "strict", z.ZodTypeAny, {
|
|
232
|
+
type: "technology_adopted";
|
|
233
|
+
technologies: string[];
|
|
234
|
+
}, {
|
|
235
|
+
type: "technology_adopted";
|
|
236
|
+
technologies: string[];
|
|
237
|
+
}>;
|
|
238
|
+
export declare const accountSignalRuleSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
239
|
+
type: z.ZodLiteral<"new_job">;
|
|
240
|
+
departments: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it", ...("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[]]>, "many">>, ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[], ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined>;
|
|
241
|
+
seniorities: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["leadership" | "senior" | "mid_level" | "junior", ...("leadership" | "senior" | "mid_level" | "junior")[]]>, "many">>, ("leadership" | "senior" | "mid_level" | "junior")[], ("leadership" | "senior" | "mid_level" | "junior")[] | undefined>;
|
|
242
|
+
keywords: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>>;
|
|
243
|
+
}, "strict", z.ZodTypeAny, {
|
|
244
|
+
type: "new_job";
|
|
245
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
246
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
247
|
+
keywords: string[];
|
|
248
|
+
}, {
|
|
249
|
+
type: "new_job";
|
|
250
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
251
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
252
|
+
keywords?: string[] | undefined;
|
|
253
|
+
}>, z.ZodObject<{
|
|
254
|
+
type: z.ZodLiteral<"funding">;
|
|
255
|
+
minimum_amount_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
256
|
+
}, "strict", z.ZodTypeAny, {
|
|
257
|
+
type: "funding";
|
|
258
|
+
minimum_amount_usd: number | null;
|
|
259
|
+
}, {
|
|
260
|
+
type: "funding";
|
|
261
|
+
minimum_amount_usd?: number | null | undefined;
|
|
262
|
+
}>, z.ZodObject<{
|
|
263
|
+
type: z.ZodLiteral<"technology_adopted">;
|
|
264
|
+
technologies: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>, string[], string[]>;
|
|
265
|
+
}, "strict", z.ZodTypeAny, {
|
|
266
|
+
type: "technology_adopted";
|
|
267
|
+
technologies: string[];
|
|
268
|
+
}, {
|
|
269
|
+
type: "technology_adopted";
|
|
270
|
+
technologies: string[];
|
|
271
|
+
}>, z.ZodObject<{
|
|
272
|
+
type: z.ZodLiteral<NewsSignalType>;
|
|
273
|
+
}, "strict", z.ZodTypeAny, {
|
|
274
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
275
|
+
}, {
|
|
276
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
277
|
+
}>]>;
|
|
278
|
+
export type AccountSignalRule = z.infer<typeof accountSignalRuleSchema>;
|
|
279
|
+
export type NewJobSignalRule = z.infer<typeof newJobSignalSchema>;
|
|
280
|
+
export type FundingSignalRule = z.infer<typeof fundingSignalSchema>;
|
|
281
|
+
export type TechnologySignalRule = z.infer<typeof technologySignalSchema>;
|
|
282
|
+
export declare const contactSignalRuleSchema: z.ZodObject<{
|
|
283
|
+
type: z.ZodEnum<["job_change", "title_change"]>;
|
|
284
|
+
}, "strict", z.ZodTypeAny, {
|
|
285
|
+
type: "job_change" | "title_change";
|
|
286
|
+
}, {
|
|
287
|
+
type: "job_change" | "title_change";
|
|
288
|
+
}>;
|
|
289
|
+
export type ContactSignalRule = z.infer<typeof contactSignalRuleSchema>;
|
|
290
|
+
export declare const monitorSignalsSchema: z.ZodObject<{
|
|
291
|
+
account_signals: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
292
|
+
type: z.ZodLiteral<"new_job">;
|
|
293
|
+
departments: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it", ...("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[]]>, "many">>, ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[], ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined>;
|
|
294
|
+
seniorities: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["leadership" | "senior" | "mid_level" | "junior", ...("leadership" | "senior" | "mid_level" | "junior")[]]>, "many">>, ("leadership" | "senior" | "mid_level" | "junior")[], ("leadership" | "senior" | "mid_level" | "junior")[] | undefined>;
|
|
295
|
+
keywords: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>>;
|
|
296
|
+
}, "strict", z.ZodTypeAny, {
|
|
297
|
+
type: "new_job";
|
|
298
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
299
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
300
|
+
keywords: string[];
|
|
301
|
+
}, {
|
|
302
|
+
type: "new_job";
|
|
303
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
304
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
305
|
+
keywords?: string[] | undefined;
|
|
306
|
+
}>, z.ZodObject<{
|
|
307
|
+
type: z.ZodLiteral<"funding">;
|
|
308
|
+
minimum_amount_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
309
|
+
}, "strict", z.ZodTypeAny, {
|
|
310
|
+
type: "funding";
|
|
311
|
+
minimum_amount_usd: number | null;
|
|
312
|
+
}, {
|
|
313
|
+
type: "funding";
|
|
314
|
+
minimum_amount_usd?: number | null | undefined;
|
|
315
|
+
}>, z.ZodObject<{
|
|
316
|
+
type: z.ZodLiteral<"technology_adopted">;
|
|
317
|
+
technologies: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>, string[], string[]>;
|
|
318
|
+
}, "strict", z.ZodTypeAny, {
|
|
319
|
+
type: "technology_adopted";
|
|
320
|
+
technologies: string[];
|
|
321
|
+
}, {
|
|
322
|
+
type: "technology_adopted";
|
|
323
|
+
technologies: string[];
|
|
324
|
+
}>, z.ZodObject<{
|
|
325
|
+
type: z.ZodLiteral<NewsSignalType>;
|
|
326
|
+
}, "strict", z.ZodTypeAny, {
|
|
327
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
328
|
+
}, {
|
|
329
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
330
|
+
}>]>, "many">>;
|
|
331
|
+
contact_scope: z.ZodDefault<z.ZodEnum<["none", "all", "selected"]>>;
|
|
332
|
+
contact_signals: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
333
|
+
type: z.ZodEnum<["job_change", "title_change"]>;
|
|
334
|
+
}, "strict", z.ZodTypeAny, {
|
|
335
|
+
type: "job_change" | "title_change";
|
|
336
|
+
}, {
|
|
337
|
+
type: "job_change" | "title_change";
|
|
338
|
+
}>, "many">>;
|
|
339
|
+
}, "strict", z.ZodTypeAny, {
|
|
340
|
+
account_signals: ({
|
|
341
|
+
type: "new_job";
|
|
342
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
343
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
344
|
+
keywords: string[];
|
|
345
|
+
} | {
|
|
346
|
+
type: "funding";
|
|
347
|
+
minimum_amount_usd: number | null;
|
|
348
|
+
} | {
|
|
349
|
+
type: "technology_adopted";
|
|
350
|
+
technologies: string[];
|
|
351
|
+
} | {
|
|
352
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
353
|
+
})[];
|
|
354
|
+
contact_scope: "none" | "all" | "selected";
|
|
355
|
+
contact_signals: {
|
|
356
|
+
type: "job_change" | "title_change";
|
|
357
|
+
}[];
|
|
358
|
+
}, {
|
|
359
|
+
account_signals?: ({
|
|
360
|
+
type: "new_job";
|
|
361
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
362
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
363
|
+
keywords?: string[] | undefined;
|
|
364
|
+
} | {
|
|
365
|
+
type: "funding";
|
|
366
|
+
minimum_amount_usd?: number | null | undefined;
|
|
367
|
+
} | {
|
|
368
|
+
type: "technology_adopted";
|
|
369
|
+
technologies: string[];
|
|
370
|
+
} | {
|
|
371
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
372
|
+
})[] | undefined;
|
|
373
|
+
contact_scope?: "none" | "all" | "selected" | undefined;
|
|
374
|
+
contact_signals?: {
|
|
375
|
+
type: "job_change" | "title_change";
|
|
376
|
+
}[] | undefined;
|
|
377
|
+
}>;
|
|
378
|
+
export type MonitorSignals = z.infer<typeof monitorSignalsSchema>;
|
|
379
|
+
export declare const saveAccountMonitorRequestSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
380
|
+
/** Null creates a monitor; a number must match the stored revision. */
|
|
381
|
+
expected_revision: z.ZodNullable<z.ZodNumber>;
|
|
382
|
+
status: z.ZodEnum<["active", "paused"]>;
|
|
383
|
+
account_signals: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
384
|
+
type: z.ZodLiteral<"new_job">;
|
|
385
|
+
departments: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it", ...("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[]]>, "many">>, ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[], ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined>;
|
|
386
|
+
seniorities: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["leadership" | "senior" | "mid_level" | "junior", ...("leadership" | "senior" | "mid_level" | "junior")[]]>, "many">>, ("leadership" | "senior" | "mid_level" | "junior")[], ("leadership" | "senior" | "mid_level" | "junior")[] | undefined>;
|
|
387
|
+
keywords: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>>;
|
|
388
|
+
}, "strict", z.ZodTypeAny, {
|
|
389
|
+
type: "new_job";
|
|
390
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
391
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
392
|
+
keywords: string[];
|
|
393
|
+
}, {
|
|
394
|
+
type: "new_job";
|
|
395
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
396
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
397
|
+
keywords?: string[] | undefined;
|
|
398
|
+
}>, z.ZodObject<{
|
|
399
|
+
type: z.ZodLiteral<"funding">;
|
|
400
|
+
minimum_amount_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
401
|
+
}, "strict", z.ZodTypeAny, {
|
|
402
|
+
type: "funding";
|
|
403
|
+
minimum_amount_usd: number | null;
|
|
404
|
+
}, {
|
|
405
|
+
type: "funding";
|
|
406
|
+
minimum_amount_usd?: number | null | undefined;
|
|
407
|
+
}>, z.ZodObject<{
|
|
408
|
+
type: z.ZodLiteral<"technology_adopted">;
|
|
409
|
+
technologies: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>, string[], string[]>;
|
|
410
|
+
}, "strict", z.ZodTypeAny, {
|
|
411
|
+
type: "technology_adopted";
|
|
412
|
+
technologies: string[];
|
|
413
|
+
}, {
|
|
414
|
+
type: "technology_adopted";
|
|
415
|
+
technologies: string[];
|
|
416
|
+
}>, z.ZodObject<{
|
|
417
|
+
type: z.ZodLiteral<NewsSignalType>;
|
|
418
|
+
}, "strict", z.ZodTypeAny, {
|
|
419
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
420
|
+
}, {
|
|
421
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
422
|
+
}>]>, "many">;
|
|
423
|
+
contact_scope: z.ZodEnum<["none", "all", "selected"]>;
|
|
424
|
+
contact_signals: z.ZodArray<z.ZodObject<{
|
|
425
|
+
type: z.ZodEnum<["job_change", "title_change"]>;
|
|
426
|
+
}, "strict", z.ZodTypeAny, {
|
|
427
|
+
type: "job_change" | "title_change";
|
|
428
|
+
}, {
|
|
429
|
+
type: "job_change" | "title_change";
|
|
430
|
+
}>, "many">;
|
|
431
|
+
selected_contact_ids: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodString, "many">>, string[], string[] | undefined>;
|
|
432
|
+
instructions: z.ZodEffects<z.ZodDefault<z.ZodNullable<z.ZodString>>, string | null, string | null | undefined>;
|
|
433
|
+
}, "strict", z.ZodTypeAny, {
|
|
434
|
+
status: "active" | "paused";
|
|
435
|
+
account_signals: ({
|
|
436
|
+
type: "new_job";
|
|
437
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
438
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
439
|
+
keywords: string[];
|
|
440
|
+
} | {
|
|
441
|
+
type: "funding";
|
|
442
|
+
minimum_amount_usd: number | null;
|
|
443
|
+
} | {
|
|
444
|
+
type: "technology_adopted";
|
|
445
|
+
technologies: string[];
|
|
446
|
+
} | {
|
|
447
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
448
|
+
})[];
|
|
449
|
+
contact_scope: "none" | "all" | "selected";
|
|
450
|
+
contact_signals: {
|
|
451
|
+
type: "job_change" | "title_change";
|
|
452
|
+
}[];
|
|
453
|
+
selected_contact_ids: string[];
|
|
454
|
+
expected_revision: number | null;
|
|
455
|
+
instructions: string | null;
|
|
456
|
+
}, {
|
|
457
|
+
status: "active" | "paused";
|
|
458
|
+
account_signals: ({
|
|
459
|
+
type: "new_job";
|
|
460
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
461
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
462
|
+
keywords?: string[] | undefined;
|
|
463
|
+
} | {
|
|
464
|
+
type: "funding";
|
|
465
|
+
minimum_amount_usd?: number | null | undefined;
|
|
466
|
+
} | {
|
|
467
|
+
type: "technology_adopted";
|
|
468
|
+
technologies: string[];
|
|
469
|
+
} | {
|
|
470
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
471
|
+
})[];
|
|
472
|
+
contact_scope: "none" | "all" | "selected";
|
|
473
|
+
contact_signals: {
|
|
474
|
+
type: "job_change" | "title_change";
|
|
475
|
+
}[];
|
|
476
|
+
expected_revision: number | null;
|
|
477
|
+
selected_contact_ids?: string[] | undefined;
|
|
478
|
+
instructions?: string | null | undefined;
|
|
479
|
+
}>, {
|
|
480
|
+
status: "active" | "paused";
|
|
481
|
+
account_signals: ({
|
|
482
|
+
type: "new_job";
|
|
483
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
484
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
485
|
+
keywords: string[];
|
|
486
|
+
} | {
|
|
487
|
+
type: "funding";
|
|
488
|
+
minimum_amount_usd: number | null;
|
|
489
|
+
} | {
|
|
490
|
+
type: "technology_adopted";
|
|
491
|
+
technologies: string[];
|
|
492
|
+
} | {
|
|
493
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
494
|
+
})[];
|
|
495
|
+
contact_scope: "none" | "all" | "selected";
|
|
496
|
+
contact_signals: {
|
|
497
|
+
type: "job_change" | "title_change";
|
|
498
|
+
}[];
|
|
499
|
+
selected_contact_ids: string[];
|
|
500
|
+
expected_revision: number | null;
|
|
501
|
+
instructions: string | null;
|
|
502
|
+
}, {
|
|
503
|
+
status: "active" | "paused";
|
|
504
|
+
account_signals: ({
|
|
505
|
+
type: "new_job";
|
|
506
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
507
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
508
|
+
keywords?: string[] | undefined;
|
|
509
|
+
} | {
|
|
510
|
+
type: "funding";
|
|
511
|
+
minimum_amount_usd?: number | null | undefined;
|
|
512
|
+
} | {
|
|
513
|
+
type: "technology_adopted";
|
|
514
|
+
technologies: string[];
|
|
515
|
+
} | {
|
|
516
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
517
|
+
})[];
|
|
518
|
+
contact_scope: "none" | "all" | "selected";
|
|
519
|
+
contact_signals: {
|
|
520
|
+
type: "job_change" | "title_change";
|
|
521
|
+
}[];
|
|
522
|
+
expected_revision: number | null;
|
|
523
|
+
selected_contact_ids?: string[] | undefined;
|
|
524
|
+
instructions?: string | null | undefined;
|
|
525
|
+
}>, {
|
|
526
|
+
status: "active" | "paused";
|
|
527
|
+
account_signals: ({
|
|
528
|
+
type: "new_job";
|
|
529
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
530
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
531
|
+
keywords: string[];
|
|
532
|
+
} | {
|
|
533
|
+
type: "funding";
|
|
534
|
+
minimum_amount_usd: number | null;
|
|
535
|
+
} | {
|
|
536
|
+
type: "technology_adopted";
|
|
537
|
+
technologies: string[];
|
|
538
|
+
} | {
|
|
539
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
540
|
+
})[];
|
|
541
|
+
contact_scope: "none" | "all" | "selected";
|
|
542
|
+
contact_signals: {
|
|
543
|
+
type: "job_change" | "title_change";
|
|
544
|
+
}[];
|
|
545
|
+
selected_contact_ids: string[];
|
|
546
|
+
expected_revision: number | null;
|
|
547
|
+
instructions: string | null;
|
|
548
|
+
}, {
|
|
549
|
+
status: "active" | "paused";
|
|
550
|
+
account_signals: ({
|
|
551
|
+
type: "new_job";
|
|
552
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
553
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
554
|
+
keywords?: string[] | undefined;
|
|
555
|
+
} | {
|
|
556
|
+
type: "funding";
|
|
557
|
+
minimum_amount_usd?: number | null | undefined;
|
|
558
|
+
} | {
|
|
559
|
+
type: "technology_adopted";
|
|
560
|
+
technologies: string[];
|
|
561
|
+
} | {
|
|
562
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
563
|
+
})[];
|
|
564
|
+
contact_scope: "none" | "all" | "selected";
|
|
565
|
+
contact_signals: {
|
|
566
|
+
type: "job_change" | "title_change";
|
|
567
|
+
}[];
|
|
568
|
+
expected_revision: number | null;
|
|
569
|
+
selected_contact_ids?: string[] | undefined;
|
|
570
|
+
instructions?: string | null | undefined;
|
|
571
|
+
}>;
|
|
572
|
+
export type SaveAccountMonitorRequest = z.infer<typeof saveAccountMonitorRequestSchema>;
|
|
573
|
+
/**
|
|
574
|
+
* Start watching several accounts with one set of rules. Specific contacts
|
|
575
|
+
* belong to one account, so only "none" or "all" contacts apply here.
|
|
576
|
+
*/
|
|
577
|
+
export declare const watchAccountsRequestSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
578
|
+
card_ids: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
|
|
579
|
+
account_signals: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
580
|
+
type: z.ZodLiteral<"new_job">;
|
|
581
|
+
departments: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it", ...("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[]]>, "many">>, ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[], ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined>;
|
|
582
|
+
seniorities: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["leadership" | "senior" | "mid_level" | "junior", ...("leadership" | "senior" | "mid_level" | "junior")[]]>, "many">>, ("leadership" | "senior" | "mid_level" | "junior")[], ("leadership" | "senior" | "mid_level" | "junior")[] | undefined>;
|
|
583
|
+
keywords: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>>;
|
|
584
|
+
}, "strict", z.ZodTypeAny, {
|
|
585
|
+
type: "new_job";
|
|
586
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
587
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
588
|
+
keywords: string[];
|
|
589
|
+
}, {
|
|
590
|
+
type: "new_job";
|
|
591
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
592
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
593
|
+
keywords?: string[] | undefined;
|
|
594
|
+
}>, z.ZodObject<{
|
|
595
|
+
type: z.ZodLiteral<"funding">;
|
|
596
|
+
minimum_amount_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
597
|
+
}, "strict", z.ZodTypeAny, {
|
|
598
|
+
type: "funding";
|
|
599
|
+
minimum_amount_usd: number | null;
|
|
600
|
+
}, {
|
|
601
|
+
type: "funding";
|
|
602
|
+
minimum_amount_usd?: number | null | undefined;
|
|
603
|
+
}>, z.ZodObject<{
|
|
604
|
+
type: z.ZodLiteral<"technology_adopted">;
|
|
605
|
+
technologies: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>, string[], string[]>;
|
|
606
|
+
}, "strict", z.ZodTypeAny, {
|
|
607
|
+
type: "technology_adopted";
|
|
608
|
+
technologies: string[];
|
|
609
|
+
}, {
|
|
610
|
+
type: "technology_adopted";
|
|
611
|
+
technologies: string[];
|
|
612
|
+
}>, z.ZodObject<{
|
|
613
|
+
type: z.ZodLiteral<NewsSignalType>;
|
|
614
|
+
}, "strict", z.ZodTypeAny, {
|
|
615
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
616
|
+
}, {
|
|
617
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
618
|
+
}>]>, "many">;
|
|
619
|
+
contact_scope: z.ZodEnum<["none", "all"]>;
|
|
620
|
+
contact_signals: z.ZodArray<z.ZodObject<{
|
|
621
|
+
type: z.ZodEnum<["job_change", "title_change"]>;
|
|
622
|
+
}, "strict", z.ZodTypeAny, {
|
|
623
|
+
type: "job_change" | "title_change";
|
|
624
|
+
}, {
|
|
625
|
+
type: "job_change" | "title_change";
|
|
626
|
+
}>, "many">;
|
|
627
|
+
instructions: z.ZodEffects<z.ZodDefault<z.ZodNullable<z.ZodString>>, string | null, string | null | undefined>;
|
|
628
|
+
}, "strict", z.ZodTypeAny, {
|
|
629
|
+
account_signals: ({
|
|
630
|
+
type: "new_job";
|
|
631
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
632
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
633
|
+
keywords: string[];
|
|
634
|
+
} | {
|
|
635
|
+
type: "funding";
|
|
636
|
+
minimum_amount_usd: number | null;
|
|
637
|
+
} | {
|
|
638
|
+
type: "technology_adopted";
|
|
639
|
+
technologies: string[];
|
|
640
|
+
} | {
|
|
641
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
642
|
+
})[];
|
|
643
|
+
contact_scope: "none" | "all";
|
|
644
|
+
contact_signals: {
|
|
645
|
+
type: "job_change" | "title_change";
|
|
646
|
+
}[];
|
|
647
|
+
instructions: string | null;
|
|
648
|
+
card_ids: string[];
|
|
649
|
+
}, {
|
|
650
|
+
account_signals: ({
|
|
651
|
+
type: "new_job";
|
|
652
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
653
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
654
|
+
keywords?: string[] | undefined;
|
|
655
|
+
} | {
|
|
656
|
+
type: "funding";
|
|
657
|
+
minimum_amount_usd?: number | null | undefined;
|
|
658
|
+
} | {
|
|
659
|
+
type: "technology_adopted";
|
|
660
|
+
technologies: string[];
|
|
661
|
+
} | {
|
|
662
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
663
|
+
})[];
|
|
664
|
+
contact_scope: "none" | "all";
|
|
665
|
+
contact_signals: {
|
|
666
|
+
type: "job_change" | "title_change";
|
|
667
|
+
}[];
|
|
668
|
+
card_ids: string[];
|
|
669
|
+
instructions?: string | null | undefined;
|
|
670
|
+
}>, {
|
|
671
|
+
account_signals: ({
|
|
672
|
+
type: "new_job";
|
|
673
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
674
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
675
|
+
keywords: string[];
|
|
676
|
+
} | {
|
|
677
|
+
type: "funding";
|
|
678
|
+
minimum_amount_usd: number | null;
|
|
679
|
+
} | {
|
|
680
|
+
type: "technology_adopted";
|
|
681
|
+
technologies: string[];
|
|
682
|
+
} | {
|
|
683
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
684
|
+
})[];
|
|
685
|
+
contact_scope: "none" | "all";
|
|
686
|
+
contact_signals: {
|
|
687
|
+
type: "job_change" | "title_change";
|
|
688
|
+
}[];
|
|
689
|
+
instructions: string | null;
|
|
690
|
+
card_ids: string[];
|
|
691
|
+
}, {
|
|
692
|
+
account_signals: ({
|
|
693
|
+
type: "new_job";
|
|
694
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
695
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
696
|
+
keywords?: string[] | undefined;
|
|
697
|
+
} | {
|
|
698
|
+
type: "funding";
|
|
699
|
+
minimum_amount_usd?: number | null | undefined;
|
|
700
|
+
} | {
|
|
701
|
+
type: "technology_adopted";
|
|
702
|
+
technologies: string[];
|
|
703
|
+
} | {
|
|
704
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
705
|
+
})[];
|
|
706
|
+
contact_scope: "none" | "all";
|
|
707
|
+
contact_signals: {
|
|
708
|
+
type: "job_change" | "title_change";
|
|
709
|
+
}[];
|
|
710
|
+
card_ids: string[];
|
|
711
|
+
instructions?: string | null | undefined;
|
|
712
|
+
}>, {
|
|
713
|
+
account_signals: ({
|
|
714
|
+
type: "new_job";
|
|
715
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
716
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
717
|
+
keywords: string[];
|
|
718
|
+
} | {
|
|
719
|
+
type: "funding";
|
|
720
|
+
minimum_amount_usd: number | null;
|
|
721
|
+
} | {
|
|
722
|
+
type: "technology_adopted";
|
|
723
|
+
technologies: string[];
|
|
724
|
+
} | {
|
|
725
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
726
|
+
})[];
|
|
727
|
+
contact_scope: "none" | "all";
|
|
728
|
+
contact_signals: {
|
|
729
|
+
type: "job_change" | "title_change";
|
|
730
|
+
}[];
|
|
731
|
+
instructions: string | null;
|
|
732
|
+
card_ids: string[];
|
|
733
|
+
}, {
|
|
734
|
+
account_signals: ({
|
|
735
|
+
type: "new_job";
|
|
736
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
737
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
738
|
+
keywords?: string[] | undefined;
|
|
739
|
+
} | {
|
|
740
|
+
type: "funding";
|
|
741
|
+
minimum_amount_usd?: number | null | undefined;
|
|
742
|
+
} | {
|
|
743
|
+
type: "technology_adopted";
|
|
744
|
+
technologies: string[];
|
|
745
|
+
} | {
|
|
746
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
747
|
+
})[];
|
|
748
|
+
contact_scope: "none" | "all";
|
|
749
|
+
contact_signals: {
|
|
750
|
+
type: "job_change" | "title_change";
|
|
751
|
+
}[];
|
|
752
|
+
card_ids: string[];
|
|
753
|
+
instructions?: string | null | undefined;
|
|
754
|
+
}>;
|
|
755
|
+
export type WatchAccountsRequest = z.infer<typeof watchAccountsRequestSchema>;
|
|
756
|
+
/**
|
|
757
|
+
* What happened to each account: accounts already watched keep their own
|
|
758
|
+
* rules, and accounts past the workspace limit are not started.
|
|
759
|
+
*/
|
|
760
|
+
export declare const WATCH_ACCOUNT_OUTCOMES: readonly ["watching", "already_watched", "limit_reached", "not_found"];
|
|
761
|
+
export type WatchAccountOutcome = (typeof WATCH_ACCOUNT_OUTCOMES)[number];
|
|
762
|
+
export type WatchAccountResult = {
|
|
763
|
+
card_id: string;
|
|
764
|
+
outcome: WatchAccountOutcome;
|
|
765
|
+
};
|
|
766
|
+
export declare const setAccountMonitorStatusRequestSchema: z.ZodObject<{
|
|
767
|
+
monitor_ids: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
|
|
768
|
+
status: z.ZodEnum<["active", "paused", "archived"]>;
|
|
769
|
+
}, "strict", z.ZodTypeAny, {
|
|
770
|
+
status: "archived" | "active" | "paused";
|
|
771
|
+
monitor_ids: string[];
|
|
772
|
+
}, {
|
|
773
|
+
status: "archived" | "active" | "paused";
|
|
774
|
+
monitor_ids: string[];
|
|
775
|
+
}>;
|
|
776
|
+
export declare const setMonitorEventStateRequestSchema: z.ZodObject<{
|
|
777
|
+
event_ids: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
|
|
778
|
+
state: z.ZodEnum<["new", "reviewed", "dismissed"]>;
|
|
779
|
+
}, "strict", z.ZodTypeAny, {
|
|
780
|
+
state: "new" | "reviewed" | "dismissed";
|
|
781
|
+
event_ids: string[];
|
|
782
|
+
}, {
|
|
783
|
+
state: "new" | "reviewed" | "dismissed";
|
|
784
|
+
event_ids: string[];
|
|
785
|
+
}>;
|
|
786
|
+
/** The accounts setup is for, so its one-click requests can follow what their source requests asked for. */
|
|
787
|
+
export declare const monitorRequestExamplesRequestSchema: z.ZodObject<{
|
|
788
|
+
card_ids: z.ZodEffects<z.ZodArray<z.ZodString, "many">, string[], string[]>;
|
|
789
|
+
}, "strict", z.ZodTypeAny, {
|
|
790
|
+
card_ids: string[];
|
|
791
|
+
}, {
|
|
792
|
+
card_ids: string[];
|
|
793
|
+
}>;
|
|
794
|
+
export declare const suggestMonitorSignalsRequestSchema: z.ZodObject<{
|
|
795
|
+
text: z.ZodString;
|
|
796
|
+
}, "strict", z.ZodTypeAny, {
|
|
797
|
+
text: string;
|
|
798
|
+
}, {
|
|
799
|
+
text: string;
|
|
800
|
+
}>;
|
|
801
|
+
export declare const monitorSignalSuggestionSchema: z.ZodObject<{
|
|
802
|
+
account_signals: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
803
|
+
type: z.ZodLiteral<"new_job">;
|
|
804
|
+
departments: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it", ...("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[]]>, "many">>, ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[], ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined>;
|
|
805
|
+
seniorities: z.ZodEffects<z.ZodDefault<z.ZodArray<z.ZodEnum<["leadership" | "senior" | "mid_level" | "junior", ...("leadership" | "senior" | "mid_level" | "junior")[]]>, "many">>, ("leadership" | "senior" | "mid_level" | "junior")[], ("leadership" | "senior" | "mid_level" | "junior")[] | undefined>;
|
|
806
|
+
keywords: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>>;
|
|
807
|
+
}, "strict", z.ZodTypeAny, {
|
|
808
|
+
type: "new_job";
|
|
809
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
810
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
811
|
+
keywords: string[];
|
|
812
|
+
}, {
|
|
813
|
+
type: "new_job";
|
|
814
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
815
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
816
|
+
keywords?: string[] | undefined;
|
|
817
|
+
}>, z.ZodObject<{
|
|
818
|
+
type: z.ZodLiteral<"funding">;
|
|
819
|
+
minimum_amount_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
|
|
820
|
+
}, "strict", z.ZodTypeAny, {
|
|
821
|
+
type: "funding";
|
|
822
|
+
minimum_amount_usd: number | null;
|
|
823
|
+
}, {
|
|
824
|
+
type: "funding";
|
|
825
|
+
minimum_amount_usd?: number | null | undefined;
|
|
826
|
+
}>, z.ZodObject<{
|
|
827
|
+
type: z.ZodLiteral<"technology_adopted">;
|
|
828
|
+
technologies: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">, string[], string[]>, string[], string[]>;
|
|
829
|
+
}, "strict", z.ZodTypeAny, {
|
|
830
|
+
type: "technology_adopted";
|
|
831
|
+
technologies: string[];
|
|
832
|
+
}, {
|
|
833
|
+
type: "technology_adopted";
|
|
834
|
+
technologies: string[];
|
|
835
|
+
}>, z.ZodObject<{
|
|
836
|
+
type: z.ZodLiteral<NewsSignalType>;
|
|
837
|
+
}, "strict", z.ZodTypeAny, {
|
|
838
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
839
|
+
}, {
|
|
840
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
841
|
+
}>]>, "many">;
|
|
842
|
+
contact_scope: z.ZodEnum<["none", "all", "selected"]>;
|
|
843
|
+
contact_signals: z.ZodArray<z.ZodObject<{
|
|
844
|
+
type: z.ZodEnum<["job_change", "title_change"]>;
|
|
845
|
+
}, "strict", z.ZodTypeAny, {
|
|
846
|
+
type: "job_change" | "title_change";
|
|
847
|
+
}, {
|
|
848
|
+
type: "job_change" | "title_change";
|
|
849
|
+
}>, "many">;
|
|
850
|
+
/** Parts of the request that no available signal can monitor. */
|
|
851
|
+
unsupported: z.ZodArray<z.ZodString, "many">;
|
|
852
|
+
/** The request asks about their tools but names none we can check, so the user picks them. */
|
|
853
|
+
choose_technologies: z.ZodOptional<z.ZodBoolean>;
|
|
854
|
+
method: z.ZodEnum<["model", "keywords"]>;
|
|
855
|
+
}, "strict", z.ZodTypeAny, {
|
|
856
|
+
method: "keywords" | "model";
|
|
857
|
+
account_signals: ({
|
|
858
|
+
type: "new_job";
|
|
859
|
+
departments: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[];
|
|
860
|
+
seniorities: ("leadership" | "senior" | "mid_level" | "junior")[];
|
|
861
|
+
keywords: string[];
|
|
862
|
+
} | {
|
|
863
|
+
type: "funding";
|
|
864
|
+
minimum_amount_usd: number | null;
|
|
865
|
+
} | {
|
|
866
|
+
type: "technology_adopted";
|
|
867
|
+
technologies: string[];
|
|
868
|
+
} | {
|
|
869
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
870
|
+
})[];
|
|
871
|
+
contact_scope: "none" | "all" | "selected";
|
|
872
|
+
contact_signals: {
|
|
873
|
+
type: "job_change" | "title_change";
|
|
874
|
+
}[];
|
|
875
|
+
unsupported: string[];
|
|
876
|
+
choose_technologies?: boolean | undefined;
|
|
877
|
+
}, {
|
|
878
|
+
method: "keywords" | "model";
|
|
879
|
+
account_signals: ({
|
|
880
|
+
type: "new_job";
|
|
881
|
+
departments?: ("data" | "operations" | "sales" | "marketing" | "engineering" | "product" | "design" | "customer_success" | "finance" | "people" | "legal" | "it")[] | undefined;
|
|
882
|
+
seniorities?: ("leadership" | "senior" | "mid_level" | "junior")[] | undefined;
|
|
883
|
+
keywords?: string[] | undefined;
|
|
884
|
+
} | {
|
|
885
|
+
type: "funding";
|
|
886
|
+
minimum_amount_usd?: number | null | undefined;
|
|
887
|
+
} | {
|
|
888
|
+
type: "technology_adopted";
|
|
889
|
+
technologies: string[];
|
|
890
|
+
} | {
|
|
891
|
+
type: "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting";
|
|
892
|
+
})[];
|
|
893
|
+
contact_scope: "none" | "all" | "selected";
|
|
894
|
+
contact_signals: {
|
|
895
|
+
type: "job_change" | "title_change";
|
|
896
|
+
}[];
|
|
897
|
+
unsupported: string[];
|
|
898
|
+
choose_technologies?: boolean | undefined;
|
|
899
|
+
}>;
|
|
900
|
+
export type MonitorSignalSuggestion = z.infer<typeof monitorSignalSuggestionSchema>;
|
|
901
|
+
export declare const feedQuerySchema: z.ZodObject<{
|
|
902
|
+
company_card_id: z.ZodOptional<z.ZodString>;
|
|
903
|
+
company: z.ZodOptional<z.ZodString>;
|
|
904
|
+
signal_type: z.ZodOptional<z.ZodEnum<["new_job", "funding", "product_news", "expansion", "leadership_news", "partnership", "acquisition", "customer_win", "cost_cutting", "technology_adopted", "job_change", "title_change"]>>;
|
|
905
|
+
state: z.ZodDefault<z.ZodEnum<["new", "open", "all"]>>;
|
|
906
|
+
cursor: z.ZodOptional<z.ZodString>;
|
|
907
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
908
|
+
}, "strict", z.ZodTypeAny, {
|
|
909
|
+
state: "open" | "all" | "new";
|
|
910
|
+
limit: number;
|
|
911
|
+
company_card_id?: string | undefined;
|
|
912
|
+
company?: string | undefined;
|
|
913
|
+
signal_type?: "funding" | "new_job" | "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting" | "technology_adopted" | "job_change" | "title_change" | undefined;
|
|
914
|
+
cursor?: string | undefined;
|
|
915
|
+
}, {
|
|
916
|
+
state?: "open" | "all" | "new" | undefined;
|
|
917
|
+
limit?: number | undefined;
|
|
918
|
+
company_card_id?: string | undefined;
|
|
919
|
+
company?: string | undefined;
|
|
920
|
+
signal_type?: "funding" | "new_job" | "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting" | "technology_adopted" | "job_change" | "title_change" | undefined;
|
|
921
|
+
cursor?: string | undefined;
|
|
922
|
+
}>;
|
|
923
|
+
export type FeedQuery = z.infer<typeof feedQuerySchema>;
|
|
924
|
+
/**
|
|
925
|
+
* Signals pages by account; an account's other alerts of one type page through
|
|
926
|
+
* the feed. An exact company card reads that one account's group.
|
|
927
|
+
*/
|
|
928
|
+
export declare const alertGroupsQuerySchema: z.ZodObject<{
|
|
929
|
+
company_card_id: z.ZodOptional<z.ZodString>;
|
|
930
|
+
company: z.ZodOptional<z.ZodString>;
|
|
931
|
+
signal_type: z.ZodOptional<z.ZodEnum<["new_job", "funding", "product_news", "expansion", "leadership_news", "partnership", "acquisition", "customer_win", "cost_cutting", "technology_adopted", "job_change", "title_change"]>>;
|
|
932
|
+
state: z.ZodDefault<z.ZodEnum<["new", "open", "all"]>>;
|
|
933
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
934
|
+
}, "strict", z.ZodTypeAny, {
|
|
935
|
+
state: "open" | "all" | "new";
|
|
936
|
+
limit: number;
|
|
937
|
+
company_card_id?: string | undefined;
|
|
938
|
+
company?: string | undefined;
|
|
939
|
+
signal_type?: "funding" | "new_job" | "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting" | "technology_adopted" | "job_change" | "title_change" | undefined;
|
|
940
|
+
}, {
|
|
941
|
+
state?: "open" | "all" | "new" | undefined;
|
|
942
|
+
limit?: number | undefined;
|
|
943
|
+
company_card_id?: string | undefined;
|
|
944
|
+
company?: string | undefined;
|
|
945
|
+
signal_type?: "funding" | "new_job" | "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting" | "technology_adopted" | "job_change" | "title_change" | undefined;
|
|
946
|
+
}>;
|
|
947
|
+
export type AlertGroupsQuery = z.infer<typeof alertGroupsQuerySchema>;
|
|
948
|
+
export declare const monitorEventSourceSchema: z.ZodObject<{
|
|
949
|
+
url: z.ZodEffects<z.ZodString, string, string>;
|
|
950
|
+
label: z.ZodString;
|
|
951
|
+
kind: z.ZodEnum<["job_posting", "article", "company_page", "linkedin_profile"]>;
|
|
952
|
+
}, "strict", z.ZodTypeAny, {
|
|
953
|
+
url: string;
|
|
954
|
+
label: string;
|
|
955
|
+
kind: "job_posting" | "article" | "company_page" | "linkedin_profile";
|
|
956
|
+
}, {
|
|
957
|
+
url: string;
|
|
958
|
+
label: string;
|
|
959
|
+
kind: "job_posting" | "article" | "company_page" | "linkedin_profile";
|
|
960
|
+
}>;
|
|
961
|
+
export type MonitorEventSource = z.infer<typeof monitorEventSourceSchema>;
|
|
962
|
+
export type MonitorEventView = {
|
|
963
|
+
id: string;
|
|
964
|
+
monitor_id: string;
|
|
965
|
+
company_card_id: string;
|
|
966
|
+
company_name: string;
|
|
967
|
+
/** The account's ICP, so Signals can open it when another ICP is on the board. */
|
|
968
|
+
company_icp_id: string | null;
|
|
969
|
+
lead_id: string | null;
|
|
970
|
+
contact_name: string | null;
|
|
971
|
+
signal_type: MonitorSignalType;
|
|
972
|
+
headline: string;
|
|
973
|
+
detail: Record<string, unknown>;
|
|
974
|
+
sources: MonitorEventSource[];
|
|
975
|
+
occurred_at: string | null;
|
|
976
|
+
discovered_at: string;
|
|
977
|
+
created_at: string;
|
|
978
|
+
provider: MonitorEventProvider;
|
|
979
|
+
origin: "baseline" | "monitoring";
|
|
980
|
+
state: MonitorEventState;
|
|
981
|
+
};
|
|
982
|
+
/**
|
|
983
|
+
* One watched account in Signals: exact alert counts, per signal type with
|
|
984
|
+
* the newest five alerts of each, largest type first.
|
|
985
|
+
*/
|
|
986
|
+
export type MonitorAlertGroupView = {
|
|
987
|
+
company_card_id: string;
|
|
988
|
+
company_name: string;
|
|
989
|
+
company_icp_id: string | null;
|
|
990
|
+
latest_at: string;
|
|
991
|
+
total: number;
|
|
992
|
+
new_count: number;
|
|
993
|
+
/** The account's newest new alerts (up to 500), for Mark all not useful. */
|
|
994
|
+
new_event_ids: string[];
|
|
995
|
+
signals: {
|
|
996
|
+
signal_type: MonitorSignalType;
|
|
997
|
+
count: number;
|
|
998
|
+
events: MonitorEventView[];
|
|
999
|
+
}[];
|
|
1000
|
+
};
|
|
1001
|
+
export type MonitorSyncView = {
|
|
1002
|
+
source: MonitorSource;
|
|
1003
|
+
enabled: boolean;
|
|
1004
|
+
next_due_at: string | null;
|
|
1005
|
+
last_finished_at: string | null;
|
|
1006
|
+
last_outcome: string | null;
|
|
1007
|
+
};
|
|
1008
|
+
export type AccountMonitorView = {
|
|
1009
|
+
id: string;
|
|
1010
|
+
company_card_id: string;
|
|
1011
|
+
company_name: string;
|
|
1012
|
+
company_domain: string | null;
|
|
1013
|
+
status: MonitorStatus;
|
|
1014
|
+
account_signals: AccountSignalRule[];
|
|
1015
|
+
contact_scope: ContactScope;
|
|
1016
|
+
contact_signals: ContactSignalRule[];
|
|
1017
|
+
instructions: string | null;
|
|
1018
|
+
revision: number;
|
|
1019
|
+
watched_contact_count: number;
|
|
1020
|
+
new_event_count: number;
|
|
1021
|
+
last_checked_at: string | null;
|
|
1022
|
+
next_check_at: string | null;
|
|
1023
|
+
/** Some signals wait for the account's website or LinkedIn page. */
|
|
1024
|
+
identity_missing: boolean;
|
|
1025
|
+
/** A due check waits until the workspace has a credit for this week. */
|
|
1026
|
+
needs_credits: boolean;
|
|
1027
|
+
updated_at: string;
|
|
1028
|
+
};
|
|
1029
|
+
export type MonitorContactOption = {
|
|
1030
|
+
lead_id: string;
|
|
1031
|
+
name: string;
|
|
1032
|
+
role: string | null;
|
|
1033
|
+
has_linkedin: boolean;
|
|
1034
|
+
selected: boolean;
|
|
1035
|
+
state: "watching" | "moved" | "unavailable" | null;
|
|
1036
|
+
};
|
|
1037
|
+
/** Datasets a monitor must sync for its chosen signals. */
|
|
1038
|
+
export declare function requiredMonitorSources(signals: {
|
|
1039
|
+
account_signals: ReadonlyArray<{
|
|
1040
|
+
type: string;
|
|
1041
|
+
}>;
|
|
1042
|
+
contact_scope: ContactScope;
|
|
1043
|
+
contact_signals: ReadonlyArray<{
|
|
1044
|
+
type: string;
|
|
1045
|
+
}>;
|
|
1046
|
+
}): MonitorSource[];
|
|
1047
|
+
/** Lowercase word tokens, matching the provider's case-insensitive word rule. */
|
|
1048
|
+
export declare function titleWords(title: string): Set<string>;
|
|
1049
|
+
export declare function titleMatchesPhrase(words: ReadonlySet<string>, phrase: string): boolean;
|
|
1050
|
+
/** Commas, slashes, brackets and spaced dashes separate a title's parts. */
|
|
1051
|
+
export declare const TITLE_PART_SEPARATOR: RegExp;
|
|
1052
|
+
/**
|
|
1053
|
+
* A keyword phrase must appear in order within one part of the title, its
|
|
1054
|
+
* words next to each other or joined as in "Customer & Partner Success" (see
|
|
1055
|
+
* containsPhrase), so "solutions engineer" does not match "Senior Software
|
|
1056
|
+
* Engineer, AI Infrastructure Solutions" and "revenue operations" does not
|
|
1057
|
+
* match "Revenue Accounting Operations" or "Revenue Accounting & Operations".
|
|
1058
|
+
* A phrase that pairs a leadership word with a
|
|
1059
|
+
* function, such as "head product", needs only its words somewhere in the
|
|
1060
|
+
* title, as in "VP, Product" or "Director of Product". An exclusion phrase
|
|
1061
|
+
* needs only its words within one part, so it excludes the wider set.
|
|
1062
|
+
*/
|
|
1063
|
+
export declare function jobDepartmentsForTitle(title: string): JobDepartmentId[];
|
|
1064
|
+
/**
|
|
1065
|
+
* Seniority from the provider's level plus unambiguous title words. Returns
|
|
1066
|
+
* null when neither source states a level, so filters fail closed.
|
|
1067
|
+
*/
|
|
1068
|
+
export declare function jobSeniorityForTitle(title: string, providerSeniority: string | null | undefined): JobSeniorityId | null;
|
|
1069
|
+
/** Title phrases sent to the jobs provider for one hiring rule. */
|
|
1070
|
+
export declare function jobTitleQueryPhrases(rule: NewJobSignalRule): string[];
|
|
1071
|
+
/** True when one posted job satisfies every filter of the user's rule. */
|
|
1072
|
+
export declare function jobMatchesRule(job: {
|
|
1073
|
+
title: string;
|
|
1074
|
+
seniority?: string | null;
|
|
1075
|
+
}, rule: NewJobSignalRule): {
|
|
1076
|
+
matches: boolean;
|
|
1077
|
+
departments: JobDepartmentId[];
|
|
1078
|
+
seniority: JobSeniorityId | null;
|
|
1079
|
+
};
|
|
1080
|
+
/**
|
|
1081
|
+
* True when a job, with the teams and level it was classified under, satisfies
|
|
1082
|
+
* every filter of the rule. A saved hiring alert keeps those, so it can be
|
|
1083
|
+
* judged again after the rule changes.
|
|
1084
|
+
*/
|
|
1085
|
+
export declare function jobFitsRule(job: {
|
|
1086
|
+
title: string;
|
|
1087
|
+
departments: readonly JobDepartmentId[];
|
|
1088
|
+
seniority: JobSeniorityId | null;
|
|
1089
|
+
}, rule: NewJobSignalRule): boolean;
|
|
1090
|
+
export declare function formatUsdCompact(value: number): string;
|
|
1091
|
+
export declare function describeContactScope(scope: ContactScope, watchedCount: number): string;
|
|
1092
|
+
/** Opaque keyset cursor for the alert feed, and for Signals' accounts (latest alert, card id). */
|
|
1093
|
+
export declare function encodeFeedCursor(createdAt: string, id: string): string;
|
|
1094
|
+
export declare function decodeFeedCursor(cursor: string | undefined): {
|
|
1095
|
+
createdAt: string;
|
|
1096
|
+
id: string;
|
|
1097
|
+
} | null;
|
|
1098
|
+
/**
|
|
1099
|
+
* A salary as people write it. PredictLeads sends "224000 - 356500 USD per
|
|
1100
|
+
* year", where TheirStack sends "$224k - $357k per year"; anything else shows
|
|
1101
|
+
* as sent. Other dollars keep their prefix, such as "CA$224k".
|
|
1102
|
+
*/
|
|
1103
|
+
export declare function jobSalary(value: unknown): string | null;
|
|
1104
|
+
/** One short line of context under the headline, from provider fields only. Signals and the workspace API both show it. */
|
|
1105
|
+
export declare function alertContext(event: MonitorEventView): string | null;
|
|
1106
|
+
export type AlertActivity = {
|
|
1107
|
+
iso: string;
|
|
1108
|
+
basis: "occurred" | "reported" | "detected";
|
|
1109
|
+
};
|
|
1110
|
+
/**
|
|
1111
|
+
* When an alert happened: the event itself, else when it was reported, else
|
|
1112
|
+
* when monitoring found it. Its card and its account's summary show this date.
|
|
1113
|
+
*/
|
|
1114
|
+
export declare function alertActivity(event: MonitorEventView): AlertActivity;
|
|
1115
|
+
/**
|
|
1116
|
+
* The calendar day (YYYY-MM-DD) an alert happened on, when its source gives
|
|
1117
|
+
* only a day, such as a job's posting date or a funding round's effective
|
|
1118
|
+
* date. It is stored as midnight UTC, which is the previous day west of UTC,
|
|
1119
|
+
* so it is shown as this day rather than converted. Null when it is an instant.
|
|
1120
|
+
*/
|
|
1121
|
+
export declare function alertCalendarDay(event: Pick<MonitorEventView, "occurred_at" | "detail">): string | null;
|
|
1122
|
+
/** An account's latest day, when its newest alert's source gives only a day. */
|
|
1123
|
+
export declare function alertGroupLatestDay(latestAt: string | null, events: Array<Pick<MonitorEventView, "occurred_at" | "detail">>): string | null;
|
|
1124
|
+
/**
|
|
1125
|
+
* The rating someone gave an alert, or null. Alerts found when monitoring
|
|
1126
|
+
* started are saved as evidence without anyone rating them, so `reviewed` is
|
|
1127
|
+
* a Useful rating only on a later alert.
|
|
1128
|
+
*/
|
|
1129
|
+
export declare function alertRating(event: Pick<MonitorEventView, "state" | "origin">): "reviewed" | "dismissed" | null;
|
|
1130
|
+
/**
|
|
1131
|
+
* Signals as the workspace API and MCP return them: what the Signals screen
|
|
1132
|
+
* shows, with the screen's context line in place of the stored provider
|
|
1133
|
+
* detail, and without provider, monitor_id, created_at or new_event_ids.
|
|
1134
|
+
*/
|
|
1135
|
+
export declare function publicSignalGroups(groups: MonitorAlertGroupView[]): {
|
|
1136
|
+
company_card_id: string;
|
|
1137
|
+
company_name: string;
|
|
1138
|
+
company_icp_id: string | null;
|
|
1139
|
+
latest_at: string;
|
|
1140
|
+
latest_day: string | null;
|
|
1141
|
+
total: number;
|
|
1142
|
+
new_count: number;
|
|
1143
|
+
signals: {
|
|
1144
|
+
signal_type: "funding" | "new_job" | "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting" | "technology_adopted" | "job_change" | "title_change";
|
|
1145
|
+
count: number;
|
|
1146
|
+
events: {
|
|
1147
|
+
id: string;
|
|
1148
|
+
signal_type: "funding" | "new_job" | "product_news" | "expansion" | "leadership_news" | "partnership" | "acquisition" | "customer_win" | "cost_cutting" | "technology_adopted" | "job_change" | "title_change";
|
|
1149
|
+
headline: string;
|
|
1150
|
+
context: string | null;
|
|
1151
|
+
contact_name: string | null;
|
|
1152
|
+
lead_id: string | null;
|
|
1153
|
+
occurred_at: string | null;
|
|
1154
|
+
discovered_at: string;
|
|
1155
|
+
date: string;
|
|
1156
|
+
day: string | null;
|
|
1157
|
+
date_basis: "occurred" | "reported" | "detected";
|
|
1158
|
+
state: "new" | "reviewed" | "dismissed";
|
|
1159
|
+
rating: string | null;
|
|
1160
|
+
origin: "baseline" | "monitoring";
|
|
1161
|
+
sources: {
|
|
1162
|
+
url: string;
|
|
1163
|
+
label: string;
|
|
1164
|
+
kind: "job_posting" | "article" | "company_page" | "linkedin_profile";
|
|
1165
|
+
}[];
|
|
1166
|
+
}[];
|
|
1167
|
+
}[];
|
|
1168
|
+
}[];
|
|
1169
|
+
export {};
|