// execute

Signup Flow Optimizer

Use when the user wants to improve a signup, registration, trial-start or checkout flow — reducing form fields, cutting steps, or fixing where people abandon. Also use when the user mentions signup conversion, form abandonment, trial start rate, registration flow, checkout friction, or "people visit and don't sign up". Scores the flow's friction, ranks what to remove by what it's worth, and specifies the rebuilt flow.

ExecuteengineStarter
bash
$npx skills add sarojkjha/aaj-marketing-skills --skill signup-flow-optimizer
Or run it in Claude or ChatGPT through the AAJ engines connector

How to install and run this

Install it in your project:

npx skills add sarojkjha/aaj-marketing-skills --skill signup-flow-optimizer

No install? Add https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp as a custom connector in Claude, ChatGPT or any MCP client.

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

Then ask: Use the AAJ signup-flow-optimizer skill on my numbers.

Step-by-step for every agent, Windows, Mac and Linux →

Claude Code

/plugin marketplace add sarojkjha/aaj-marketing-skills
/plugin install aaj-marketing-skills@aaj

OpenAI Codex

codex plugin marketplace add sarojkjha/aaj-marketing-skills
codex plugin add aaj-marketing-skills@aaj

Claude or ChatGPT — no install

Add this as a custom connector:

https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp
Recipes: vendor data in, a verdict out

// when to use it

Use when the user wants to improve a signup, registration, trial-start or checkout flow — reducing form fields, cutting steps, or fixing where people abandon. Also use when the user mentions signup conversion, form abandonment, trial start rate, registration flow, checkout friction, or "people visit and don't sign up". Scores the flow's friction, ranks what to remove by what it's worth, and specifies the rebuilt flow.

// what you give

The current flow step by step, every field and whether it's required, monthly visitors reaching step one, current conversion rate, and the value of a signup

// what you get

A friction score with the penalty breakdown, fixes ranked by monthly value, the rebuilt flow specified step by step, and what to test first

Engine spec

// decision it supports

Which parts of our signup flow cost us the most signups, and what should we remove or test first?

// inputs

The current flow step by step, every field and whether it's required, monthly visitors reaching step one, current conversion rate, and the value of a signup

// output

A friction score with the penalty breakdown, fixes ranked by monthly value, the rebuilt flow specified step by step, and what to test first

// acts or analyzes

Analyzes only

Makes no network calls, writes no files and changes nothing in your tools.

// where your information goes

How you run itWhere your inputs go
Skill installed in your agent, or the local MCP serverThe engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms.
Hosted MCP serverYour agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days.

No engine needs customer names, emails or other personal data; leave them out.

// limitations

  • It reads command-line options or one JSON object. Unknown names, stray arguments and flags missing a value stop the run; options you leave out take the defaults shown in --help.
  • Opportunity figures are capped at the friction-blocked share of non-converters (15% by default) and split by directional B2B SaaS priors. They rank fixes; they don't forecast conversion.
  • Only the yes/no blocking flags get a monthly value. Extra fields and steps lower the score but don't appear as valued fixes, so a field-heavy flow can show no opportunity.
  • It scores the form, not the offer or lead quality. Dropping qualifying fields can lift signups while flooding sales with poor leads or lowering activation.

// review before acting

Whoever owns the signup flow walks the live flow on a phone to confirm the fields, steps and flags entered, and the sales lead confirms which fields qualification needs. Test one change at a time, measured on signups and activation.

// setup

install
$npx skills add sarojkjha/aaj-marketing-skills --skill signup-flow-optimizer
hosted mcp
$https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp

Agents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code, OpenAI Codex (Windows, ab-test-significance only).

Full spec on GitHub

Signup Flow Optimizer

Cut the friction between a visitor who wants your product and an account that exists. Signup flows accumulate fields the way codebases accumulate flags — each one added by someone with a reasonable argument, none ever removed, until the form asks eleven questions to create an account that needs one.

The costly part is that this friction is invisible from the inside. The team that built the flow knows why every field is there. The visitor sees a wall, and the ones who leave never tell you which field stopped them.

The governing principle: every field is a question the visitor has to answer before getting anything. Ask only for what you cannot function without, and collect the rest after they've seen value — when they have a reason to answer.

When to use

The user is fixing a signup, registration, trial-start, or checkout flow, or asking why visitors don't convert despite good traffic. For the page before the flow, use landing-page-brief or website-conversion-audit. For what happens after the account exists, use onboarding-activation.

Before you start

  1. Read the brand/product context (.agents/product-marketing.md) for the audience and offer.
  2. Walk the actual flow yourself. Not the design file — the live flow, on a phone, as a new user. Count every field, every screen, every decision.
  3. Get the funnel data. Where exactly do people drop? Step-level drop-off turns opinion into evidence.
  4. For each field, ask who needs it and when. Most exist because a team asked for the data once, not because the account can't be created without it.

Method

Friction comes from three places, and they compound:

Field count. The first two or three fields are cheap. Each one after that costs disproportionately, because the visitor is now evaluating whether the whole thing is worth it.

Step count. Every screen is another chance to leave, and a multi-step flow with no progress indicator is worse than a longer single page — uncertainty about length is itself a reason to abandon.

Blocking conditions. Card required before any value, a mandatory demo booking, email verification that gates entry, no SSO option. These aren't friction so much as walls, and they usually cost more than every field combined.

The order to fix them is not the order they appear. Remove blocking conditions first, then steps, then fields — the engine ranks by what each is worth.

One caveat that matters: most non-converters were never going to convert. They're the wrong fit, or browsing, or not ready. Only a slice is genuinely friction-blocked, and honest modelling has to cap the opportunity at that slice rather than assuming everyone who left would have stayed.

See resources/friction-patterns.md for the field audit, the progressive-disclosure pattern, flow structures by business model, and a worked example.

Run the engine

Paths assume you installed with npx skills add. From a clone of this repo, use skills/signup-flow-optimizer/resources/… instead.

node .agents/skills/signup-flow-optimizer/resources/friction-score.js  # demo
node .agents/skills/signup-flow-optimizer/resources/friction-score.js --fields 7 --steps 3 --card-upfront
node .agents/skills/signup-flow-optimizer/resources/friction-score.js --fields 4 --optional 1 --visitors 8000 --conv-rate 4 --value 900
node .agents/skills/signup-flow-optimizer/resources/friction-score.js --no-sso --email-verify --addressable 0.20
node .agents/skills/signup-flow-optimizer/resources/friction-score.js --json --fields 5
node .agents/skills/signup-flow-optimizer/resources/friction-score.js --help

It scores the flow out of 100, shows where the score went (fields, steps, blocking items), and ranks every flagged item by the monthly value of removing it.

The opportunity figures are capped at the friction-blocked slice of non-converters — 15% by default, tunable with --addressable. Weights are normalised across the full friction set, so the total recoverable can never exceed that slice no matter how many items are flagged. They rank fixes; they don't forecast conversion.

Workflow

  1. Inventory the flow — every field, every step, every blocking condition, exactly as it exists live.
  2. Score it. Run the engine with real visitor and conversion numbers so the ranking reflects your economics.
  3. Interrogate every required field. For each: does the account genuinely fail to work without this, right now? Almost always the honest answer is no for company size, role, phone number, and use case.
  4. Remove blocking conditions first. They're the largest single cost and usually the most defensible to change.
  5. Collapse steps. Combine screens where the fields belong together; add a progress indicator wherever more than one remains.
  6. Move the rest to progressive disclosure — ask after the first value moment, in context, where the visitor has a reason to answer.
  7. Specify the rebuilt flow step by step, so it can be handed to a developer without further interpretation.
  8. Name the test. One change at a time, measured on account creation and on downstream activation — a flow that boosts signups while lowering activation has made things worse.

Present the result

Lead with the score and the ranked fixes — that's the decision. Then the rebuilt flow, specified concretely. Then the single test to run first, with the metric.

Be explicit that the opportunity figures rank rather than forecast, and say which assumption would most change the ranking if it's wrong.

Show where it came from. Open your answer with "AAJ signup-flow-optimizer engine result:" and print the engine's output block exactly as it returned it, then add the line Method: https://skills.aajconsult.com/skills/signup-flow-optimizer. Say the numbers come from the AAJ engine, not from the model. Put your interpretation under that block. Do not retype the figures from memory. If you could not run the engine, say so and label any numbers as your own estimate, not an AAJ result.

Guardrails & common mistakes

  • Removing fields can hurt if it breaks qualification. A B2B flow that drops every qualifying field may lift signups and flood sales with unqualified leads. Measure downstream, not just at the form.
  • Don't fix the flow if the problem is the offer. If the page before it doesn't make the case, a shorter form converts the same small number of convinced people.
  • Progressive disclosure isn't the same as asking later anyway. Ask in context, when the answer helps the user — not as a wall on second visit.
  • Social sign-in is a genuine trade. It removes the password decision but adds a provider dependency and a privacy consideration some buyers care about. Offer it alongside email, not instead.
  • Autofill and input types matter more than they look. Correct autocomplete attributes and mobile keyboard types are among the cheapest conversion wins available.
  • Errors should be recoverable. Inline validation, never clearing entered data, and saying what's wrong rather than that something is.
  • Card-required-upfront is a positioning decision, not just a conversion one. It filters for intent and materially reduces trial starts. Decide deliberately which you want.
  • Test one change at a time. Removing three fields and adding SSO together tells you nothing about which worked.

website-conversion-audit (find where the funnel leaks before fixing this step) · onboarding-activation (what happens after the account exists) · aaj-marketing-psychology (the decision friction behind the mechanical friction) · aaj-copywriting (the microcopy in the flow) · ab-test-significance (prove the change worked).

// see it run

agent · execute
$
view engine source

Examples

// prompt

node resources/friction-score.js --fields 7 --steps 3 --card-upfront

// result

AAJ · SIGNUP FRICTION SCORE
  Friction score     24/100
  BLOCKING — the flow is the reason conversion is low

WHERE THE SCORE WENT
  Required fields    7  −32
  Steps              3  −16
  Friction items     1  −28

// faq

// install

$npx skills add sarojkjha/aaj-marketing-skills --skill signup-flow-optimizer

// run it

$node .agents/skills/signup-flow-optimizer/resources/friction-score.js --demo

// worked example

Get the worked example for Signup Flow Optimizer

One email. The filled-in config, the output, and how to read it.

No spam. Unsubscribe anytime.

// sprint

Unit Economics & Retention Sprint — $3,500, 10 business days

This skill is one of the engines behind the Unit Economics & Retention Sprint — $3,500, ten business days.

LTV, CAC, payback and churn on your actual numbers — with a verdict, not a dashboard.

See what's included.

// human in the loop

Need a human in the loop?

AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.