{
  "_about": "Made-up demo data for Northline Technical Search, a fictional agency. Every company, person and number is fictional: company names carry Example / Sample / Placeholder / Fictional / Demo / Test, people are 'Dana Example' style, candidates are 'Candidate A' onwards. Read by app/ (the interactive demo) and meant to be read by site/demo.html later, so the two cannot drift. Fees sit in the construction range from docs/strategy.md (about $23,000 to $29,000).",
  "agency": {
    "name": "Northline Technical Search",
    "recruiters": 14,
    "sector": "Construction management",
    "places": "project managers, superintendents, estimators and preconstruction leaders",
    "ats": "Bullhorn",
    "sender": "Sam Example",
    "signature": "Sam Example, Northline Technical Search",
    "weekOf": "Oct 5",
    "monday": "Monday, Oct 5",
    "today": "Wed, Oct 7",
    "lastSync": "Today, 06:00",
    "owner": "Sam Example",
    "recruitersNamed": ["Quinn Example", "Drew Sample", "Reese Demo"],
    "recordsRead": 1248,
    "thisMonth": "Oct 2026"
  },
  "settings": {
    "file": "clients/northline-technical-search.json",
    "defaults": {
      "stalledAfterDays": 3,
      "waitWarnDays": 5,
      "waitErrDays": 8,
      "feeLarge": 27000,
      "quietWarnMonths": 12,
      "quietErrMonths": 24
    },
    "connection": {
      "system": "Bullhorn",
      "access": "Read-only API user",
      "scope": ["Job orders", "Submissions", "Placements", "Client contacts", "Invoices"],
      "createdBy": "Your Bullhorn admin",
      "revoke": "Your admin can switch the user off at any time; the data stops the same minute."
    },
    "profile": { "feePct": 20, "quietAfterMonths": 9 },
    "autopilotDefaults": {
      "scoutNew": true, "scribeDraftOnly": true, "chaserAuto": false, "chaserLimit": 25000,
      "sentinelText": true, "sentinelInvoices": false, "forecasterPost": true
    },
    "delivery": {
      "hiringList": "Mondays, 07:00, to each recruiter's inbox",
      "stalledList": "Every working day, 08:00",
      "forecast": "Mondays, 07:00, to the owner and the leadership channel"
    }
  },
  "health": {
    "_about": "Client health, 0 to 100, from reply speed, open risks and payment history (made-up). Shown on Chaser and Sentinel items.",
    "Example Constructors Inc.": [41, "No reply in 9 working days, and a counter-offer is open on Candidate G."],
    "Sample Builders Group": [58, "Hiring manager on leave from Oct 12; 7 working days without a reply."],
    "Placeholder Contracting Co.": [64, "Quiet for 26 months before this order; 6 working days without a reply."],
    "Fictional Civil Works": [46, "Invoice 2087 is 15 working days late and two emails are unanswered."],
    "Demo Development Partners": [72, "Usually replies in 2 working days; this one is at 4."],
    "Test Infrastructure LLC": [81, "Three placements since August, replies within a day; one start date moved."],
    "Sample Interiors Builders": [66, "Quiet 14 months; two fit-out wins this week and both seats posted."],
    "Placeholder Health Construction": [52, "Quiet 31 months, and the VP of Construction who hired us has left."]
  },
  "clients": {
    "_about": "Your clients: the portfolio a CRM does not show (made-up). One row per client already named elsewhere. replyDays = average working days to reply to a submission; decideDays = average working days from interview to decision; fee = typical fee. Months quiet, last placement and open roles come from the hiring list when the client is on it (never repeated here); health comes from `health` above.",
    "list": [
      { "name": "Example Constructors Inc.", "contact": "Dana Example, VP Operations", "owner": "Quinn Example", "placements": 7, "replyDays": 2, "decideDays": 11, "fee": 27500 },
      { "name": "Sample Builders Group", "contact": "Chris Sample, Director of Preconstruction", "owner": "Drew Sample", "placements": 5, "replyDays": 4, "decideDays": 6, "fee": 24000 },
      { "name": "Placeholder Contracting Co.", "contact": "Priya Placeholder, Regional VP", "owner": "Quinn Example", "placements": 4, "replyDays": 5, "decideDays": 8, "fee": 26000 },
      { "name": "Fictional Civil Works", "contact": "Marcus Fictional, COO", "owner": "Reese Demo", "placements": 3, "replyDays": 6, "decideDays": 7, "fee": 28500 },
      { "name": "Demo Development Partners", "contact": "Lee Demo, President", "owner": "Drew Sample", "placements": 3, "replyDays": 2, "decideDays": 4, "fee": 23200 },
      { "name": "Test Infrastructure LLC", "contact": "Jordan Test, Project Executive", "owner": "Quinn Example", "placements": 3, "replyDays": 1, "decideDays": 9, "fee": 25000, "lastPlacement": "Oct 2026", "quietMonths": 0, "openRoles": 1 },
      { "name": "Sample Interiors Builders", "contact": "Avery Sample, Director of Operations", "owner": "Reese Demo", "placements": 2, "replyDays": 3, "decideDays": 5, "fee": 24500 },
      { "name": "Placeholder Health Construction", "contact": "Robin Placeholder, VP of Construction", "owner": "Quinn Example", "placements": 6, "replyDays": 4, "decideDays": 9, "fee": 26500 }
    ]
  },
  "usage": {
    "_about": "Usage this billing month (made-up). `before` = month to date up to last night; today's share is added live from the same numbers as the Overnight digest (records read, drafts, agent runs in the overnight log, autopilot items done), so the meters move with the rules. Billing month = calendar month; today (Wed, Oct 7) is day 7.",
    "plan": "Control",
    "month": "October",
    "day": 7,
    "daysInMonth": 31,
    "meters": [
      { "key": "records", "label": "Records read", "included": 50000, "before": 5639 },
      { "key": "drafts", "label": "Messages drafted", "included": 800, "before": 74 },
      { "key": "runs", "label": "Agent runs", "included": 600, "before": 28 },
      { "key": "auto", "label": "Reminders sent on autopilot", "included": 150, "before": 6 }
    ]
  },
  "voice": {
    "file": "voice/northline-technical-search.md",
    "learnedFrom": "1,240 sent emails from 14 recruiters, Jan to Sep (made-up)",
    "lines": [
      "# How Northline writes",
      "",
      "- First names. No titles, no \"Dear\".",
      "- One ask per message, in the last line.",
      "- Name the candidate's stage and the wait, in days.",
      "- Short: four sentences or fewer before the ask.",
      "- No exclamation marks, no \"just checking in\", no \"touching base\".",
      "- Signed by the recruiter who owns the client, from their own mailbox.",
      "",
      "## Phrases Northline uses",
      "- \"I can hold her until Thursday.\"",
      "- \"Can you let me know either way today?\"",
      "",
      "## Never",
      "- Discounts or fee talk in a first message.",
      "- A first message to a new company without a recruiter's click."
    ]
  },
  "crew": [
    { "id": "scout", "replaces": "Monday's hour of scrolling job boards and news for who is hiring", "givesBack": "3 h a week", "name": "Scout", "module": "Job flow", "job": "Finds hiring signals across past clients and the sector.",
      "how": "Each night it reads Bullhorn for past clients quiet 9 months or more, then public hiring news for construction companies new to you." },
    { "id": "scribe", "replaces": "Writing each outreach and follow-up from a blank page", "givesBack": "5 h a week", "name": "Scribe", "module": "Every message", "job": "Writes every message and reminder in the agency's voice.",
      "how": "It learns Northline's tone from your sent emails and signs each draft as the recruiter who owns the client. Your rules say whether it may send." },
    { "id": "chaser", "replaces": "The Friday chase list", "givesBack": "2 h a week", "name": "Chaser", "module": "Client speed", "job": "Watches submissions with no client reply and drafts the nudge.",
      "how": "Every morning it checks each open submission. After 3 working days with no reply, it lists the fee at risk and has the reminder written." },
    { "id": "sentinel", "replaces": "Hearing about a counter-offer or a late invoice too late", "givesBack": "1 h a week, and the fees it saves", "name": "Sentinel", "module": "Risk", "job": "Watches risks: counter-offers, overdue invoices, managers on leave.",
      "how": "It reads offers, invoices and out-of-office replies, rates each risk by how likely the fee slips, and writes the note that heads it off." },
    { "id": "forecaster", "replaces": "Building Monday's numbers in a spreadsheet", "givesBack": "2 h a week", "name": "Forecaster", "module": "Visibility", "job": "Writes Monday.",
      "how": "Every Monday at 07:00 it puts placements, cash by week and the risks coming on one page, and keeps it current all week." }
  ],
  "stalled": [
    {
      "id": "s1", "owner": "Quinn Example", "candidate": "Candidate A", "role": "Senior Project Manager",
      "client": "Example Constructors Inc.", "contact": "Dana Example, VP Operations",
      "submitted": "Sep 24", "stage": "Interviewed Sep 24", "days": 9, "fee": 27500,
      "reminder": [
        "Dana, Candidate A interviewed with your team on 24 September and I have not had a steer since.",
        "She has a second round elsewhere on Friday. If you want to move, I can hold her until Thursday. Can you let me know either way today?"
      ]
    },
    {
      "id": "s2", "owner": "Drew Sample", "candidate": "Candidate B", "role": "Superintendent",
      "client": "Sample Builders Group", "contact": "Chris Sample, Director of Preconstruction",
      "submitted": "Sep 28", "stage": "Profile sent Sep 28", "days": 7, "fee": 24000,
      "reminder": [
        "Chris, a quick one on Candidate B, submitted on 28 September for the superintendent role.",
        "Is there anything you need from me to move him to an interview? He is available for a site visit any day next week."
      ]
    },
    {
      "id": "s3", "owner": "Quinn Example", "candidate": "Candidate C", "role": "Chief Estimator",
      "client": "Placeholder Contracting Co.", "contact": "Priya Placeholder, Regional VP",
      "submitted": "Sep 29", "stage": "Profile sent Sep 29", "days": 6, "fee": 26000,
      "reminder": [
        "Priya, Candidate C's profile for the chief estimator seat went over on 29 September.",
        "She is pricing a bid for her current employer until the 9th, so the week after is clear for a conversation. Does Tuesday or Wednesday suit?"
      ]
    },
    {
      "id": "s4", "owner": "Reese Demo", "candidate": "Candidate D", "role": "Project Director",
      "client": "Fictional Civil Works", "contact": "Marcus Fictional, COO",
      "submitted": "Sep 30", "stage": "Profile sent Sep 30", "days": 5, "fee": 28500,
      "reminder": [
        "Marcus, following up on Candidate D for the project director role, submitted on 30 September.",
        "He has run two DOT jobs above $100M and is keen on the highway award. Can we get 30 minutes in his calendar this week?"
      ]
    },
    {
      "id": "s5", "owner": "Drew Sample", "candidate": "Candidate E", "role": "Preconstruction Manager",
      "client": "Demo Development Partners", "contact": "Lee Demo, President",
      "submitted": "Oct 1", "stage": "Profile sent Oct 1", "days": 4, "fee": 23200,
      "reminder": [
        "Lee, a short note on Candidate E, sent over on 1 October for the preconstruction manager role.",
        "I know you are heading into pricing on two projects. Would a 20-minute call on Thursday work, so he can start on them?"
      ]
    },
    {
      "id": "s6", "owner": "Quinn Example", "candidate": "Candidate F", "role": "Assistant Project Manager",
      "client": "Test Infrastructure LLC", "contact": "Jordan Test, Project Executive",
      "submitted": "Oct 2", "stage": "Profile sent Oct 2", "days": 3, "fee": 25000,
      "reminder": [
        "Jordan, Candidate F's profile for the assistant project manager role went over on 2 October.",
        "She is local and can meet on site at short notice. Is there a day this week that works?"
      ]
    }
  ],
  "hiring": [
    {
      "id": "h1", "owner": "Quinn Example", "age": 2, "company": "Example Constructors Inc.", "type": "quiet", "quietMonths": 20, "lastPlacement": "Feb 2025",
      "signal": "Awarded a $140M hospital expansion; 3 project roles posted this week", "source": "Press release, Sep 29 · careers page, Oct 1",
      "roles": 4, "to": "Dana Example, VP Operations", "subject": "The Riverside hospital award. Three people for it.",
      "body": [
        "Dana, congratulations on the Riverside expansion. We placed your senior superintendent on the Lakeside job in 2025, and I see he is still there.",
        "You have three project roles up this week. I have two superintendents and a project manager who have run hospital work at this size and can start within four weeks.",
        "Worth 15 minutes on Thursday?"
      ]
    },
    {
      "id": "h2", "owner": "Drew Sample", "age": 1, "company": "Sample Builders Group", "type": "quiet", "quietMonths": 11, "lastPlacement": "Nov 2025",
      "signal": "Permits filed for two mid-rise projects; estimator role re-posted", "source": "County permit records, Sep 30",
      "roles": 2, "to": "Chris Sample, Director of Preconstruction", "subject": "Your estimator post, and the two mid-rise permits",
      "body": [
        "Chris, your senior estimator role has been up for a month and the two mid-rise permits landed last week. That is a lot of bid work for a short-handed team.",
        "I have a chief estimator from a competitor who has priced twelve mid-rise jobs in the last three years. Can I send her over?"
      ]
    },
    {
      "id": "h3", "owner": "Quinn Example", "age": 4, "company": "Placeholder Contracting Co.", "type": "quiet", "quietMonths": 26, "lastPlacement": "Aug 2024",
      "signal": "New regional office opened in Austin; 5 roles open", "source": "Company news page, Sep 24",
      "roles": 5, "to": "Priya Placeholder, Regional VP", "subject": "Austin office: five roles, a short list for each",
      "body": [
        "Priya, the Austin office is a big step. You have five roles open there and the local market is tight.",
        "We filled your project executive seat in 2024. I can have a short list for each of the five roles with you by Friday. Shall I start with the superintendent?"
      ]
    },
    {
      "id": "h4", "owner": "Reese Demo", "age": 3, "company": "Fictional Civil Works", "type": "quiet", "quietMonths": 16, "lastPlacement": "Jun 2025",
      "signal": "Won a state highway contract; project director posting", "source": "State DOT award list, Sep 28",
      "roles": 3, "to": "Marcus Fictional, COO", "subject": "The highway award and your project director post",
      "body": [
        "Marcus, congratulations on the state highway contract. Your project director post went up on Monday.",
        "I have two project directors who have run DOT work above $100M. Both are reachable this week. Can we talk Wednesday?"
      ]
    },
    {
      "id": "h5", "owner": "Drew Sample", "age": 1, "company": "Demo Development Partners", "type": "quiet", "quietMonths": 9, "lastPlacement": "Jan 2026",
      "signal": "Preconstruction lead left; role open 3 weeks", "source": "Careers page, posted Sep 14",
      "roles": 1, "to": "Lee Demo, President", "subject": "Your preconstruction seat, three weeks open",
      "body": [
        "Lee, your preconstruction lead role has been open for three weeks, and the two projects you announced in September are heading into pricing.",
        "The preconstruction manager we placed with you in January is doing well, I hear. I have one more at that level who is quietly looking. Want an introduction?"
      ]
    },
    {
      "id": "h6", "owner": "Reese Demo", "age": 2, "company": "Sample Interiors Builders", "type": "quiet", "quietMonths": 14, "lastPlacement": "Aug 2025",
      "signal": "Two tenant fit-out wins; project manager and superintendent posted", "source": "LinkedIn company post, Oct 1",
      "roles": 2, "to": "Avery Sample, Director of Operations", "subject": "Two fit-outs, and the two seats to run them",
      "body": [
        "Avery, congratulations on the two fit-out wins. I see the project manager and superintendent seats went up on Thursday.",
        "We placed your senior PM in 2025. I have a superintendent who has run occupied-building interiors for six years and can start in three weeks. Shall I send his profile?"
      ]
    },
    {
      "id": "h7", "owner": "Quinn Example", "age": 3, "company": "Placeholder Health Construction", "type": "quiet", "quietMonths": 31, "lastPlacement": "Mar 2024",
      "signal": "New VP of Construction hired; 2 project roles posted since", "source": "Press release, Sep 15 · careers page, Sep 30",
      "roles": 2, "to": "Robin Placeholder, VP of Construction", "subject": "Welcome to the role, and your two open seats",
      "body": [
        "Robin, congratulations on the new role. Two project roles have gone up since you joined, so I suspect you are building the team you want.",
        "We worked with Placeholder Health on its clinic program in 2024. I have two project managers with healthcare work who would fit. Worth a short call next week?"
      ]
    },
    {
      "id": "h8", "owner": "Drew Sample", "age": 1, "company": "Test Builders Southeast", "type": "new", "quietMonths": null, "lastPlacement": null,
      "signal": "Opened a Tampa office; 3 superintendent roles posted", "source": "Careers page, Sep 25 to Oct 2",
      "roles": 3, "to": "Riley Test, Regional Director", "subject": "Three superintendents for Tampa",
      "body": [
        "Riley, I saw the Tampa office opened last month, with three superintendent roles up since.",
        "We place superintendents across the Southeast every week. I have two in Tampa who have run ground-up multifamily and are open to a move. Can I send them over?"
      ]
    },
    {
      "id": "h9", "owner": "Reese Demo", "age": 2, "company": "Fictional Data Center Builders", "type": "new", "quietMonths": null, "lastPlacement": null,
      "signal": "Broke ground on a 60 MW campus; preconstruction and MEP roles posted", "source": "Trade press, Sep 23",
      "roles": 3, "to": "Morgan Fictional, VP Preconstruction", "subject": "The 60 MW campus, and your precon seats",
      "body": [
        "Morgan, congratulations on breaking ground on the campus. Preconstruction and MEP roles at that scale are the hardest seats to fill this year.",
        "I have a preconstruction manager who priced two hyperscale jobs in the last eighteen months. Would a 15-minute call this week be useful?"
      ]
    },
    {
      "id": "h10", "owner": "Quinn Example", "age": 0, "company": "Demo Modular Construction", "type": "new", "quietMonths": null, "lastPlacement": null,
      "signal": "Closed a Series B; hiring 2 project managers", "source": "Press release, Sep 22",
      "roles": 2, "to": "Casey Demo, COO", "subject": "After the Series B: two project managers",
      "body": [
        "Casey, congratulations on the Series B. I see two project manager roles went up the same week.",
        "Modular asks for a particular kind of PM. I have one who ran factory-built schools for four years. Want to meet her?"
      ]
    },
    {
      "id": "h11", "owner": "Drew Sample", "age": 3, "company": "Sample Public Works Group", "type": "new", "quietMonths": null, "lastPlacement": null,
      "signal": "Awarded a $48M school district program; estimator posted", "source": "School board minutes, Sep 21",
      "roles": 2, "to": "Taylor Sample, Chief Estimator", "subject": "The school program, and your estimator post",
      "body": [
        "Taylor, congratulations on the district program. A $48M package and an open estimator seat at the same time is a lot.",
        "I have a senior estimator with public K-12 work who is ready for a move. Can I send her profile today?"
      ]
    },
    {
      "id": "h12", "owner": "Reese Demo", "age": 1, "company": "Example Energy Contractors", "type": "new", "quietMonths": null, "lastPlacement": null,
      "signal": "Signed a solar EPC contract; 2 field leadership roles posted", "source": "Company news page, Sep 30",
      "roles": 2, "to": "Jamie Example, Director of Projects", "subject": "Two field leaders for the solar build",
      "body": [
        "Jamie, congratulations on the EPC contract. Two field leadership roles went up the day after.",
        "I have a superintendent who has run three utility-scale solar builds. He is available from November. Worth a call?"
      ]
    }
  ],
  "forecast": {
    "placements": {
      "placed": 2, "forecast": 5, "offersOut": 2, "finalsThisWeek": 4, "nextMonth": 6, "nextMonthName": "November",
      "list": [
        { "candidate": "Candidate J", "role": "Senior Estimator", "client": "Test Infrastructure LLC", "placed": "Oct 2", "start": "Oct 26", "fee": 23500 },
        { "candidate": "Candidate K", "role": "Superintendent", "client": "Test Infrastructure LLC", "placed": "Oct 6", "start": "Nov 2", "fee": 24000 }
      ]
    },
    "money": { "invoiced": 81000, "collected": 54500, "overdue": 26500, "next30": 108000 },
    "target": { "low": 30000, "high": 37500 },
    "scaleMax": 50000,
    "weeks": [
      { "w": "W36", "amount": 21000, "kind": "actual" },
      { "w": "W37", "amount": 32000, "kind": "actual" },
      { "w": "W38", "amount": 15000, "kind": "actual" },
      { "w": "W39", "amount": 39000, "kind": "actual" },
      { "w": "W40", "amount": 27500, "kind": "actual" },
      { "w": "W41", "amount": 35000, "kind": "forecast" },
      { "w": "W42", "amount": 24000, "kind": "forecast", "risk": "At risk: invoice 2087 is overdue" },
      { "w": "W43", "amount": 43000, "kind": "forecast" }
    ]
  },
  "risks": [
    {
      "id": "r1", "owner": "Sam Example", "kind": "counter-offer", "title": "Offer expires; candidate holding a counter-offer", "client": "Example Constructors Inc.",
      "level": "high", "when": "Thu", "fee": 27500,
      "detail": "Candidate G accepted the senior superintendent offer by phone on Sep 30. The written offer expires on Thursday, and her current employer made a counter-offer on Friday.",
      "evidence": [["Offer sent", "Sep 30"], ["Counter-offer reported", "Oct 2"], ["Written offer expires", "Thu, Oct 8"]],
      "action": "Call Candidate G before noon today. Ask Dana to confirm the start date in writing so the offer is signed before Thursday.",
      "draftTo": "Dana Example, VP Operations",
      "draft": ["Dana, Candidate G is ready to sign but her employer has countered. A written start date from you today would settle it. Can you send it over before Thursday?"]
    },
    {
      "id": "r2", "owner": "Sam Example", "kind": "invoice", "title": "Invoice 2087 overdue 21 days", "client": "Fictional Civil Works",
      "level": "high", "when": "Now", "fee": 26500,
      "detail": "Invoice 2087 for the project manager who started on Aug 3 fell due on Sep 14. Accounts payable has not answered two emails.",
      "evidence": [["Invoice sent", "Aug 3"], ["Due", "Sep 14"], ["Overdue", "21 days"]],
      "action": "Ask Marcus, your hiring contact, to nudge accounts payable in the same note as the Candidate D follow-up.",
      "draftTo": "Marcus Fictional, COO",
      "draft": ["Marcus, one admin point alongside Candidate D: invoice 2087 for your August project manager is three weeks past due and accounts payable has gone quiet. Could you point me to the right person?"]
    },
    {
      "id": "r3", "owner": "Drew Sample", "kind": "leave", "title": "Hiring manager on leave from next week", "client": "Sample Builders Group",
      "level": "medium", "when": "Oct 12", "fee": 24000, "stalledId": "s2",
      "detail": "Chris Sample starts three weeks' leave on Oct 12. Candidate B has waited 7 working days for feedback. If nothing moves this week, the submission waits until November.",
      "evidence": [["Candidate B submitted", "Sep 28"], ["Waiting", "7 working days"], ["Chris on leave", "Oct 12 to Nov 2"]],
      "action": "Ask Chris to book the interview before Friday, or to name who decides while he is away.",
      "draftTo": "Chris Sample, Director of Preconstruction",
      "draft": ["Chris, I hear you are away from the 12th. Shall we get Candidate B in front of you before Friday, or is there someone who can see him while you are out?"]
    },
    {
      "id": "r4", "owner": "Quinn Example", "kind": "start-date", "title": "Start date moved; guarantee period resets", "client": "Test Infrastructure LLC",
      "level": "low", "when": "Oct 19", "fee": 25000, "trace": true,
      "detail": "Candidate H's start as project engineer moved from Oct 12 to Oct 19 at the client's request. The invoice date moves with it, and the 90-day guarantee now runs to Jan 17.",
      "evidence": [["Placed", "Sep 22"], ["Start moved", "Oct 12 to Oct 19"], ["Guarantee ends", "Jan 17"]],
      "action": "Move the invoice date to Oct 19 and send Candidate H a keep-warm note so the week's delay does not open the door to a counter-offer.",
      "draftTo": "Candidate H",
      "draft": ["Quick note to say Jordan's team is looking forward to the 19th. If anything comes up before then, call me first. Glad you are joining them."]
    }
  ],
  "trace": {
    "client": "Test Infrastructure LLC",
    "role": "Project Engineer",
    "candidate": "Candidate H",
    "contact": "Jordan Test, Project Executive",
    "fee": 25000,
    "feeBasis": "20% of a $125,000 base",
    "days": 36,
    "steps": [
      {
        "id": "found", "label": "Found", "date": "Mon, Aug 17", "part": "Job flow", "fee": "potential",
        "title": "On Monday's hiring list as new in sector",
        "text": "Test Infrastructure had never worked with Northline. The list picked it up from two public signals in one week, and wrote the message.",
        "artifact": { "kind": "row", "lines": [["Signal", "Awarded the Route 9 interchange package"], ["Source", "Press release, Aug 12 · careers page, Aug 13"], ["Roles", "Project engineer, assistant project manager"]] }
      },
      {
        "id": "messaged", "label": "Messaged", "date": "Tue, Aug 18", "part": "Job flow", "fee": "potential",
        "title": "Sam sent the drafted message from his own mailbox",
        "text": "Sent as written, inside the two working days the guarantee asks for. Alchemi wrote it; Sam pressed send.",
        "artifact": { "kind": "msg", "to": "Jordan Test, Project Executive", "subject": "Route 9, and the two roles for it", "body": ["Jordan, congratulations on the Route 9 package. I see a project engineer and an assistant PM went up the next day.", "We place both every week in this market. I have a project engineer who has run two interchange jobs and can start in four weeks. Worth 15 minutes?"] }
      },
      {
        "id": "replied", "label": "Replied", "date": "Thu, Aug 20", "part": "Job flow", "fee": "in play",
        "title": "Jordan replied; a new client and two job orders",
        "text": "Terms signed on Aug 21. Both roles opened in Bullhorn as job orders, which is where the job order scorecard starts counting.",
        "artifact": { "kind": "msg", "from": "Jordan Test", "subject": "Re: Route 9, and the two roles for it", "body": ["Sam, good timing. Send me the project engineer, and let's talk about the assistant PM too. Thursday at 2 works."] }
      },
      {
        "id": "submitted", "label": "Submitted", "date": "Tue, Sep 1", "part": "Client speed", "fee": "in play",
        "title": "Candidate H submitted for the project engineer role",
        "text": "From here the clock that matters is the client's: how long the profile sits before anyone replies.",
        "artifact": { "kind": "row", "lines": [["Candidate", "Candidate H · Project Engineer"], ["Submitted", "Sep 1"], ["Fee", "$25,000"]] }
      },
      {
        "id": "stalled", "label": "Stalled", "date": "Fri, Sep 4", "part": "Client speed", "fee": "at risk",
        "title": "Three working days, no reply: on the stalled list",
        "text": "The daily list flagged it on Friday morning, with the fee at risk and the reminder already written.",
        "artifact": { "kind": "stalled", "days": 3 }
      },
      {
        "id": "reminded", "label": "Reminded", "date": "Fri, Sep 4", "part": "Client speed", "fee": "in play",
        "title": "Reminder sent at 09:10; interview booked by lunch",
        "text": "Jordan answered the same morning and booked the interview for Sep 9. Without the reminder, the next touch would have been whenever Sam remembered.",
        "artifact": { "kind": "msg", "to": "Jordan Test, Project Executive", "subject": "Re: Candidate H · Project Engineer", "body": ["Jordan, Candidate H's profile went over on Tuesday. He has another conversation next week, so if you would like to meet him, Wednesday or Thursday is clear. Which suits?"] }
      },
      {
        "id": "placed", "label": "Placed", "date": "Tue, Sep 22", "part": "Visibility", "fee": "secured",
        "title": "Offer accepted; the fee lands on the Forecast",
        "text": "Placed 36 days after the company first appeared on the list. It counts in September's placements; this Monday it sits on the Forecast as a low risk: the start moved a week, and the invoice with it.",
        "artifact": { "kind": "kv", "lines": [["Placement", "Candidate H · start Oct 19"], ["Invoice", "$25,000 on start, net 30"], ["Guarantee", "90 days, to Jan 17"], ["This Monday", "Low risk: start date moved"]] }
      }
    ]
  }
}
