No subject field
There’s no subject field anywhere in the composer. Whatever you send first in a thread sets the subject for the whole conversation, and every later message reuses it. The empty state says it plainly: “Your first message sets the subject for the thread.”The toolbar
The toolbar has Bold, Italic and Bullet list for formatting, and Insert link to link the selected text, or add a new one. Insert placeholder inserts a detail about this candidate or job, already filled in, so you see exactly what they’ll get:
A detail Staffer doesn’t have for this candidate is left out of the menu. In templates and message steps, the same menu inserts a placeholder that’s filled in for each candidate when the message is sent.
Insert template replaces the whole body with a saved message, either your workspace’s own or one of Staffer’s built-in ones. See Message templates.
AI assist, the sparkle button, writes a message for you or reworks the one you have. What it offers depends on the editor:
- Empty editor (your signature alone counts as empty): Write for me drafts a message in one click. Write message lets you say what you want first, for example “Ask about their notice period, keep it short”.
- A draft in the editor: Personalize gives it a one-click pass. Request change takes an instruction, for example “shorter, warmer, mention their AI post”.
Who it goes to
Click Select channel to pick where the message goes. It lists every email Staffer has on file for the candidate, each tagged with where it came from, with a Primary badge on the main one. If there’s nothing on file yet, it reads “No saved emails yet.” Add one with + Add email. Email is the default. If the candidate can already be reached in their Staffer account, you’ll also see Send in-app. The message then lands on their application in Staffer, and they also get an email with a link straight back to the conversation. Nothing waits unread in a portal they haven’t opened.When a candidate has unsubscribed
A candidate can stop all email from your company. Their profile then shows an Unsubscribed badge, and you can’t email them from the composer. If they can be reached in their Staffer account, the composer says “This candidate unsubscribed from your emails. In-app messages still reach them.” Staffer also skips the emails it would send them on its own, such as rejection, interview and application confirmation emails. Only the candidate can turn emails back on.Your signature
Set it once, in Settings → Account → Signature. It replaces the closing line on every message you send, including templates. Leave it blank and Staffer signs off with “Best,” and your name instead. Right now only workspace admins and owners can save a signature. See Your account settings.The application link
Including the Application link placeholder does more than insert text. If the candidate doesn’t have an application yet, for example they’re still on the shortlist, adding this placeholder prepares their application in the background as soon as it’s in the message, not only once you send. That’s the same thing that happens when you promote them: Staffer saves a copy of their profile for this job and creates their private application link. Send reads “Preparing link…” and stays disabled until that finishes. If the link ends up missing from the visible message, or the candidate has no application to link to at all, Staffer shows a warning above the composer instead of sending a broken link.Message on LinkedIn vs Send
The LinkedIn button beside Send, Message on LinkedIn, opens a new LinkedIn message to the candidate in a new tab, with your text already filled in. Your signature is left off, and links show as text with the address in brackets. You send it from LinkedIn. The button is greyed out when the message is empty or there’s no LinkedIn profile on file for the candidate. It doesn’t touch Staffer’s record of the candidate: nothing is logged. If you reach them this way, log it yourself afterward with Mark as contacted, from Candidate actions. Send emails the candidate from Staffer and logs the message on their thread. If they’re still In review, sending moves them to In progress, even a plain message with no template. Every send, including an AI-assisted one, is checked against your organization’s compliance policy first. A refusal shows as a toast, “Could not send:” followed by the reason, not a dialog. See AI policies for what can trigger one. Sending, and AI assist, are limited to members, admins and owners. Viewers and reviewers can’t use either.Common questions
Can I change the subject after the first message?
Can I change the subject after the first message?
No. The first message in a thread sets the subject for good. There’s no subject field to edit it later.
Does Message on LinkedIn send anything to the candidate?
Does Message on LinkedIn send anything to the candidate?
No. It opens LinkedIn with your message filled in, and you send it there. Nothing is logged in Staffer until you either send from the composer or mark them as contacted yourself.
Do I have to write a draft before AI assist can help?
Do I have to write a draft before AI assist can help?
No. On an empty editor, Write for me and Write message write the whole message. The exceptions are message step templates and the message you send when closing a job, where AI assist still works from your draft.
Can I ask the agent to send a message for me?
Can I ask the agent to send a message for me?
Yes. Ask it from any page. In Ask permission mode it shows an approval card first. The card names the action, not the message, so ask to see the draft before you approve. In Auto mode it sends without asking. See What the agent can do.
Why was my message refused?
Why was my message refused?
It didn’t pass your organization’s compliance check. The toast names the reason. See AI policies.
Who can send a message?
Who can send a message?
Members, admins and owners. Viewers and reviewers can’t send, use AI assist, or mark someone as contacted.
Replies and the inbox
Where a candidate’s reply lands, and how Staffer drafts one for you.
Message templates
Save a reusable message and set it as the default for a move.