Onboarding flow
How a new agency goes from signup to a working market in one sitting. The wizard already captures who the user is, the website scraper already enriches their company. The missing pieces are product, not plumbing: capturing who they sell to, and turning the finish screen into a real reveal.
The flow today
current stateOnboarding is a three-step wizard with a left-rail of numbered pills. It captures who the user is and what their company is, then drops them on an empty dashboard. The activation moment never happens.
The journey
interactiveThe whole signup as the user walks it. The flow today captures who the user is; the two new steps capture who they sell to and turn the finish into a reveal. Click any step to see what the user sees and what happens behind it.
- Captures who you are
- 1
- 2
- 3
- 4
- Captures who you sell to
- 5
- 6
- 7
- The payoff
- 8
Your ideal customer
Step 4 · describe your ICP · describe your ICPNEW. Before any filters, ask the user who they sell to in plain language. We seed an AI suggestion from their self-enriched company, which they confirm or edit. This captures intent up front and pre-fills the structured filters in the next step, so the user is editing a sensible default rather than starting from a blank form.
Your ideal customer
Based on your company, here's who we think you sell to. Confirm or edit.
Mid-market e-commerce and SaaS companies in the US and UK, 50-200 staff, marketing or growth leaders.
Who you sell to
try itThe new step 4. Pick the segments that describe your buyer and watch the estimated market move — a tighter ICP means a smaller, sharper list. Then build it and see the reveal that replaces the old loading timer.
The payoff
activationThe single biggest change is what the user sees on finish. Today: a blank dashboard and a "now what?". With the reveal: a ranked list of real companies that match their ICP, ready to work, with signals filling in as they scroll.
The TAM, end to end
designThe market built at onboarding is one layer of a funnel from the shared data graph to revenue. Each layer narrows monotonically, gated by a filter — ICP predicate, score threshold, curation, stage promotion, sales motion — and maps onto the classic TAM / SAM / SOM frame so product and GTM share one mental model. Click a layer.
intel_org_tamSAMTAM (materialized)
The reachable, ICP-matched slice this org can actually serve. Stored as a materialized membership table for O(1) lookup — built at onboarding, rebuilt on an ICP edit, reconciled nightly. This is the list the user lands on.
Once the TAM exists, users meet it through three lanes — search is demoted from primary entry point to one widening tool, after the system lands them on a pre-built market.
System pushes ranked events on TAM companies.
Default landing surface. Score 0-10, threshold-gated.Sonar + Headhunter on demand.
Widens the TAM when the ICP is incomplete or adjacent segments matter.Filter and sort the materialized list.
Saved views like "hot-tier with funding in the last 90 days".UX states
resilienceThe build is asynchronous and the predicate can land anywhere from zero to huge, so the reveal needs graceful states. None of them should ever read as a dead end.
Zero matches
The predicate is too tight. Inline prompt to loosen a filter, with the segment that cut the most shown first. Never a dead-end empty screen.
Very large market (>cap)
Build the top slice by fit and nudge "your ICP is broad, consider a tighter filter" so the first list still feels curated, not a phone book.
Self-enrichment failed
Company URL unreachable, so skip the enriched-company preview and fall back to the ICP form alone. The build still runs on the explicit filters.
Build still running
The list renders from the first batch while signals backfill in the background. The user explores immediately, never staring at a spinner.