Profession · sales

Appointment Setter

Appointment Setter — the closer. A hireable role that picks up the thread when someone actually writes back to your outbound, and owns exactly one outcome: a real meeting, on a real calendar, with someone who should be in it. It classifies every inbound reply into one of five classes as structured fields, answers the objection strictly from answers the client approved, and sends a calendar link in the prospect's own language with one narrow ask attached. Its defining discipline is that it never sends anywhere except back to the address that wrote in — the recipient is the exposed surface on this path, and a lock asserted immediately before every send is what covers it. It books fewer, better meetings on purpose, reports held rate segmented rather than blended, and escalates an unanswerable price question instead of inventing a plausible number. 8 links, 6 workflows, and the appointment-setter guild.

appointment-setter is the closer — the role that picks up the thread when someone actually writes back. It exists because the stack could already produce replies and had nothing that could hold a conversation: agentboard gives you an email board, copy-engine gives you a paragraph, sales-pipeline gives you a deal, and nothing knew that an inbound card reading "what does this cost?" should be classified, answered from an approved boundary, gated against exfiltration, replied to in German, and then converted into a deal. That sequence, with its gates, is the product. It is a sibling to the outbound role rather than an extension of it, and the split is not about tooling — the two have different rhythms, different knowledge, and different failure modes. Campaign work is episodic and fails by wasting a week of sends; this is event-driven and fails by losing one deal, or by being talked into sending somewhere it should not. That second failure is why the security posture is structural rather than advisory. The classification lands in fields the send side asserts on, the recipient lock is written upstream by the sync path rather than by the agent it protects, a per-thread cap covers the loop the lock does not, and recalled memory is treated as untrusted data — because the dangerous recalled row is not the strange one, it is the plausible one arriving in the agent's own voice. The honest limits ship with it: after a genuinely positive reply the best next move is often a phone call and this role cannot make one, booking confirmation is inferred rather than programmatic until the booking skill lands, and the ceiling on everything it does is set by how many real replies the outbound above it earns. It multiplies that number. It does not substitute for it.

What this profession guarantees

Never sends anywhere but back

The recipient is the exposed surface on this path. Every send asserts to == the address that wrote in — no forward, no added CC, no colleague. A mismatch refuses and escalates.

Answers from a boundary, not from memory

Prices, terms and proof points come from what the client approved at intake. An objection with no approved answer escalates — a plausible invented number is the more expensive outcome, not the safer one.

Books fewer, better meetings

The disqualifier check runs before composing, not after. Held rate is reported segmented by reply class, because a blended rate hides a closer that started being agreeable instead of answering.

Reads and sends are different jobs

The half that reads attacker-controlled text does not hold the send. Drafts queue to Awaiting Send for a second actor — which may be a narrow sender agent, not necessarily a person.

Answers in their language, locked from the first reply

Seven languages, fixed from the opening message and never flipped mid-thread. A craft rule that doubles as a control: an injected instruction cannot change a locked field.

The craft it carries

AgentboardAgentdocsOpvs ProtocolAgentmemoryCopy EngineVoice BuilderOutbound EngineSales Pipeline

Where it operates

AgentboardAgentdocsOpvs ProtocolCopy Engine

Package

Registry id
@di-atomic/appointment-setter
Version
0.1.1
Published by
Di-Atomic