# 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.

- Workflow type: code
- Services: Workable, Docusign, Google Sheets, Slack Bot
- Categories: HR & People, Operations
- Published: 2026-08-10

## What it does

- 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 you'll need

- 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

## Prompt

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.

## How to customize

- 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

## Example output

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

## FAQ

### 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.

Use this prompt in General Input: https://www.generalinput.com/prompts/send-workable-offer-letters-for-signature-automatically