Projects
Things I specify, direct, and run on my own.
-
Internship Scout
Jul 2026–presentActive Product direction and delivery — I specified it and directed the build
- Problem
- Internship search is high-volume and low-signal — hundreds of postings a day, few of them relevant.
- Built
- A five-stage pipeline I specified: collect → dedupe → eligibility rules → LLM scoring that cites verbatim posting text → kanban.
- Result
- Two deployments, a public demo and a private instance against the live search. Idempotent runs, with Vitest unit and integration tests gating CI; a Playwright end-to-end spec runs locally.
- Stack
- TypeScript · Next.js · Prisma · PostgreSQL · Vercel · GitHub Actions
Public repo — github.com/rfbert/internship-scout
Evidence
- Idempotent pipeline runs
- Vitest unit + integration tests gate CI
- Deterministic rules run before any model call
- LLM scores must cite verbatim posting text
- A person accepts every result before it counts
Internship search is high-volume and low-signal: hundreds of postings a day, few of them relevant. Internship Scout is my fix, and it is mine in the sense that matters: I decided what it does, what it is not allowed to do on its own, and what it runs on.
I wrote the specification rather than the implementation. I directed AI coding agents scoped to separate parts of the system, setting what each one was and was not allowed to decide, and integrated GitHub, Vercel and managed Postgres by hand. The boundaries are the interesting part: one ingest path, because a second one is how scoring logic drifts apart; deterministic eligibility and sponsorship gates that run before any model call, because a rule I can read and test beats a model call I cannot explain; and a person accepting every result before it counts.
The pipeline collects and dedupes postings, runs them through the eligibility rules engine, and ranks the survivors with LLM scoring that must cite verbatim text from the posting. Results land on a kanban board where I track every application to its outcome.
I run two deployments: a public demo on invented data, and a private instance against the live search. The collector that feeds the private one is not part of the public repository; the pipeline it feeds is. Reviewing live output is where the real work happens. I caught the classifier ranking an AI marketing posting as a top engineering match and specified the fix, and surfaced a deploy failing intermittently on database migrations.
Pipeline runs are idempotent; CI covers Vitest unit and integration tests, a WCAG AA contrast check and a production build. The Playwright end-to-end spec runs locally.
-
AI Productivity Automation System
May 2025Shipped Automation workflow developer
- Problem
- Recurring scheduling and communication tasks ate time and invited manual errors.
- Built
- One automation layer connecting Google Calendar, Gmail, Telegram, Notion, and Google Sheets.
- Result
- 12+ recurring tasks automated; built as the capstone of my Diploma in Artificial Intelligence at USMP (final grade 98%).
- Stack
- Python · Google Workspace APIs · Telegram · Notion
one automation layer across five platforms
- Calendar
- Gmail
- Telegram
- Notion
- Sheets
An automation workflow connecting Google Calendar, Gmail, Telegram, Notion, and Google Sheets. It automated 12+ recurring scheduling and communication tasks I had been doing by hand. It was also the start of a habit I still keep: using AI tooling for personal productivity and for development.
Built as the capstone work of my Diploma in Artificial Intelligence at USMP (final grade 98%).