Stockholm · Senior Product Manager, AI Product, Growth PM

Product built on data,
powered by AI.

Senior Product Manager

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.

Cyrille Pillon
How I work

Discover, measure, decide, build, automate.

A repeatable loop: understand people, measure behaviour, decide with evidence, ship with the team, then automate what can be automated, privately.

1

Discover

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.

User researchPostHog surveysLLM synthesis
2

Measure

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.

PostHog / HogQLSQLOmni BISnowflakedbt
3

Prioritise

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.

RoadmapA/B testingScrum PO
4

Build

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.

Agile deliveryAPI integrationsUX & funnels
5

Automate with AI

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.

Local LLMsMCPLM StudioQwen3.5
Agentic workflows

From automation to agentic workflows

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.

Classic automation

  • Fixed steps, written in advance
  • A rule for every case I can predict
  • Stops or fails on the unexpected

Agentic workflow

  • Driven by an objective and instructions
  • Reasons about the result of each step
  • Finds another route when blocked
  • Decides alone and goes through to the end
  1. Plan
  2. Act with tools (MCP)
  3. Check the result
  4. Adapt or retry
  5. Finish, or ask a human

How I evaluate it

  • Clear success criteria for each step
  • A test set of real cases, including the hard ones
  • Metrics: success rate, accuracy, retries, time and cost
  • A human review of a sample of the runs
  • I re-run the tests whenever the model or the prompt changes

Failure modes and guardrails

  • Endless loops: limits on steps and retries
  • Invented results: check against the source, validate the format
  • Wrong tool use: minimal rights, allowed folders, sandbox, human approval before destructive actions
  • Silent drift after a model change: evaluations and logs
  • Success claimed wrongly: an independent check step
  • Data leaving the machine: local models, off the cloud
Workflow builders

Green: open source, self-hosted. Orange: fair-code, paid cloud.

Agent building blocks: orchestration, memory and state, observability, web-to-API
Vibe coding

AI writes the code. Documents set the direction.

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.

01

PRD

Product Requirements Document

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.

02

TRD

Technical Requirements Document

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.

03

App Flow

Screens, journeys and states

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.

04

UI / UX Design

Look, feel and interaction rules

Layout, components, colours, typography, spacing and accessibility rules. A shared design language keeps AI-generated screens consistent instead of different on every prompt.

05

Backend Schema

Data model and APIs

Entities, relations, endpoints and permissions. A clear data model is the foundation the agent builds on, and the cheapest place to catch design mistakes.

06

Implementation Plan

Step-by-step build order

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.

01 PRD02 TRD03 App Flow04 UI / UX05 Schema06 Plan shared context >_ Claude Codebuilds step by step MCP serversFilesystemMemory Agent skillsContext ModeHeadroom review each step A working, documented productspecs, code and tests stay in sync
Philosophy

Data gets you to the “what”Users tell you the “why”

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.

Senior Product ManagerAI Product ManagerProduct AnalystGrowth PM
Cyrille Pillon
  • Based in Stockholm, Sweden
  • Languages French (native) · Swedish · English
  • Methods Agile / Scrum · A/B testing · user research
  • Training Scrum Product Owner (Scrum.org) · Omni Analytics · SQL (SQLBolt)
Experience

From BI dashboards to SaaS analytics at scale.

2026 – Present · Stockholm

Agentic AI Lab: local and frontier models

Personal Lab

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.

Local LLMMCPAgentic AI
2016 – Present · Stockholm

Senior Product Manager

Betao AB

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.

SaaSPostHogOmni BISQL
2015 – 2016 · Kista

Pricing & Incentives Coordinator

Renault Nordic AB

Dealer invoices, incentives and financial reporting across Nordic dealer networks, plus KPI tracking, forecasting and dealer benchmarking.

ForecastingReporting
2007 – 2015 · Stockholm

Business Analyst & Development Manager

Besedo Global Services AB

Operational dashboards and data-warehouse optimisation, forecasting and workflow improvements for content moderation teams, and product innovation in fraud risk detection.

BIData warehouseFraud risk
AI toolkit

Hands-on with local LLMs and Claude

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.

ClaudeClaude CodeQwenDevstral Small 2Gemma 4LM StudioOllamaDockerMemoryFilesystemJS code sandboxRAGPlaywrightBrowser

Logos belong to their respective owners.

Projects

Selected projects

Hands-on work in AI infrastructure and product.

AI · Local lab

Agentic Workflow Lab, 100% local

I wanted to learn agentic AI hands-on without sending any data to the cloud, so I built my own lab on my PC.

🔌Local models wired into builders

LM Studio and Ollama connected to Dify, n8n and Flowise running in Docker.

🧠RAG with tracing

LangGraph and ChromaDB answer from my own documents, with every step traced in Arize Phoenix.

⚙️One-command setup

A PowerShell script installs and starts the whole stack, with three working examples to build on.

📄Applied use case: offline document pipeline

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.

LangGraphChromaDBArize PhoenixDifyn8nDockerLM StudioQwenGPU
AI · Research agent

AI research agent: collect, structure, score

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.

📥Collects public content

Gathers content from social networks and public web pages, and turns it into clean Markdown, ready for the next processing steps.

🎯Scores against criteria

Readable rules that are easy to adjust, refined through feedback rounds, with must-have and nice-to-have criteria kept apart.

🔁One pipeline, many uses

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.

Daily job radar for Stockholm roles

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.

Pipeline

  1. Collect Platsbanken open API + public boards
  2. Filter + rules hard gaps, freshness
  3. Embed ChromaDB, profile similarity
  4. LLM judge Gemma 4 26B (first Qwen3.5-9B), local
  5. Verify evidence quotes must exist in the posting
  6. Rank + report HTML, classes A/B/C

Who does what

Claude CodeDesigns and writes the code, tests and run scripts. It never sees my profile data at runtime.
Local AILM 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.
OrchestrationLangGraph, with a Dify version using the same tools via a local API. Arize Phoenix traces every step.
SchedulingWindows task at logon and daily at 08:00, guarded to run once a day.

How I work, applied

  • Measure: per-run metrics (found, kept, judged, retries, unverified, time) and precision@5 from my own feedback (liked / skip / applied).
  • Find another route: if a source is down, it uses the other source. If the LLM is down, it falls back to rules + similarity, capped at class B.
  • Bounded: step limit, shortlist of 30, max 2 LLM retries.
  • Check, don't trust: output is validated with Pydantic, and an independent verify step halves the score when evidence isn't found.
  • Learn from my decisions: when I disqualify an offer, I write why. Those reasons, plus the offers I liked or applied to, go into the judge's prompt. If a past rejection reason fits a new posting, the judge names it, the score drops 15 points and the offer is flagged. Each missing must-have costs 12 points.
  • Minimal rights: HTTP GET and localhost only. No destructive actions exist.

What I learned

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.

Job radar dashboard: top 5 offers with score, requirements check and run counters, companies blurred
Dashboard: each offer gets a score, the requirements it meets, and quotes checked against the posting. Counters show what each run found and kept (companies blurred).
Job radar dashboard, full Top 5 view, companies blurred
Full Top 5 view: from scored offer to tailored CV and application status in one place.
Arize Phoenix trace of one LLM judge call
One judge call traced in Phoenix: local model, no API cost.
PythonClaude CodeAI agentsMarkdown pipelineScoring rules
SaaS · Betao AB

Invoicing software for auto-entrepreneurs

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.

SaaSUI and process flowOnboardingData analysisCSATPostHog
Visit the product →
DoggyCompass web app, landing page and phone mockup
Young Enterprise · UF-företag

Supporting a Young Enterprise (UF-företag)

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.

Web appMentoringEntrepreneurship
Visit DoggyCompass →
Skills

Toolkit

Product strategy & roadmapUX & conversion optimisationPostHog analytics & surveysSQL & BIA/B testing & user researchAgentic AIModel Context ProtocolLocal LLM deploymentAI-assisted product decisionsOmni BIAPI integrationsAgile / Scrum
Contact

Let's build something great.

Stockholm · Hybrid & Remote · Open to Senior PM, AI Product, Growth PM