← Real buildsBoothHiring · case file

PRD_TAInterviewAgent (instances 1 and 2)

Drafts and sends the interview invitation to a matched candidate using the recruiter's calendar details, from the correct regional careers mailbox. — 107 tasks (107 completed) on instance 1 plus 65 tasks (62 completed) on instance 2 in the 30 days to 2026-08-10

In production13 nodes in the graph6 steps drawn
—
no measured bill on either rail
1
Pull the recruiter's calendar details from the Baserow interface table
2
Email back for missing information when the row is incomplete
3
Construct the job details and URL (code)
4
AI drafts the interview invitation email
5
Code assembles subject line and addressing
6
Send from the right regional mailbox (careers.co@ / careers.ph@hirebooth.com)

Where the money goes, per run

Step typeCountRateSubtotal
Code / integration steps5$0.025$0.125
Model calls · standard tier3$0.1$0.3
Other5—$0
Rate-card estimate, standard tier$0.425

Instance 1 happy path: entry extraction $0.10 (std; Zoho trigger payload, no document parse) + Baserow_SearchRows TA-calendar lookup $0.025 + 'Extract Job Details' (JobURLConstructor) std model $0.10 + 'Generate Interview Invitation Email' std model $0.10 + Code Executor subject/addressing $0.025 + ONE of the two regional Gmail sends $0.025 = $0.375/run; the third Gmail node (missing-info email-back) is exception-branch only. One condition is llm_based on GPT4_1_MINI — if billed as a std call it adds $0.10 → $0.475. The menu 'book-the-interview' quote of $0.43 with intake sits inside that $0.375-0.475 band, so std-tier arithmetic and the menu agree; no measured per-run figure exists (catalog cost_basis 'none'), and the honest fallback is the menu price plus the 5-10x-lower at-cost band. Instance 2 (confirmation): entry $0.10 + EmailDataExtractor $0.10 + Zoho UpdateCandidateStatus $0.025 = $0.225 happy path, Gmail alert on the failure branch only.

Models seen in the graph: GEMINI_3_FLASH (preferredModel on InterviewEmailGenerator, JobURLConstructor, EmailDataExtractor, entry nodes); GPT4_1_MINI (llmModel on instance 1's conditions incl. the one llm_based condition); GEMINI_3_FLASH (llm_based condition on instance 2); GEMINI_25_FLASH (preferredModel on one instance-2 Gmail node); fallback chains GPT4_1/CLAUDE_4_SONNET and GPT4_1_MINI/GPT4_1/CLAUDE_4_SONNET; legacy preferred_model 'GPT40' on Gmail/Zoho tools

Graph read: ama-solution/04-agents/booth-s-workspace-production/prd-tainterviewagent-1/agent.json (13 nodes — matches the catalog's node count) AND prd-tainterviewagent-2/agent.json (10 nodes, the confirmation instance); breakdown below is instance 1

What a copycat build should know

  • Regional sender identity is done by DUPLICATING the Gmail node per mailbox (careers.ph@ / careers.co@hirebooth.com) and routing with a condition — not a parameterised from-address; copy this only if the mailbox count stays small.
  • Same fail-loud pattern as the screening agent: an incomplete Baserow TA-calendar row triggers an email-back for missing information and a clean exit rather than a guessed invitation.
  • Invite and confirmation are two separate agents (13 + 10 nodes); the pre-split monolith was retired 2026-04-24 and its 361 tasks still pollute naive volume counts — quote the split agents separately (CLIENT.md metrics-reconciliation row).
  • The only llm_based condition across all three Booth graphs lives here (GPT4_1_MINI); everything else is rule_based — worth knowing since the workspace has recorded rule_based conditions misbehaving.

Lessons from the client record

  • CLIENT.md issue 11 (open, largest adoption lever): 60-70% of Booth's hiring is booked on phone/WhatsApp/Viber to meet SLAs (1,886 of 2,401 eligible in May) and is unreachable by these email agents — adoption reproduced three ways at 18-21%; the unlock is a voice/messaging agent, not a process fix.
  • Instance 2's guard was outcome-blind: it checked for an 'error' key instead of updatedCount, so Zoho success-but-skipped envelopes closed COMPLETED — 19% of bookings never updated Zoho and 13 went unnoticed while the Gmail alert OAuth sat dead for ~3 weeks (2026-08-11 incident; root-cause fixes specced but deferred).
  • Email nodes on a personal Beam account (muaaz.khan@beam.ai) hit provider refresh limits and are a single-person dependency; both alert nodes were moved to the Booth-owned careers PH account 2026-08-18 — build on client-owned senders from day one.
  • Trigger-status ambiguity (issue 10): the agent fires on 'Schedule Initial Interview' (574 records) but recruiters interchangeably use 'For Initial Interview' (11,863 records) which is absent from Zoho's picklist metadata — a copycat must audit actual field usage, not the schema.

What it is made of

Book the interviewBaserowGmailZoho Recruit (job URL)

ama-solution/04-agents/booth-s-workspace-production/prd-tainterviewagent-1/agent.json · ama-solution/04-agents/booth-s-workspace-production/prd-tainterviewagent-2/agent.json · solution-intelligence/content/agent-catalog.json · solution-intelligence/content/menu.json · sol-booth/CLIENT.md · sol-booth/ACTIVITY_LOG.md · ama-solution/03-projects/26-hr/02-resources/module-library/09-面试邀约与排期.md