SCORING + ICP

How we ranked them.

Five builder types. Two scores (production + activity). One multiplier per type. The math is simple — the work is in not letting hobbyists outrank founders.

Ideal Customer Profile

RunFlow's ICP is anyone who has tried to take a ComfyUI workflow to production for clients or for a paid product, and has hit walls. Three types qualify:

PRIMARY ICP

Founder builder

Building a paid product on top of ComfyUI. Has revenue (or trying to). Knows the pain of GPU costs, scaling, and node management.

Multiplier × 1.5
PRIMARY ICP

In-house builder

Engineer at a company shipping ComfyUI workflows internally or as customer features. Strong upgrade signal: known org membership.

Multiplier × 2.0
SECONDARY ICP

Commercial freelancer

Sells ComfyUI work on Fiverr/Upwork or direct. Charges $300-6,000 per deployment. Knows the deployment pain firsthand.

Multiplier × 1.5
NOT ICP

Active hobbyist

Building ComfyUI workflows for fun. Personal use, no paying customers, no production constraints.

Multiplier × 0.15 · prod ≤ 4
NOT ICP

Shopper

Browsing — starred a repo or commented but no implementation evidence. Could be evaluating, could be lurking.

Multiplier × 0.4 · prod ≤ 5
UNKNOWN

Unknown

Not enough signal to classify. Sonnet research often promotes/demotes these into a known type.

Multiplier × 0.5

Scoring formula

final_score = ((prod + activity) / 2) × type_mult × conf_mult

Production score (0-10)

How likely they're shipping ComfyUI to real users.

  • 10 — running production product right now (e.g. Civitai, ComfyDeploy team)
  • 7-9 — shipping or has shipped to paying users; clear evidence
  • 4-6 — building toward production; auth + payments code, Dockerfile
  • 1-3 — exploring, no production evidence (clamped to 4 for hobbyists)

Activity score (0-10)

How active they are in the ComfyUI ecosystem.

  • 10 — core contributor / well-known node author
  • 7-9 — regular commits/PRs, multiple ComfyUI repos
  • 4-6 — occasional engagement; recent issues or stars
  • 1-3 — minimal activity; one-off interaction

Confidence multiplier

The classifier outputs a confidence level. Low confidence dampens the score so we don't spam DMs to people we're not sure about.

HIGH
× 1.0

Strong evidence: org membership, company website, paid product, public funding.

MED
× 0.85

Likely but not confirmed. Multiple signals that point to a type but no smoking gun.

LOW
× 0.7

Best guess from limited evidence. Often gets promoted/demoted by Sonnet research.

Worked example · ltdrdata

Dr.Lt.Data, core contributor at @Comfy-Org. Creator of ComfyUI-Manager, ComfyUI-Impact-Pack (3,095⭐), and several other foundational nodes.
builder_type:     in_house_builder    (trigger j: known org membership)
production_score: 10                   (Comfy-Org steward, shipping infrastructure)
activity_score:   10                   (multiple top-tier repos, active commits)
confidence:       high                 (1.0)

final_score = ((10 + 10) / 2) × 2.0 × 1.0
            = 10 × 2.0 × 1.0
            = 20.0   ← rank #1

Recommended action

Score alone doesn't decide outreach. Some high-scorers are competitors (drop). Some lower-scorers are perfect ICP but need a wait (watch).

PRIORITY

Priority outreach

High-confidence ICP (founder/in_house/freelancer), final_score ≥ 12. Send the DM today.

STANDARD

Standard outreach

Medium-confidence ICP, final_score 6-12. Send the DM this week, lower priority.

WATCH

Watch

Promising but premature: working at competitor org, building something not-yet-shipped, or recently quiet. Track for re-engagement.

DROP

Drop

High score but wrong fit: direct competitor team (ComfyDeploy, Replicate Cog), inactive, or signals "not interested in deployment products."

What we corrected

The scoring rubric evolved during development. The biggest fixes:

FAILURE

Hobbyist Dekita scored 11.20, beating hypothetical founders

Original multiplier (0.3) was too weak against an inflated production_score from Haiku. Fix: drop multiplier to 0.15 + add hard ceiling of 4 on production_score for hobbyists.

FAILURE

Forum-only candidates scored zero

HN/Reddit candidates with no GitHub data fell through scoring entirely. Fix: compute forum_production_phrases flag via regex over their posts.

FAILURE

Lost 685 candidates to rate limit

Tenacity exponential backoff capped at 30s, gave up after 5 attempts. Fix: detect remaining=0 + reset_epoch header, sleep until reset (cap 90 min), then retry.

FAILURE

OSError: Argument list too long

Haiku batches of 20 candidates routinely hit Linux ARG_MAX when passed via argv. Fix: auto-detect prompt size, pipe via stdin when >60KB.

Want to dig deeper?