I'm Cyrille, a Senior Product Manager based in Stockholm. I began my career in trust and safety at Besedo, working on classified ads and dating sites, then moved into scheduling, forecasting, and supporting the sales and BI teams. I went on to spend ten years at Betao, building SaaS products for French auto-entrepreneurs across onboarding, invoicing and analytics. In every role my focus has been the same: understand how the work and the users really flow, read behaviour in the data, and turn what I learn into UI and UX changes that lift conversion and customer satisfaction. Today I extend that approach with agentic workflows, deployed on local infrastructure or on large-scale models such as Claude and ChatGPT.
A repeatable loop: understand people, measure behaviour, decide with evidence, ship with the team, then automate what can be automated, privately.
Every product decision starts with a real user problem. I run user research and onboarding interviews, and place short triggered surveys at key moments in the journey to capture qualitative signal at scale. LLMs help me synthesise raw feedback into themes, which I then check against the data.
I define the KPIs and funnels that matter, instrument the product, and make the numbers trustworthy. PostHog shows how people actually behave, SQL answers the specific questions, and BI dashboards become the single source of truth shared by product and business teams.
Data tells me what is happening; users tell me why. I combine both to rank opportunities, shape the roadmap and test assumptions with A/B experiments before committing the team. As a certified Scrum Product Owner, I keep the backlog small, clear and tied to outcomes.
I work side by side with design and engineering: clear problem statements, acceptance criteria and fast feedback loops. I'm comfortable with API integrations and with removing friction in flows such as onboarding, so improvements ship iteratively and are measured after release.
I start with step-by-step automation, then move to agentic workflows: I give the AI an objective and instructions, and it adapts when a step fails or a result varies. Local LLMs with LM Studio and sandboxed MCP servers keep sensitive data on my machine. See how it works.
Classic automation follows fixed steps and stops when reality differs. An agentic workflow automates the instructions, not just the steps. I give it an objective. When a step fails, a result varies or something blocks the way, it reasons about it, tries another route and decides on its own, until the objective is reached.
Green: open source, self-hosted. Orange: fair-code, paid cloud.
Before an AI agent writes a single line, I write the documents it needs. Six short, focused documents turn an idea into a specification an agent can follow, which keeps the build coherent, testable and easy to change.
The problem, the target users, goals, scope and success metrics. It states what we build and why, and just as importantly what we do not build, so the agent doesn't invent features.
The stack, architecture, integrations, security and performance constraints. It fixes how the product is built, including privacy-first choices such as local models when data is sensitive.
Every user journey mapped end to end: entry points, screens, decisions, empty and error states. It is the product logic written down before any interface exists.
Layout, components, colours, typography, spacing and accessibility rules. A shared design language keeps AI-generated screens consistent instead of different on every prompt.
Entities, relations, endpoints and permissions. A clear data model is the foundation the agent builds on, and the cheapest place to catch design mistakes.
Small, ordered tasks with acceptance criteria and test checkpoints. The agent builds one verified step at a time, and I review each result before moving on.
Then I build with Claude Code, MCP servers and agent skills, using these six documents as the shared context for every session.
I like jumping into a process, looking at the whole flow and finding where it gets stuck.
At Besedo I started on trust and safety for classified ads and dating sites, setting up working routines quickly so the team got faster and more accurate. I then moved on to scheduling, resource forecasting and work with the sales and business development team.
At Betao it was much the same story. I worked in sales, customer support, product management and tech, and built automations along the way, so the experience became smoother for users and for the team.
Today the tools are better. AI automation and agentic workflows may change the names, but the goal stays the same: automate what can be automated, and do it better. I also love tech. At home I run a small lab where I test local AI and hybrid setups with Claude and ChatGPT.
Hands-on lab for agentic AI on my own machine. Local models (Qwen 3.5 offline in LM Studio with a 100k+ token context, and Ollama) with sandboxed MCP servers for memory and file access.
Built an AI research agent that collects public content, structures it in Markdown and scores it against criteria.
Improved UX and conversion funnels for company registration and invoicing SaaS for French auto-entrepreneurs. Led onboarding research and redesign, integrated the INPI Guichet Unique API (the French government portal for company formalities), built dashboards in Omni BI (a business intelligence platform) and used LLMs to speed up user research.
Dealer invoices, incentives and financial reporting across Nordic dealer networks, plus KPI tracking, forecasting and dealer benchmarking.
Operational dashboards and data-warehouse optimisation, forecasting and workflow improvements for content moderation teams, and product innovation in fraud risk detection.
I prototype and test AI ideas hands-on, and I keep sensitive data on my own machine. Local models for private data, Claude for complex reasoning and code, MCP to connect both to files and tools.
Logos belong to their respective owners.
Hands-on work in AI infrastructure and product.
I wanted to learn agentic AI hands-on without sending any data to the cloud, so I built my own lab on my PC.
LM Studio and Ollama connected to Dify, n8n and Flowise running in Docker.
LangGraph and ChromaDB answer from my own documents, with every step traced in Arize Phoenix.
A PowerShell script installs and starts the whole stack, with three working examples to build on.
Qwen in LM Studio with GPU acceleration and MCP file access parses, self-corrects and structures sensitive documents without sending any data out.
What I learned: trace every step, measure answer quality, and design guardrails for where agents fail.
Keyword search finds a lot, but rarely what really matters. I built an agent that collects public content, turns it into structured Markdown and scores each item against clear criteria, explaining why it matches or not.
Gathers content from social networks and public web pages, and turns it into clean Markdown, ready for the next processing steps.
Readable rules that are easy to adjust, refined through feedback rounds, with must-have and nice-to-have criteria kept apart.
Competitor monitoring, pricing analysis, newsletter topics, trending subjects on TikTok, or matching a profile to a role. First built and tested on profile-to-role matching.
What it shows: clear scoring rules, fast iteration from feedback, and agents doing the repetitive work.
Problem: I was triaging about 150 offers by hand. Objective: each morning, a top 5 of fresh offers (≤14 days), scored 0–100 with evidence. Read-only: it never applies or sends.
| Claude Code | Designs and writes the code, tests and run scripts. It never sees my profile data at runtime. |
|---|---|
| Local AI | LM Studio runs the judge, Gemma 4 26B today after starting with Qwen3.5-9B, and nomic for embeddings. ChromaDB and SQLite are local, so profile and scores stay on my PC. |
| Orchestration | LangGraph, with a Dify version using the same tools via a local API. Arize Phoenix traces every step. |
| Scheduling | Windows task at logon and daily at 08:00, guarded to run once a day. |
The first judge, Qwen3.5-9B, clustered its scores (78–84), so it barely told offers apart. I benchmarked Gemma 4 26B on the same offers and switched the judge to it, while rules and similarity still carry much of the signal. The bigger lesson: a model doesn't know what I want until I tell it. Written disqualify reasons turned out to be the most useful feedback, because the judge can read them and cite them. Weights stay untuned until I have enough marked results. Tuning without data is guessing.
Product work on the invoicing software of portail-autoentrepreneur.fr, used by French auto-entrepreneurs. I improved UX and conversion funnels, redesigned the invoicing process flow and UI, led onboarding research and redesign, and used data analysis to improve CSAT.
I spent days collaborating on a project close to my heart: supporting my daughter and her high school team with their Young Enterprise company (UF-företag).
Together, we built and launched DoggyCompass, a dedicated web application designed to help dog owners track and structure their dog's daily training, progress and consistency.
By combining entrepreneurship with modern web development, we transformed their vision into a functional digital product. For me, it has been an incredibly rewarding experience to mentor the next generation of innovators and bridge the gap between business ideas and tech infrastructure.