← Sponsor Pipeline
API
Tokens

Run Sponsor Pipeline from your own code

Both metered lanes are available over HTTP and each returns one JSON object. The division of labour: the page sizes the list backward from the goal, checks the budget window, scores every prospect, picks its channel and title, holds follow-ups to the cap and names the top targets with the next message each is owed - all free, in pipekit.js. The run writes the plan or the messages; the page then holds the reply to its own figures and rules (pipereply.js).

Base URL and the response shape

Every endpoint lives under https://api.skillsafe.ai/v1/app-api, and every response has one shape:

{ "ok": true,  "data":  { ... } }
{ "ok": false, "error": { "code": "...", "message": "..." } }

The token is minted for this app (the guest call takes {"slug":"sponsor-pipeline"}), so no slug header is needed afterwards. Send it as Authorization: Bearer …. The run body is the input object, sent bare.

StatusCodeMeaning
400validation_errorThe body is not a JSON object, or a required key (task, event, prospects, facts) is missing.
401unauthorizedNo token, or a stale one. Mint a guest token or sign in again.
402insufficient_creditsThe balance is under min_credits. Price with /estimate first.
403forbiddenA guest token tried to run: both lanes are metered and need a personal sign-in.
404not_foundUnknown job id.
429rate_limitedBack off and retry.
5xxserver_errorTransient. Retry with the same Idempotency-Key so a retry never double-bills.

The task field comes first

Two lanes - plan (the outreach plan for the organizers) and emails (the next message each top target is owed). A missing or unknown task is answered as plan. Both lanes send the same four fields.

The input

FieldRequiredWhat
taskyesplan or emails. If it is missing or neither, do plan and set "task": "plan".
eventyesthe event, the goal and its rates, the team, the program's sponsor-facing activities and which inputs exist.
prospectsyesevery prospect with segment, motivation, fit, signal, warm path, stage, follow-ups, opt-out, history, liaison, source, and the page's score, channel and title to target; the top targets are marked with their rank.
factsyesthe backward math, the timing, the top targets in rank order (this order is the page's order for the top targets) with the next message each is owed, the source, channel and cadence menus with their picks, the checks, the signals and every finding tagged [fix], [check] or [info], most urgent first.
retry_notenooptional; if present, your previous reply was unusable - follow it.

The rules the model applies

House rules

The replies

plan

  1. summary - one sentence, at most 35 words: the most urgent finding and the first move.
  2. math - sponsors (the page's sponsors needed), pitch (prospects to pitch), list (the target list), note (one sentence: the coverage gap and that both rates are self-set).
  3. timing - one sentence on the budget window, as the page says.
  4. top - one object per top target in the page's order: company (exactly), why (one short sentence: why it goes first, from its fit, signal and path), channel (the page's: warm, referral or reentry), title (the page's title to target), next (the page's next message: intro, referral, reentry, followup or proposal).
  5. channels - pick (the page's default first-touch channel), note (one sentence: what the warm paths reach and when the cold sequence comes in).
  6. cadence - pick (standard or rotation, the page's), cap (the page's cap), note (one sentence).
  7. prep - 2 to 4 short strings: what to have ready before the next calls (the fixed sponsor questions, the four sponsor concerns, the proposal inputs), only from the input and the rules above.
  8. checks - one object per outreach check in the page's order: check (the page's short name, exactly), pass (true or false, as the page says).
  9. signals - 2 or 3 short strings, the page's signals, each with what it would change next edition.
  10. caveats - at most 4 short strings: [fix] findings first in the page's order (the first four when there are more), then [check] findings in the page's order. [] when there are none of either.
{
  "task": "plan",
  "summary": "one sentence",
  "math": { "sponsors": 8, "pitch": 32, "list": 97, "note": "one sentence" },
  "timing": "one sentence",
  "top": [ { "company": "a company", "why": "one short sentence", "channel": "warm", "title": "a title", "next": "intro" } ],
  "channels": { "pick": "warm", "note": "one sentence" },
  "cadence": { "pick": "standard", "cap": 3, "note": "one sentence" },
  "prep": [ "a thing to have ready" ],
  "checks": [ { "check": "Timing", "pass": true } ],
  "signals": [ "what to record and what it changes" ],
  "caveats": [ "a caveat" ]
}

The page holds it to its own figures: the backward math, every top target in order with its channel and next message, the channel and cadence picks with the cap, and the checks; no figure may appear that the input does not hold.

emails

  1. messages - one object per top target in the page's order: company (exactly), kind (the page's next message: intro, referral, reentry, followup or proposal), to (who receives it: the connector for an intro - "to be named" when the page names nobody - someone senior at the company for a referral ask, otherwise the page's title to target), subject (specific, never "Event and Company Partnership"), body (the message, at most 150 words, signed by the page's liaison for that prospect, or by the event's team when there is none).
  2. note - one sentence, at most 30 words, for the organizers: what to settle before these go out.
{
  "task": "emails",
  "messages": [ { "company": "a company", "kind": "referral", "to": "someone senior", "subject": "a specific subject", "body": "the message" } ],
  "note": "one sentence"
}

The page requires one message per top target in order, each of the kind it is owed: no link, web address or attachment in a first touch, no pitch in a referral ask, no bump in a follow-up, a deadline in a proposal, an acknowledged past in a re-entry note, and no activity the program lacks.

Worked examples - every lane, every sample

These are the page's three free samples (fictional events, companies and people; every figure is illustrative). Each input is exactly what the page sends; each reply is the saved reply the sample replays, shipped as the validating model wrote it; the last line is the page's own check. Every sample has both lanes.

Harborline Python (a community conference, 11 months out) - plan

8 sponsors needed, a list of 97, 6 in play; 11 months out; 4 top targets; sponsor-standard cadence; 3 of 6 checks.

Input:

{
 "task": "plan",
 "event": "Event: Harborline Python in Lisbon, October 14-15; attendance 450; community-run; 11 months out\nGoal: sponsorship revenue 60,000; renewals expected 20,000; average package 5,000; self-set close rate 25%, reply rate 33%\nTeam: volunteer organizers with a few hours a week; sponsors as multi-edition relationships; shared pipeline tool yes; contact list built by the team\nProgram: hiring corner yes; hands-on feedback session no; opt-in demo space no\nInputs: value proposition yes; prospectus yes; rate card yes; the fixed sponsor questions answered no",
 "prospects": "Prospects, in order (company | segment | motivation | fit | signal | warm path | stage | follow-ups | opted out | history | liaison | source | score | channel | title to target):\n1. Quayside Data | midsized | hiring | strong | fresh | warm | call | 1 | no | new | Ana | yes | hot | warm | Recruiting, Talent Acquisition or HR | TOP TARGET #1\n2. Tidewell Cloud | enterprise | feedback | strong | fresh | none | first touch | 2 | no | new | NONE | yes | hot | referral | Developer Relations or a Developer Advocate | TOP TARGET #3\n3. Brindlewick | startup | hiring | some | old | none | first touch | 5 | no | new | NONE | yes | warm | referral | Recruiting, Talent Acquisition or HR\n4. Saltmarsh Labs | startup | brand | strong | fresh | warm | identified | 0 | no | new | NONE | yes | hot | warm | Marketing, PR or a relevant employee resource group | TOP TARGET #2\n5. Corvo Analytics | midsized | hiring | some | fresh | none | first touch | 1 | yes | new | NONE | yes | warm | referral | Recruiting, Talent Acquisition or HR\n6. Atlantic Ledger | enterprise | unknown | loose | none | none | identified | 0 | no | new | NONE | NONE | cold | referral | the CEO\n7. Pinecrest Tools | midsized | feedback | some | old | warm | first touch | 1 | no | lapsed | Rui | yes | warm | reentry | Developer Relations or a Developer Advocate | TOP TARGET #4\n8. Marlow Systems | enterprise | brand | strong | fresh | none | identified | 0 | no | last | NONE | yes | renewal | renewal | Marketing, PR or a relevant employee resource group\n9. Gullwing Games | startup | unknown | none | none | none | identified | 0 | no | new | NONE | NONE | skip | none | the CEO",
 "facts": "Backward math: net-new goal 40,000 / average package 5,000 = 8 sponsors needed; / 25% close = 32 prospects to pitch; / 33% reply = a target list of 97; source 194-291 names; prospects in play 6 (committed, signed, lost, opted-out, skipped and renewal prospects are not in play)\nTiming: 11 months out - inside the T-8 window\nTop targets, in order, with the next message each is owed: Quayside Data (hot, warm; next: the proposal, same day as the call); Saltmarsh Labs (hot, warm; next: a warm-intro request to the connector); Tidewell Cloud (hot, referral; next: follow-up 3 of 3); Pinecrest Tools (warm, reentry; next: follow-up 2 of 3)\nTarget-list sources: Previous-sponsor roster default; Organizer-network employers available; Adjacent-event sponsor scan available; Institutional channels available; Attendee-stack vendor mapping not yet\nFirst-touch channel: the page's default is warm; rungs Warm intro default; Referral ask available; Inbound broadcast always on; Cold email sequence promoted; Purchased or scraped lists deleted\nFollow-up cadence: the page's pick is standard (cap 3 follow-ups); rungs Sponsor-standard cadence default; Angle-rotation sequence not yet; the repeated just-checking-in bump deleted\nChecks (3 of 6): Timing (Net-new outreach starts at or before roughly T-8 months) passed; Coverage (Prospects in play cover the backward-sized target list) MISSING; Warm first (Every target had its warm-path check before anything colder) passed; Cadence cap (No prospect past the follow-up cap, and every opt-out honored at once) MISSING; Evidence (Every scored prospect carries a source for its claims) MISSING; Ownership (One named liaison for every prospect past the first touch, in one shared pipeline) passed\nSignals to record: Pipeline coverage: prospects in play against the backward-sized list (self-set); Stage conversion per channel - first touch to call, call to proposal, proposal to close - with lapsed sponsors tagged apart (self-set); Objection recurrence by segment, routed to the value proposition\nFindings (15):\n[fix] optout (cadence): Opted out but still in the sequence: Corvo Analytics - remove them now, mid-sequence.\n[fix] past_cap (cadence): Past the cap of 3 follow-ups: Brindlewick (5) - move on; every touch past the cap costs more goodwill than it recovers.\n[fix] links (channel): First email with links, attachments or images: Pinecrest Tools - corporate phishing filters auto-trash it; save the prospectus and every link for the follow-up.\n[check] over_promise (program): The program has no hands-on feedback session (wanted by Tidewell Cloud, Pinecrest Tools) - pitch the program as it stands; route the missing activity to the program owners.\n[check] coverage (math): 6 prospects in play for a backward-sized list of 97 - source 194-291 names to qualify down from; a shortfall at the list stage predicts a shortfall at close.\n[check] no_source (evidence): No source for: Atlantic Ledger - every qualification claim carries a source URL and a date.\n[check] checklist (objections): Answer the fixed sponsor questions before outreach - projected attendance, aggregate audience composition, per-level benefits, logistics; a sponsor who has to chase them reads the event as poorly run.\n[check] checks (measurement): Outreach checks: 3 of 6 (all self-set).\n[info] rates (math): The 25% close and 33% reply rates are self-set assumptions - event sponsorship publishes no benchmark of its own; replace them with this event's observed rates edition over edition.\n[info] net_new (math): Renewals expected at 20,000 stay with the renewal motion - the net-new goal is 40,000.\n[info] skipped (list): Skipped (no audience overlap): Gullwing Games.\n[info] cold_up (channel): Warm paths reach 3 prospects against 32 to pitch - the cold email sequence is promoted for targets no one in the network reaches, after the referral ask.\n[info] renewal (channel): Marlow Systems sponsored last edition - left to the renewal motion, not this pipeline.\n[info] lapsed (channel): Pinecrest Tools re-enters at the exploratory call, tagged lapsed - never cold-pitched as if new.\n[info] honesty (program): Community-run: never promise attendee lists or purchasable talk slots - the sponsor buys access to a qualified audience, never its contact data."
}

Reply:

{
 "task": "plan",
 "summary": "The most urgent finding is that Corvo Analytics has opted out but remains in the follow-up sequence, so the first move is removing them from outreach immediately.",
 "math": {
  "sponsors": 8,
  "pitch": 32,
  "list": 97,
  "note": "Only 6 prospects are in play against a backward-sized list of 97, and both the 25% close rate and the 33% reply rate are self-set assumptions."
 },
 "timing": "At 11 months out, the event is inside the roughly T-8-month budget window for outreach.",
 "top": [
  {
   "company": "Quayside Data",
   "why": "Strong fit, a fresh signal and a warm path ready to use.",
   "channel": "warm",
   "title": "Recruiting, Talent Acquisition or HR",
   "next": "proposal"
  },
  {
   "company": "Saltmarsh Labs",
   "why": "Strong fit, a fresh signal and a warm path in place.",
   "channel": "warm",
   "title": "Marketing, PR or a relevant employee resource group",
   "next": "intro"
  },
  {
   "company": "Tidewell Cloud",
   "why": "Strong fit and a fresh signal, with no warm path, reached instead through a referral ask.",
   "channel": "referral",
   "title": "Developer Relations or a Developer Advocate",
   "next": "followup"
  },
  {
   "company": "Pinecrest Tools",
   "why": "Some fit and an older signal, but a warm path back in as a lapsed sponsor.",
   "channel": "reentry",
   "title": "Developer Relations or a Developer Advocate",
   "next": "followup"
  }
 ],
 "channels": {
  "pick": "warm",
  "note": "Warm paths reach 3 of the 32 prospects to pitch, and the cold email sequence comes in only after the referral ask, for whoever is left."
 },
 "cadence": {
  "pick": "standard",
  "cap": 3,
  "note": "The standard cadence caps follow-ups at 3, but Brindlewick is already past that cap and Corvo Analytics remains in the sequence despite opting out."
 },
 "prep": [
  "The fixed sponsor questions - projected attendance, aggregate audience composition, per-level benefits, logistics - since none are answered yet.",
  "An answer ready for each of the four sponsor concerns: attendee value, co-sponsor mix, package value and organizer competence.",
  "The proposal inputs already on hand: the value proposition, the prospectus and the rate card."
 ],
 "checks": [
  {
   "check": "Timing",
   "pass": true
  },
  {
   "check": "Coverage",
   "pass": false
  },
  {
   "check": "Warm first",
   "pass": true
  },
  {
   "check": "Cadence cap",
   "pass": false
  },
  {
   "check": "Evidence",
   "pass": false
  },
  {
   "check": "Ownership",
   "pass": true
  }
 ],
 "signals": [
  "Pipeline coverage against the backward-sized list - would recalibrate next edition's self-set close and reply rates.",
  "Stage conversion per channel, with lapsed sponsors tagged apart - would show which channel to favor next edition.",
  "Objection recurrence by segment, routed to the value proposition - would show which pitch to revise next edition."
 ],
 "caveats": [
  "Corvo Analytics opted out but is still in the follow-up sequence - remove them now, mid-sequence.",
  "Brindlewick is past the cap of 3 follow-ups (5) - move on.",
  "Pinecrest Tools' first email carried links, attachments or images - save the prospectus and every link for the follow-up.",
  "The program has no hands-on feedback session, wanted by Tidewell Cloud and Pinecrest Tools - pitch the program as it stands."
 ]
}

The page's check: kept - nothing to flag

Harborline Python (a community conference, 11 months out) - emails

8 sponsors needed, a list of 97, 6 in play; 11 months out; 4 top targets; sponsor-standard cadence; 3 of 6 checks.

Input:

{
 "task": "emails",
 "event": "Event: Harborline Python in Lisbon, October 14-15; attendance 450; community-run; 11 months out\nGoal: sponsorship revenue 60,000; renewals expected 20,000; average package 5,000; self-set close rate 25%, reply rate 33%\nTeam: volunteer organizers with a few hours a week; sponsors as multi-edition relationships; shared pipeline tool yes; contact list built by the team\nProgram: hiring corner yes; hands-on feedback session no; opt-in demo space no\nInputs: value proposition yes; prospectus yes; rate card yes; the fixed sponsor questions answered no",
 "prospects": "Prospects, in order (company | segment | motivation | fit | signal | warm path | stage | follow-ups | opted out | history | liaison | source | score | channel | title to target):\n1. Quayside Data | midsized | hiring | strong | fresh | warm | call | 1 | no | new | Ana | yes | hot | warm | Recruiting, Talent Acquisition or HR | TOP TARGET #1\n2. Tidewell Cloud | enterprise | feedback | strong | fresh | none | first touch | 2 | no | new | NONE | yes | hot | referral | Developer Relations or a Developer Advocate | TOP TARGET #3\n3. Brindlewick | startup | hiring | some | old | none | first touch | 5 | no | new | NONE | yes | warm | referral | Recruiting, Talent Acquisition or HR\n4. Saltmarsh Labs | startup | brand | strong | fresh | warm | identified | 0 | no | new | NONE | yes | hot | warm | Marketing, PR or a relevant employee resource group | TOP TARGET #2\n5. Corvo Analytics | midsized | hiring | some | fresh | none | first touch | 1 | yes | new | NONE | yes | warm | referral | Recruiting, Talent Acquisition or HR\n6. Atlantic Ledger | enterprise | unknown | loose | none | none | identified | 0 | no | new | NONE | NONE | cold | referral | the CEO\n7. Pinecrest Tools | midsized | feedback | some | old | warm | first touch | 1 | no | lapsed | Rui | yes | warm | reentry | Developer Relations or a Developer Advocate | TOP TARGET #4\n8. Marlow Systems | enterprise | brand | strong | fresh | none | identified | 0 | no | last | NONE | yes | renewal | renewal | Marketing, PR or a relevant employee resource group\n9. Gullwing Games | startup | unknown | none | none | none | identified | 0 | no | new | NONE | NONE | skip | none | the CEO",
 "facts": "Backward math: net-new goal 40,000 / average package 5,000 = 8 sponsors needed; / 25% close = 32 prospects to pitch; / 33% reply = a target list of 97; source 194-291 names; prospects in play 6 (committed, signed, lost, opted-out, skipped and renewal prospects are not in play)\nTiming: 11 months out - inside the T-8 window\nTop targets, in order, with the next message each is owed: Quayside Data (hot, warm; next: the proposal, same day as the call); Saltmarsh Labs (hot, warm; next: a warm-intro request to the connector); Tidewell Cloud (hot, referral; next: follow-up 3 of 3); Pinecrest Tools (warm, reentry; next: follow-up 2 of 3)\nTarget-list sources: Previous-sponsor roster default; Organizer-network employers available; Adjacent-event sponsor scan available; Institutional channels available; Attendee-stack vendor mapping not yet\nFirst-touch channel: the page's default is warm; rungs Warm intro default; Referral ask available; Inbound broadcast always on; Cold email sequence promoted; Purchased or scraped lists deleted\nFollow-up cadence: the page's pick is standard (cap 3 follow-ups); rungs Sponsor-standard cadence default; Angle-rotation sequence not yet; the repeated just-checking-in bump deleted\nChecks (3 of 6): Timing (Net-new outreach starts at or before roughly T-8 months) passed; Coverage (Prospects in play cover the backward-sized target list) MISSING; Warm first (Every target had its warm-path check before anything colder) passed; Cadence cap (No prospect past the follow-up cap, and every opt-out honored at once) MISSING; Evidence (Every scored prospect carries a source for its claims) MISSING; Ownership (One named liaison for every prospect past the first touch, in one shared pipeline) passed\nSignals to record: Pipeline coverage: prospects in play against the backward-sized list (self-set); Stage conversion per channel - first touch to call, call to proposal, proposal to close - with lapsed sponsors tagged apart (self-set); Objection recurrence by segment, routed to the value proposition\nFindings (15):\n[fix] optout (cadence): Opted out but still in the sequence: Corvo Analytics - remove them now, mid-sequence.\n[fix] past_cap (cadence): Past the cap of 3 follow-ups: Brindlewick (5) - move on; every touch past the cap costs more goodwill than it recovers.\n[fix] links (channel): First email with links, attachments or images: Pinecrest Tools - corporate phishing filters auto-trash it; save the prospectus and every link for the follow-up.\n[check] over_promise (program): The program has no hands-on feedback session (wanted by Tidewell Cloud, Pinecrest Tools) - pitch the program as it stands; route the missing activity to the program owners.\n[check] coverage (math): 6 prospects in play for a backward-sized list of 97 - source 194-291 names to qualify down from; a shortfall at the list stage predicts a shortfall at close.\n[check] no_source (evidence): No source for: Atlantic Ledger - every qualification claim carries a source URL and a date.\n[check] checklist (objections): Answer the fixed sponsor questions before outreach - projected attendance, aggregate audience composition, per-level benefits, logistics; a sponsor who has to chase them reads the event as poorly run.\n[check] checks (measurement): Outreach checks: 3 of 6 (all self-set).\n[info] rates (math): The 25% close and 33% reply rates are self-set assumptions - event sponsorship publishes no benchmark of its own; replace them with this event's observed rates edition over edition.\n[info] net_new (math): Renewals expected at 20,000 stay with the renewal motion - the net-new goal is 40,000.\n[info] skipped (list): Skipped (no audience overlap): Gullwing Games.\n[info] cold_up (channel): Warm paths reach 3 prospects against 32 to pitch - the cold email sequence is promoted for targets no one in the network reaches, after the referral ask.\n[info] renewal (channel): Marlow Systems sponsored last edition - left to the renewal motion, not this pipeline.\n[info] lapsed (channel): Pinecrest Tools re-enters at the exploratory call, tagged lapsed - never cold-pitched as if new.\n[info] honesty (program): Community-run: never promise attendee lists or purchasable talk slots - the sponsor buys access to a qualified audience, never its contact data."
}

Reply:

{
 "task": "emails",
 "messages": [
  {
   "company": "Quayside Data",
   "kind": "proposal",
   "to": "Recruiting, Talent Acquisition or HR",
   "subject": "Quayside Data proposal: Harborline Python hiring corner",
   "body": "Hello,\n\nThank you for the call today. As promised, here is the proposal the same day.\n\nHarborline Python is a 450-attendee, community-run Python conference in Lisbon, October 14-15. Based on the hiring goal you described, this proposal centers on our hiring corner, which puts Quayside Data in front of attendees actively working in Python. It includes only the activities our program already runs this year; nothing beyond that is added.\n\nThe attached prospectus and rate card cover the full package and benefits. We would like to confirm by a date to be named, so we can finalize ahead of other sponsor conversations already underway.\n\nHappy to answer any questions in the meantime.\n\nBest,\nAna"
  },
  {
   "company": "Saltmarsh Labs",
   "kind": "intro",
   "to": "to be named",
   "subject": "Introduction to Saltmarsh Labs for Harborline Python?",
   "body": "Hello,\n\nWe're organizing Harborline Python and hoped you might help us connect with Saltmarsh Labs.\n\nHarborline Python is a 450-attendee, community-run Python conference in Lisbon, taking place October 14-15. We think Saltmarsh Labs could be a strong sponsor fit this year, and we would value the chance to connect with the right person there.\n\nWould you be willing to make that introduction, or point us to who we should ask instead? No pressure if this isn't something you're able to help with.\n\nThank you for considering it.\n\nBest,\nHarborline Python Team"
  },
  {
   "company": "Tidewell Cloud",
   "kind": "followup",
   "to": "Developer Relations or a Developer Advocate",
   "subject": "Follow-up 3 of 3: Harborline Python materials now ready",
   "body": "Hello,\n\nThis is follow-up 3 of 3 about sponsoring Harborline Python, our 450-attendee community-run Python conference in Lisbon, October 14-15.\n\nSince we last wrote, we've finalized this year's prospectus and sponsor value proposition, so we can now show exactly how a sponsorship lines up with the developer feedback interest you mentioned, using only the activities the program actually runs this year.\n\nWould you have time for a short call? If this isn't the right moment, just let us know and we'll step back rather than keep following up.\n\nBest,\nHarborline Python Team"
  },
  {
   "company": "Pinecrest Tools",
   "kind": "followup",
   "to": "Developer Relations or a Developer Advocate",
   "subject": "Follow-up 2 of 3: the Harborline Python prospectus for Pinecrest Tools",
   "body": "Hello,\n\nThis is follow-up 2 of 3 for Pinecrest Tools on Harborline Python. It's good to be back in touch - we know Pinecrest Tools has sponsored Harborline Python before, and we'd welcome having you back for this edition.\n\nNow that we're past the first note, here is the prospectus we held back earlier, with full detail on this year's program and packages. The program runs as described in it; we haven't added a feedback session this time, so we want to be upfront about that rather than suggest otherwise.\n\nCould we find a short time to talk about what would make this edition work for Pinecrest Tools?\n\nBest,\nRui"
  }
 ],
 "note": "Confirm answers to the fixed sponsor questions before the Tidewell Cloud and Pinecrest Tools calls, since they remain unanswered."
}

The page's check: kept - nothing to flag

Gophers Night Krakow (a first edition in a series, 5 months out) - plan

4 sponsors needed, a list of 35, 5 in play; 5 months out; 3 top targets; sponsor-standard cadence; 2 of 6 checks.

Input:

{
 "task": "plan",
 "event": "Event: Gophers Night Krakow in Krakow, March 20; attendance 120; community-run; 5 months out; first edition of a series\nGoal: sponsorship revenue 6,000; renewals expected 0; average package 1,500; self-set close rate 30%, reply rate 40%\nTeam: volunteer organizers with a few hours a week; sponsors as one-off sales; shared pipeline tool no; contact list built by the team\nProgram: hiring corner no; hands-on feedback session no; opt-in demo space no\nInputs: value proposition no; prospectus no; rate card yes; the fixed sponsor questions answered yes",
 "prospects": "Prospects, in order (company | segment | motivation | fit | signal | warm path | stage | follow-ups | opted out | history | liaison | source | score | channel | title to target):\n1. Vistula Soft | midsized | hiring | strong | fresh | warm | identified | 0 | no | new | NONE | yes | hot | warm | Recruiting, Talent Acquisition or HR | TOP TARGET #1\n2. Wawel Payments | enterprise | brand | some | old | none | identified | 0 | no | new | NONE | yes | warm | referral | Marketing, PR or a relevant employee resource group | TOP TARGET #3\n3. Kopiec Dev | startup | unknown | some | none | none | identified | 0 | no | new | NONE | NONE | cold | referral | the CEO\n4. Rynek Cloud | enterprise | hiring | strong | fresh | none | identified | 0 | no | new | NONE | yes | hot | referral | Recruiting, Talent Acquisition or HR | TOP TARGET #2\n5. Smok Studio | startup | brand | loose | old | none | identified | 0 | no | new | NONE | yes | cold | referral | Marketing, PR or a relevant employee resource group",
 "facts": "Backward math: net-new goal 6,000 / average package 1,500 = 4 sponsors needed; / 30% close = 14 prospects to pitch; / 40% reply = a target list of 35; source 70-105 names; prospects in play 5 (committed, signed, lost, opted-out, skipped and renewal prospects are not in play)\nTiming: 5 months out - past T-8, the budget window is closing\nTop targets, in order, with the next message each is owed: Vistula Soft (hot, warm; next: a warm-intro request to the connector); Rynek Cloud (hot, referral; next: a referral ask); Wawel Payments (warm, referral; next: a referral ask)\nTarget-list sources: Previous-sponsor roster same-series roster; Organizer-network employers default; Adjacent-event sponsor scan available; Institutional channels available; Attendee-stack vendor mapping promoted\nFirst-touch channel: the page's default is warm; rungs Warm intro default; Referral ask available; Inbound broadcast always on; Cold email sequence promoted; Purchased or scraped lists deleted\nFollow-up cadence: the page's pick is standard (cap 3 follow-ups); rungs Sponsor-standard cadence default; Angle-rotation sequence not yet; the repeated just-checking-in bump deleted\nChecks (2 of 6): Timing (Net-new outreach starts at or before roughly T-8 months) MISSING; Coverage (Prospects in play cover the backward-sized target list) MISSING; Warm first (Every target had its warm-path check before anything colder) passed; Cadence cap (No prospect past the follow-up cap, and every opt-out honored at once) passed; Evidence (Every scored prospect carries a source for its claims) MISSING; Ownership (One named liaison for every prospect past the first touch, in one shared pipeline) MISSING\nSignals to record: Pipeline coverage: prospects in play against the backward-sized list (self-set); Stage conversion per channel - first touch to call, call to proposal, proposal to close - with lapsed sponsors tagged apart (self-set); Objection recurrence by segment, routed to the value proposition\nFindings (11):\n[fix] window (timing): 5 months out, past roughly T-8: larger sponsors locked this budget in the previous financial year - flag it and prioritize targets whose budget cycle is still open (anchor tiers want 6-9 months, supplementary 3-4).\n[check] over_promise (program): The program has no hiring corner (wanted by Vistula Soft, Rynek Cloud) - pitch the program as it stands; route the missing activity to the program owners.\n[check] coverage (math): 5 prospects in play for a backward-sized list of 35 - source 70-105 names to qualify down from; a shortfall at the list stage predicts a shortfall at close.\n[check] no_source (evidence): No source for: Kopiec Dev - every qualification claim carries a source URL and a date.\n[check] no_tool (pipeline): No shared pipeline - a CRM, an email follow-up tool or a spreadsheet all work; the habit matters more than the tool.\n[check] checks (measurement): Outreach checks: 2 of 6 (all self-set).\n[info] rates (math): The 30% close and 40% reply rates are self-set assumptions - event sponsorship publishes no benchmark of its own; replace them with this event's observed rates edition over edition.\n[info] cold_up (channel): Warm paths reach 1 prospect against 14 to pitch - the cold email sequence is promoted for targets no one in the network reaches, after the referral ask.\n[info] talks_only (program): A talks-only program convinces sponsors less than one with a business-oriented layer - adding that layer is a program decision, not a sales one.\n[info] honesty (program): Community-run: never promise attendee lists or purchasable talk slots - the sponsor buys access to a qualified audience, never its contact data.\n[info] no_valueprop (proposal): No per-segment value proposition yet - the call's needs discovery maps onto its categories."
}

Reply:

{
 "task": "plan",
 "summary": "The most urgent finding is that the event is 5 months out, past the roughly T-8-month budget window, so the first move is prioritizing targets whose budget cycle is still open.",
 "math": {
  "sponsors": 4,
  "pitch": 14,
  "list": 35,
  "note": "5 prospects are in play against a backward-sized list of 35, and both the 30% close rate and the 40% reply rate are self-set assumptions."
 },
 "timing": "At 5 months out, the event is past the roughly T-8-month budget window, so that window is closing.",
 "top": [
  {
   "company": "Vistula Soft",
   "why": "Strong fit, a fresh signal and a warm path ready to use.",
   "channel": "warm",
   "title": "Recruiting, Talent Acquisition or HR",
   "next": "intro"
  },
  {
   "company": "Rynek Cloud",
   "why": "Strong fit and a fresh signal, with no warm path, reached instead through a referral ask.",
   "channel": "referral",
   "title": "Recruiting, Talent Acquisition or HR",
   "next": "referral"
  },
  {
   "company": "Wawel Payments",
   "why": "Some fit and an older signal, with no warm path, reached instead through a referral ask.",
   "channel": "referral",
   "title": "Marketing, PR or a relevant employee resource group",
   "next": "referral"
  }
 ],
 "channels": {
  "pick": "warm",
  "note": "Warm paths reach 1 of the 14 prospects to pitch, and the cold email sequence comes in only after the referral ask, for whoever is left."
 },
 "cadence": {
  "pick": "standard",
  "cap": 3,
  "note": "Standard cadence spaces follow-ups 1-2 weeks apart up to the cap of 3, and no prospect is past it yet."
 },
 "prep": [
  "The fixed sponsor questions - projected attendance, aggregate audience composition, per-level benefits, logistics - already answered and ready to show.",
  "An answer ready for each of the four sponsor concerns: attendee value, co-sponsor mix, package value and organizer competence.",
  "The proposal inputs: the rate card is ready, but no value proposition or prospectus exists yet."
 ],
 "checks": [
  {
   "check": "Timing",
   "pass": false
  },
  {
   "check": "Coverage",
   "pass": false
  },
  {
   "check": "Warm first",
   "pass": true
  },
  {
   "check": "Cadence cap",
   "pass": true
  },
  {
   "check": "Evidence",
   "pass": false
  },
  {
   "check": "Ownership",
   "pass": false
  }
 ],
 "signals": [
  "Pipeline coverage against the backward-sized list - would recalibrate next edition's self-set close and reply rates.",
  "Stage conversion per channel, with lapsed sponsors tagged apart - would show which channel to favor next edition.",
  "Objection recurrence by segment, routed to the value proposition - would show which pitch to revise next edition."
 ],
 "caveats": [
  "5 months out is past the roughly T-8-month budget window - prioritize targets whose budget cycle is still open (anchor tiers want 6-9 months, supplementary 3-4).",
  "The program has no hiring corner, wanted by Vistula Soft and Rynek Cloud - pitch the program as it stands.",
  "5 prospects are in play for a backward-sized list of 35 - source 70-105 names to qualify down from.",
  "No source for Kopiec Dev - every qualification claim needs a source URL and a date."
 ]
}

The page's check: kept - nothing to flag

Gophers Night Krakow (a first edition in a series, 5 months out) - emails

4 sponsors needed, a list of 35, 5 in play; 5 months out; 3 top targets; sponsor-standard cadence; 2 of 6 checks.

Input:

{
 "task": "emails",
 "event": "Event: Gophers Night Krakow in Krakow, March 20; attendance 120; community-run; 5 months out; first edition of a series\nGoal: sponsorship revenue 6,000; renewals expected 0; average package 1,500; self-set close rate 30%, reply rate 40%\nTeam: volunteer organizers with a few hours a week; sponsors as one-off sales; shared pipeline tool no; contact list built by the team\nProgram: hiring corner no; hands-on feedback session no; opt-in demo space no\nInputs: value proposition no; prospectus no; rate card yes; the fixed sponsor questions answered yes",
 "prospects": "Prospects, in order (company | segment | motivation | fit | signal | warm path | stage | follow-ups | opted out | history | liaison | source | score | channel | title to target):\n1. Vistula Soft | midsized | hiring | strong | fresh | warm | identified | 0 | no | new | NONE | yes | hot | warm | Recruiting, Talent Acquisition or HR | TOP TARGET #1\n2. Wawel Payments | enterprise | brand | some | old | none | identified | 0 | no | new | NONE | yes | warm | referral | Marketing, PR or a relevant employee resource group | TOP TARGET #3\n3. Kopiec Dev | startup | unknown | some | none | none | identified | 0 | no | new | NONE | NONE | cold | referral | the CEO\n4. Rynek Cloud | enterprise | hiring | strong | fresh | none | identified | 0 | no | new | NONE | yes | hot | referral | Recruiting, Talent Acquisition or HR | TOP TARGET #2\n5. Smok Studio | startup | brand | loose | old | none | identified | 0 | no | new | NONE | yes | cold | referral | Marketing, PR or a relevant employee resource group",
 "facts": "Backward math: net-new goal 6,000 / average package 1,500 = 4 sponsors needed; / 30% close = 14 prospects to pitch; / 40% reply = a target list of 35; source 70-105 names; prospects in play 5 (committed, signed, lost, opted-out, skipped and renewal prospects are not in play)\nTiming: 5 months out - past T-8, the budget window is closing\nTop targets, in order, with the next message each is owed: Vistula Soft (hot, warm; next: a warm-intro request to the connector); Rynek Cloud (hot, referral; next: a referral ask); Wawel Payments (warm, referral; next: a referral ask)\nTarget-list sources: Previous-sponsor roster same-series roster; Organizer-network employers default; Adjacent-event sponsor scan available; Institutional channels available; Attendee-stack vendor mapping promoted\nFirst-touch channel: the page's default is warm; rungs Warm intro default; Referral ask available; Inbound broadcast always on; Cold email sequence promoted; Purchased or scraped lists deleted\nFollow-up cadence: the page's pick is standard (cap 3 follow-ups); rungs Sponsor-standard cadence default; Angle-rotation sequence not yet; the repeated just-checking-in bump deleted\nChecks (2 of 6): Timing (Net-new outreach starts at or before roughly T-8 months) MISSING; Coverage (Prospects in play cover the backward-sized target list) MISSING; Warm first (Every target had its warm-path check before anything colder) passed; Cadence cap (No prospect past the follow-up cap, and every opt-out honored at once) passed; Evidence (Every scored prospect carries a source for its claims) MISSING; Ownership (One named liaison for every prospect past the first touch, in one shared pipeline) MISSING\nSignals to record: Pipeline coverage: prospects in play against the backward-sized list (self-set); Stage conversion per channel - first touch to call, call to proposal, proposal to close - with lapsed sponsors tagged apart (self-set); Objection recurrence by segment, routed to the value proposition\nFindings (11):\n[fix] window (timing): 5 months out, past roughly T-8: larger sponsors locked this budget in the previous financial year - flag it and prioritize targets whose budget cycle is still open (anchor tiers want 6-9 months, supplementary 3-4).\n[check] over_promise (program): The program has no hiring corner (wanted by Vistula Soft, Rynek Cloud) - pitch the program as it stands; route the missing activity to the program owners.\n[check] coverage (math): 5 prospects in play for a backward-sized list of 35 - source 70-105 names to qualify down from; a shortfall at the list stage predicts a shortfall at close.\n[check] no_source (evidence): No source for: Kopiec Dev - every qualification claim carries a source URL and a date.\n[check] no_tool (pipeline): No shared pipeline - a CRM, an email follow-up tool or a spreadsheet all work; the habit matters more than the tool.\n[check] checks (measurement): Outreach checks: 2 of 6 (all self-set).\n[info] rates (math): The 30% close and 40% reply rates are self-set assumptions - event sponsorship publishes no benchmark of its own; replace them with this event's observed rates edition over edition.\n[info] cold_up (channel): Warm paths reach 1 prospect against 14 to pitch - the cold email sequence is promoted for targets no one in the network reaches, after the referral ask.\n[info] talks_only (program): A talks-only program convinces sponsors less than one with a business-oriented layer - adding that layer is a program decision, not a sales one.\n[info] honesty (program): Community-run: never promise attendee lists or purchasable talk slots - the sponsor buys access to a qualified audience, never its contact data.\n[info] no_valueprop (proposal): No per-segment value proposition yet - the call's needs discovery maps onto its categories."
}

Reply:

{
 "task": "emails",
 "messages": [
  {
   "company": "Vistula Soft",
   "kind": "intro",
   "to": "to be named",
   "subject": "Introduction to Vistula Soft for Gophers Night Krakow?",
   "body": "Hello,\n\nWe're organizing Gophers Night Krakow and hoped you might help us connect with Vistula Soft.\n\nGophers Night Krakow is a community-run event in Krakow on March 20, with 120 attendees, and this will be the first edition of the series. We think Vistula Soft could be a strong sponsor fit given the hiring interest we've seen, and we would value an introduction to the right person there.\n\nWould you be willing to make that connection, or point us to who we should ask instead? No pressure if this isn't something you can help with.\n\nThank you for considering it.\n\nBest,\nGophers Night Krakow Team"
  },
  {
   "company": "Rynek Cloud",
   "kind": "referral",
   "to": "someone senior at Rynek Cloud",
   "subject": "Sponsorship contact at Rynek Cloud for Gophers Night Krakow",
   "body": "Hello,\n\nI'm reaching out about Gophers Night Krakow, a community-run event taking place in Krakow on March 20.\n\nCould you point me to the right person at Rynek Cloud to talk to about sponsoring this event?\n\nThank you for your time.\n\nBest,\nGophers Night Krakow Team"
  },
  {
   "company": "Wawel Payments",
   "kind": "referral",
   "to": "someone senior at Wawel Payments",
   "subject": "Sponsorship contact at Wawel Payments for Gophers Night Krakow",
   "body": "Hello,\n\nI'm reaching out about Gophers Night Krakow, a community-run event taking place in Krakow on March 20.\n\nCould you point me to the right person at Wawel Payments to talk to about sponsoring this event?\n\nThank you for your time.\n\nBest,\nGophers Night Krakow Team"
  }
 ],
 "note": "The budget window is past roughly T-8 months, so confirm quickly whether Vistula Soft, Rynek Cloud and Wawel Payments still have open budget."
}

The page's check: kept - nothing to flag

Northwind Platform Summit (company-run, a dedicated lead) - plan

12 sponsors needed, a list of 240, 5 in play; 9 months out; 4 top targets; angle-rotation sequence; 4 of 6 checks.

Input:

{
 "task": "plan",
 "event": "Event: Northwind Platform Summit in Seattle, June 3-4; attendance 2200; company- or foundation-run; 9 months out\nGoal: sponsorship revenue 300,000; renewals expected 0; average package 25,000; self-set close rate 20%, reply rate 25%\nTeam: a dedicated sponsorship lead; sponsors as multi-edition relationships; shared pipeline tool yes; contact list built by the team\nProgram: hiring corner no; hands-on feedback session yes; opt-in demo space yes\nInputs: value proposition yes; prospectus yes; rate card yes; the fixed sponsor questions answered yes",
 "prospects": "Prospects, in order (company | segment | motivation | fit | signal | warm path | stage | follow-ups | opted out | history | liaison | source | score | channel | title to target):\n1. Cobalt Observability | enterprise | selling | strong | fresh | warm | committed | 2 | no | new | Priya | yes | hot | warm | Marketing, PR or a relevant employee resource group\n2. Ferrous Security | midsized | feedback | strong | fresh | none | proposal | 3 | no | new | Marcus | yes | hot | referral | Developer Relations or a Developer Advocate | TOP TARGET #2\n3. Lumen Queue | startup | feedback | strong | old | none | call | 1 | no | new | NONE | yes | warm | referral | Developer Relations or a Developer Advocate | TOP TARGET #3\n4. Helix Data | enterprise | hiring | strong | fresh | warm | first touch | 0 | no | new | Priya | yes | hot | warm | Recruiting, Talent Acquisition or HR | TOP TARGET #1\n5. Arbor CI | midsized | selling | some | fresh | none | first touch | 4 | no | new | Dee | yes | warm | referral | Marketing, PR or a relevant employee resource group\n6. Quartz Edge | enterprise | brand | some | old | none | identified | 0 | no | released | NONE | yes | warm | reentry | Marketing, PR or a relevant employee resource group | TOP TARGET #4",
 "facts": "Backward math: net-new goal 300,000 / average package 25,000 = 12 sponsors needed; / 20% close = 60 prospects to pitch; / 25% reply = a target list of 240; source 480-720 names; prospects in play 5 (committed, signed, lost, opted-out, skipped and renewal prospects are not in play)\nTiming: 9 months out - inside the T-8 window\nTop targets, in order, with the next message each is owed: Helix Data (hot, warm; next: follow-up 1 of 4); Ferrous Security (hot, referral; next: follow-up 4 of 4); Lumen Queue (warm, referral; next: the proposal, same day as the call); Quartz Edge (warm, reentry; next: a re-entry note)\nTarget-list sources: Previous-sponsor roster default; Organizer-network employers available; Adjacent-event sponsor scan available; Institutional channels available; Attendee-stack vendor mapping not yet\nFirst-touch channel: the page's default is warm; rungs Warm intro default; Referral ask available; Inbound broadcast always on; Cold email sequence promoted; Purchased or scraped lists deleted\nFollow-up cadence: the page's pick is rotation (cap 4 follow-ups); rungs Sponsor-standard cadence default; Angle-rotation sequence promoted; the repeated just-checking-in bump deleted\nChecks (4 of 6): Timing (Net-new outreach starts at or before roughly T-8 months) passed; Coverage (Prospects in play cover the backward-sized target list) MISSING; Warm first (Every target had its warm-path check before anything colder) passed; Cadence cap (No prospect past the follow-up cap, and every opt-out honored at once) passed; Evidence (Every scored prospect carries a source for its claims) passed; Ownership (One named liaison for every prospect past the first touch, in one shared pipeline) MISSING\nSignals to record: Pipeline coverage: prospects in play against the backward-sized list (self-set); Stage conversion per channel - first touch to call, call to proposal, proposal to close - with lapsed sponsors tagged apart (self-set); Objection recurrence by segment, routed to the value proposition\nFindings (8):\n[check] over_promise (program): The program has no hiring corner (wanted by Helix Data) - pitch the program as it stands; route the missing activity to the program owners.\n[check] coverage (math): 5 prospects in play for a backward-sized list of 240 - source 480-720 names to qualify down from; a shortfall at the list stage predicts a shortfall at close.\n[check] no_liaison (pipeline): No liaison for: Lumen Queue - one named organizer owns each relationship.\n[check] checks (measurement): Outreach checks: 4 of 6 (all self-set).\n[info] rates (math): The 20% close and 25% reply rates are self-set assumptions - event sponsorship publishes no benchmark of its own; replace them with this event's observed rates edition over edition.\n[info] cold_up (channel): Warm paths reach 2 prospects against 60 to pitch - the cold email sequence is promoted for targets no one in the network reaches, after the referral ask.\n[info] lapsed (channel): Quartz Edge re-enters at the exploratory call, tagged lapsed - never cold-pitched as if new.\n[info] close (close): Cobalt Observability said yes: invoice immediately, confirm amount and payment method in writing, and verify the receiving account before payment is sent."
}

Reply:

{
 "task": "plan",
 "summary": "The most urgent finding is that the program has no hiring corner, which Helix Data wants, so the first move is pitching the program as it stands.",
 "math": {
  "sponsors": 12,
  "pitch": 60,
  "list": 240,
  "note": "5 prospects are in play against a backward-sized list of 240, and both the 20% close rate and the 25% reply rate are self-set assumptions."
 },
 "timing": "At 9 months out, the event is inside the roughly T-8-month budget window for outreach.",
 "top": [
  {
   "company": "Helix Data",
   "why": "Strong fit, a fresh signal and a warm path ready to use.",
   "channel": "warm",
   "title": "Recruiting, Talent Acquisition or HR",
   "next": "followup"
  },
  {
   "company": "Ferrous Security",
   "why": "Strong fit and a fresh signal, with no warm path, reached instead through a referral ask.",
   "channel": "referral",
   "title": "Developer Relations or a Developer Advocate",
   "next": "followup"
  },
  {
   "company": "Lumen Queue",
   "why": "Strong fit but an older signal, with no warm path, reached instead through a referral ask.",
   "channel": "referral",
   "title": "Developer Relations or a Developer Advocate",
   "next": "proposal"
  },
  {
   "company": "Quartz Edge",
   "why": "Some fit and an older signal, with no warm path, re-entering instead as a released sponsor.",
   "channel": "reentry",
   "title": "Marketing, PR or a relevant employee resource group",
   "next": "reentry"
  }
 ],
 "channels": {
  "pick": "warm",
  "note": "Warm paths reach 2 of the 60 prospects to pitch, and the cold email sequence comes in only after the referral ask, for whoever is left."
 },
 "cadence": {
  "pick": "rotation",
  "cap": 4,
  "note": "The rotation cadence caps follow-ups at 4, each with a new angle, and Ferrous Security's follow-up 4 of 4 is its last one, which should acknowledge the lack of response and close the thread."
 },
 "prep": [
  "An answer ready for each of the four sponsor concerns: attendee value, co-sponsor mix, package value and organizer competence.",
  "The proposal inputs already on hand: the value proposition, the prospectus and the rate card.",
  "A named liaison for Lumen Queue before its proposal goes out, since none is assigned yet."
 ],
 "checks": [
  {
   "check": "Timing",
   "pass": true
  },
  {
   "check": "Coverage",
   "pass": false
  },
  {
   "check": "Warm first",
   "pass": true
  },
  {
   "check": "Cadence cap",
   "pass": true
  },
  {
   "check": "Evidence",
   "pass": true
  },
  {
   "check": "Ownership",
   "pass": false
  }
 ],
 "signals": [
  "Pipeline coverage against the backward-sized list - would recalibrate next edition's self-set close and reply rates.",
  "Stage conversion per channel, with lapsed sponsors tagged apart - would show which channel to favor next edition.",
  "Objection recurrence by segment, routed to the value proposition - would show which pitch to revise next edition."
 ],
 "caveats": [
  "The program has no hiring corner, wanted by Helix Data - pitch the program as it stands.",
  "5 prospects are in play for a backward-sized list of 240 - source 480-720 names to qualify down from.",
  "No liaison for Lumen Queue - one named organizer should own each relationship.",
  "Outreach checks: 4 of 6, all self-set."
 ]
}

The page's check: kept - nothing to flag

Northwind Platform Summit (company-run, a dedicated lead) - emails

12 sponsors needed, a list of 240, 5 in play; 9 months out; 4 top targets; angle-rotation sequence; 4 of 6 checks.

Input:

{
 "task": "emails",
 "event": "Event: Northwind Platform Summit in Seattle, June 3-4; attendance 2200; company- or foundation-run; 9 months out\nGoal: sponsorship revenue 300,000; renewals expected 0; average package 25,000; self-set close rate 20%, reply rate 25%\nTeam: a dedicated sponsorship lead; sponsors as multi-edition relationships; shared pipeline tool yes; contact list built by the team\nProgram: hiring corner no; hands-on feedback session yes; opt-in demo space yes\nInputs: value proposition yes; prospectus yes; rate card yes; the fixed sponsor questions answered yes",
 "prospects": "Prospects, in order (company | segment | motivation | fit | signal | warm path | stage | follow-ups | opted out | history | liaison | source | score | channel | title to target):\n1. Cobalt Observability | enterprise | selling | strong | fresh | warm | committed | 2 | no | new | Priya | yes | hot | warm | Marketing, PR or a relevant employee resource group\n2. Ferrous Security | midsized | feedback | strong | fresh | none | proposal | 3 | no | new | Marcus | yes | hot | referral | Developer Relations or a Developer Advocate | TOP TARGET #2\n3. Lumen Queue | startup | feedback | strong | old | none | call | 1 | no | new | NONE | yes | warm | referral | Developer Relations or a Developer Advocate | TOP TARGET #3\n4. Helix Data | enterprise | hiring | strong | fresh | warm | first touch | 0 | no | new | Priya | yes | hot | warm | Recruiting, Talent Acquisition or HR | TOP TARGET #1\n5. Arbor CI | midsized | selling | some | fresh | none | first touch | 4 | no | new | Dee | yes | warm | referral | Marketing, PR or a relevant employee resource group\n6. Quartz Edge | enterprise | brand | some | old | none | identified | 0 | no | released | NONE | yes | warm | reentry | Marketing, PR or a relevant employee resource group | TOP TARGET #4",
 "facts": "Backward math: net-new goal 300,000 / average package 25,000 = 12 sponsors needed; / 20% close = 60 prospects to pitch; / 25% reply = a target list of 240; source 480-720 names; prospects in play 5 (committed, signed, lost, opted-out, skipped and renewal prospects are not in play)\nTiming: 9 months out - inside the T-8 window\nTop targets, in order, with the next message each is owed: Helix Data (hot, warm; next: follow-up 1 of 4); Ferrous Security (hot, referral; next: follow-up 4 of 4); Lumen Queue (warm, referral; next: the proposal, same day as the call); Quartz Edge (warm, reentry; next: a re-entry note)\nTarget-list sources: Previous-sponsor roster default; Organizer-network employers available; Adjacent-event sponsor scan available; Institutional channels available; Attendee-stack vendor mapping not yet\nFirst-touch channel: the page's default is warm; rungs Warm intro default; Referral ask available; Inbound broadcast always on; Cold email sequence promoted; Purchased or scraped lists deleted\nFollow-up cadence: the page's pick is rotation (cap 4 follow-ups); rungs Sponsor-standard cadence default; Angle-rotation sequence promoted; the repeated just-checking-in bump deleted\nChecks (4 of 6): Timing (Net-new outreach starts at or before roughly T-8 months) passed; Coverage (Prospects in play cover the backward-sized target list) MISSING; Warm first (Every target had its warm-path check before anything colder) passed; Cadence cap (No prospect past the follow-up cap, and every opt-out honored at once) passed; Evidence (Every scored prospect carries a source for its claims) passed; Ownership (One named liaison for every prospect past the first touch, in one shared pipeline) MISSING\nSignals to record: Pipeline coverage: prospects in play against the backward-sized list (self-set); Stage conversion per channel - first touch to call, call to proposal, proposal to close - with lapsed sponsors tagged apart (self-set); Objection recurrence by segment, routed to the value proposition\nFindings (8):\n[check] over_promise (program): The program has no hiring corner (wanted by Helix Data) - pitch the program as it stands; route the missing activity to the program owners.\n[check] coverage (math): 5 prospects in play for a backward-sized list of 240 - source 480-720 names to qualify down from; a shortfall at the list stage predicts a shortfall at close.\n[check] no_liaison (pipeline): No liaison for: Lumen Queue - one named organizer owns each relationship.\n[check] checks (measurement): Outreach checks: 4 of 6 (all self-set).\n[info] rates (math): The 20% close and 25% reply rates are self-set assumptions - event sponsorship publishes no benchmark of its own; replace them with this event's observed rates edition over edition.\n[info] cold_up (channel): Warm paths reach 2 prospects against 60 to pitch - the cold email sequence is promoted for targets no one in the network reaches, after the referral ask.\n[info] lapsed (channel): Quartz Edge re-enters at the exploratory call, tagged lapsed - never cold-pitched as if new.\n[info] close (close): Cobalt Observability said yes: invoice immediately, confirm amount and payment method in writing, and verify the receiving account before payment is sent."
}

Reply:

{
 "task": "emails",
 "messages": [
  {
   "company": "Helix Data",
   "kind": "followup",
   "to": "Recruiting, Talent Acquisition or HR",
   "subject": "Follow-up 1 of 4: what Northwind Platform Summit offers Helix Data",
   "body": "Hello,\n\nThis is follow-up 1 of 4 on partnering with Northwind Platform Summit, our 2200-attendee summit in Seattle, June 3-4.\n\nWe don't run a dedicated hiring corner this year, so rather than offer that, we want to point you to what the program does include: a hands-on feedback session and an opt-in demo space, both of which put Helix Data's team directly in front of attendees. The attached prospectus and rate card lay out how a package fits around those.\n\nWould you have time for a short call to talk through what matters most to Helix Data this year?\n\nBest,\nPriya"
  },
  {
   "company": "Ferrous Security",
   "kind": "followup",
   "to": "Developer Relations or a Developer Advocate",
   "subject": "Follow-up 4 of 4: closing the loop for Ferrous Security",
   "body": "Hello,\n\nThis is follow-up 4 of 4 on the proposal we sent Ferrous Security for Northwind Platform Summit.\n\nWe haven't heard back since sending it, so we want to name that directly rather than send another reminder. If the feedback-session-focused package we proposed isn't the right fit, our opt-in demo space might be worth a second look before we close this out - it's a different way to reach the same audience.\n\nIf timing or priorities have shifted, that's completely understandable. We won't follow up again after this note, but the door stays open if Ferrous Security wants to pick this back up for Northwind Platform Summit.\n\nBest,\nMarcus"
  },
  {
   "company": "Lumen Queue",
   "kind": "proposal",
   "to": "Developer Relations or a Developer Advocate",
   "subject": "Lumen Queue proposal: Northwind Platform Summit feedback session",
   "body": "Hello,\n\nThank you for the call today. As promised, here is the proposal the same day.\n\nNorthwind Platform Summit runs June 3-4 in Seattle for 2200 attendees. Based on the feedback goal you described, this proposal centers on our hands-on feedback session, which gives Lumen Queue direct time with attendees, with our opt-in demo space as a complementary option. It includes only the activities the program already runs this year.\n\nThe attached prospectus and rate card lay out the full package and benefits. We would like to confirm by a date to be named, so we can finalize ahead of other sponsor conversations underway.\n\nHappy to answer any questions in the meantime.\n\nBest,\nNorthwind Platform Summit Team"
  },
  {
   "company": "Quartz Edge",
   "kind": "reentry",
   "to": "Marketing, PR or a relevant employee resource group",
   "subject": "Welcome back, Quartz Edge - Northwind Platform Summit this year",
   "body": "Hello,\n\nIt's good to reconnect - Quartz Edge has sponsored Northwind Platform Summit before, and we'd love to have you back for this edition.\n\nRather than go over the basics again, we'd like to hear what matters most to Quartz Edge this year and what would make a sponsorship worth it this time.\n\nCould we find a short call to talk it through? A time to be named works on our side - happy to work around your schedule.\n\nBest,\nNorthwind Platform Summit Team"
  }
 ],
 "note": "Assign a named liaison for Lumen Queue before its proposal goes out, since no organizer currently owns that relationship."
}

The page's check: kept - nothing to flag

The lead sheet CSV for the first sample

company,segment,motivation,score,channel,title,stage,follow_ups,liaison,top_target
Quayside Data,midsized,hiring,hot,warm,"Recruiting, Talent Acquisition or HR",call,1,Ana,yes
Tidewell Cloud,enterprise,feedback,hot,referral,Developer Relations or a Developer Advocate,first touch,2,,yes
Brindlewick,startup,hiring,warm,referral,"Recruiting, Talent Acquisition or HR",first touch,5,,
Saltmarsh Labs,startup,brand,hot,warm,"Marketing, PR or a relevant employee resource group",identified,0,,yes
Corvo Analytics,midsized,hiring,warm,referral,"Recruiting, Talent Acquisition or HR",first touch,1,,
Atlantic Ledger,enterprise,unknown,cold,referral,the CEO,identified,0,,
Pinecrest Tools,midsized,feedback,warm,reentry,Developer Relations or a Developer Advocate,first touch,1,Rui,yes
Marlow Systems,enterprise,brand,renewal,renewal,"Marketing, PR or a relevant employee resource group",identified,0,,
Gullwing Games,startup,unknown,skip,none,the CEO,identified,0,,

Build the input yourself

Load the engine in node (global.window = global; require("./pipekit.js"); require("./pipereply.js")), then:

const K = PipeKit, R = PipeReply;
const f = K.form({ name: "My Conf", monthsOut: "11", goal: "60000", renewalExpected: "20000", avgPackage: "5000", closeRate: "25", replyRate: "33",
  prospects: fs.readFileSync("prospects.csv", "utf8") });
// f.needed, f.pitch, f.list, f.timing, f.prospects (score, channel, title), f.inPlay, f.top (next, nextNo)
// f.recChannel, f.recCadence, f.cap and the source, channel and cadence rungs, f.checks, f.findings
K.leadCSV(f)                                   // company, segment, motivation, score, channel, title, stage, ...
const b = K.buildInput(f, "plan");             // or "emails"
const wire = K.toWire(b.input);                // POST this to /estimate and /run
// then: const reply = R.normalize(R.parseReply(job.output.output), "plan");
// R.check(reply, b)                           // {status: kept or flagged, notes}

Get a token for the steps below from /tokens.html.

Step 1 — a tiny client helper

One function that sends JSON and unwraps the response. Paste a personal token from /tokens.html, or leave it empty and mint a guest token in step 2.

BASE="https://api.skillsafe.ai/v1/app-api"
TOKEN="paste-your-token-here"   # from https://sponsor-pipeline.skillsafe.ai/tokens.html
api() { # api METHOD PATH [JSON-BODY]
  curl -s -X "$1" "$BASE$2" -H "Content-Type: application/json" \
    ${TOKEN:+-H "Authorization: Bearer $TOKEN"} ${3:+--data "$3"}
}

Step 2 — a token

A guest token is enough for /me and /estimate. A run is metered, so it needs a personal token: sign in on /tokens.html and copy it from there.

# a guest token (enough for /me and /estimate); a run needs your personal token from /tokens.html
TOKEN=$(curl -s -X POST "$BASE/guest" -H "Content-Type: application/json" -d '{"slug":"sponsor-pipeline"}' | jq -r '.data.token')

Step 3 — GET /me

Who the token is (subject_type: user or guest) and the credit balance.

api GET /me | jq '.data | {subject_type, credits}' 

Step 4 — POST /estimate

Free. The body is the run input itself, the bare object (never wrapped in {"input": ...}). hold_credits is a reservation, not the price; min_credits is what the balance must cover; model_alias reads gpt-terra.

# input.json: the run input object - {"task": "plan", "event": "Event: ...; attendance 450; community-run; 11 months out", "prospects": "Prospects, in order ...", "facts": "Backward math: ..."}
# - see the input table
api POST /estimate "$(cat input.json)" | jq '.data | {hold_credits, min_credits, model, model_alias, markup_bps, warnings}' 

Step 5 — POST /run, then poll the job

Send an Idempotency-Key built from the lane and the input: a retry with the same key never bills twice. The page uses sponsor-pipeline:<task>:<inputHash>:a<attempt> - the lane is part of the key - and its one automatic reformat retry is a new attempt number, named in the page as one extra run. A plan carries summary, math, timing, top, channels, cadence, prep, checks, signals and caveats; a messages reply carries messages (company, kind, to, subject, body) and note. The code below prints the headline parts of either (list items are plain strings).

KEY="sponsor-pipeline:plan:$(shasum -a 256 input.json | cut -c1-16):a1"
JOB=$(curl -s -X POST "$BASE/run" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: $KEY" --data @input.json | jq -r '.data.job_id')
while :; do
  J=$(api GET "/jobs/$JOB"); S=$(echo "$J" | jq -r '.data.status')
  case "$S" in succeeded|failed|cancelled) break;; esac; sleep 2
done
echo "$J" | jq -r '.data.output.output' > reply.json   # one JSON object, the reply contract
echo "$J" | jq '.data | {charged_credits, truncated}'
jq -r '.summary // .format, .note // .timing, ((.signals // .caveats)[] | "\(.signal // .caveat): \(.text // .text)")' reply.json
jq -r '.note // .note // empty' reply.json   # the note for the organizers (emails)

Step 6 — POST /run-stream

The same run as Server-Sent Events, with the same input.json. Browsers receive progress ticks rather than text deltas; the final done event carries the reply.

# Server-Sent Events: tick/delta events while the job runs, then a final event with the job
curl -N -s -X POST "$BASE/run-stream" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: sponsor-pipeline:plan:$(shasum -a 256 input.json | cut -c1-16):a1" --data @input.json