Vacancy Card

Matched job opening card from ResultsView's locked section (Bunch D, Phase 3) — Jooble (primary) + DOU RSS (secondary, title-filtered), deduped and capped at 3-5 per grade. Never shows an irrelevant vacancy to fill space — see the empty-state below.

Matched vacancies

Title, company/location, salary (if present), a source badge (Jooble/DOU), and an outbound link — opens in a new tab.

PropTypeDefaultDescription
matchJobMatchOne normalized vacancy from Jooble or DOU (or a demo fixture).
linkLabelstringLocalized "View" label — from resultsCopy.jobMatchesViewLabel.

Loading state

Shown while the /api/jobs fetch is in flight for an unlocked user — never fetched at all for a locked/anonymous viewer.

Empty state

Hard requirement from the Bunch D research: fewer than 1 relevant match found → show this, never irrelevant vacancies just to fill space.

No matches yet — check back later.

PropTypeDefaultDescription
messagestringLocalized empty-state copy — from resultsCopy.jobMatchesEmpty.
Sergiy Klimkovych

Need a design system like this?

I design and build products end‑to‑end — from first idea and design system to production‑ready code, ready to hand off to your development team.

Product Designer | AI Design Engineer | Designer for Startups | Mobile & Complex SaaS | from Idea to Product | Framer Developer