Skip to content
Aline Aronsky
← Portfolio

jobsu.ch

An AI-driven platform that ranks Swiss job listings for fit and drafts tailored applications. I designed and built it end-to-end with AI coding tools.

jobsu.ch ↗ (opens in new tab) live, and free to try

The problem

I was becoming increasingly frustrated with the repetitive nature of the job search. I was going through all the listings across different websites by hand, and rebuilding my CV almost from scratch to fit each job description before sending it off. So I built a tool that ingests your CV, learns what you're after, scores live Swiss roles for fit, explains every score in plain language, and drafts a tailored cover letter for the ones worth pursuing.

See it work

Sample profile · example jobsu.ch run

Daniel Hofer, Senior Product Manager in Zurich, looking for a Senior or Lead PM role at an AI or B2B SaaS scale-up. (Example run, not a real user.)

  • Senior Product Manager

    B2B AI workflow startup, Zurich

    Strong match on the fundamentals: API/platform PM work at a payments scale-up maps almost directly onto their developer-facing AI workflow product, and native German plus a Zurich base fit their hybrid setup. The one stretch is AI-domain depth: technical B2B products, yes, but not ML-driven ones. They explicitly say PM curiosity about AI matters more than ML expertise, so this reads as a learnable gap, not a blocker. Highest-fit role on the board this week.

  • Lead Product Manager, Payments

    Fintech scale-up, Zug

    The closest domain match: payments and API experience is exactly what they need, and Lead is the right seniority step. Scored below the top role because it's a lateral move into familiar territory rather than a stretch into AI, which is the stated direction. An excellent fallback if deepening in fintech beats switching domains. Commute or relocation to Zug is the practical question.

  • Product Manager, Developer Tools

    Series-B devtools, remote (CET)

    API-product instincts transfer well and the remote-CET arrangement fits. Two reasons it isn't higher: it's a PM (not Lead) title, a sideways move on seniority, and devtools is a new domain, so you'd ramp on the space while they expect quick credibility with a technical user base. Strong on flexibility, lighter on progression.

  • Group Product Manager

    Health-AI scale-up, Basel

    Seniority and the AI direction both line up, but two hard filters pull this down: it needs healthcare-domain familiarity that isn't there, and it's Basel-based with no remote option. Flagged as aspirational: right trajectory, wrong prerequisites for now. Included to show the scoring discriminates rather than flattering every role.

Auto-drafted cover letter

Generated for the sample profile

Dear Hiring Team, I've spent the last three years turning a Zurich payments platform's API from an engineering afterthought into a product developers actually choose, and your posting for a Senior PM on the AI workflow product reads like the next version of that problem. At my current company I own our platform and API products. The work that maps most directly to your role: I rebuilt developer onboarding around real usage data, cutting time-to-first-successful-call by roughly 40%, and I run discovery directly with the engineering teams who integrate us rather than through a layer of account managers. I'm comfortable owning a technical, developer-facing product where the buyer and the user aren't the same person, which, from your description, is exactly the dynamic on your AI workflow tool. I'll be direct about where I'd be growing: my background is technical B2B SaaS, not machine learning. What drew me to your posting is that you frame AI fluency as a PM's curiosity and judgment rather than an ML résumé, because that's the bet I'm making on my own career. I've been building with AI tooling in my own time to learn its grain: where it's genuinely useful and where it quietly fails. I'm Zurich-based, native German, and looking for the Senior or Lead step where I can own a technical product end to end. I'd welcome the chance to talk. Best regards, Daniel Hofer

The product

jobsu.ch onboarding screen for uploading a CV, cover letter, LinkedIn export, portfolio, or bio
01 / 05Onboarding takes a CV, cover letter, LinkedIn export, portfolio, or bio, in any combination — the more documents you add, the sharper the matches.
jobsu.ch dashboard listing scored job matches with a fit breakdown
02 / 05Every match on the dashboard carries a fit score broken into location, company, language, and seniority, with a plain-language reason underneath.
jobsu.ch profile page for uploading the root CV and cover letter
03 / 05The root CV and cover letter are the anchor documents every generated draft is built from, so the output keeps your own voice instead of a generic one.
jobsu.ch application view with a tailored CV, cover letter, and hiring-manager email draft
04 / 05Once you pursue a role, jobsu drafts a tailored CV, cover letter, and outreach email for it, alongside the reasoning for how to approach that specific application.
jobsu.ch job search settings page with role type, location, and match accuracy
05 / 05Job search settings capture role type and location, and roll up into the match accuracy score that sets the bar for what reaches the dashboard.

How I built it

jobsu runs one core loop: ingest a CV and a short preference questionnaire, build a structured profile of the candidate, score incoming Swiss roles against it, explain each score in plain language, and draft a tailored cover letter for the strong matches. I built the app in Next.js, used Supabase for data and auth, and an LLM for the fit scoring and the cover-letter drafts. A separate ingestion worker keeps a fresh pool of listings to score against, including a LinkedIn pipeline.

The decision I spent the most time on was the onboarding process. Most tools reduce you to a single CV, and that isn’t how real job-seekers exist. People keep different CVs for different roles. They have portfolio pieces that fit some jobs and not others. They’re more than one file. So onboarding takes all of it: PDFs, Word docs, portfolios, screenshots, even a photo of your LinkedIn page. I added voice notes too, because I noticed I gave far richer answers to open-ended questions when I could talk instead of type. The model should work from your whole self, not the one document you happened to upload.

Every score also comes back with a reason, never just a number, because the match you can’t see the logic behind is useless.

How I work with AI

I built this with Claude Code, without any prior coding knowledge. I realized the real challenge wasn’t only writing prompts, but also catching the moments the output is quietly wrong. Early on, the generated CVs and cover letters were technically fine and totally forgettable. The fix wasn’t a cleverer prompt; it was a product decision. I added a “root document”, a version of your resume written the way you want it to read, and anchored everything the AI generates to it. Now the output sounds like the applicant, not the model’s defaults. It was after building this project that I realized I wanted to learn more, and enrolled in UC Berkeley’s Master of Information and Data Science (MIDS), starting in September 2026.

What I’d do next

The honest gap: there’s no feedback loop yet. jobsu doesn’t learn from which matches you actually pursued, or which drafts you kept and sent. That’s the next build: turning every application into signal that sharpens the next round of scores.