Recording of the visual regression run on passport.eazyply.com · eazyply — app walkthrough.

In this video· click a step to jump to it

P
Passed ✓

Test recording

eazyply — app walkthrough

53,880 ms · 2,302 pixels changed

We built this regression test for passport.eazyply.com — it's yours to keep, free.

Take this test with you

This is a real Playwright test, recorded against passport.eazyply.com. Claim it into your own workspace and re-run it on every deploy — free.

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const CFG = {"appEntry":"/profile","publicMaxNav":0,"fullPage":true,"steps":[{"goto":"/onboarding/goals","label":"career-goals","waitMs":1500},{"check":["input[name=\"career_goals[]\"]"],"fill":[{"sel":"input[name=desired_role]","value":"Senior Software Engineer"},{"sel":"input[name=target_country]","value":"Germany"}],"submit":"Continue","label":"goals-completed","waitMs":2500},{"goto":"/onboarding/about","label":"about-you","waitMs":1500},{"goto":"/profile","label":"passport-editor","waitMs":1500},{"fill":[{"sel":"input[name=headline]","value":"Senior Backend Engineer · Remote-first · Open to relocation"},{"sel":"input[name=desired_role]","value":"Staff Engineer"}],"label":"fill-passport-fields","waitMs":800},{"submit":"Save","label":"passport-saved","waitMs":2500},{"goto":"/profile/resume","label":"resume-upload","waitMs":1500},{"goto":"/profile/resume/score","label":"employability-score","waitMs":2000}]};
  const shot = function(i, s){ return screenshotPath.replace('.png', '-' + i + '-' + s + '.png'); };
  page.setDefaultTimeout(6000);
  // single combined noise-abort route (1 action instead of ~10)
  await page.route(function(u){ return /sentry|segment\.com|googletagmanager|google-analytics|hotjar|posthog|connect\.facebook|cdn-cgi\/scripts/.test(u.toString()); }, function(r){ r.abort().catch(function(){}); }).catch(function(){});
  let n = 1;
  const FP = CFG.fullPage !== false;
  const GOTO = 11000;
  const wait = function(ms){ return page.waitForTimeout(ms||500); };
  const dismiss = async function(){ const d = page.getByRole('button', { name: /skip|dismiss|maybe later|not now|got it|close|no thanks|continue|get started/i }).first(); if (await d.isVisible().catch(function(){return false;})) { await d.click({ timeout:2000 }).catch(function(){}); await wait(400); } };
  const clickByText = function(src){ return page.evaluate(function(s){
+55 more lines — claim the test to get the full code.

Checks run

Run
✓
Visual
1.73%
Text
—
DOM
✓
Network
—
Console
✓
A11y
Review
Perf
✓
URL
✓
Variables
—
Full report
Log in →
2,302
Diff px
54s
Duration
Review
Accessible
WCAG 2.2
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

EazyPly Passport asks job-seekers to build 'a passport recruiters actually read' through a five-step onboarding wizard (career goals, about-you, job types) that feeds a rich profile editor — headline, current/desired role, country, target country, remote-openness, languages and an AI resume score. It's a thoughtful, structured alternative to a flat resume.

Highlights
  • Onboarding captures real intent
    Rather than just name+email, onboarding collects career goals, desired role, target country and job-type preferences up front — the kind of structured data that actually powers matching.
  • AI employability score
    The resume step leads into a /profile/resume/score surface, framing the passport as something measurable and improvable rather than a static document.
Friction points
  • /dashboard bounces to onboarding until fully complete
    Deep-linking to /dashboard (or /profile via a saved link) redirects back to /onboarding/goals until the entire wizard — including the resume step — is finished. A returning user with an incomplete profile gets sent back to step one.
  • 'Let's build your profile' is an anchor, not a wizard action
    On the welcome step the primary button is a plain link to /profile/resume; it reads like a completion action but doesn't mark onboarding done, which is easy to misread.

2 visual changes

Step 2608 px changed
Before
Before
After
After
Diff
Diff
Step 51,694 px changed
Before
Before
After
After
Diff
Diff

Share this run

Earned · Lastest awards

Proof your app is not AI slop

LASTEST
starter
tests
all passing
regressions
0
Badges stay live, ratchet upward, only downgrade on confirmed regression.
57,257 test runs recorded · 1,158 products tested with Lastest

This test was built for passport.eazyply.com — claim it free

One click copies the test and baseline screenshots into your own Lastest workspace. Re-run on every deploy and catch regressions before your users do — free, no card required.