In this video· click a step to jump to it
Test recording
HireLens — app walkthrough
88,149 ms · 0 pixels changed · matches baseline
We built this regression test for hirelens-ai-analyze.vercel.app — it's yours to keep, free.
Take this test with you
This is a real Playwright test, recorded against hirelens-ai-analyze.vercel.app. 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, slug) => screenshotPath.replace('.png', `-${n}-${slug}.png`);
const SCROLL_THROUGH = "(async () => { const ease = t => 1 - Math.pow(1 - t, 3); const max = Math.max(0, document.body.scrollHeight - window.innerHeight); if (max < 40) return; const anim = (a, b, ms) => new Promise(res => { const t0 = performance.now(); const step = now => { const p = Math.min(1, (now - t0) / ms); window.scrollTo(0, a + (b - a) * ease(p)); p < 1 ? requestAnimationFrame(step) : res(); }; requestAnimationFrame(step); }); await anim(0, max, 1300); await new Promise(r => setTimeout(r, 300)); await anim(max, 0, 700); })()";
const PDF_B64 = 'JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXSAvUmVzb3VyY2VzIDw8IC9Gb250IDw8IC9GMSA1IDAgUiA+PiA+PiAvQ29udGVudHMgNCAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL0xlbmd0aCA4NjMgPj4Kc3RyZWFtCkJUCi9GMSAxMSBUZgo2MCA3NjAgVGQKMTQgVEwKKFZJS1RPUiBMQVNURVNUIC0gU2VuaW9yIFByb2R1Y3QgRW5naW5lZXIpIFRqIFQqCigpIFRqIFQqCihTVU1NQVJZKSBUaiBUKgooRnVsbC1zdGFjayBlbmdpbmVlciwgNiB5ZWFycyBidWlsZGluZyBTYWFTLiBMZWQgZnJvbnRlbmQgYXJjaGl0ZWN0dXJlIGZvciBhKSBUaiBUKgooQjJCIGFuYWx5dGljcyBwbGF0Zm9ybSBhbmQgc2hpcHBlZCBhIFBsYXl3cmlnaHQgdmlzdWFsLXJlZ3Jlc3Npb24gc3lzdGVtLikgVGogVCoKKCkgVGogVCoKKFNLSUxMUykgVGogVCoKKEphdmFTY3JpcHQsIFR5cGVTY3JpcHQsIFJlYWN0LCBOZXh0LmpzLCBOb2RlLmpzLCBQb3N0Z3JlU1FMLCBQbGF5d3JpZ2h0LCBBV1MsKSBUaiBUKgooQ0kvQ0QsIHN5c3RlbSBkZXNpZ24sIHByb2R1Y3QgYW5hbHl0aWNzLCBBL0IgdGVzdGluZy4pIFRqIFQqCigpIFRqIFQqCihFWFBFUklFTkNFKSBUaiBUKgooTGVhZCBGcm9udGVuZCBFbmdpbmVlciwgTGFzdGVzdCBcKDIwMjItMjAyNlwpKSBUaiBUKgooLSBCdWlsdCBhbiBBSSB0ZXN0LWdlbmVyYXRpb24gcGxhdGZvcm0gb24gUGxheXdyaWdodCBzZXJ2aW5nIDEwMDArIHJlcG9zLikgVGogVCoKKC0gQ3V0IHZpc3VhbC1yZWdyZXNzaW9uIGZhbHNlIHBvc2l0aXZlcyA2MCUgd2l0aCBwZXJjZXB0dWFsIGRpZmZpbmcuKSBUaiBUKgooU29mdHdhcmUgRW5naW5lZXIsIERhdGFDb3JwIFwoMjAyMC0yMDIyXCkpIFRqIFQqCigtIFNoaXBwZWQgYSByZWFsLXRpbWUgZGFzaGJvYXJkIHVzZWQgYnkgMTBrIGRhaWx5IGFjdGl2ZSB1c2Vycy4pIFRqIFQqCigpIFRqIFQqCihFRFVDQVRJT04pIFRqIFQqCihCU2MgQ29tcHV0ZXIgU2NpZW5jZSkgVGogVCoKRVQKCmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHlwZTEgL0Jhc2VGb250IC9IZWx2ZXRpY2EgPj4KZW5kb2JqCnhyZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwOSAwMDAwMCBuIAowMDAwMDAwMDU4IDAwMDAwIG4gCjAwMDAwMDAxMTUgMDAwMDAgbiAKMDAwMDAwMDI0MSAwMDAwMCBuIAowMDAwMDAxMTU1IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgNiAvUm9vdCAxIDAgUiA+PgpzdGFydHhyZWYKMTIyNQolJUVPRg==';
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' });
for (const pattern of ['**/cdn-cgi/scripts/**/email-decode.min.js', '**/sentry-cdn.com/**', '**/browser.sentry-cdn.com/**', '**/cdn.segment.com/**', '**/connect.facebook.net/**', '**/googletagmanager.com/**']) {
await page.route(pattern, r => r.abort()).catch(function () {});
}
const findings = [];
Checks run
Notes from the demo run
AI-generatedHireLens turns a resume + a job description into a full, tailored interview-prep report. We registered, pasted a JD, uploaded a resume PDF, and in ~20s got a Senior-Frontend-Engineer report: a 90% compatibility score ('Excellent Fit'), an Identified-Gaps panel, 8 resume-specific technical questions, plus Behavioral and a day-by-day Preparation Plan. The output quality is the standout - the questions referenced real resume lines (Playwright, perceptual diffing, Next.js).
- Genuinely tailored outputThe AI didn't return generic questions - it pulled specifics from the uploaded resume (e.g. 'Explain perceptual diffing you used to cut visual-regression false positives') and mapped gaps like 'Mentorship experience (HIGH)'. That specificity is what makes the report feel worth the upload.
- Clean report IACompatibility score, Identified Gaps, and three switchable sections (Technical / Behavioral / Preparation Plan) with counts make a dense AI result scannable in one screen.
- Resume upload rejects .txt/.doc despite the UIThe upload zone says 'Supports PDF, DOC, DOCX, TXT (Max 5MB)', but a .txt file fails the analysis with a 500 + 'Invalid PDF structure.' - the backend only parses PDFs. Either accept the listed formats or tighten the accepted-types copy so users don't hit a dead end.
- Google sign-in doesn't complete'Continue with Google' on /auth/signin returns to the sign-in page (a 401 on /api/v1/auth/me, no redirect) on this deployment - likely the OAuth redirect URI isn't allow-listed for the Vercel preview domain. Email signup works fine, so it's an easy config fix.
Share this run
Proof your app is not AI slop
This test was built for hirelens-ai-analyze.vercel.app — 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.