<aside> 🌋

At Flinn, we're redefining how medical device manufacturers build safer, higher-quality products — 10x more efficiently. We are excited to get to know you better and potentially have you join us on our journey. .

</aside>

Your Challenge For Today

You've just joined Flinn as the first dedicated BI hire. The leadership team needs answers to critical business questions — and all they've given you is a set of raw data exports from two systems: our product backend and our HubSpot CRM.

Your job: explore the data, connect the dots across sources, and deliver clear, trustworthy insights.

There are no trick questions — but the data isn't perfectly clean either. Just like real life.


Getting Started

Step 1: Fork the Repository

Repo: https://github.com/heikodam/bi-technical-challenge

Fork the repo to your own GitHub account. You'll submit your work as a link to your forked repo.

Step 2: Explore the Data

The repo contains four CSV files spanning two source systems. Part of the challenge is understanding how these datasets relate to each other.

File Description
backend_events.csv Product usage events from the Flinn application backend. Each row represents a single event with a timestamp, user ID, organization ID, and event type.
hubspot_deals.csv Deal (opportunity) records exported from HubSpot CRM — includes deal stages, monetary values, and associated company records.
hubspot_org.csv Company/organization records from HubSpot CRM.
hubspot_contacts.csv Contact (person) records from HubSpot CRM, including organization associations.

Step 3: Understand the Events

The backend_events.csv contains the following event types:

Event Name Description
TokenGenerated Triggered each time a user's authentication token is created or refreshed (e.g., on login or session renewal).
SearchCreated / SearchUpdated A user creates or modifies a saved search query in the Flinn app.
SearchExecuted A search query is run against the regulatory database.
SearchExported A user exports search results (e.g., to CSV or PDF).
SearchResultAppraised A user reviews or evaluates an individual search result.
SearchResultFullTextAppraised A user opens and reviews the full-text content of a regulatory document from the search results.
LabelCreated / LabelUpdated / LabelDeleted A user manages labels (tags/categories) for organizing their regulatory documents.
UserCreated / UserUpdated User accounts are created or modified within the Flinn app.
OrganizationCreated / OrganizationUpdated Organization records are created or modified within the Flinn app.

Your Tasks

Using the provided data, answer the following business questions. For each, show your work — we want to understand your approach and reasoning, not just a final number.

Question 1: How many customers do we have today?