Content Refresh Opportunity Model
FlyRank AI Internship · Python, pandas, scikit-learn, NumPy · 2026
- Ranked 30,000 existing pages by likelihood of losing search visibility, for a content lead with more pages than they can open and no time to work through them by hand.
- Found the label could be reconstructed from the features — 3,388 pages with no prior impressions had a declining rate of exactly zero by construction.
- The model was separating pages that couldn't decline from pages that could. A filter, not a prediction.
- Rescored on the population where decline was arithmetically possible, withdrew the figure I had already published, and wrote the retraction into the report itself.
- Built the held-out split in NumPy and measured what it bought — 0.901 against a random split's 0.908 — rather than assuming the split was honest.
- Write-up, notebook, and named failure modes: the cases page.
Menu and Customer Ranking
pandas, sentence-transformers, HDBSCAN · 2026
- Self-directed build, briefed by my own F&B operating experience and reviewed with a business colleague on what an owner actually needs to decide: menu, which customers to approach, and which ads bring buyers.
- Grouped customers from a 500-row Indonesian F&B dataset built and cleaned from scratch, using sentence-transformers embeddings and HDBSCAN clustering.
- Output was a ranked menu list and named customer categories — the form an owner could act on, rather than a cluster plot to interpret.