terminalhire 0.2.3 → 0.2.4

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.
@@ -257,6 +257,14 @@ var init_ashby = __esm({
257
257
  }
258
258
  });
259
259
 
260
+ // ../../packages/core/src/feeds/lever.ts
261
+ var init_lever = __esm({
262
+ "../../packages/core/src/feeds/lever.ts"() {
263
+ "use strict";
264
+ init_vocabulary();
265
+ }
266
+ });
267
+
260
268
  // ../../packages/core/src/feeds/himalayas.ts
261
269
  var init_himalayas = __esm({
262
270
  "../../packages/core/src/feeds/himalayas.ts"() {
@@ -282,14 +290,124 @@ var init_hn = __esm({
282
290
  });
283
291
 
284
292
  // ../../packages/core/src/feeds/index.ts
293
+ function flattenTiers(t) {
294
+ return [.../* @__PURE__ */ new Set([...t.bigco, ...t.scaleup, ...t.startup])];
295
+ }
296
+ var GREENHOUSE_SLUGS_BY_TIER, ASHBY_SLUGS_BY_TIER, LEVER_SLUGS_BY_TIER, DEFAULT_GREENHOUSE_SLUGS, DEFAULT_ASHBY_SLUGS, DEFAULT_LEVER_SLUGS;
285
297
  var init_feeds = __esm({
286
298
  "../../packages/core/src/feeds/index.ts"() {
287
299
  "use strict";
288
300
  init_greenhouse();
289
301
  init_ashby();
302
+ init_lever();
290
303
  init_himalayas();
291
304
  init_wwr();
292
305
  init_hn();
306
+ GREENHOUSE_SLUGS_BY_TIER = {
307
+ bigco: [
308
+ "stripe",
309
+ "anthropic",
310
+ "figma",
311
+ "discord",
312
+ "brex",
313
+ "mercury",
314
+ "plaid",
315
+ "gusto",
316
+ "scale",
317
+ "databricks",
318
+ "coinbase",
319
+ "robinhood",
320
+ "doordash",
321
+ "airbnb",
322
+ "dropbox",
323
+ "datadog",
324
+ "cloudflare",
325
+ "reddit",
326
+ "lyft",
327
+ "instacart"
328
+ ],
329
+ scaleup: [
330
+ "samsara",
331
+ "verkada",
332
+ "affirm",
333
+ "gitlab",
334
+ "asana",
335
+ "flexport",
336
+ "faire",
337
+ "twitch",
338
+ "airtable",
339
+ "retool"
340
+ ],
341
+ startup: [
342
+ "watershed"
343
+ ]
344
+ };
345
+ ASHBY_SLUGS_BY_TIER = {
346
+ bigco: [
347
+ "openai"
348
+ ],
349
+ scaleup: [
350
+ "harvey",
351
+ "elevenlabs",
352
+ "notion",
353
+ "sierra",
354
+ "cohere",
355
+ "ramp",
356
+ "vanta",
357
+ "decagon",
358
+ "cursor",
359
+ "replit",
360
+ "perplexity",
361
+ "baseten",
362
+ "drata",
363
+ "writer",
364
+ "temporal",
365
+ "supabase"
366
+ ],
367
+ startup: [
368
+ "suno",
369
+ "attio",
370
+ "modal",
371
+ "workos",
372
+ "linear",
373
+ "render",
374
+ "warp",
375
+ "plain",
376
+ "posthog",
377
+ "pylon",
378
+ "resend",
379
+ "langfuse",
380
+ "railway",
381
+ "mintlify",
382
+ "neon",
383
+ "browserbase",
384
+ "knock",
385
+ "speakeasy",
386
+ "stytch",
387
+ "runway",
388
+ "doppler",
389
+ "inngest",
390
+ "hightouch",
391
+ "zed"
392
+ ]
393
+ };
394
+ LEVER_SLUGS_BY_TIER = {
395
+ bigco: [
396
+ "palantir",
397
+ "spotify"
398
+ ],
399
+ scaleup: [
400
+ "mistral",
401
+ "ro",
402
+ "secureframe"
403
+ ],
404
+ startup: [
405
+ "anyscale"
406
+ ]
407
+ };
408
+ DEFAULT_GREENHOUSE_SLUGS = flattenTiers(GREENHOUSE_SLUGS_BY_TIER);
409
+ DEFAULT_ASHBY_SLUGS = flattenTiers(ASHBY_SLUGS_BY_TIER);
410
+ DEFAULT_LEVER_SLUGS = flattenTiers(LEVER_SLUGS_BY_TIER);
293
411
  }
294
412
  });
295
413
 
@@ -157,13 +157,40 @@ function clearSpinnerVerbs() {
157
157
  }
158
158
  return { cleared: true, keptUserVerbs };
159
159
  }
160
+ function interleaveBySource(topMatches) {
161
+ if (!Array.isArray(topMatches) || topMatches.length === 0) return topMatches;
162
+ const buckets = /* @__PURE__ */ new Map();
163
+ const order = [];
164
+ for (const m of topMatches) {
165
+ const id = m && m.id ? String(m.id) : "";
166
+ const idx = id.indexOf(":");
167
+ const source = idx > 0 ? id.slice(0, idx) : "_";
168
+ if (!buckets.has(source)) {
169
+ buckets.set(source, []);
170
+ order.push(source);
171
+ }
172
+ buckets.get(source).push(m);
173
+ }
174
+ const out = [];
175
+ let remaining = topMatches.length;
176
+ while (remaining > 0) {
177
+ for (const source of order) {
178
+ const b = buckets.get(source);
179
+ if (b && b.length) {
180
+ out.push(b.shift());
181
+ remaining--;
182
+ }
183
+ }
184
+ }
185
+ return out;
186
+ }
160
187
  function buildTips(topMatches, baseUrl, max = 8) {
161
188
  const base = String(baseUrl || "https://terminalhire.com").replace(/\/+$/, "");
162
189
  const out = [];
163
190
  const seenRole = /* @__PURE__ */ new Set();
164
191
  const perCompany = /* @__PURE__ */ new Map();
165
192
  const COMPANY_CAP = 2;
166
- for (const m of Array.isArray(topMatches) ? topMatches : []) {
193
+ for (const m of interleaveBySource(Array.isArray(topMatches) ? topMatches : [])) {
167
194
  if (!m || !m.title || !m.company || !m.id) continue;
168
195
  const idx = String(m.id).indexOf(":");
169
196
  if (idx <= 0) continue;
@@ -237,6 +264,7 @@ export {
237
264
  clearSpinnerVerbs,
238
265
  ctaVerb,
239
266
  formatVerbs,
267
+ interleaveBySource,
240
268
  rankBySessionTags,
241
269
  readSpinnerConfig
242
270
  };
@@ -225,6 +225,116 @@ function normalize(tokens) {
225
225
  return Array.from(result);
226
226
  }
227
227
 
228
+ // ../../packages/core/src/feeds/index.ts
229
+ var GREENHOUSE_SLUGS_BY_TIER = {
230
+ bigco: [
231
+ "stripe",
232
+ "anthropic",
233
+ "figma",
234
+ "discord",
235
+ "brex",
236
+ "mercury",
237
+ "plaid",
238
+ "gusto",
239
+ "scale",
240
+ "databricks",
241
+ "coinbase",
242
+ "robinhood",
243
+ "doordash",
244
+ "airbnb",
245
+ "dropbox",
246
+ "datadog",
247
+ "cloudflare",
248
+ "reddit",
249
+ "lyft",
250
+ "instacart"
251
+ ],
252
+ scaleup: [
253
+ "samsara",
254
+ "verkada",
255
+ "affirm",
256
+ "gitlab",
257
+ "asana",
258
+ "flexport",
259
+ "faire",
260
+ "twitch",
261
+ "airtable",
262
+ "retool"
263
+ ],
264
+ startup: [
265
+ "watershed"
266
+ ]
267
+ };
268
+ var ASHBY_SLUGS_BY_TIER = {
269
+ bigco: [
270
+ "openai"
271
+ ],
272
+ scaleup: [
273
+ "harvey",
274
+ "elevenlabs",
275
+ "notion",
276
+ "sierra",
277
+ "cohere",
278
+ "ramp",
279
+ "vanta",
280
+ "decagon",
281
+ "cursor",
282
+ "replit",
283
+ "perplexity",
284
+ "baseten",
285
+ "drata",
286
+ "writer",
287
+ "temporal",
288
+ "supabase"
289
+ ],
290
+ startup: [
291
+ "suno",
292
+ "attio",
293
+ "modal",
294
+ "workos",
295
+ "linear",
296
+ "render",
297
+ "warp",
298
+ "plain",
299
+ "posthog",
300
+ "pylon",
301
+ "resend",
302
+ "langfuse",
303
+ "railway",
304
+ "mintlify",
305
+ "neon",
306
+ "browserbase",
307
+ "knock",
308
+ "speakeasy",
309
+ "stytch",
310
+ "runway",
311
+ "doppler",
312
+ "inngest",
313
+ "hightouch",
314
+ "zed"
315
+ ]
316
+ };
317
+ var LEVER_SLUGS_BY_TIER = {
318
+ bigco: [
319
+ "palantir",
320
+ "spotify"
321
+ ],
322
+ scaleup: [
323
+ "mistral",
324
+ "ro",
325
+ "secureframe"
326
+ ],
327
+ startup: [
328
+ "anyscale"
329
+ ]
330
+ };
331
+ function flattenTiers(t) {
332
+ return [.../* @__PURE__ */ new Set([...t.bigco, ...t.scaleup, ...t.startup])];
333
+ }
334
+ var DEFAULT_GREENHOUSE_SLUGS = flattenTiers(GREENHOUSE_SLUGS_BY_TIER);
335
+ var DEFAULT_ASHBY_SLUGS = flattenTiers(ASHBY_SLUGS_BY_TIER);
336
+ var DEFAULT_LEVER_SLUGS = flattenTiers(LEVER_SLUGS_BY_TIER);
337
+
228
338
  // ../../packages/core/src/coastal.ts
229
339
  import { readFileSync } from "fs";
230
340
  import { join } from "path";
@@ -215,6 +215,116 @@ function normalize(tokens) {
215
215
  return Array.from(result);
216
216
  }
217
217
 
218
+ // ../../packages/core/src/feeds/index.ts
219
+ var GREENHOUSE_SLUGS_BY_TIER = {
220
+ bigco: [
221
+ "stripe",
222
+ "anthropic",
223
+ "figma",
224
+ "discord",
225
+ "brex",
226
+ "mercury",
227
+ "plaid",
228
+ "gusto",
229
+ "scale",
230
+ "databricks",
231
+ "coinbase",
232
+ "robinhood",
233
+ "doordash",
234
+ "airbnb",
235
+ "dropbox",
236
+ "datadog",
237
+ "cloudflare",
238
+ "reddit",
239
+ "lyft",
240
+ "instacart"
241
+ ],
242
+ scaleup: [
243
+ "samsara",
244
+ "verkada",
245
+ "affirm",
246
+ "gitlab",
247
+ "asana",
248
+ "flexport",
249
+ "faire",
250
+ "twitch",
251
+ "airtable",
252
+ "retool"
253
+ ],
254
+ startup: [
255
+ "watershed"
256
+ ]
257
+ };
258
+ var ASHBY_SLUGS_BY_TIER = {
259
+ bigco: [
260
+ "openai"
261
+ ],
262
+ scaleup: [
263
+ "harvey",
264
+ "elevenlabs",
265
+ "notion",
266
+ "sierra",
267
+ "cohere",
268
+ "ramp",
269
+ "vanta",
270
+ "decagon",
271
+ "cursor",
272
+ "replit",
273
+ "perplexity",
274
+ "baseten",
275
+ "drata",
276
+ "writer",
277
+ "temporal",
278
+ "supabase"
279
+ ],
280
+ startup: [
281
+ "suno",
282
+ "attio",
283
+ "modal",
284
+ "workos",
285
+ "linear",
286
+ "render",
287
+ "warp",
288
+ "plain",
289
+ "posthog",
290
+ "pylon",
291
+ "resend",
292
+ "langfuse",
293
+ "railway",
294
+ "mintlify",
295
+ "neon",
296
+ "browserbase",
297
+ "knock",
298
+ "speakeasy",
299
+ "stytch",
300
+ "runway",
301
+ "doppler",
302
+ "inngest",
303
+ "hightouch",
304
+ "zed"
305
+ ]
306
+ };
307
+ var LEVER_SLUGS_BY_TIER = {
308
+ bigco: [
309
+ "palantir",
310
+ "spotify"
311
+ ],
312
+ scaleup: [
313
+ "mistral",
314
+ "ro",
315
+ "secureframe"
316
+ ],
317
+ startup: [
318
+ "anyscale"
319
+ ]
320
+ };
321
+ function flattenTiers(t) {
322
+ return [.../* @__PURE__ */ new Set([...t.bigco, ...t.scaleup, ...t.startup])];
323
+ }
324
+ var DEFAULT_GREENHOUSE_SLUGS = flattenTiers(GREENHOUSE_SLUGS_BY_TIER);
325
+ var DEFAULT_ASHBY_SLUGS = flattenTiers(ASHBY_SLUGS_BY_TIER);
326
+ var DEFAULT_LEVER_SLUGS = flattenTiers(LEVER_SLUGS_BY_TIER);
327
+
218
328
  // ../../packages/core/src/coastal.ts
219
329
  import { readFileSync } from "fs";
220
330
  import { join } from "path";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "terminalhire",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Local-first job matching for developers — ambient job matches in the Claude Code spinner. Matching runs on your machine; your profile never leaves it.",
5
5
  "repository": {
6
6
  "type": "git",