Recording of the visual regression run on halvingjobs.com · HalvingJobs — app walkthrough.

In this video· click a step to jump to it

H
Passed

Test recording

HalvingJobs — app walkthrough

104,252 ms · 12,987 pixels changed

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

Take this test with you

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

export async function test(page, baseUrl, screenshotPath, stepLogger) {
  const shot=(n,s)=>screenshotPath.replace('.png','-'+n+'-'+(String(s).replace(/[^a-z0-9]+/gi,'-').replace(/^-|-$/g,'').toLowerCase().slice(0,22)||'view')+'.png');
  const ORIGIN=new URL("https://halvingjobs.com/en/candidate/dashboard").origin; const MINPOST=9;
  await page.context().setExtraHTTPHeaders({ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36" }).catch(function(){});
  let idx=1, post=0;
  const cap=async(s,full)=>{ stepLogger.log('Scenario '+idx+': '+s); await page.screenshot({ path: shot(idx,s), fullPage: full!==false }); idx++; };
  const accept=async()=>{ await page.getByRole('button',{name:/accept all|got it|^accept$|dismiss|^close$|skip|maybe later|not now|^ok$|let me start|show me|continue/i}).first().click({timeout:1500}).catch(function(){}); await page.keyboard.press('Escape').catch(function(){}); };
  const is404=async()=>{ const b=await page.locator('body').innerText().catch(function(){return '';}); return /\b404\b|page not found|page you.{0,6}looking for|doesn.t exist|couldn.t find|lost in the/i.test(b); };
  // 1. Public home
  await page.goto("https://halvingjobs.com/en",{waitUntil:'domcontentloaded'}).catch(function(){}); await page.waitForLoadState('networkidle',{timeout:6000}).catch(function(){}); await page.waitForTimeout(1500); await accept(); await cap('home');
  // 2. Post-login dashboard (authed via replayed storage_state)
  await page.goto(APPENTRY="https://halvingjobs.com/en/candidate/dashboard",{waitUntil:'domcontentloaded'}).catch(function(){}); await page.waitForLoadState('networkidle',{timeout:8000}).catch(function(){}); await page.waitForTimeout(2600); await accept(); await page.waitForTimeout(600); await cap('dashboard'); post++;
+34 more lines claim the test to get the full code.

Checks run

Run
Visual
0.11%
Text
DOM
Network
+195 −195
Console
A11y
A
Perf
52 over
URL
Variables
Full report
Log in →
12,987
Diff px
1m 44s
Duration
A
Accessible
WCAG 2.2 · 95
A
Fast
Web Vitals · 100

Notes from the demo run

AI-generated

HalvingJobs is a Web3/AI jobs platform with a role-segmented onboarding (Job Seeker / Employer / AI Buyer / Contributor) and a structured candidate workspace. After verifying email, the candidate dashboard centers on a guided 'Create Your Web3 Profile' builder (title, level, years, work mode, contract type), backed by applications, saved jobs, a talent directory and a crypto-news feed.

Highlights
  • Role-segmented signup
    Picking Job Seeker vs Employer up front tailors the entire dashboard — the candidate never wades through employer-only features. Clean segmentation for a two-sided marketplace.
  • Guided profile builder
    The first authenticated action is a single well-scoped form (title, level, years, work mode, contract) rather than an empty dashboard — strong activation design.
Friction points
  • Post-register redirect stalls
    The signup API returns 201 successfully, but the SPA stays on /register instead of routing to a 'check your email' screen — a user can think signup failed and re-submit. A redirect-on-201 would fix it.
  • Email field typed as text
    The register email input is type=text (not type=email), so mobile keyboards won't show the @ layout and browser email validation is skipped.

3 visual changes

Step 15,729 px changed
Before
Before
After
After
Diff
Diff
Step 97,234 px changed
Before
Before
After
After
Diff
Diff
Step 1124 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.
56,423 test runs recorded · 962 products tested with Lastest

This test was built for halvingjobs.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.