Image by Author
# Introduction
Raise your hand if you’ve ever frozen during a technical interview when the interviewer asked, “Walk me through your approach.” Most candidates read the question, jump straight into code, and hope muscle memory kicks in.
What if you could upload an interview question into an AI tool and get a podcast explanation of your code, a visual mind map, flashcards, and a quiz? Well, you can with NotebookLM.
In this article, we’ll first solve Meta’s “Recommendation System” interview question ourselves, then use NotebookLM’s six features to understand and learn from it smarter, not harder.
# Meet NotebookLM: Google’s AI-Powered Study Assistant

NotebookLM is Google’s AI study assistant. It transforms how we learn from data by combining multiple AI-powered features that make the process more interactive and adaptive.
It does so by turning your documents, books, or any other materials into interactive learning tools. More specifically, it turns your materials into conversations, visual maps, and quizzes, and saves hours of manual review, making complex topics easier to digest.
This helps you understand and retain knowledge faster. In short, NotebookLM helps you learn smarter, not harder.
Let’s now solve the Meta interview question, then explore how NotebookLM can help us learn from that same code.
# The Challenge: Meta’s “Recommendation System” Interview Question
Recommendation System
You are given the list of Facebook friends and the list of Facebook pages that users follow. Your task is to create a new recommendation system for Facebook. For each Facebook user, find pages that this user doesn’t follow but at least one of their friends does. Output the user ID and the ID of the page that should be recommended to this user.
The question is available on StrataScratch. In this question, Meta asked us to build a recommendation system that suggests Facebook pages a user doesn’t follow yet, but at least one of their friends does.
// Understanding the Data Behind the Problem
We have two different datasets, user_friends and user_pages.
The first one shows each user’s social connections (who is friends with whom), while user_pages lists which pages each user already follows.
Together, they help us find new page recommendations based on mutual friends’ activity.
Let’s preview the user_friends dataset first.
| user_id | friend_id |
|---|---|
| 1 | 2 |
| 1 | 4 |
| 1 | 5 |
| 2 | 1 |
| 2 | 3 |
Let’s preview the second dataset now, user_pages:
| user_id | page_id |
|---|---|
| 1 | 21 |
| 1 | 25 |
| 2 | 25 |
| 2 | 23 |
| 2 | 24 |
// Step-by-Step Solution: Building the Recommendation Engine
The goal is to recommend Facebook pages that a user hasn’t followed yet, but that at least one of their friends already follows.
First, we connect each user with the pages their friends follow. This helps us see which pages are followed by the user’s network and potential recommendations.
friends_pages = users_friends.merge(users_pages, left_on='friend_id', right_on='user_id')
friends_pages = friends_pages[['user_id_x', 'page_id']]
Now we need to exclude pages that users already follow. We do this by merging again with the original users_pages table and keeping only the pages that aren’t already in the user’s list.
comparison = friends_pages.merge(
users_pages,
how='left',
left_on=['user_id_x', 'page_id'],
right_on=['user_id', 'page_id']
)
result = comparison[comparison['user_id'].isna()][['user_id_x', 'page_id']]
Finally, we remove any duplicates to avoid recommending the same page multiple times and rename the column for clarity.
result = result.drop_duplicates()
result = result.rename(columns={'user_id_x': 'user_id'})
Here are the first few rows of expected output.
| user_id | page_id |
|---|---|
| 1 | 23 |
| 1 | 24 |
| 1 | 28 |
| 3 | 23 |
| 3 | 28 |
Up to this point, we have relied on traditional techniques: coding, merging, and interpreting everything ourselves.
Now, Google’s NotebookLM allows us to take the learning process a step further.
# From Solving to Learning: Enter NotebookLM
In this section, we’ll show how to provide NotebookLM with the details of the Meta interview question, then explore its six interactive features that help you learn smarter.
// Step 1: Creating a New Notebook and Adding Your Data
Before NotebookLM can assist us, we need to provide it with information about our interview question. This starts by creating a new notebook. Head to the NotebookLM site and click “Create a new notebook.”
It will ask you for the source.
As you can see in the screenshot below, different options are available.
- Google Drive
- Website
- Youtube
- Paste text

Let’s use the “Paste text” option and paste the metadata of the Meta’s interview question. Here is the information we’ll insert using this reusable format.
Here is the question.
[paste question here]
It uses two datasets.
[paste dataset information here]
Here is the python solution.
[paste python solution here.]
Next, click on “Insert”, shown below.

// Exploring the Interactive Learning Studio
Below is the screen that opens after we hit “Insert.” On the left, we can see the sources. In the middle, we have an LLM that was trained on our data. On the right, we have a “Studio” containing six different learning formats, which we’ll test one by one.

Let’s click on “How does the Python solution leverage existing friend and page data for recommendations” button, which is under the input text in the middle. This question was generated by NotebookLM.
Here is the answer.

As you can see, it explains the entire concept. You can also save this note by clicking “Save note” at the end. The notes will then appear under the “Studio” section like this.

So, if you have any questions related to this interview question, you can use the LLM in the middle of the previous screen to get an answer. Let’s explore the “Studio” six features that make things more interesting.
// Experiencing NotebookLM’s Six Learning Features
In this section, we’ll see NotebookLM’s six learning features, shown below, in action.

Each one helps you understand the Meta interview question from a different angle — through audio, video, visuals, and interactive practice.
1. Generate an Audio Overview
Click “Audio Overview.”
When you do that, you’ll see this notification under “Studio,” and your audio overview will be ready in a couple of minutes.

NotebookLM turns your uploaded content into a podcast-style conversation. Two AI voices discuss your problem like you’re listening to a tech interview prep show. They break down Meta’s recommendation system, explain the logic, and highlight edge cases.

You can download this conversation, and interestingly, you can also join it by clicking on “Interactive.” The screen below will then open.

And when you click on join, the message will say “Hello, someone wants to join,” allowing you to join the conversation. (Yes, you can really join the conversation; it’s updated in real-time through a text-to-speech API. A really futuristic feature!)
2. Generate the Video Breakdown
Go back to the “Studio” panel and hit “Video Overview.” NotebookLM creates a video that visualizes your data and explains the solution. In our case, the video is 6 minutes and 21 seconds long.

In the generated video, NotebookLM first explains the broader concept: how social media platforms decide what to recommend, before moving into our specific problem.

Next, the generated video discusses the interview problem by breaking it down into parts, starting with this key step shown below.

Next, it begins explaining the solution. It doesn’t just repeat what’s on the screen; the explanations go deep into the concept.

And finally, it breaks down the solution into steps and explains it using those steps.

3. Map the Logic Visually
Turn back to the “Studio” panel and click the “Mind Map.”
NotebookLM generates a visual tree of the problem. Let’s see one.

You see the entire problem structure in one view: recommendation goal at the top, required datasets in the middle, and solution steps at the bottom. Let’s click on one of them, for example, “Step 1: Identify Friends’ Pages ( Merge 1).”

As you can see, the mind map expands by explaining step 1. You can download it, too.
4. Build Reports
Turn back to the Studio panel and click “Reports.” NotebookLM asks you to select which type of report you want to create.

Let’s select a problem walkthrough. It will start generating a report.

Here is the step-by-step walkthrough that explains how to solve this interview question.

5. Generate Flashcards
Turn back to the “Studio” panel and click “Flashcards.” NotebookLM auto-generates Q&A cards. Let’s see one of them.

And when you click on the answer, here is the result.

Let’s click on “Explain.” It uses a prompt to answer this question with Gemini models.

Now let’s see the results.

6. Create a Quiz
Turn back to the Studio panel and click on the Quiz. NotebookLM generates a practice test. Let’s do it and see the first quiz.

Let’s click on “Hint.”

The answer is now obvious. So, let’s select it and see what happens.

If you still have a question, click on “Explain.” It takes you to the middle section, where the LLM trained on our solution provides the answer. Here it is.
# Conclusion
Prepping for technical interviews doesn’t mean grinding interview problems in isolation. It means understanding deeply, visualizing clearly, and explaining confidently. NotebookLM turns a single interview question into a multi-sensory learning experience, including audio, video, visual maps, written reports, and active recall.
You already have the problem-solving skills. Now you have a system to organize them, reinforce them, and present them under pressure. Next time you see a tough SQL or Python question, don’t panic; upload it, explore it, and master it.
Nate Rosidi is a data scientist and in product strategy. He’s also an adjunct professor teaching analytics, and is the founder of StrataScratch, a platform helping data scientists prepare for their interviews with real interview questions from top companies. Nate writes on the latest trends in the career market, gives interview advice, shares data science projects, and covers everything SQL.
