Build guide · Claude Code, end to end

An AI recruiter for the EatCookJoy UAE Founding Head Chef.

One model, two phases. Claude hunts public profiles and press mentions via the web_search tool, then Claude Code (local CLI) writes the deterministic scorer, drafts the personalised outreach, and serves the review dashboard. No second provider, no Codex, no extra API key.

Open the shortlist dashboard → View the code on GitHub

What's in this folder

A tiny, working repo. No frameworks. make research sends Claude on a web hunt. make score ranks the output locally. make outreach drafts personalised emails. make serve opens the dashboard. Everything runs on a laptop, no infra cost.

briefs/eatcookjoy-uae-chef.yaml
The role brief — skills, target arcs, filters, signals we love, red flags. Edit this first.
scripts/research.py
Calls Claude (claude-opus-4-7) with the server-side web_search tool. Writes candidates/claude-run-NN.json.
claude-research-prompt.md
Same job, run interactively inside the Claude Code CLI when you want to steer mid-search.
scripts/score.py
Deterministic scorer. Weights: arc 40, content 25, recency 15, cuisine 10, geo 10. No LLM in the ranking — same input, same output, every time.
scripts/draft_outreach.py
Calls Claude with the candidate, the brief, and a tone library. Writes one ~90-word email per top-N.
scripts/dedupe.py
Reads ats_log.json and drops anyone contacted in the last 90 days.
dashboard.html
Single-file vanilla-JS review UI. Sortable, filterable, with draft preview and approve checkboxes. No build step.
outreach/tone.md
Voice library: founder-not-recruiter, specific over flattering, no buzzwords.
Makefile
install · research · score · outreach · outreach-dry · dedupe · serve · clean

The architecture

STEP 01
You
Write the brief. Skills, target career arcs, filters, signals you love, red flags.
STEP 02 · CLAUDE
web_search tool
Claude browses public profiles, press, and platform pages. Returns 25 candidates as JSON.
STEP 03 · CLAUDE CODE
local CLI
Scores candidates 0–100 deterministically. Drafts personalised emails. Builds the dashboard.
STEP 04
You
Review in dashboard.html. Approve. Send.

Two ways to run the research step

Headless

For cron jobs, repeated runs, or when you don't want to babysit. Reproducible — same brief, same model, same outcome.

make research          # → candidates/claude-run-NN.json

Inside the Claude Code CLI

Open claude in this folder, paste claude-research-prompt.md. Steer mid-search ("focus on Levantine", "skip MasterChef alums").

$ claude
> [paste claude-research-prompt.md]

What Claude Code does well here

JobClaude (web_search via API)Claude Code (local CLI)
Hunt public profiles + press for chefs Best — server-side web_search tool, scriptable Also great — WebSearch + WebFetch, interactive
Read & edit files in this repo Best — runs as a CLI in your terminal
Score candidates deterministically Best — wrote score.py once, runs forever
Draft personalised outreach Best — uses tone library + brief in one call Same model, just driven from the CLI
Build the dashboard UI Best — writes HTML/JS, hot-reload as you watch

Quick start

cp .env.example .env       # add ANTHROPIC_API_KEY
make install               # pip install -r requirements.txt

make research              # Claude + web_search → candidates/claude-run-NN.json
make score                 # → candidates/scored.json
make outreach              # → outreach/<name>.txt  (top 10)
make serve                 # http://localhost:8765/dashboard.html

Scoring weights

arc_match     40   prior career arc lines up with target_arcs
content       25   IG / YouTube / TikTok reach (log-scaled)
recency       15   how fresh the source is (linear decay over 365 days)
cuisine_fit   10   covers the UAE multi-cuisine palette
geography     10   currently in UAE / GCC

What "working" looks like

Targets vs a classic recruiter cycle for the same role. The shortlist that ships with this repo is sample data — run make research against the brief to replace it with real candidates.

~3days to first working agent
−85%brief → shortlist time
reply rate to outreach
$0infra — runs on your laptop

The brief, in plain English

EatCookJoy UAE is a chef-led private dining brand with a content engine on Instagram and TikTok. The Founding Head Chef owns the menu IP, leads the chef collective, and stars in the content shoots that drive bookings. The brief is wired for five career arcs: