Ayach Youssef

Case study — final-year internship (PFE), Jobistart, 2026

OneBotAds

An AI-powered ad-automation SaaS: media buyers connect their Meta, TikTok, Google, Snapchat, LinkedIn and Taboola accounts and run every campaign from one dashboard — or describe the campaign in chat and let the agent build it.

Role

Sole backend engineer, from schema to deploy

Timeline

April 2026 — ongoing; live since June 23, 2026

Stack

React · Node.js/Express · PostgreSQL · Sequelize

Status

Live at onebotads.net

The starting point

A mockup with nothing behind it

When I joined, OneBotAds was a React interface you could click through. That was it — no database, no API, no connected ad platform, no business logic behind any of it.

My internship brief was to make the promise real. In under three months I designed and built the entire technical foundation: OAuth integrations for six ad platforms, a 17-table PostgreSQL schema designed from scratch,~35 API route groups and ~29 services, payments, and the AI layer that became the product’s flagship feature.

What I built

The six pieces underneath

Platform integrations

Full OAuth 2.0 flows plus campaign CRUD against the real APIs of Meta, TikTok, Google Ads, Snapchat, LinkedIn and Taboola — each with its own token lifecycle, handled by a refresh service that knows the rules per platform.

OAuth 2.06 platform APIs

AI campaign agent

The flagship: a chat assistant that turns a conversation into a launch-ready campaign — filling budgets, audiences, schedules and creatives into the real form. Powered by an LLM orchestrating six MCP tool servers.

LLM agent6 MCP servers

Rule engine

Automatic guardrails for running campaigns — pause, boost or alert on metric thresholds, executed by scheduled jobs every few minutes across all connected platforms.

node-cronautomation

Revenue attribution

Matches Shopify orders through UTM parameters back to the exact campaign that drove them, so ROAS is a real number pulled from actual sales, not a platform-reported estimate.

ShopifyUTM → ROAS

Creative generation

Ad images and video generated in-app from a text prompt, integrated directly into the ad form — Google Imagen and Veo, plus Kling and Higgsfield for video.

Imagen 3Veo 3

Payments & wallet

Stripe and Revolut checkout with webhook-driven wallet credit, plan limits and a cost manager that tracks spend across every connected account.

Stripewebhooks

The product

In the interface

Create Ad — Use AI
The AI assistant chat filling a complete campaign form: name, objective, per-platform budgets for Meta and LinkedIn, audience targeting with a live 1.4 to 1.7 million people estimate, and the ad creative
Describe the campaign in chat; the agent fills the entire form — budgets per platform, targeting, schedule, creative — then launches it against the real APIs.
Campaign Manager
Campaign Manager table listing active campaigns across Meta, Taboola and TikTok with spend, impressions, clicks and budget columns
Every platform's campaigns in one table — filter, search, pause and resume without leaving the app.
Statistics
Statistics overview with spend, impressions, clicks, CTR and CPC tiles and a per-platform performance breakdown
Cross-platform performance rolled up into one view: spend, impressions, CTR, CPC, per platform.

How it works

Architecture

A React 18 client talks to a single Express server over a REST API with JWT auth. The server is organised in layers: route handlers validate and delegate to services (auth, sync, token refresh, rule engine, payments, stats), and only services touch the database — PostgreSQL through Sequelize. Scheduled jobs sync platform data every five minutes and run the rule engine every fifteen.

The AI layer runs as MCP servers spawned per request — separate processes for Meta, TikTok and Google tools, so the agent’s capabilities are isolated from the main API and can fail without taking it down. External clouds hang off the edges: the six ad-platform APIs, the AI and creative providers, and Stripe webhooks for payments.

OneBotAds — system architecture
System architecture diagram: React 18 client, Express server with 35 route handlers and 29 services, PostgreSQL with 17 tables via Sequelize, MCP CLI servers spawned per request, and external clouds for ad platforms, AI and creative providers, payments and automation
The full system: client, API, database, per-request MCP servers, and the external services at the edges.

Deployed on a Linux VPS with PM2 and nginx. Two editions ship from one codebase: the full trueROAS edition and the reduced edition currently in production.

Outcome

The handoff

OneBotAds went live atonebotads.neton June 23, 2026. A week later I delivered a complete handoff: the source, a documented 17-table schema, environment references, deployment procedure, API reference with Postman collections, and per-topic guides — so the next engineer can run, deploy and extend the product without me in the room.

The product and source code belong to Jobistart; this page shows my role, the architecture, and the shipped result.