Scope of Work · Confidential
Recruiting Agent — Scope of Work
Product: GCC self-hosted AI Recruiting Agent
Prepared for: Aziz Saif · Dubai
Version: 1.0 · 31 May 2026
Engagement: Productization + go-to-market build
01
Objective & outcome
Deliver a self-hosted AI recruiting agent that runs on the operator's own accounts (Gmail, Google Sheets, WhatsApp, logged-in Indeed/LinkedIn) via Claude Code, with no per-seat SaaS fee and no data lock-in. The agent runs the full hiring loop — write JD → post → collect & screen CVs → shortlist → outreach → daily report — tuned for GCC high-volume roles (promoters, drivers, retail, FM) in Arabic, English, Hindi and Urdu.
Outcome: a working placement engine the operator uses internally first, then sells as a managed service and licenses as a self-serve product.
02
In scope / out of scope
In scope
- JD generation + structured screening criteria per role.
- CV intake from a local folder, Gmail and WhatsApp exports; parsing of PDF/DOCX/image CVs.
- Scoring & ranking against the JD (rules engine + optional LLM), shortlist output.
- Outreach drafting (email/WhatsApp) with a human confirmation gate.
- Pipeline state in a Google Sheet (Candidates / Jobs / Log).
- Daily report (HTML dashboard + email + WhatsApp recap).
- Browser playbook for Indeed/LinkedIn posting via Playwright MCP (human-paced, capped).
Out of scope (this phase)
- Payroll, HRIS, visa-processing automation, or contract e-signing.
- Any action that auto-submits to Indeed/LinkedIn without operator confirmation.
- Native mobile apps.
03
Deliverables
| # | Deliverable | Form |
| 1 | JD generator + role criteria store | jd_generator.py + roles/*.json |
| 2 | CV parser + scoring engine | screener.py (rules + LLM) |
| 3 | Multi-source intake + dedup | intake.py |
| 4 | Outreach drafting (email/WhatsApp) | outreach.py, whatsapp.py |
| 5 | Pipeline DB + daily report | google_clients.py, daily_report.py |
| 6 | Claude Code project + slash commands | CLAUDE.md, .claude/commands/ |
| 7 | Browser playbook (Indeed/LinkedIn) | docs/BROWSER_PLAYBOOK.md |
| 8 | Zero-credential demo + offline self-test | demo_run.py, test_offline.py |
| 9 | Interactive demo + CV screener web pages | Live on azizsaif.com |
Already built (v1): deliverables 1–9 exist and the offline self-test passes. See the live links at the foot of this document.
04
Architecture & stack
Claude Code is the orchestrator. Python modules do logic/data; the browser is driven via Playwright MCP for actions that have no API. The single source of truth is a Google Sheet.
ClaudeClaude CodePythonPlaywright MCPGmail APIGoogle Sheets (gspread)WhatsApp Cloud APIIndeed.aepdfplumber / python-docx / OCR
Data sovereignty: everything reads/writes the operator's own Google Sheet and accounts. No candidate data leaves their tenancy. Secrets live in .env and are never committed.
05
The 5-step workflow
- Create JD — brief → JD + scored must-haves.
- Post — Indeed.ae (as employer) + LinkedIn + WhatsApp groups, with confirmation.
- Collect & parse — pull CVs (Indeed inbox + WhatsApp zip + folder + Gmail); extract name, age, visa, languages, experience, location.
- Score & shortlist — match each CV vs JD, rank, pick top N; searchable dashboard.
- Reach & report — draft/send outreach (confirmed), daily HTML + email + WhatsApp recap.
06
Priority features (v1.1, to be sellable)
- WhatsApp-first apply flow — 2–4 min conversational application in AR/EN/HI/UR (name, visa, availability, location, license).
- Visa + compliance intelligence — own-visa vs sponsorship detection, Emiratisation/NAFIS awareness, license category.
- Multi-site shortlist dashboard — rank per site by commute & shift, manager view "top 30 per location".
v2 nice-to-have: Arabic JD generation, 30-sec audio/video micro-response, QR-code hiring-day capture link.
07
Phased plan & timeline
| Phase | Work | Duration |
| 0 · Validate | Run as own placement engine on real promoter roles; measure time-to-shortlist & cost-per-hire | 2–3 weeks |
| 1 · Hardening | WhatsApp-first apply flow + visa/compliance layer | 3–4 weeks |
| 2 · Multi-site | Per-site shortlist dashboard + manager views | 2–3 weeks |
| 3 · Managed launch | Onboard 3–5 agencies on the managed tier | 4 weeks |
| 4 · License | Package self-serve license + docs | 2 weeks |
08
Commercial model
| Tier | Who | Price |
| Self-serve license | Solo operators / micro-agencies | One-time AED 3,500–6,000 + optional support |
| Managed / done-for-you | SMEs without technical staff | AED 1,500–3,000 / mo flat (unlimited seats) |
| Per-placement | Staffing agencies | AED 150–400 per shortlist, or rev-share |
Anchor against GoPerfect ($250/user/mo) and Paradox ($30k+/yr): "unlimited seats, your data, one flat fee."
09
Assumptions & dependencies
- Operator provides Google (Gmail + Sheets) OAuth, an optional Anthropic API key, and WhatsApp Cloud API credentials.
- Indeed/LinkedIn actions use the operator's own logged-in browser; the operator accepts the platforms' ToS and the account-flag risk. The agent is human-paced, capped, and never auto-solves CAPTCHA.
- Image-only/scanned CVs require OCR (Tesseract) for text extraction.
10
Acceptance criteria
- End-to-end run completes on sample data with no credentials (
demo_run.py).
- 1,000+ CVs parse and rank into a shortlist; top-N meet all must-haves.
- Daily report generates and (when configured) emails + WhatsApps.
- No candidate data leaves the operator's accounts; no secrets in the repo.
- Offline self-test passes (
test_offline.py).