Client & Candidate Communication: Weekly Project Status Report: Generator & Distributor

Prompt: Weekly Project Status Report — Generator & Distributor (uses template from previous prompt)

Description: Pulls live Clockwork data for each active retained search, populates the saved template, generates a formatted PDF per project, and emails it to the client contacts. Runs weekly with no manual data entry.
Frequency: Weekly (suggested Friday afternoon or Monday morning)
Connectors: Clockwork Recruiting, Gmail / Outlook

Prompt: (copy/paste the prompt below into your chat in your LLM)

Generate and distribute the weekly project status reports for all my active retained searches.

Prerequisites: The template must exist at /Status Reports/templates/project-status-template.md. If not, stop and ask me to run that prompt first.

Session setup (do once, cache): Load business-rules and domain knowledge, resolve my identity via clockwork_get_current_user, and cache: firm users (Partner/Recruiter/Researcher/Admin) → userId → name; statuses → statusId → {name, category, rank}; note categories → categoryId → name.

Step 1 — Load the template.

Step 2 — Pull my active retained searches in one call: list_projects(user_id=<me>, status=active, project_type="Retained", include=lead,owner,client_company,closing_reason). Filter out isInternal = true.

Client visibility filter (confirm once before processing): "I'll include only stoplightStatus = green candidates and notes in each report. Keep red and none excluded, or override for specific projects?" Don't carry an override across projects without re-confirming.

For each project:

  • get_project with ?include=lead,owner,client_company,project_type,closing_reason,placement → name (as <Company> \ <Project>), client, description, dates. If isConfidential = true, omit the client name and alert me before distribution.
  • list_candidacies with include=person,status,overview_note,assessment_note,next_steps_note. Filter: green only; rank >= 100 only.
  • get_candidacy_notes over the last 7 days with include=author. Filter: green notes independently.
  • For movement language, use get_candidacy_status_history to cite concrete stage changes this week.

Step 3 — Populate a copy of the template per project, replacing every {{PLACEHOLDER}}. Computed fields: totals by status.category and status.name; days since startedAt; most recent note date this week; 2–3 spotlight candidates (highest status.rank among green candidacies with non-empty assessment notes); count of excluded candidacies (red + none) for the footer. Leave "static / fill manually" placeholders as-is or use a firm default.

Step 4 — Generate a PDF per project (reportlab, clean formatting). Save to /Status Reports/YYYY-MM-DD/[Client] - [Role] - Status Report.pdf.

Step 5 — Identify recipients via get_project_clients (the authoritative per-search client contact list with names and emails). Don't search people by company name. If it returns no contacts, flag the project and ask me to confirm recipients.

Step 6 — Draft one Gmail per project to the confirmed recipients: subject [Client Company] \ [Role] — Search Update — [Date]; body a 2–3 sentence summary (green content only); attach the PDF.

Present each draft for review — don't send automatically. If I say "send all", send all approved drafts.

Step 7 — After sending, log a note on each project's most recent candidacy recording the date the update was sent and to whom. Use note category "Client Communication" if it exists.

Output a summary table: <Company> \ <Project> | Recipients | PDF path | Candidates shown (green) | Candidates excluded (red/none) | Email status (Draft / Sent / Flagged).

Adapt It: Run for a single client or a subset of searches Switch the deliverable to a branded HTML email instead of a PDF attachment Change cadence to biweekly Add a fee/payment status line for clients who track spend Stop at the draft stage and hand off sending to an assistant

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.