AI/ML

7 machine learning projects that get you interviews (with datasets)

Seven projects on public datasets, from a tabular classifier to a RAG app. For each: the question, the dataset and its licence, the model family, what done looks like, what the interviewer asks, and the mistake most people make.

7 min read

Interviewers do not count your projects. They open one repository and ask why. These seven cover the model families a first AI/ML role expects, each with a public dataset, a clear definition of done and the question you will be asked about it.

Every project needs the same five things before it counts: the question in one sentence, a baseline score, a metric with your number against that baseline, a README that explains your decisions, and a demo someone can click. Do them in order. The first two are a weekend each; the last three take a month.

#QuestionDatasetModel familyLevel
1Will this customer buy?UCI Bank MarketingLogistic regression, gradient boostingBeginner
2What drives house prices?California Housing (scikit-learn)Regularised linear models, random forestBeginner
3How many bikes next hour?UCI Bike SharingLag features with gradient boostingIntermediate
4Is this message spam?UCI SMS Spam CollectionTF-IDF with a linear model, then DistilBERTIntermediate
5Which breed is in the photo?Oxford-IIIT PetTransfer learning with a pretrained CNNIntermediate
6What should this user watch next?MovieLens ml-latest-smallCollaborative filtering, matrix factorisationIntermediate
7Answer questions from these documentsDocuments you chooseRAG: embeddings, vector store, LLMAdvanced

1. Will this customer buy?

The UCI Bank Marketing dataset holds about 45,000 phone calls from a Portuguese bank's campaign, with the outcome: did the customer subscribe to a term deposit. Licence CC BY 4.0. Roughly one call in nine is a yes, so this is your first imbalanced problem.

Start with logistic regression, then gradient boosting. Done means ROC-AUC on a held-out set, precision and recall at a threshold you chose and can justify, a confusion matrix, and a README that names the baseline (predict no for everyone) and your lift over it. The interviewer will ask why you did not report accuracy, and how you picked the threshold.

The mistake: keeping the duration column. The dataset description says call duration is only known after the call ends, so it leaks the outcome. A model that uses it looks brilliant and is useless.

2. What drives house prices?

California Housing ships with scikit-learn (fetch_california_housing): 20,640 census block groups from 1990 with eight features and a median house value target. Public data from the StatLib archive, no licence paperwork.

Fit a linear model with ridge or lasso regularisation, then a random forest. Done means RMSE and MAE on a held-out set, both compared against predicting the median, a residual plot, and a short note on which features matter and why. The interviewer asks why you log-transformed the target (or why you did not), what you did about the values capped at 500,001, and what a coefficient means in plain words.

The mistake: tuning on the test set. Hold it out once, use cross-validation for every decision, touch the test set at the end.

3. How many bikes will be rented next hour?

The UCI Bike Sharing dataset has 17,379 hourly rows from a Washington DC bike scheme across 2011 and 2012, with weather and calendar fields. Licence CC BY 4.0.

Build a seasonal naive baseline first (same hour last week), then gradient boosting on lag features: last hour, same hour yesterday, rolling means. Done means a time-ordered split, MAE against the baseline, and a plot of predictions against actuals for one week. The interviewer asks why you did not shuffle the rows, how your lag features avoid using the future, and how you would retrain this in production.

The mistake: a random train-test split. On time series it leaks tomorrow into today and produces a score you cannot reproduce on real data.

4. Is this message spam?

The UCI SMS Spam Collection has 5,574 text messages, 747 of them spam. Licence CC BY 4.0. It is small enough to iterate on a laptop in minutes.

Baseline with TF-IDF and logistic regression, then fine-tune DistilBERT with the Hugging Face transformers library and compare. Done means precision, recall and F1 on the spam class, a confusion matrix, and a Gradio demo where someone types a message and sees the prediction. The interviewer asks why F1 rather than accuracy, what TF-IDF does, and whether the transformer was worth its extra cost.

The mistake: fitting the vectoriser on all the data before splitting. The vocabulary then contains test-set words, and your score is optimistic.

5. Which breed is in the photo?

Oxford-IIIT Pet has 37 cat and dog breeds, about 200 images each, around 7,400 in total. Licence CC BY-SA 4.0, which allows commercial use with attribution and share-alike.

Load a pretrained ResNet from torchvision, replace the final layer, fine-tune. Done means top-1 accuracy on the official test split, a confusion matrix that shows which breeds get mixed up, and a Gradio demo that accepts an uploaded photo. The interviewer asks why transfer learning instead of training from scratch, which layers you froze, what augmentation you used, and how you knew the model was overfitting.

The mistake: no validation set. People train, check the test accuracy, adjust, check again, and the test set quietly becomes a training signal.

6. What should this user watch next?

MovieLens ml-latest-small from GroupLens has 100,836 ratings by 610 users on 9,742 movies. The usage licence allows research and educational use with a citation, and no redistribution of the files. Say that in your README.

Start with a popularity baseline, then item-based collaborative filtering, then matrix factorisation. Done means RMSE on held-out ratings plus precision at 10 on a per-user held-out set, because the product shows a list, not a number. Add a paragraph on cold start. The interviewer asks what you would do for a new user, the difference between explicit ratings and implicit clicks, and why offline metrics differ from what an A/B test would show.

The mistake: reporting RMSE alone. Predicting a 3.7 instead of a 3.9 tells nobody whether the top ten were any good.

7. Answer questions from these documents

This is the one hiring managers ask about most in 2026. Use documents you have the right to use: an open-source project's documentation cloned from GitHub, or public government FAQs. Stack: sentence-transformers all-MiniLM-L6-v2 for embeddings (Apache 2.0), FAISS or Chroma as the vector store, LangChain to wire retrieval and generation, and an LLM through the OpenAI API or an open model from Hugging Face.

Done means 30 hand-written questions with known answers, a retrieval hit rate at 5, a faithfulness check (does the answer only use retrieved text), a Streamlit interface, and a README with a diagram and the cost per query. The interviewer asks about chunk size and overlap, why RAG rather than fine-tuning, how you measured it, and what the app says when the answer is not in the documents.

The mistake: no evaluation set. A demo that works on the five questions you tried is a demo, not a project.

Deploy, document, publish

Each project ends the same way: push to GitHub with a README a recruiter can read in a minute, deploy the demo on a free tier (Streamlit Community Cloud or Hugging Face Spaces both work), and record a two-minute screen capture. Put the three best on your resume as one line each: question, dataset, metric and number, link. Keep a DECISIONS.md in each repo with what you tried and dropped. That file is what you will talk from in the project round, which is the round that decides most first offers.

What to do next

See the AI & ML Engineer track

Sources

Free masterclassLive on Zoom