Skip to main content
Account Readiness scores how ready a given account is for a particular kind of opportunity — not a single generic “hot lead” score, but one of several purpose-built lenses, each answering a different question about the same account.

Profiles

A readiness profile is one of those lenses. AnyCRM ships several out of the box — AI Readiness, Hiring Readiness, Growth Readiness, Compliance Readiness, Replatforming Readiness, and Digital Transformation Readiness — each targeting a different reason an account might be a good fit right now (e.g. Replatforming Readiness looks for aging tech stacks and recent CIO/CTO changes; Compliance Readiness looks for regulatory exposure and recent incidents). Each profile defines:
  • Pillars — weighted categories the score is built from (AI Readiness, for example, weighs narrative & intent, talent & org, tech & data infrastructure, market pressure, customer pull, governance & risk, and engagement).
  • A maturity ladder — the overall score maps onto a sequence of named stages (for AI Readiness: unaware → awareness → exploration → adoption-ready → budgeted → pilot → deployed → scaled → strategic), each with its own suggested sales motion.
An account gets a separate score per profile — a company can be “budgeted” on AI Readiness while still being “unaware” on Digital Transformation.

Signals

A signal is a dated, sourced fact about an account — a hiring surge, a new tech-stack detection, a funding round, an executive change, a regulatory filing — pulled from external providers (Apollo, BuiltWith, Coresignal, Exa, G2, Perplexity, SEC EDGAR). Each signal can feed multiple profiles at once, weighted by how relevant it is to each (profile_contributions), so the same hiring signal might matter a lot to Hiring Readiness and only a little to Compliance Readiness.

Computing a score

Scores are not computed automatically or on a schedule — they’re triggered explicitly per account via POST /accounts/{account_id}/readiness/analyze. That kicks off ReadinessFullAnalysisWorkflow, a Temporal workflow that:
  1. Collects fresh signals from every external provider in parallel.
  2. Persists them (via PostgREST) to the account’s signal history.
  3. Scores every active profile from the accumulated signals.
  4. Scores per-profile champions — the contacts on the account most likely to be the internal advocate for that particular motion.
  5. Generates executive-summary writeups per profile.
The endpoint is idempotent for a running analysis: calling it again within 15 minutes of an in-flight run just returns that run instead of starting a duplicate. Everything else — reading a profile’s current score, its signals, its champions, its stage history, or a previously-generated intelligence panel — is a plain PostgREST-backed read and never touches Temporal.
Running an analysis fans out to several external data providers plus an LLM scoring pass per profile — it’s a real cost, not a free poll. Build UI around triggering it deliberately, not on every page view.

Simulation

Beyond the current score, /simulate answers a “what if” question: given a catalog of possible actions for a profile (drawn from the account’s own signals), it projects how the score would move if some subset of those actions happened — useful for coaching a rep on what would actually move an account into the next stage, without waiting for a real signal to show up. See the Account Readiness section of the APIs tab for endpoint-level detail.