Severity: Low
Labels: seo, frontend, P3
Location: frontend/src/app/careers/[slug]/page.tsx:8-12, frontend/src/app/careers/[slug]/ApplyForm.tsx:48
Description
When slug matches no job, the page passes job={null} to ApplyForm, which renders a "not found" message but the HTTP response stays 200 OK. Crawlers treat this as a soft 404 (indexable thin page); there's no canonical 404 behavior.
Steps to reproduce
- Visit
/careers/does-not-exist.
- Response is 200 with a "not found" body instead of a real 404.
Expected vs actual
- Expected: real 404 (
not-found.tsx).
- Actual: 200 soft-404.
Suggested fix
Call notFound() from next/navigation when job is null.
Acceptance criteria
- An unknown careers slug returns HTTP 404 and renders the not-found page.
Severity: Low
Labels: seo, frontend, P3
Location:
frontend/src/app/careers/[slug]/page.tsx:8-12,frontend/src/app/careers/[slug]/ApplyForm.tsx:48Description
When
slugmatches no job, the page passesjob={null}toApplyForm, which renders a "not found" message but the HTTP response stays 200 OK. Crawlers treat this as a soft 404 (indexable thin page); there's no canonical 404 behavior.Steps to reproduce
/careers/does-not-exist.Expected vs actual
not-found.tsx).Suggested fix
Call
notFound()fromnext/navigationwhenjobis null.Acceptance criteria