Applied Search Intelligence: Google Search Ranking & Discoverability
This is the starting point for the FlyRank ML Internship. You clone it into your own public repo (one click — Use this template), build everything there, and submit that repo URL on each assignment in your portal — it's your workspace, your submission, and your portfolio all at once. The rhythm is simple: do the work, commit it, submit on the card. Done.
Everything here runs on a small anonymized slice of real FlyRank search data. No credentials, no private client data, no setup headaches.
New here? Two reads: SETUP.md (GitHub, Colab, and data access — ten minutes, with every silent pitfall flagged), then GUIDE.md (every file explained, what to edit vs. leave alone, and where your own work goes — five minutes).
The fastest path is Google Colab (one click, zero install). Open Notebook 1 and run all cells:
Week 1 — Run it, then discover a real truth yourself
Week 2 — The model is just a rule you can read
Weeks 3+ — The full release (~79M rows) via DuckDB, no download needed — hosted at
FlyRank/internship-warehouse (gated: request access + accept the data-use terms, approval is instant)
Every assignment is one pre-named skeleton notebook in work/notebooks/. Click its badge,
fill the sections in order, then File → Save a copy in GitHub → OK — the dialog is
already pre-filled with your repo and the right path.
The badges know whose repo they're in. About 30 seconds after you create your copy, an automatic commit ("Point Colab badges at this copy") rewires every badge in it to open your notebooks — with your saved work — instead of the shared read-only ones. Reading this on the shared starter page? The badges below open blank previews; make your copy first (SETUP.md, Moment 1).
Badges not opening your copy? Colab's built-in opener always works: File → Open notebook
→ GitHub tab → paste github.com/you/your-repo → pick the notebook.
git clone <this-repo-url>
cd flyrank-ml-internship-starter
pip install -r requirements.txt # or: uv pip install -r requirements.txt
python scripts/run_all.pyThat runs the whole pipeline on the bundled sample and writes results to outputs/.
| Path | What it is |
|---|---|
notebooks/ |
Week 1–2 first-win notebooks (Colab-ready). Start here. |
scripts/01–05 + run_all.py |
The runnable reference pipeline: prepare → baseline → train → evaluate → PDF. |
data/raw/content_refresh_anonymized.csv |
The anonymized starter dataset (~30k pages). |
outputs/ |
Example outputs so you can see the target shape (model_report.md, refresh_queue_sample.csv, charts/). |
work/ |
Your space. Lane experiments and your capstone live here — see work/README.md. |
docs/ |
The core docs + the data dictionary (see below). |
ml-core-foundation-framework.md— the first-principles map of ML as a whole system. The backbone of the live sessions.ml-intern-dataset-and-lane-guide.md— how to use the data safely, the capstone workflow, and the analysis "lanes" you can pick from.intern-free-tooling-guide.md— the zero-budget tool stack (Python, Colab, free AI assistants). You never need to pay for anything.data-dictionary.md— all 44 columns: meaning, scale, and gotchas. Keep it open while you work.
01_prepare_features.py clean + build the feature vector, define the label
02_baseline_score.py a transparent hand-rule "fix this first" score
03_train_model.py logistic regression, decision tree, random forest (client-holdout split)
04_evaluate_and_export.py ranked queue + charts + Markdown report
05_build_pdf_report.py a shareable PDF summary
On the bundled sample, the learned model clearly beats the hand-written rule at picking the right pages to review first (Precision@50 ≈ 0.24 → 0.74; the model number can land 0.68–0.74 depending on library versions — the ~3x lift is the point). The notebooks compute these numbers live, so they always reflect the current data and environment.
Teaching point: the model is the capstone, but the workflow is the lesson —
problem framing → data cleaning → baseline → first model → evaluation → explainable recommendation.
- Only the small anonymized CSV ships here — no client names, domains, URLs, titles, or keywords.
- Never add raw private client data to this repo or your fork. Need more data? Request an approved release from your mentor — never export it yourself.
- Don't paste client data into third-party AI tools.
- Frame every result as observed / measured / directional / decision-support — never "I predicted Google's algorithm."
The .gitignore blocks datasets by default, and CI fails any commit that includes a dataset.
Weekly assignments, live events, and the capstone live on your portal board (your
enrollment email has your access link). This repo is the shared technical foundation they all
build on — and the skills/ folder here is the instruction library for your AI assistant
(start at skills/README.md).
First time with GitHub? You need exactly four things (full walkthrough: SETUP.md):
- A free account at github.com.
- Your own copy of this repo: Use this template → Create a new repository → public.
(One click — brings the notebooks,
work/, and the CI leak-guard with it.) - In Colab: File → Save a copy in GitHub — opened from your copy's badges, the dialog is already pre-filled with your repo and path, so it's just OK (Colab handles auth).
- That's your submission repo — share its github.com/you/your-repo URL with Assignment 1 (never a colab.research.google.com or drive.google.com link).
Track leads: Mirza Ašćerić (ML) · Hole (data engineering). Code under MIT (see LICENSE); data under DATA_USE.md.