Back

About

I've spent the last decade in operations roles where my actual job was different from my title. At HP I onboarded 200 EMEA partners during the Poly migration and called it Special Pricing Analyst. At Poly I owned the Salesforce CPQ rollout and called it Reseller Sales Support. At Netflix I kept Airtable, Workday, and Zendesk in sync for EMEA productions and called it a Coordinator role. The pattern across all of them was the same: the deal closes, something operational breaks, and someone has to make the system work while everyone else moves on to the next deal. I was usually that someone.

Now I'm pointing that muscle at RevOps and Customer Success Operations, because the work is the same shape and because the tools have caught up to what's possible. Salesforce ADM-201 is in progress. Tableau through DataCamp. Salesforce Business Analyst and AI Associate after that. The certifications matter less than the direction.

How I build

Every internal tool I make follows the same three-layer pattern.

A directive — a markdown file describing what should happen, in the same plain language I'd use to brief a junior. Not code. Intent.

Orchestration — an LLM reading the directive and deciding what to call when. Judgement, not execution. It picks the next step, it catches errors, it asks me clarifying questions when the directive is ambiguous, and it updates the directive when it learns something new.

Execution — deterministic scripts doing the actual work. Calling APIs, parsing files, sending emails, querying databases. Boring, testable, fast.

The reason for the split is simple. LLMs are roughly 90% reliable per step. Five steps end-to-end and you're at 59% — your system is broken more often than it works. The fix isn't a smarter model. The fix is to push the deterministic work into code and let the LLM do only the part it's actually good at: judgement.

Every project on this site is an instance of this pattern. The job search command centre is the pattern at full scale, with ten database tables and eight edge functions. The daily news digest is the pattern at its smallest, three directive files and five Python scripts. Same shape, different size.

What I work with

I default to HubSpot for go-to-market workflows because it gets out of the way. Salesforce when the org needs the structure and the audit trail, which is most B2B SaaS past Series A. n8n when the integration is the point and the UI isn't. Zapier when speed matters more than control. Airtable when the data shape is still moving. Notion when the artifact needs to be read by humans more often than it's read by code.

For building actual tools — Claude Code, Next.js, Supabase, Vercel. Python for anything stateful or scheduled. TypeScript for anything with a UI. Resend for transactional email because their API is the cleanest one I've found.

The list isn't a flex. It's a set of defaults I revisit when the problem changes shape.

What I'm closing

Three things, honestly.

Salesforce Admin certification is in progress. ADM-201 by end of Q2. The work is mostly familiar from years of using Salesforce operationally, but the certification matters because it formalises the knowledge for hiring managers who need to see it on paper. Business Analyst and AI Associate follow.

Tableau is enrolled but not finished. I've worked extensively with Excel, Airtable, and Monday.com dashboards, and the SQL underneath Supabase, but I haven't spent serious time in Tableau yet. DataCamp's fundamentals track is closing that.

Dutch is at A2, working toward B1. I've been in the Netherlands for seven years and most of my professional work has been in English. I'm being honest about this because it shows up in some job descriptions as a hard requirement, and pretending otherwise would waste both our time. I'm working on it.

What I've shipped before this portfolio existed

The portfolio above is what I've built in Claude Code on weekends. The work I've shipped in commercial roles is the rest of the picture. Onboarding 200 EMEA partners during the HP/Poly acquisition with no service disruption. Owning Salesforce CPQ as SME at Poly across the EMEA partner base. Cutting client onboarding setup time at EasyHub by building HubSpot, Zapier and ClickUp workflows from scratch. Designing an Intercom support chatbot at EasyHub with mapped intent categories, fallback scripts, and Notion-backed knowledge base integration.

Different domains, same instinct.

Where to find me

  • thiagohnl@gmail.com — the fastest way
  • linkedin.com/in/thiagoneves20
  • +31 6 55 53 38 98 — for anything time-sensitive

Based in Haarlem. Open to roles in NL, hybrid or remote across EMEA.