An AI job-search agent for mid- and senior-level professionals: continuous monitoring, transparent matching, and an application workflow that respects people's time. Below — the full process, stage by stage, with a real artifact for each. The product is live at cside.work.
Ein AI-Agent für die Jobsuche von Mid- und Senior-Professionals: kontinuierliches Monitoring, transparentes Matching und ein Bewerbungs-Workflow, der die Zeit der Menschen respektiert. Unten: der komplette Prozess, Etappe für Etappe, mit echtem Artefakt zu jeder. Das Produkt ist live auf cside.work.

One senior designer, an AI-first workflow, a live product. I designed CareerSide end-to-end — 15+ interviews, a four-module architecture, 40+ screens on a 20-component system — and answered the research's hardest finding (91% distrust black-box matching) with transparency as the core design principle. Task success went 65% → 92% across three moderated test rounds. Live at cside.work.
Eine Senior-Designerin, ein AI-First-Workflow, ein Live-Produkt. CareerSide habe ich End-to-End designt — 15+ Interviews, eine Vier-Module-Architektur, 40+ Screens auf einem 20-Komponenten-System — und die härteste Research-Erkenntnis (91% misstrauen Black-Box-Matching) mit Transparenz als zentralem Designprinzip beantwortet. Task Success stieg über drei moderierte Testrunden von 65% auf 92%. Live auf cside.work.
For mid- and senior-level professionals, job searching is a second job: hours of scrolling, missed postings, generic applications sent under time pressure. Before any pixels — three falsifiable hypotheses, each with a kill-criterion.
Für Mid- und Senior-Professionals ist die Jobsuche ein zweiter Job: Stunden des Scrollens, verpasste Ausschreibungen, generische Bewerbungen unter Zeitdruck. Vor jedem Pixel: drei falsifizierbare Hypothesen mit je einem Abbruchkriterium.
| # | Hypothesis | Kill criterion | Verdict |
|---|---|---|---|
| H1 | The core pain is relevance noise, not lack of listings — only a fraction of postings fit a senior profile | <50% name irrelevant listings as top frustration | Confirmed — 78% report a 10–15 h/week search sink |
| H2 | Professionals will delegate the search to an agent — but only one they can verify | Automation ranks below "more listings" in interviews | Partly — 85% want automation, 91% refuse a black box |
| H3 | Tracking applications in spreadsheets is a pain people want productized | Existing tools rated "good enough" by majority | Confirmed — 73% send generic applications; tracking chaos named as a cause |
Desk research at AI speed. Structured LLM scans over reviews of major job platforms, career-advice communities and EU hiring reports produced the candidate pain list; I read the primary sources behind everything that became a hypothesis. AI widened the funnel; judgment stayed manual.
Desk Research in AI-Geschwindigkeit. Strukturierte LLM-Scans über Reviews großer Job-Plattformen, Karriere-Communities und EU-Hiring-Reports erzeugten die Longlist der Pains; die Primärquellen zu allem, was Hypothese wurde, habe ich selbst gelesen. AI verbreiterte den Trichter; das Urteil blieb manuell.
Why kill-criteria matter: a hypothesis you can't lose is an opinion. H2's partial verdict — trust must be earned, not assumed — became the single most important design constraint of the product.
Warum Abbruchkriterien zählen: Eine Hypothese, die man nicht verlieren kann, ist eine Meinung. Das Teil-Verdikt zu H2 — Vertrauen muss verdient, nicht vorausgesetzt werden — wurde die wichtigste Design-Constraint des Produkts.
In-depth interviews with mid- and senior-level professionals actively searching or recently hired, plus journey mapping of their current search routine. The numbers below come from this interview program.
Tiefeninterviews mit Mid- und Senior-Professionals — aktiv suchend oder frisch eingestellt — plus Journey Mapping ihrer aktuellen Suchroutine. Die Zahlen unten stammen aus diesem Interview-Programm.
Format. 30–45 min semi-structured interviews with a screening questionnaire first (seniority, industry, search stage). Recruited across both active searchers and the recently hired — the latter remember exactly where the process hurt.
Format. 30–45-minütige semistrukturierte Interviews, vorab Screening-Fragebogen (Seniorität, Branche, Suchphase). Rekrutiert wurden aktiv Suchende und frisch Eingestellte — Letztere erinnern genau, wo der Prozess wehtat.
AI-assisted coding. Transcripts clustered by LLM into a theme tree; I verified each cluster against the raw recordings and merged down to the four load-bearing themes above. Rule: no number enters an artifact without me checking the source.
AI-gestütztes Coding. Transkripte per LLM in einen Themenbaum geclustert; jeden Cluster habe ich gegen die Rohaufnahmen verifiziert und auf die vier tragenden Themen oben verdichtet. Regel: Keine Zahl kommt in ein Artefakt, ohne dass ich die Quelle geprüft habe.
The insight that shaped everything: automation alone wasn't the product. Automation people can verify was. That's why transparency is a first-class feature, not a settings toggle.
Die prägende Erkenntnis: Automatisierung allein war nicht das Produkt. Automatisierung, die man nachprüfen kann, war es. Deshalb ist Transparenz ein First-Class-Feature, kein Settings-Schalter.
| Decide to search | Scan boards | Apply | Track & wait | Interview | |
|---|---|---|---|---|---|
| Doing | Updates CV, opens 5 job boards | Scrolls daily, saves links in tabs | Rewrites cover letter #40 | Spreadsheet of 60 applications | Preps company research at midnight |
| Feeling | 🙂 optimistic | 😑 numb after week 2 | 😤 resentful | 😟 losing overview | 😰 under-prepared |
| Pain | "where do I even look" | 80% of listings irrelevant | generic app guilt | ghosting + lost statuses | no time to prepare properly |
| Design response | one profile, agent searches everywhere | feed pre-filtered by fit, scanned 24/7 | match breakdown feeds the letter | Kanban tracker, statuses auto-carried | insights digest per company |
Week 2 numbness (scanning fatigue), application #20 (quality collapse into templates) and the tracking wall (past ~30 applications, spreadsheets stop working). Each drop point maps to one of CareerSide's four modules — the architecture in stage 05 is this journey, productized.
Taubheit in Woche 2 (Scan-Müdigkeit), Bewerbung Nr. 20 (Qualitätskollaps zu Vorlagen) und die Tracking-Wand (ab ~30 Bewerbungen versagen Tabellen). Jeder Absprungpunkt entspricht einem der vier CareerSide-Module — die Architektur in Etappe 05 ist diese Journey, produktisiert.
4 competitors analyzed in depth, surfacing 5 recurring friction points. The gap: nobody combined continuous scanning with matching a skeptical senior professional can audit.
4 Wettbewerber im Detail analysiert — mit 5 wiederkehrenden Friktionspunkten. Die Lücke: Niemand kombinierte kontinuierliches Scannen mit einem Matching, das ein skeptischer Senior-Professional prüfen kann.
| Scans 24/7 | Explains the match | Senior-level filtering | Application tracker | Respects user's time | |
|---|---|---|---|---|---|
| Classic job boards | — | — | keyword filters | — | endless scroll |
| Job-alert emails | daily digest | — | — | — | still noise |
| Auto-apply tools | yes | opaque | partly | basic list | spray & pray |
| Tracker apps | — | — | — | strong | yes |
| CareerSide | continuous | criteria + confidence | profile-based | Kanban, 3 statuses | review on your terms |
Across all four products: (1) relevance noise — filters operate on keywords, not seniority and context; (2) zero explanation of why a job is shown; (3) tracking lives outside the tool, in spreadsheets; (4) alerts arrive on the tool's schedule, not the user's; (5) auto-apply tools optimize for volume, damaging exactly what senior candidates care about — application quality. Each friction point became a design requirement.
Über alle vier Produkte hinweg: (1) Relevanz-Rauschen — Filter arbeiten mit Keywords, nicht mit Seniorität und Kontext; (2) null Erklärung, warum ein Job angezeigt wird; (3) Tracking lebt außerhalb des Tools, in Tabellen; (4) Alerts kommen nach dem Zeitplan des Tools, nicht des Nutzers; (5) Auto-Apply-Tools optimieren auf Volumen — und beschädigen genau das, was Senior-Kandidaten wichtig ist: Bewerbungsqualität. Jeder Friktionspunkt wurde eine Design-Anforderung.
Four modules covering 8 primary scenarios and 12 edge cases. Card sorting validated the structure with 82% agreement.
Vier Module für 8 Kernszenarien und 12 Edge Cases. Card Sorting validierte die Struktur mit 82% Übereinstimmung.
| Must (MVP) | Should (v1.1) | Won't (deliberately) |
|---|---|---|
| Continuous scanning feed · transparent match breakdown · Kanban tracker · profile & preferences | Insights & search analytics · saved-search digests · company research briefs | One-click mass auto-apply — volume kills the quality senior candidates are hired on |
Architecture: 4 modules (Job Feed · Tracker · Insights · Settings), max 2 levels deep anywhere. Card sorting: 82% agreement, n=card-sort study with target users.Architektur: 4 Module (Job Feed · Tracker · Insights · Settings), überall max. 2 Ebenen tief. Card Sorting: 82% Übereinstimmung, Studie mit Zielnutzern.
| Module | Screens |
|---|---|
| Job Feed | feed · match detail with criteria breakdown · saved jobs · hidden jobs · filters (progressive disclosure) · empty & "no new matches" states |
| Tracker | Kanban board · application detail · notes & contacts · archive · import from spreadsheet |
| Insights | search analytics · response-rate view · weekly digest |
| Settings | profile & CV · preferences & scanning scope · notifications · billing · data & privacy (GDPR export / delete) |
How AI helped: the generated first map was larger; passes against the 8 core scenarios cut it down — every cut argued in writing ("which job does this screen serve?"). Cutting is the senior part.
Wie AI half: Die generierte erste Map war größer; Durchgänge gegen die 8 Kernszenarien kürzten sie — jede Streichung schriftlich begründet („welchen Job erfüllt dieser Screen?"). Das Streichen ist der Senior-Teil.
The core loop: the agent scans → the user reviews matches with reasoning → applies deliberately → the tracker carries the status. Every step designed with its unhappy branch.
Der Kern-Loop: Der Agent scannt → der Nutzer prüft Matches mit Begründung → bewirbt sich bewusst → der Tracker führt den Status. Jeder Schritt mit seinem Unhappy-Branch designt.



No new matches this week (the agent says so honestly, with what it scanned) · a listing expires after saving (marked, not silently dropped) · match confidence is low (shown as low — never inflated) · the user pauses the search (agent hibernates visibly, no dark-pattern re-activation).
Keine neuen Matches diese Woche (der Agent sagt es ehrlich, samt Scan-Umfang) · eine gespeicherte Anzeige läuft ab (markiert, nicht still entfernt) · Match-Konfidenz ist niedrig (wird als niedrig gezeigt — nie geschönt) · der Nutzer pausiert die Suche (Agent schläft sichtbar, keine Dark-Pattern-Reaktivierung).
The visual bet: calm authority. A tool people use in a stressful life moment must feel like a competent assistant, not a slot machine. Blue for the product, violet strictly for the AI's own actions, semantic green/amber/red reserved for match quality.
Die visuelle Wette: ruhige Autorität. Ein Tool für einen stressigen Lebensmoment muss sich wie ein kompetenter Assistent anfühlen, nicht wie ein Spielautomat. Blau für das Produkt, Violett strikt für die Aktionen der AI, semantisches Grün/Amber/Rot nur für Match-Qualität.
Semantic roles: green/amber/red appear only inside match breakdowns (criterion met / partial / missing) — so color itself explains the matching. 20+ components, WCAG AA throughout.Semantische Rollen: Grün/Amber/Rot erscheinen nur in Match-Aufschlüsselungen (Kriterium erfüllt / teilweise / fehlt) — die Farbe selbst erklärt das Matching. 20+ Komponenten, durchgängig WCAG AA.
| Component group | Decision | Why |
|---|---|---|
| Match card | score + top-3 criteria visible before click | trust starts in the feed, not on the detail page |
| Criteria chips | met / partial / missing — never a bare percentage | a % without reasons is exactly the black box 91% rejected |
| Confidence indicator | explicit "low confidence" state | admitting uncertainty earns more trust than pretending |
| Kanban card | status + next action + days-since-contact | the tracker's job is preventing dropped balls |
| AI-violet elements | only where the agent acted autonomously | users always know what the machine did vs. what they did |
| Situation | Typical tool | CareerSide |
|---|---|---|
| Match found | "🎉 Perfect job for you!" | "Strong match on 4 of 5 criteria — the gap: they want fintech experience." |
| No matches this week | Silence, or padding with noise | "Scanned 1,400 new listings — none met your bar. Here's what came closest." |
| Low confidence | Hidden — every match looks equal | "Low confidence: the listing is vague about seniority. Read before deciding." |
| Rejection logged | "Better luck next time!" | "Logged. Your response rate is still 2× the baseline for this role type." |
The product was prototyped as working HTML with real states and real copy — then hardened into the live product with the developer. Usability tests ran on behavior, not pictures; the developer estimated against real markup.
Das Produkt wurde als funktionierendes HTML mit echten States und echten Texten prototypisiert — dann mit dem Entwickler zum Live-Produkt gehärtet. Usability-Tests liefen auf Verhalten, nicht auf Bildern; geschätzt wurde gegen echtes Markup.

Three moderated usability rounds with 10 participants stress-tested the flows between iterations. Sources for all numbers: moderated tests (n=10) and beta product analytics.
Drei moderierte Usability-Runden mit 10 Teilnehmenden stellten die Flows zwischen den Iterationen auf die Probe. Quellen aller Zahlen: moderierte Tests (n=10) und Beta-Analytics.
| Finding | Change | Effect |
|---|---|---|
| Users didn't trust the match score number | Score replaced by criteria breakdown + confidence | the 91% objection neutralized — breakdown opened in 8/10 sessions |
| Advanced filters overwhelmed the first session | Progressive disclosure — power hidden until needed | time-to-first-match 8 min → 2.5 min (−70%) |
| 5-step application status confused everyone | Status flow simplified to 3 steps | tracker task success 65% → 92% |
| Users couldn't tell what the agent did overnight | Scanning dashboard — the agent's work made visible | usability score +35% across rounds |
Cadence. One moderated round per iteration: 5 core tasks (set up the search, judge a match, apply, update a status, find what the agent did), think-aloud, mid/senior professionals matching the target profile.
Kadenz. Eine moderierte Runde pro Iteration: 5 Kern-Tasks (Suche einrichten, Match beurteilen, bewerben, Status ändern, Agenten-Aktivität finden), Think-aloud, Mid/Senior-Professionals aus dem Zielprofil.
AI in the loop. Recordings summarized per task by AI before I watched them — flagged moments first. Before each round, an AI heuristic audit caught the cheap problems so participants' time went to the expensive ones.
AI im Loop. Aufnahmen vor dem Ansehen per AI pro Task zusammengefasst — markierte Momente zuerst. Vor jeder Runde fing ein AI-Heuristik-Audit die billigen Probleme ab, damit die Zeit der Teilnehmenden in die teuren floss.
An agent that works while you sleep has a UX problem: if the work is invisible, so is the value. The scanning dashboard shows what was scanned, what was filtered out and why — turning the agent's diligence into a daily trust deposit.
Ein Agent, der arbeitet, während man schläft, hat ein UX-Problem: Ist die Arbeit unsichtbar, ist es auch der Wert. Das Scanning-Dashboard zeigt, was gescannt, was aussortiert wurde und warum — die Sorgfalt des Agenten wird zur täglichen Vertrauens-Einzahlung.


A senior professional gives a new tool one chance. Onboarding is built around one promise: relevant matches before any heavy setup — profile depth is earned progressively, after the product has proven itself.
Ein Senior-Professional gibt einem neuen Tool eine Chance. Das Onboarding baut auf ein Versprechen: relevante Matches vor jedem aufwendigen Setup — Profiltiefe wird schrittweise erfragt, nachdem das Produkt sich bewiesen hat.
| Step | Drop-off risk | Design response |
|---|---|---|
| 1 · Role & seniority | "another long form" | two questions, not twenty — the agent starts scanning immediately |
| 2 · First matches arrive | irrelevant results = instant churn | first feed is deliberately conservative: high-confidence matches only |
| 3 · Refine preferences | settings fatigue | refinement happens in the feed ("hide — why?"), not in a settings page |
| 4 · Upgrade moment | paywall resentment | freemium: the paywall never blocks reviewing a match that was already shown |
Every match shows the criteria behind it, met/partial/missing, plus a confidence indicator. The agent never just says "good fit" — it shows its reasoning, so a skeptical senior professional can audit the machine. This single decision converted skeptics into daily users.
Jeder Match zeigt seine Kriterien — erfüllt/teilweise/fehlend — plus Konfidenz-Indikator. Der Agent sagt nie nur „passt gut" — er legt seine Begründung offen, sodass ein skeptischer Senior-Professional die Maschine prüfen kann. Diese eine Entscheidung machte aus Skeptikern tägliche Nutzer.

A product handling someone's career and personal data earns trust in the corners: empty weeks, stale listings, and what happens to the data when someone leaves.
Ein Produkt, das Karriere und persönliche Daten verwaltet, verdient Vertrauen in den Ecken: leere Wochen, veraltete Anzeigen — und was mit den Daten passiert, wenn jemand geht.
| Edge case | Design decision |
|---|---|
| No matches for 2+ weeks | the agent reports its work honestly and suggests concrete profile adjustments — silence would read as a dead product |
| Saved job disappears from the source board | marked "no longer listed", kept in the tracker history — never silently deleted |
| User found a job | a genuine congratulations flow + one-click pause; the account hibernates, no guilt-tripping |
| Data deletion (GDPR) | full export and delete, self-serve, no "talk to support" wall — designed as a first-class flow |
| Agent scanned nothing (source outage) | the outage is admitted on the dashboard — pretending nothing happened would poison the trust the whole product runs on |