STACK / BILL OF MATERIALS

rev. 1 · 2026

The stack.

Encyclopedia content elsewhere on the site uses category-level language ("the workflow orchestrator," "the email sender") on purpose — tools change, the architecture doesn't. This page is where the architecture meets the bill of materials. No ranking, no scoring, no "best in class" claims. Just what I use and why.

layers
07
entries
39
scope
production builds
01

Orchestration

03 entries
  1. Self-hosted workflow orchestrator. The "code node" runs raw JavaScript or Python, which makes it the only orchestrator I trust for non-trivial routing. Self-hosting matters for compliance.

  2. Visual orchestrator for routing-heavy workflows where I don't need raw code. Fast to ship, easy to hand off.

  3. Integration count matters more than routing complexity. Falls down at scale; use it when scope is bounded.

02

Data + enrichment

07 entries
  1. The IDE for prospect data. Waterfall enrichment across dozens of providers, custom variables, agent-driven research per record. Sits in front of every outbound build I ship.

  2. Primary contact data provider in the enrichment waterfall. Good coverage on common ICPs; pair with Prospeo for higher hit rate.

  3. Second-stage enrichment provider. Fills the gap where Apollo misses. Waterfall pattern (Apollo → Prospeo → next) pushes hit rate from ~40% to 80%+.

  4. Intent signal source for ABM programs. Best when paired with first-party intent (product events, content engagement) rather than used alone.

  5. De-anonymization on the inbound surface. Surfaces accounts that visited the site without filling a form.

  6. Web-scraping infrastructure for signal pipelines (job-req feeds, news, public filings). Production scrapers, not one-off scripts.

  7. LinkedIn Sales Navigator

    The canonical professional-graph source. Used inside Clay workflows and inside reading-heavy research agents.

03

Intelligence (LLMs + retrieval)

06 entries
  1. Primary LLM for production agents. Strong instruction-following, schema-validated outputs, long-context retrieval pairing. The Claude Agent SDK is the reasoning-loop primitive I default to.

  2. Secondary LLM. Used for specific tasks (vision, structured outputs in older agents).

  3. LLM application framework. Useful for prompt management and chain composition.

  4. Reasoning-loop primitive. Where I build multi-step agents with state, retries, and conditional routing.

  5. Open protocol for connecting agents to tools and data sources. Used for cross-vendor integration.

  6. Custom RAG retrievers

    Built per use case over company news, press releases, public filings, prior brand content, product events. Off-the-shelf retrievers are rarely fit-for-purpose; the retriever is usually the highest-leverage piece of the agent.

04

Activation (outbound, ads, CRM)

09 entries
  1. Cold-email infrastructure. Mailbox rotation, domain warm-up, deliverability monitoring. The category-leader for high-volume outbound that doesn't burn the domain.

  2. LinkedIn outreach automation. Scales DM cadences safely.

  3. Outreach.io

    Enterprise sales engagement platform. Manage it where the customer already runs it; rarely my first choice for new builds.

  4. CRM and source-of-truth for revenue data when the customer is already on it. Operated via REST API in agentic workflows.

  5. CRM for SMB / mid-market customers. Native automation is more accessible than Salesforce; less powerful as an API target.

  6. API-first CRM for AI-native startups. Custom objects without admin overhead; designed for high-velocity data ingestion.

  7. LinkedIn Ads

    Primary B2B paid channel. Account-targeted, intent-paired.

  8. Meta Ads

    Retargeting and broad-reach social.

  9. Google Ads

    Bottom-of-funnel intent capture. Expensive and competitive; high-EV when paired with first-party data via Enhanced Conversions.

05

Analytics + tracking

06 entries
  1. Web analytics. Site-side metrics, referral tracking, AI-source attribution.

  2. B2B revenue attribution. Full-funnel from anon visit through closed-won, with the de-anonymization layer.

  3. Keyword research, AI Overview tracking, competitive content analysis.

  4. Backlink graph, content explorer, ranking history.

  5. Product analytics on this site. Self-hostable; pairs with the rest of the stack philosophically.

  6. Dashboarding for cross-source reporting.

06

Deployment + observability

04 entries
  1. Serverless runtime for event-driven agents and cron-scheduled jobs. Production default for long-tail workloads.

  2. Python-first runtime for webhook-triggered and long-running agentic workloads. Faster iteration than Lambda for prototypes.

  3. Hosting for stateful Python services that need a long-lived process (scoring microservices, retriever endpoints).

  4. LLM observability. Every production agent emits traces; failure debugging would not be possible without it.

07

Authoring + hosting (this site)

04 entries
  1. Site generator for everything that isn't the blog. Page-level performance is the design goal — Lighthouse 100/100/100/100 on every Astro-built page.

  2. Blog + newsletter CMS. Serves /blog directly; newsletter via Ghost Members API.

  3. Brings the self-hosted origin onto the public internet without port-forwarding. Reflects the broader philosophy: self-hosted, observable, no vendor lock-in.

  4. Self-hosted infrastructure for the origin server.