---
title: "AI sign-up page review: check the whole flow, through to the email · Proxy Mail QA"
description: "Have an AI agent review your sign-up past the button: the verification email arrives, its link works once, and exactly one email is sent."
url: https://proxymail.qa/solve/ai-sign-up-page-review
---

1. [Home](https://proxymail.qa/)
2. [What we solve](https://proxymail.qa/solve)

# AI sign-up page review: check the whole flow, through to the email

An AI agent can review more than the form. With a test inbox, it can follow the sign-up through the verification email and check the bugs that only show up there.

Updated 5 November 2026

> **Our recommendation, up front.** We make Proxy Mail QA, so we’re not neutral. In this article we recommend it for the part of a sign-up review that happens after the button is pressed: whether the verification email arrives, whether its code or link finishes the sign-up, whether the email is sent and built properly, and whether exactly one arrives. Proxy Mail QA doesn’t judge how your page looks or how well it converts, it can’t receive SMS codes, and it doesn’t test social sign-in such as Sign in with Google.

Ask an AI agent to review a sign-up page and it will usually look at the form: the labels, the fields, the button. That’s the part that rarely breaks. The bugs that reach users are in what happens next:

- The verification link points to `localhost`, so it works on your machine and nowhere else.
- Nothing arrives, because the email provider is still in sandbox mode.
- Two emails arrive, because the form submits twice or two parts of the code both send one.
- The email says the link lasts 24 hours, and the server expires it after one.
- The link still works after it’s been used, or after a newer one was sent.

None of these show up until a real email lands in a real inbox. This article shows how to let an agent check them on every review.

## What the agent checks

| Step                                  | How                                                                                                                                                                                   | What a failure looks like                                                                                                                               |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The email arrives                     | wait\_for\_code or wait\_for\_link waits up to 30 seconds, ignoring anything older than the sign-up (since)                                                                           | Nothing comes. check\_delivery says what reached the address and the likely cause, such as a provider in sandbox mode or mail refused for failing DMARC |
| The code or link finishes the sign-up | The agent types the code or opens the link in its own browser, then checks it’s signed in                                                                                             | An error page, an expired link, or a sign-up that doesn’t complete                                                                                      |
| The email is sent properly            | check\_email: SPF, DKIM and DMARC, links to localhost or plain http, where the link goes (expect\_host), a stated expiry, a plain-text part, its size, given phrases and its language | local\_links failed, or the link goes to production from staging                                                                                        |
| Exactly one arrives                   | count\_emails with since                                                                                                                                                              | A count of 2                                                                                                                                            |
| Used and replaced links stop working  | The auth\_regression\_pack prompt or skill opens a used link again, and an older link after a newer one                                                                               | The old link still signs someone in                                                                                                                     |

Proxy Mail QA never opens links itself, so a single-use link is still unused when the agent gets it. The agent only ever sees the code or link and a few facts about it, never the email’s text.

## Connect it in Qoder

1. In the Qoder Marketplace, connect Proxy Mail QA from the Connectors tab ([global site](https://qoder.com/en/marketplace/connector?id=proxymail-qa), [China site](https://qoder.com.cn/marketplace/connector?id=proxymail-qa)), or install the [plugin](https://qoder.com/en/marketplace/plugin?id=3b572e73-56f2-47d6-add5-df0109705fb3) for the same tools plus eight skills.
2. Sign in to Proxy Mail QA in your browser when Qoder asks, and choose the project the agent may use.
3. Set Qoder’s permission level to **Ask every time**, not Auto approve, and approve each Proxy Mail QA step.

To add it by hand instead, open **Qoder IDE Settings → MCP**, choose **\+ Add** on the **My Servers** tab, and add:

JSON

```json
{
  "mcpServers": {
    "proxymail-qa": {
      "type": "http",
      "url": "https://api.proxymail.qa/mcp"
    }
  }
}

```

## Ask for the review

Prompt

```text
Review the sign-up at https://staging.acme.dev/signup with Proxy Mail QA. Start a run.
Sign up with a new address (use form_values for the fields), note the time just before
you submit, and finish the verification with the code or link from the email.
Check you're signed in. Run check_email with expect_host: staging.acme.dev, and
count_emails since the sign-up: exactly one email should have come.
Then request a second verification email, and check the first link no longer works.
Finish the run and give me the report, with what to fix first.

```

The server’s `test_signup_flow` prompt runs the sign-up, `check_email` and `count_emails` steps the same way (not the second verification email), in clients that show MCP prompts. With the plugin installed, the **proxymail-qa** skill covers a single sign-up, **auth-regression-pack** repeats sign-up, password reset and invitations the same way every time, and **account-email-audit** triggers every account email your app sends and lists what to fix.

## The report

`finish_run` returns the session in Markdown: each step, what passed and what failed, with a one-line reason for each check. Paste it into the pull request. When you run `auth_regression_pack` again later, its report says what changed since the last runs, so a change that broke the reset email shows up as a change, not as a long list to read.

## Common findings, and what to change

| Finding                    | Usual cause                                                              | Fix                                                                                                                                                            |
| -------------------------- | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The link goes to localhost | The link is built from a hard-coded URL                                  | Build it from an environment variable for the app’s public URL. [Fixes for Supabase, Firebase, Auth.js and others](https://proxymail.qa/solve/localhost-links) |
| Nothing arrives            | The email provider only sends to verified addresses                      | Finish the provider’s production set-up, or verify the sending domain                                                                                          |
| Two emails                 | The form submits twice, or both your code and your auth service send one | Disable the button while the request runs; send from one place                                                                                                 |
| The stated expiry is wrong | The template and the server have different settings                      | Take both from one setting                                                                                                                                     |
| An old link still works    | Tokens aren’t cleared when used or replaced                              | Make each link single-use, and invalidate older ones when a new one is sent                                                                                    |

To stop these coming back, give the agent a rule, in your project’s rules or at the start of an auth task:

Prompt

```text
When changing sign-up, login, password reset, invites or any email-sending code:
- Build links from the app's public URL setting, never a hard-coded localhost.
- Keep the expiry stated in an email equal to the one the server enforces.
- Make single-use links and codes stop working once used or replaced.
- Tell me which emails to test by hand after the change.

```

## What it won’t do

- **Review the page itself.** Layout, wording, accessibility and speed need other tools, or a person. See [How to review my sign-up page](https://proxymail.qa/solve/how-to-review-my-sign-up-page).
- **SMS, authenticator apps and social sign-in.** Proxy Mail QA receives email only.
- **Create accounts or submit forms.** The agent does that, with its own browser tools.
- **Work with an email provider in sandbox mode.** It can only show you that nothing arrived, and why.
- **Test live sites of big consumer services**, such as Google, Instagram or Amazon. It’s for apps you build or are allowed to test, on staging or locally.

More detail: [testing email verification](https://proxymail.qa/solve/email-verification-testing), [the MCP server](https://proxymail.qa/docs/mcp) and [Proxy Mail QA for Qoder](https://proxymail.qa/built-with/qoder).

## Try it on your next sign-up test

Free plan, no credit card. Create an address and watch the code or link arrive.

[Create a free account](https://app.proxymail.qa/?mode=signup&from=site-solve-ai-sign-up-page-review)

## Related guides

- [Test sign-up and email verificationA fresh, private address for every sign-up test, with the verification link or code ready the moment it lands.](https://proxymail.qa/solve/email-verification-testing)
- [Test OTP and one-time login codesCodes pulled out of the email with a Copy button and a countdown when the email says how long they last.](https://proxymail.qa/solve/otp-code-testing)
- [Test magic links and passwordless sign-inSingle-use links that are never opened or prefetched on our side, so they still work when you click them.](https://proxymail.qa/solve/magic-link-testing)
- [Test password reset emailsRequest, receive and use reset links, and keep the new password saved next to the test account.](https://proxymail.qa/solve/password-reset-testing)
- [Stop sharing one Gmail inbox for QAPrivate, disposable addresses for every tester instead of one shared mailbox and a pile of plus-addresses.](https://proxymail.qa/solve/shared-test-inbox)
- [Take QA notes by voice with Wispr FlowDictate what each test account is for, its state and what you found, straight into its notes, in seconds.](https://proxymail.qa/solve/voice-notes-wispr-flow)
- [Verification link points to localhost:3000Why emails from staging link to localhost, how to fix it in Supabase, Firebase and other stacks, and how we flag it.](https://proxymail.qa/solve/localhost-links)
- [Common Supabase sign-up and login problemsEmails that never arrive, links that expire or sign nobody in, and sign-ups that fail, with the fix for each.](https://proxymail.qa/solve/supabase-auth-problems)
- [Common Firebase sign-up and login problemsMissing verification and reset emails, verified users who still look unverified, failing links and sign-up limits, with the fix for each.](https://proxymail.qa/solve/firebase-auth-problems)
- [Sign-up and login problems in vibe-coded appsThe login bugs AI-built apps usually ship with: emails only you receive, links to the preview, missing pages, and what to ask the builder.](https://proxymail.qa/solve/vibe-coded-login-problems)
- [Test sign-up emails in PlaywrightA complete Playwright test for sign-up codes and links, from a fresh inbox to the report on the pull request.](https://proxymail.qa/solve/playwright-email-tests)
- [Test sign-up emails in CypressA complete Cypress test for sign-up links and codes, with the email waits running as Cypress tasks.](https://proxymail.qa/solve/cypress-email-tests)
- [Test sign-up emails with pytestA complete pytest test for sign-up codes and links, with Playwright for Python or Selenium and a one-file helper.](https://proxymail.qa/solve/pytest-email-tests)
- [Test coupon codes and welcome offersThe coupon with its discount, end date and arrival time, what checkout did with it, and a failure when an expired or reused one is accepted.](https://proxymail.qa/solve/coupon-code-testing)
- [Test unsubscribe links and one-click unsubscribeThe unsubscribe headers and link checked on every marketing email, and a watch that flags any marketing after unsubscribing, with no time limit.](https://proxymail.qa/solve/unsubscribe-testing)
- [Test that a welcome offer can't be claimed twiceVersions of one address that reach the same inbox, and a check that fails when the same person got the offer more than once.](https://proxymail.qa/solve/welcome-offer-abuse)
- [AI registration page reviewAn agent tries every field with values made for it, then finishes the registration through the email.](https://proxymail.qa/solve/ai-registration-page-review)
- [Review a sign-up page by handA checklist for your browser and phone, in the order that finds the most problems.](https://proxymail.qa/solve/how-to-review-my-sign-up-page)
- [Review a simple sign-up form12 checks for a form with an email, a password and perhaps a name.](https://proxymail.qa/solve/review-a-simple-sign-up-form)
- [Review a multi-page sign-up formOne test account across every screen, and the verification email wherever it comes.](https://proxymail.qa/solve/review-a-multi-page-sign-up-form)
- [Review a financial sign-up formThe emails, age and country rules and awkward values in a financial sign-up, and what needs other tools.](https://proxymail.qa/solve/review-a-financial-website-sign-up-form)
- [An email address for testing registrationA new, real address for every registration try, with the code or link ready to use.](https://proxymail.qa/solve/email-for-checking-my-registration-form)
- [An email address for testing sign-inTest accounts with saved passwords and an inbox for codes, magic links and resets.](https://proxymail.qa/solve/email-for-checking-my-sign-in-form)
- [How long should a password be?NIST's numbers for password length and rules, and test passwords to check yours.](https://proxymail.qa/solve/how-long-should-my-registration-form-password-be)
- [No error for a password that breaks the rulesThe eight usual causes of a silent password field, and how to tell which one it is.](https://proxymail.qa/solve/why-is-my-registration-form-not-showing-password-errors)
- [Help me check my websiteA whole-site check in an afternoon, in the order that finds the costliest problems first.](https://proxymail.qa/solve/help-me-check-my-website)
- [Tools to build and check a websiteA toolkit by area, most of it free and none of it ours, except for account emails.](https://proxymail.qa/solve/tools-to-help-build-and-check-my-website)
- [What tools do I need for a website?The full list, then which parts a simple site can skip.](https://proxymail.qa/solve/what-tools-do-i-need-when-building-a-website)

[Built your app with an AI tool? Pick yours](https://proxymail.qa/built-with)
