Ten plus years making sure production is flawless. Now I build AI solutions held to the same standard.

I'm Zaher, a multi-disciplinary designer and prepress specialist turned AI specialist and automation builder. I design workflows that read, validate and route real business data, with the guardrails a press check taught me to insist on.

Systems that do the work, and know when to stop

Each project is meticulously thought through. What triggers it, where the model reasons, which guardrails it has to pass, and where it falls back when something doesn't fit.

Invoicing Workflow

Vendor invoices land in a shared inbox in every format imaginable. This pipeline reads them, extracts the fields with a language model, blocks duplicates, files the PDF and writes the ledger, all done with zero manual intervention.

31
nodes in one workflow
2
duplicate checks before filing
7
real-world edge cases handled
  • n8n
  • Gemini
  • Gmail
  • Google Drive
  • Google Sheets
  • JavaScript
Workflow sheetInbox → Ledger → Summary
Gmail trigger Label as processed Split into PDFs Loop over each PDF Extract & clean text Has a text layer? Gemini extraction Validation gate Already in ledger? Already in Drive? File to Drive Ledger row
If the PDF is a scan
Gemini reads the image Rejoin at validation
If a gate fails or it's a duplicate
Errors log Reply to sender
When every PDF is done
Today's invoices & errors Run summary email
TriggerAI modelGuardrailOutputMain pathFallback path
Edge cases from the real sample set
  • Not every PDF is an invoiceA delivery note marked "this is not an invoice" is classified and rejected, not forced through.
  • One PDF, two invoicesThe model returns an array; each invoice becomes its own item before filing.
  • The second-notice duplicateA reminder copy is caught twice, against the ledger by invoice number, then against Drive by file name.
  • European number formats2.280,04 € is explicitly normalized to 2280.04, never left to chance.
  • Scans with no text layerEmpty extraction falls back to a vision-capable model reading the page image.
  • Total due vs. discountThe prompt targets the final amount due, not the early-settlement figure beside it.
Invoicing Workflow in n8n
Invoicing Workflow in n8n · Open full size ↗
Hermes AI Agent · Project Management

A project manager that reads and analyses the brief, then chases the whole team on your behalf.

Paste a project brief in plain prose. The agent turns it into a structured ClickUp project with owners, due dates, priorities and dependencies. Then the watcher chases blocked and overdue work on Slack and escalates to the lead when nobody answers. The bot acts on its own, without any manual intervention.

1 min
watcher polling interval
4
rules the model cannot override
0
tasks closed without sign-off
  • LLM agent skill
  • Python
  • ClickUp API
  • Slack API
  • cron
The Project Management Bot in action: brief to ClickUp to Slack for follow-up. · Watch on Loom ↗
Workflow sheetBrief → Project → Follow-up
Prose brief LLM → project spec Owner exists? ClickUp tasks + dependencies
Autonomous, every minute
Cron watcher Blocked / overdue? Slack DM to owner
If the owner stays silent
Escalate to project lead
TriggerAI modelGuardrailOutputMain pathFallback path
Division of labour
  • The model handles languageTurning prose into structure, and structure back into a plain-English status answer.
  • Scripts handle anything exactAssignee IDs, dependency order, status strings and Slack delivery never go through the model.
  • The objective is immutableScope changes append. Attempts to rewrite the goal are refused and logged.
  • "Thanks" is not approvalOnly the designated approver can move a task to Complete.
Data product · dashboard

Which lead sources actually make money

A marketing performance dashboard for a non-technical agency owner. It pulls every opportunity from GoHighLevel, cleans and attributes it. Making the data easy to read at a glance.

62
unit tests on the data logic
0
raw records sent to the browser
14 d
stale-lead threshold, flagged not dropped
  • Next.js
  • TypeScript
  • Recharts
  • Zod
  • Vitest
  • GoHighLevel API
  • Vercel
Open the live dashboard ↗
Architecture sheetServer-side only
GoHighLevel API Rate limit 85 req / 10 s Tag-based exclusion Source normalization Aggregate by source PII-free JSON Dashboard
When attribution is missing
Opportunity source Contact source "Unattributed", kept visible
TriggerGuardrailOutputMain pathFallback path
Decisions that keep the numbers honest
  • Exclude by tag, never by nameDemo, sandbox and duplicate records are removed only when tagged, case-insensitively.
  • Only won deals count as revenueMissing values count as $0 and are reported, not silently ignored.
  • Totals must reconcileTests assert that leads add up across every source and stage breakdown.
  • Approximations are labelledStage conversion is inferred from current position, and documented as such.
Portrait of Zaher Chehayeb

Zaher Chehayeb

For more than a decade I turned creative concepts into artwork and products for the real world. Working between designers, printers, suppliers, sales teams and manufacturing teams, where one wrong value means a pallet of waste.

That work was always about systems, structure, specifications, checks, and sign-offs. AI gave me a faster way to build them. I now design automations, agents and data tools for the same kind of operational work, and I build them the way I prepped files for press. Every input checked, every exception routed, nothing assumed.