@sellable/mcp 0.1.269 → 0.1.272
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index-dev.js +0 -0
- package/dist/index.js +0 -0
- package/dist/server.js +7 -8
- package/dist/tools/content-posts.d.ts +421 -1
- package/dist/tools/content-posts.js +802 -0
- package/dist/tools/engage-discovery.d.ts +24 -0
- package/dist/tools/engage-discovery.js +114 -9
- package/dist/tools/leads.js +1 -1
- package/dist/tools/registry.d.ts +76 -47
- package/dist/tools/registry.js +0 -2
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +0 -10
- package/skills/create-campaign/core/providers/prospeo.json +2 -5
- package/skills/create-post/SKILL.md +768 -36
- package/skills/create-post/references/hook-research-playbook.md +509 -31
- package/skills/create-post/references/linkedin-preview-rendering.md +221 -0
- package/skills/create-post/references/post-file-contract.md +41 -0
- package/skills/create-post/references/post-validation.md +297 -27
- package/skills/create-post/references/premise-development.md +298 -7
- package/skills/providers/prospeo.md +0 -21
- package/skills/research/config.json +9 -0
- package/dist/tools/harvest-jobs.d.ts +0 -182
- package/dist/tools/harvest-jobs.js +0 -429
|
@@ -1,16 +1,42 @@
|
|
|
1
|
-
# Premise Development
|
|
1
|
+
# Premise Development V2
|
|
2
2
|
|
|
3
3
|
A strong post is not an idea with a better hook. A strong post is a valuable
|
|
4
4
|
premise wrapped in a sharp opening.
|
|
5
5
|
|
|
6
|
-
Use this stage after
|
|
7
|
-
|
|
6
|
+
Use this stage after audience/hook research and before hook candidates. V2 premise
|
|
7
|
+
development also consumes the source post templates from hook research:
|
|
8
|
+
post positioning breakdowns, viral-post outlines, hook-to-body promise maps, and
|
|
9
|
+
body expression inputs.
|
|
10
|
+
|
|
11
|
+
Do not generate hook candidates until at least one `Premise Card` exists and at
|
|
12
|
+
least one source template has either been selected or explicitly rejected as a
|
|
13
|
+
poor fit.
|
|
8
14
|
|
|
9
15
|
## Goal
|
|
10
16
|
|
|
11
17
|
Turn the raw idea into a real story, observed tension, or useful argument that a
|
|
12
18
|
specific reader would care about.
|
|
13
19
|
|
|
20
|
+
Use this post tension framework when evaluating whether the premise can hold
|
|
21
|
+
attention:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
Belief -> Contradiction -> Stakes -> Proof -> Mechanism -> Reframe -> Useful Move
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- `Belief`: what the reader already thinks or wants to be true
|
|
28
|
+
- `Contradiction`: what the source story reveals that does not fit the belief
|
|
29
|
+
- `Stakes`: what the reader loses if they keep believing the old version
|
|
30
|
+
- `Proof`: the scene, number, repeated pattern, or concrete artifact that makes
|
|
31
|
+
the contradiction credible
|
|
32
|
+
- `Mechanism`: why the thing actually works or fails
|
|
33
|
+
- `Reframe`: the sharper way to see the problem after the mechanism is clear
|
|
34
|
+
- `Useful Move`: what the reader can do, notice, stop doing, or test next
|
|
35
|
+
|
|
36
|
+
A post feels "edge of seat" when the hook creates a contradiction the target
|
|
37
|
+
reader cares about, the body delays the answer only while adding proof, and each
|
|
38
|
+
beat either raises tension or repays tension. If a beat does neither, cut it.
|
|
39
|
+
|
|
14
40
|
The premise must answer:
|
|
15
41
|
|
|
16
42
|
- who this is for
|
|
@@ -22,6 +48,8 @@ The premise must answer:
|
|
|
22
48
|
- why now
|
|
23
49
|
- why this user can credibly say it
|
|
24
50
|
- what proof is available and what proof is missing
|
|
51
|
+
- which source template, if any, should shape the narrative
|
|
52
|
+
- which positioning sequence the user's post should follow
|
|
25
53
|
|
|
26
54
|
If the premise has no real scene, no tension, and no reader value, stop before
|
|
27
55
|
drafting. Ask for the missing story or save only a `needs_revision` premise
|
|
@@ -33,10 +61,14 @@ Before writing premise cards, search the available source material:
|
|
|
33
61
|
|
|
34
62
|
- raw idea text
|
|
35
63
|
- voice memo or transcript if provided
|
|
64
|
+
- `Transcript Worldview Packet` from create-post capture
|
|
36
65
|
- `core/story-bank.md`
|
|
37
66
|
- `core/answer-bank.md`
|
|
38
67
|
- `core/proof-ledger.md`
|
|
39
68
|
- `core/wins-ledger.md`
|
|
69
|
+
- `core/transcripts/INDEX.md`
|
|
70
|
+
- `core/content-memory/INDEX.md`, relevant clusters, cards, questions, and
|
|
71
|
+
post seeds
|
|
40
72
|
- approved references and gold standards
|
|
41
73
|
- current-session user corrections or rejections
|
|
42
74
|
|
|
@@ -48,11 +80,37 @@ Look for:
|
|
|
48
80
|
- a before/after: what changed in the user's belief
|
|
49
81
|
- a specific object: Slack note, customer call, campaign table, reply, list,
|
|
50
82
|
demo, failed draft, stale idea, messy workflow
|
|
83
|
+
- repeated worldview: the user's recurring operating belief behind the idea
|
|
84
|
+
- hot-take ingredient: the specific advice, default behavior, or market cliche
|
|
85
|
+
the user is pushing against
|
|
51
86
|
|
|
52
87
|
If no real story is present, use an observed pattern only if it is traceable to
|
|
53
88
|
the raw source or memory. Mark the gap in the premise card. Do not fabricate a
|
|
54
89
|
customer, call, outcome, date, metric, or private scene.
|
|
55
90
|
|
|
91
|
+
## Worldview And Hot-Take Extraction
|
|
92
|
+
|
|
93
|
+
Before scoring premise cards, extract the user's source-backed worldview from
|
|
94
|
+
the transcript packet:
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
Worldview extraction:
|
|
98
|
+
- worldview claim:
|
|
99
|
+
- source transcript/cluster/card:
|
|
100
|
+
- repeated phrase or language pattern:
|
|
101
|
+
- lived proof behind it:
|
|
102
|
+
- common advice it challenges:
|
|
103
|
+
- hot take version:
|
|
104
|
+
- public-safe version:
|
|
105
|
+
- private/sensitive material to avoid:
|
|
106
|
+
- confidence: strong | medium | weak
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
A good hot take is not just a contrarian sentence. It must trace to something
|
|
110
|
+
the user has said, seen, shipped, sold, or learned repeatedly. If the hot take
|
|
111
|
+
only exists because an outside creator framed it well, mark it as borrowed and
|
|
112
|
+
do not use it as the user's premise.
|
|
113
|
+
|
|
56
114
|
## Premise Cards
|
|
57
115
|
|
|
58
116
|
Generate 3-5 premise cards before hooks. Each card must use this shape:
|
|
@@ -81,7 +139,7 @@ tension:
|
|
|
81
139
|
reader value:
|
|
82
140
|
<what the reader learns, sees differently, or can do after reading>
|
|
83
141
|
|
|
84
|
-
why now /
|
|
142
|
+
why now / audience tension:
|
|
85
143
|
<what current research says is resonating>
|
|
86
144
|
|
|
87
145
|
credible why-us:
|
|
@@ -93,14 +151,32 @@ proof available:
|
|
|
93
151
|
proof missing:
|
|
94
152
|
<claims that cannot be made yet>
|
|
95
153
|
|
|
154
|
+
worldview source:
|
|
155
|
+
<transcript/cluster/card/source-backed belief used>
|
|
156
|
+
|
|
157
|
+
hot take:
|
|
158
|
+
<public-safe sharp version of the user's source-backed disagreement>
|
|
159
|
+
|
|
96
160
|
best frame:
|
|
97
161
|
story | contrarian take | teardown | founder confession | future thesis | lesson
|
|
98
162
|
|
|
163
|
+
source template fit:
|
|
164
|
+
<selected source template name or none>
|
|
165
|
+
|
|
166
|
+
positioning sequence to test:
|
|
167
|
+
<Category -> Category -> Category -> ...>
|
|
168
|
+
|
|
169
|
+
viral outline to adapt:
|
|
170
|
+
<beat names from selected source template, rewritten for this user's story>
|
|
171
|
+
|
|
99
172
|
hook territories:
|
|
100
173
|
- <territory 1>
|
|
101
174
|
- <territory 2>
|
|
102
175
|
- <territory 3>
|
|
103
176
|
|
|
177
|
+
body expression inputs:
|
|
178
|
+
- <line shape, proof slot, story beat, mechanism explanation, or closing move>
|
|
179
|
+
|
|
104
180
|
risk:
|
|
105
181
|
<why this premise might still be weak>
|
|
106
182
|
|
|
@@ -108,6 +184,214 @@ score:
|
|
|
108
184
|
<1-100 with short reason>
|
|
109
185
|
```
|
|
110
186
|
|
|
187
|
+
## Template-Aware Premise Selection
|
|
188
|
+
|
|
189
|
+
Do not treat source templates as decoration. A source template is useful only
|
|
190
|
+
when its narrative engine matches something the user can credibly say.
|
|
191
|
+
|
|
192
|
+
For each premise card, compare it against the selected keeper templates from
|
|
193
|
+
hook research:
|
|
194
|
+
|
|
195
|
+
```text
|
|
196
|
+
Template fit check:
|
|
197
|
+
premise:
|
|
198
|
+
source_template:
|
|
199
|
+
template narrative engine:
|
|
200
|
+
matching user story/proof:
|
|
201
|
+
missing user story/proof:
|
|
202
|
+
positioning sequence fit:
|
|
203
|
+
hook promise fit:
|
|
204
|
+
body payoff fit:
|
|
205
|
+
voice fit:
|
|
206
|
+
borrow:
|
|
207
|
+
do not borrow:
|
|
208
|
+
fit verdict: strong | partial | weak | reject
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Reject a template when it depends on source-specific proof, celebrity reach,
|
|
212
|
+
personal context the user does not have, or a body structure that would force a
|
|
213
|
+
fake story. Prefer a less viral template that fits the user's real proof over a
|
|
214
|
+
more viral template that requires borrowed authority.
|
|
215
|
+
|
|
216
|
+
## Viral Narrative Structure
|
|
217
|
+
|
|
218
|
+
Once a premise and source template are selected, create the user's viral-post
|
|
219
|
+
outline before writing body prose.
|
|
220
|
+
|
|
221
|
+
Use this format:
|
|
222
|
+
|
|
223
|
+
```text
|
|
224
|
+
User viral-post outline:
|
|
225
|
+
selected_premise:
|
|
226
|
+
selected_source_template:
|
|
227
|
+
hook_promise:
|
|
228
|
+
see_more_tension:
|
|
229
|
+
body_payoff:
|
|
230
|
+
positioning_sequence:
|
|
231
|
+
<Category> -> <Category> -> <Category> -> ...
|
|
232
|
+
|
|
233
|
+
beats:
|
|
234
|
+
1.
|
|
235
|
+
beat_name:
|
|
236
|
+
narrative_job:
|
|
237
|
+
user_story_or_proof:
|
|
238
|
+
positioning_categories:
|
|
239
|
+
reader_state_before:
|
|
240
|
+
reader_state_after:
|
|
241
|
+
line_shape_to_test:
|
|
242
|
+
proof_safety:
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
The outline should preserve the source template's useful narrative jobs while
|
|
246
|
+
replacing all source-specific proof, scenes, status, jokes, and examples with
|
|
247
|
+
the user's material.
|
|
248
|
+
|
|
249
|
+
## Body Expression Lab
|
|
250
|
+
|
|
251
|
+
After the selected hook and viral-post outline exist, generate body expression
|
|
252
|
+
candidates before writing the final draft. This is where the system tests
|
|
253
|
+
different ways to express the same structure.
|
|
254
|
+
|
|
255
|
+
Generate 5-8 body expression candidates. Every candidate must use:
|
|
256
|
+
|
|
257
|
+
- the same selected hook or hook territory
|
|
258
|
+
- the same selected premise
|
|
259
|
+
- the same viral-post outline
|
|
260
|
+
- the same positioning sequence
|
|
261
|
+
- only user-sourced story and proof
|
|
262
|
+
|
|
263
|
+
Each candidate should vary the expression, not the facts:
|
|
264
|
+
|
|
265
|
+
```text
|
|
266
|
+
Body expression candidate:
|
|
267
|
+
name:
|
|
268
|
+
expression_strategy:
|
|
269
|
+
opening_after_hook:
|
|
270
|
+
beat_lines:
|
|
271
|
+
1. <line or paragraph>
|
|
272
|
+
2. <line or paragraph>
|
|
273
|
+
positioning_sequence_coverage:
|
|
274
|
+
hook_promise_repaid:
|
|
275
|
+
best_lines:
|
|
276
|
+
weak_lines:
|
|
277
|
+
proof_risk:
|
|
278
|
+
voice_risk:
|
|
279
|
+
score:
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Useful expression strategies:
|
|
283
|
+
|
|
284
|
+
- plain field guide
|
|
285
|
+
- founder confession
|
|
286
|
+
- proof-first roadmap
|
|
287
|
+
- teardown then replacement
|
|
288
|
+
- scene then lesson
|
|
289
|
+
- enemy naming then mechanism
|
|
290
|
+
- compact build-in-public note
|
|
291
|
+
|
|
292
|
+
Do not create candidates by changing the claim. Create candidates by changing
|
|
293
|
+
line order, amount of scene, proof placement, rhythm, and how the mechanism is
|
|
294
|
+
explained.
|
|
295
|
+
|
|
296
|
+
## Combine Pass
|
|
297
|
+
|
|
298
|
+
After body expression candidates are scored, combine the best parts into one
|
|
299
|
+
draft outline before prose.
|
|
300
|
+
|
|
301
|
+
Record:
|
|
302
|
+
|
|
303
|
+
```text
|
|
304
|
+
Combined body plan:
|
|
305
|
+
selected_hook:
|
|
306
|
+
selected_expression_parts:
|
|
307
|
+
lines_kept:
|
|
308
|
+
lines_rewritten:
|
|
309
|
+
lines_cut:
|
|
310
|
+
positioning_sequence_final:
|
|
311
|
+
hook_promise_repayment:
|
|
312
|
+
proof_gaps_remaining:
|
|
313
|
+
why_this_combination_wins:
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
If no candidate repays the hook promise with real user proof, return to premise
|
|
317
|
+
development or ask the user for the missing story. Do not save a `ready` draft.
|
|
318
|
+
|
|
319
|
+
## Pre-Draft Narrative Outline
|
|
320
|
+
|
|
321
|
+
Before final prose, produce a compact `Pre-Draft Narrative Outline`. This is the
|
|
322
|
+
user-visible argument skeleton that lets the user confirm what the post is
|
|
323
|
+
trying to say, in what order, and which proven body shapes are being adapted
|
|
324
|
+
before the system writes body copy.
|
|
325
|
+
|
|
326
|
+
Use this format:
|
|
327
|
+
|
|
328
|
+
```text
|
|
329
|
+
Pre-Draft Narrative Outline
|
|
330
|
+
I. Hook and click debt
|
|
331
|
+
A. Selected hook: <selected hook>
|
|
332
|
+
B. Rendered mobile preview verdict: <pass | warn | fail + why>
|
|
333
|
+
C. What "see more" must repay: <the open loop the first body beat must answer>
|
|
334
|
+
|
|
335
|
+
II. Thesis the post will defend
|
|
336
|
+
A. One-sentence thesis: <the post's operating claim>
|
|
337
|
+
B. Reader being taught: <specific audience, not a broad persona>
|
|
338
|
+
C. Why this reader cares now: <timely pain, belief, or decision>
|
|
339
|
+
|
|
340
|
+
III. Operating model
|
|
341
|
+
A. Core equation or mechanism: <the model the post teaches>
|
|
342
|
+
B. Key definitions:
|
|
343
|
+
i. <term>: <plain definition + concrete examples>
|
|
344
|
+
ii. <term>: <plain definition + concrete examples>
|
|
345
|
+
|
|
346
|
+
IV. Body shape borrowed from posts that worked
|
|
347
|
+
A. Selected source template or no-template rationale: <source or rationale>
|
|
348
|
+
B. Source-message outline being adapted:
|
|
349
|
+
i. <source post + P1/P2/P3 branch sequence from the original message>
|
|
350
|
+
ii. <which original paragraph/line/phrase jobs matter most>
|
|
351
|
+
C. Working body pattern(s) being adapted:
|
|
352
|
+
i. <pattern name>: <beat order and why it works>
|
|
353
|
+
ii. <pattern name>: <beat order and why it works>
|
|
354
|
+
D. What gets borrowed:
|
|
355
|
+
i. <narrative job, sequence, transition, or proof order>
|
|
356
|
+
E. What must not be copied:
|
|
357
|
+
i. <source wording, creator-specific proof, joke, or context>
|
|
358
|
+
|
|
359
|
+
V. Narrative beats
|
|
360
|
+
A. Beat 1: <job, reader state before/after, example/proof>
|
|
361
|
+
i. Line shape or section label: <how it will appear>
|
|
362
|
+
ii. Concrete examples: <examples/numbers>
|
|
363
|
+
B. Beat 2: <job, reader state before/after, example/proof>
|
|
364
|
+
i. Line shape or section label: <how it will appear>
|
|
365
|
+
ii. Concrete examples: <examples/numbers>
|
|
366
|
+
C. Beat 3: <job, reader state before/after, example/proof>
|
|
367
|
+
i. Line shape or section label: <how it will appear>
|
|
368
|
+
ii. Concrete examples: <examples/numbers>
|
|
369
|
+
|
|
370
|
+
VI. Scan path and proof safety
|
|
371
|
+
A. Mobile scan path: <what skimmers learn from labels/numbers/close>
|
|
372
|
+
B. Proof claims:
|
|
373
|
+
i. <claim>: <source + public-safety status>
|
|
374
|
+
C. Abstractions to remove:
|
|
375
|
+
i. <abstract phrase> -> <concrete replacement>
|
|
376
|
+
D. Draft risks: <risk and how to avoid it>
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
Quality gate:
|
|
380
|
+
|
|
381
|
+
- The outline must explain the post before the draft exists.
|
|
382
|
+
- The outline must be useful to a reader who only scans the finished post.
|
|
383
|
+
- The outline must include proof claims and risk before prose.
|
|
384
|
+
- The outline must define any operating terms that could be misunderstood.
|
|
385
|
+
- The outline must use `I.`, `A.`, and `i.` hierarchy. A flat field list fails.
|
|
386
|
+
- If the post is adapting bodies that worked, the outline must name the source
|
|
387
|
+
message outline being adapted and the body pattern, including which original
|
|
388
|
+
paragraph/line/phrase jobs transfer and what beat order, proof order, or
|
|
389
|
+
transition logic is being borrowed.
|
|
390
|
+
- If the post is a field guide, the narrative beats must show the hierarchy
|
|
391
|
+
before prose, such as best-to-worst, highest-to-lowest intent, or
|
|
392
|
+
source-to-outcome.
|
|
393
|
+
- If the outline cannot be made concrete, return to premise development.
|
|
394
|
+
|
|
111
395
|
## Premise Quality Gate
|
|
112
396
|
|
|
113
397
|
A premise can move to hook generation only when it passes all of these:
|
|
@@ -118,7 +402,10 @@ A premise can move to hook generation only when it passes all of these:
|
|
|
118
402
|
- `reader_value`: pass
|
|
119
403
|
- `credible_speaker`: pass
|
|
120
404
|
- `proof_safety`: pass
|
|
121
|
-
- `
|
|
405
|
+
- `audience_tension`: pass or explained
|
|
406
|
+
- `template_fit`: pass or explicitly no-template
|
|
407
|
+
- `hook_to_body_repayment`: pass
|
|
408
|
+
- `pre_draft_narrative_outline`: pass
|
|
122
409
|
|
|
123
410
|
If any gate fails:
|
|
124
411
|
|
|
@@ -137,8 +424,11 @@ For each hook candidate, include:
|
|
|
137
424
|
- which tension it opens
|
|
138
425
|
- which reader value it implies
|
|
139
426
|
- whether the real scene appears in the first screen or shortly after
|
|
427
|
+
- source template or no-template rationale
|
|
428
|
+
- hook promise the body must repay
|
|
140
429
|
|
|
141
430
|
Reject hooks that are accurate but do not reveal the premise's tension or value.
|
|
431
|
+
Reject hooks that create a promise the selected viral-post outline cannot repay.
|
|
142
432
|
|
|
143
433
|
## Body Relationship
|
|
144
434
|
|
|
@@ -155,5 +445,6 @@ body outline:
|
|
|
155
445
|
7. close returns to the premise without summarizing
|
|
156
446
|
```
|
|
157
447
|
|
|
158
|
-
|
|
159
|
-
|
|
448
|
+
Replace this generic outline with the selected viral-post outline when a source
|
|
449
|
+
template is available. If the outline cannot be filled without inventing proof,
|
|
450
|
+
return to premise development.
|
|
@@ -9,31 +9,10 @@ Prospeo supports search + import in the campaign builder flow.
|
|
|
9
9
|
## Provider Decision Tree
|
|
10
10
|
|
|
11
11
|
- Known account list or CSV: use `load_csv_domains` or `save_domain_filters`, then `search_prospeo`.
|
|
12
|
-
- Current LinkedIn job-post intent: use `search_harvest_jobs`, review the job artifact, then use `confirm_harvest_job_companies` with selected Harvest job IDs to create a `domainFilterId`; only then call `search_prospeo` for hiring stakeholders at those companies. Harvest jobs are the account source, not a people-search replacement.
|
|
13
12
|
- Company/account lookalikes: use `search_prospeo_companies`, review the account sample, then use `confirm_prospeo_company_accounts` with the returned `companySearchToken` to create a `domainFilterId`; only then call `search_prospeo` for people at those accounts. Account rows are not people leads yet.
|
|
14
13
|
- Person search with known filters: use `search_prospeo` directly.
|
|
15
14
|
- LinkedIn activity, content-source, or post-engagement intent: stay on Signal Discovery or Sales Nav, not Prospeo.
|
|
16
15
|
|
|
17
|
-
Current LinkedIn job-post account sourcing must follow:
|
|
18
|
-
|
|
19
|
-
```text
|
|
20
|
-
search_harvest_jobs -> confirm_harvest_job_companies -> search_prospeo
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Use `search_harvest_jobs` when the user's account-source intent is current
|
|
24
|
-
LinkedIn job posts, for example "companies hiring Power BI developers in the US
|
|
25
|
-
this month." The search tool writes review artifacts and returns a token or
|
|
26
|
-
`mcp-harvest-job-search-token:*` reference. After reviewing selected jobs, call
|
|
27
|
-
`confirm_harvest_job_companies` with selected Harvest job IDs only. It resolves
|
|
28
|
-
real company website domains from selected job details and bounded
|
|
29
|
-
`/linkedin/company` fallback, then returns a `domainFilterId` for
|
|
30
|
-
`search_prospeo`.
|
|
31
|
-
|
|
32
|
-
Do not paste LinkedIn company URLs as domains. Do not detail-fetch every job row
|
|
33
|
-
by default; fetch details only for selected batches during confirmation. Use
|
|
34
|
-
Prospeo directly when the user wants broader volume, company attributes,
|
|
35
|
-
lookalikes, or people search without needing current LinkedIn job evidence.
|
|
36
|
-
|
|
37
16
|
Company/account lookalikes must follow:
|
|
38
17
|
|
|
39
18
|
```text
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
type ArtifactFormat = "markdown" | "csv" | "both";
|
|
2
|
-
export interface SearchHarvestJobsInput {
|
|
3
|
-
search?: string;
|
|
4
|
-
searches?: string[];
|
|
5
|
-
location?: string;
|
|
6
|
-
geoId?: string;
|
|
7
|
-
postedLimit?: "24h" | "week" | "month";
|
|
8
|
-
sortBy?: "relevance" | "date";
|
|
9
|
-
workplaceType?: string | string[];
|
|
10
|
-
employmentType?: string | string[];
|
|
11
|
-
experienceLevel?: string | string[];
|
|
12
|
-
easyApply?: boolean;
|
|
13
|
-
under10Applicants?: boolean;
|
|
14
|
-
salary?: string;
|
|
15
|
-
pages?: number;
|
|
16
|
-
maxRows?: number;
|
|
17
|
-
artifactFormat?: ArtifactFormat;
|
|
18
|
-
outputDir?: string;
|
|
19
|
-
fileBaseName?: string;
|
|
20
|
-
}
|
|
21
|
-
export interface ConfirmHarvestJobCompaniesInput {
|
|
22
|
-
searchToken?: string;
|
|
23
|
-
selectedJobIds?: string[];
|
|
24
|
-
name?: string;
|
|
25
|
-
outputDir?: string;
|
|
26
|
-
fileBaseName?: string;
|
|
27
|
-
[key: string]: unknown;
|
|
28
|
-
}
|
|
29
|
-
export declare const harvestJobToolDefinitions: ({
|
|
30
|
-
name: string;
|
|
31
|
-
description: string;
|
|
32
|
-
inputSchema: {
|
|
33
|
-
type: string;
|
|
34
|
-
properties: {
|
|
35
|
-
search: {
|
|
36
|
-
type: string;
|
|
37
|
-
};
|
|
38
|
-
searches: {
|
|
39
|
-
type: string;
|
|
40
|
-
items: {
|
|
41
|
-
type: string;
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
|
-
location: {
|
|
45
|
-
type: string;
|
|
46
|
-
};
|
|
47
|
-
geoId: {
|
|
48
|
-
type: string;
|
|
49
|
-
};
|
|
50
|
-
postedLimit: {
|
|
51
|
-
type: string;
|
|
52
|
-
enum: string[];
|
|
53
|
-
};
|
|
54
|
-
sortBy: {
|
|
55
|
-
type: string;
|
|
56
|
-
enum: string[];
|
|
57
|
-
};
|
|
58
|
-
workplaceType: {
|
|
59
|
-
oneOf: ({
|
|
60
|
-
type: string;
|
|
61
|
-
items?: undefined;
|
|
62
|
-
} | {
|
|
63
|
-
type: string;
|
|
64
|
-
items: {
|
|
65
|
-
type: string;
|
|
66
|
-
};
|
|
67
|
-
})[];
|
|
68
|
-
};
|
|
69
|
-
employmentType: {
|
|
70
|
-
oneOf: ({
|
|
71
|
-
type: string;
|
|
72
|
-
items?: undefined;
|
|
73
|
-
} | {
|
|
74
|
-
type: string;
|
|
75
|
-
items: {
|
|
76
|
-
type: string;
|
|
77
|
-
};
|
|
78
|
-
})[];
|
|
79
|
-
};
|
|
80
|
-
experienceLevel: {
|
|
81
|
-
oneOf: ({
|
|
82
|
-
type: string;
|
|
83
|
-
items?: undefined;
|
|
84
|
-
} | {
|
|
85
|
-
type: string;
|
|
86
|
-
items: {
|
|
87
|
-
type: string;
|
|
88
|
-
};
|
|
89
|
-
})[];
|
|
90
|
-
};
|
|
91
|
-
easyApply: {
|
|
92
|
-
type: string;
|
|
93
|
-
};
|
|
94
|
-
under10Applicants: {
|
|
95
|
-
type: string;
|
|
96
|
-
};
|
|
97
|
-
salary: {
|
|
98
|
-
type: string;
|
|
99
|
-
};
|
|
100
|
-
pages: {
|
|
101
|
-
type: string;
|
|
102
|
-
description: string;
|
|
103
|
-
};
|
|
104
|
-
maxRows: {
|
|
105
|
-
type: string;
|
|
106
|
-
description: string;
|
|
107
|
-
};
|
|
108
|
-
artifactFormat: {
|
|
109
|
-
type: string;
|
|
110
|
-
enum: string[];
|
|
111
|
-
description: string;
|
|
112
|
-
};
|
|
113
|
-
outputDir: {
|
|
114
|
-
type: string;
|
|
115
|
-
description: string;
|
|
116
|
-
};
|
|
117
|
-
fileBaseName: {
|
|
118
|
-
type: string;
|
|
119
|
-
description: string;
|
|
120
|
-
};
|
|
121
|
-
searchToken?: undefined;
|
|
122
|
-
selectedJobIds?: undefined;
|
|
123
|
-
name?: undefined;
|
|
124
|
-
};
|
|
125
|
-
required: never[];
|
|
126
|
-
additionalProperties: boolean;
|
|
127
|
-
};
|
|
128
|
-
} | {
|
|
129
|
-
name: string;
|
|
130
|
-
description: string;
|
|
131
|
-
inputSchema: {
|
|
132
|
-
type: string;
|
|
133
|
-
properties: {
|
|
134
|
-
searchToken: {
|
|
135
|
-
type: string;
|
|
136
|
-
description: string;
|
|
137
|
-
};
|
|
138
|
-
selectedJobIds: {
|
|
139
|
-
type: string;
|
|
140
|
-
items: {
|
|
141
|
-
type: string;
|
|
142
|
-
};
|
|
143
|
-
description: string;
|
|
144
|
-
};
|
|
145
|
-
name: {
|
|
146
|
-
type: string;
|
|
147
|
-
};
|
|
148
|
-
outputDir: {
|
|
149
|
-
type: string;
|
|
150
|
-
description: string;
|
|
151
|
-
};
|
|
152
|
-
fileBaseName: {
|
|
153
|
-
type: string;
|
|
154
|
-
description: string;
|
|
155
|
-
};
|
|
156
|
-
search?: undefined;
|
|
157
|
-
searches?: undefined;
|
|
158
|
-
location?: undefined;
|
|
159
|
-
geoId?: undefined;
|
|
160
|
-
postedLimit?: undefined;
|
|
161
|
-
sortBy?: undefined;
|
|
162
|
-
workplaceType?: undefined;
|
|
163
|
-
employmentType?: undefined;
|
|
164
|
-
experienceLevel?: undefined;
|
|
165
|
-
easyApply?: undefined;
|
|
166
|
-
under10Applicants?: undefined;
|
|
167
|
-
salary?: undefined;
|
|
168
|
-
pages?: undefined;
|
|
169
|
-
maxRows?: undefined;
|
|
170
|
-
artifactFormat?: undefined;
|
|
171
|
-
};
|
|
172
|
-
required: string[];
|
|
173
|
-
additionalProperties: boolean;
|
|
174
|
-
};
|
|
175
|
-
})[];
|
|
176
|
-
export declare function searchHarvestJobs(input: SearchHarvestJobsInput): Promise<{
|
|
177
|
-
[k: string]: unknown;
|
|
178
|
-
}>;
|
|
179
|
-
export declare function confirmHarvestJobCompanies(input: ConfirmHarvestJobCompaniesInput): Promise<{
|
|
180
|
-
[k: string]: unknown;
|
|
181
|
-
}>;
|
|
182
|
-
export {};
|