Automations
Client Workflow Generator
Setting up a new client meant copying n8n workflows, Google Sheets and registry rows by hand. I built a Next.js portal where one form provisions everything for four workflow types: it copies tokenized n8n master templates through the n8n REST API, creates the client sheet with the Google Sheets and Drive APIs, and records the client in a registry. Nothing goes live until an approver signs off, and the flow is covered by Vitest unit tests and an end-to-end test.
- Next.js
- TypeScript
- n8n
- Google Sheets API
- Auth.js
- Zod
- Vitest
Automations
X Audience Activity Engine
The team needed to know whether a client's X followers and LinkedIn-matched prospects were actually active on X. I built templated n8n workflows that scrape followers and recent tweets, count each profile's posts over the last 7 days, and fall back through cheaper lookups for inactive accounts before sending results to Clay. The LinkedIn-matched version uses an n8n Data Table as a queue, processing rows in batches and restarting itself for the next batch.
- n8n
- Apify
- RapidAPI
- Clay
- JavaScript
Automations
LinkedIn Hiring Signal Scraper
Outbound teams use hiring activity as a buying signal, but finding it by hand doesn't scale. I built a scheduled n8n workflow that searches LinkedIn authors' posts in chunks, collects unique authors, enriches their profiles in rate-limited batches and pushes the merged records into Clay. It saves the last run time so each run only picks up new posts.
Automations
ICP Content-Engagement Engine
Clients posting on LinkedIn needed to know which of the people engaging with their content match their ideal customer profile. I built a daily pipeline: per-client n8n workflows collect post likers and commenters, deduplicate them against run history, and hand each new engager to Clay for enrichment and LLM classification. A Google Apps Script layer then rebuilds the report tabs, syncs an all-clients master sheet and serves an internal leaderboard, with error alerts and scheduled jobs chained to stay within execution limits.
- n8n
- Clay
- Google Apps Script
- Apify
- Google Sheets
- JavaScript
Automations
Script-to-Video Engine
Making narrated short-form or widescreen videos means juggling scripts, voiceover, background footage and subtitles across separate tools. Building on Faheem Alvi's open-source Reddit Video Engine, I adapted it into a script-first generator with Gemini-assisted scripts, multi-provider TTS, background clips trimmed to the audio length and word-level subtitle overlays, and I wrote its Asset Library UI and backend endpoints. It demonstrates extending an existing full-stack media pipeline across React, FastAPI and FFmpeg.
- React
- TypeScript
- FastAPI
- FFmpeg
- MoviePy
- Gemini
- Docker
Automations
Video Cutter: Bulk Clip Splitter
Cutting a long video into many short clips by hand is tedious. I built a web app that takes an upload, probes its length and uses FFmpeg to split it into fixed-length segments with per-clip adjustments, reporting task progress and returning every clip as a single ZIP. It demonstrates async job handling and FFmpeg automation in a Node/Express + React app.
- Node.js
- Express
- FFmpeg
- React
- Vite
- Docker