Send Workable offer letters for signature automatically

The moment a candidate reaches your offer stage in Workable, the offer letter goes out for signature, gets logged, and the recruiting team is notified.

Deterministic Code
WorkableDocusignGoogle SheetsSlack BotHR & PeopleOperationsOnboarding AutomationNotifications & AlertsData Sync
PromptCreate

Watch Workable for candidates moving to a new pipeline stage, and only continue when the new stage is our offer stage. Make the offer stage a workflow input so we can rename or reorder our stages without editing the workflow. Any other stage change should end the run quietly without sending anything.

When a candidate does land in the offer stage, use the Workable List Candidates operation, filtered by the job and the stage from the trigger, to pull that candidate's full name and email address. Then use the Workable List Jobs operation to pull the job title and the job location for the same job. Workable only exposes list operations, so both lookups go through the filtered list calls rather than a fetch by id.

Build the offer letter with the Docusign Create Envelope operation from a saved offer letter template. The template id and the signer role name are both workflow inputs. Map the candidate to that signer role using the name and email from Workable, and fill the template merge fields for candidate name, job title, and location from what we pulled out of Workable. The start date is supplied as a workflow input. Send the envelope in the same step rather than leaving it as a draft, and keep the returned envelope id for the steps that follow.

Log the send to a Google Sheets offer tracker using the Append Values operation. Make the target spreadsheet id and tab name workflow inputs. Append one row per offer capturing the candidate name, the role, the Docusign envelope id, and the date the offer was sent.

Finally, notify the recruiting channel with the Slack Bot Send a Message operation so the recruiter knows the offer is out. Include the candidate name, the role, and the envelope id in the message, and make the channel a workflow input.

Every step here is a known field mapping, so keep this deterministic. No drafting or judgement is required, because the offer letter body comes from the Docusign template. If the candidate has no email address, or the Workable lookups return no matching candidate or job, stop and report the problem instead of sending an incomplete envelope.

Example output

Offer sent: Priya Raman for Senior Account Executive (Austin, TX). Docusign envelope 8f2c4a91 sent 9 Aug. Logged to the offer tracker.

What does this prompt do?

  • Watches Workable and reacts the moment a candidate is moved into your offer stage, ignoring every other stage change
  • Builds the offer letter from your saved Docusign template, filling in the candidate name, job title, location, and start date, then sends it for signature straight away
  • Adds a row to your offer tracker spreadsheet with the candidate, the role, the envelope reference, and the date it went out
  • Posts a note in your recruiting channel so the recruiter knows the offer has landed without checking anywhere

What do I need to use this?

  • A Workable account with access to your jobs and candidates
  • A Docusign account with an offer letter template already saved, including a signer role and fields for candidate name, job title, and location
  • A Google account and the spreadsheet you want to use as the offer tracker
  • A Slack workspace and the channel your recruiting team watches

How can I customize it?

  • Choose which pipeline stage counts as the offer stage, so it keeps working if you rename or reorder your stages
  • Point it at a different offer letter template or signer role, for example separate templates for full time and contract hires
  • Change which spreadsheet and tab the tracker writes to, and which channel gets the notification
  • Have it leave the offer letter as a draft for a final read instead of sending it immediately

FAQs

How soon does the offer letter go out after we move the candidate?
It checks Workable for stage changes on a regular cycle, so the offer letter is usually on its way within a few minutes of you moving the candidate into the offer stage. Nobody has to remember to send it.
Can we keep our own offer letter wording and branding?
Yes. The letter itself comes from the offer letter template you already have saved in Docusign, so your wording, formatting, and branding stay exactly as they are. This only fills in the candidate details and sends it.
What if our offer stage is not called Offer?
That is a setting. You tell it which stage in your Workable pipeline counts as the offer stage, so it works whatever you have named it, and it keeps working if you rename it later.
Can someone review the offer before the candidate sees it?
By default it sends as soon as the candidate hits the offer stage, which is what most teams want. If you would rather have a final check, it can create the offer letter and leave it waiting as a draft for a recruiter to review and send.
Where does the start date come from?
The start date is supplied when the workflow runs, since it is the one detail that is not already sitting in Workable. Everything else, the candidate name and email, the job title, and the location, is pulled from your Workable records automatically.

Related templates

Build a credential rotation checklist when someone leaves

When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.

1Password
Rippling
Slack Bot
+1
Agentic Task
Weekly Amazon S3 bucket security audit posted to Slack

Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.

Amazon S3
Slack Bot
Google Sheets
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Draft polite follow-ups for emails that never got a reply

Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.

Aurinko
Google Sheets
Slack Bot
Agentic Task

Stop chasing offer letters by hand.

Move a candidate to the offer stage and let the paperwork, the tracker, and the team update take care of themselves.