Skip to content

Companies

Core table interface for managing and searching investment pipeline.

Features

Name: SQL LIKE queries, instant filtering

AI Semantic: Natural language (e.g., "SaaS 50M+ revenue"), Vectorize embeddings, Workers AI

Table

Sorting: Click headers, Shift+Click multi-column (name, revenue, growth, margin, employees, LLM score)

Filtering: Country, status, source (combinable)

Selection: Checkboxes, select all, bulk actions

View Modes

3 density levels: Compact (max density), Comfortable (default), Detailed (readable)

Pagination

Server-side, 50/page, first/prev/next/last nav

Bulk Actions

Select → Click kebab menu → "Generate Embeddings" → Queue batches → Track in Activity log

Parallel processing via Cloudflare Queues.

Schema

typescript
{
  id: string                 // 'cmp_' + nanoid()
  name: string
  revenue_eur?: number       // M€
  revenue_growth?: number    // %
  ebitda_margin?: number     // %
  employee_count?: number
  llm_score_overall?: number // 0-10,000
  status: string
  source?: string
}

Implementation

Frontend: apps/web/src/views/Companies.vue (TanStack Vue Table, 300ms debounce)

Backend: apps/api-worker/src/routes/companies.ts (Vectorize + D1)

Composable: useCompanySearch.ts (dual search state)

Built for Supershyft Capital