Texting, powered by Paylocity + Grayscale

Grayscale's conversational recruiting platform helps employers engage candidates through texting, bulk messaging, automated communication, and AI-powered recruiting workflows that keep candidates informed and excited throughout the hiring process. Grayscale makes it easy to text candidates directly from within Greenhouse Recruiting while automating repetitive hiring tasks to help recruiters move faster and stay focused on high-value work.

Grayscale's integration with Greenhouse Recruiting combines powerful candidate messaging with advanced AI capabilities. Together, these tools help recruiting teams streamline hiring, reduce manual effort, and deliver a faster, more personalized candidate experience.

Note: Texting, powered by Grayscale is a built-in integration that allows you to text candidates from Greenhouse Recruiting. If you purchased a product directly from Grayscale, use this article to set up your integration.

Configure the Paylocity + Grayscale integration

While logged in with a Paylocity + Grayscale admin account, click Settings

Paylocity + Grayscale Settings menu

Click Integrations

Paylocity + Grayscale Integrations menu

Select Greenhouse and click Edit

Greenhouse integration card with Edit button

Click Edit Credentials

Edit Credentials button

Select Recruiting, then select Next

Recruiting product selection screen

Click Connect to Greenhouse

Connect to Greenhouse button

Scroll down, enter your Greenhouse email, and click Login to Greenhouse

Greenhouse login screen

Confirm the requested permissions and choose an authorization method. We recommend authorizing using a service account. For more on authorization methods, see Connect to Harvest v3 partner integrations.

Requested permissions and authorization method screen

Review the success confirmation

Success confirmation screen

Webhooks are automatically registered as part of this process but will remain paused until all historical fetchers are complete. Webhooks will automatically enable at that point.

READS (Greenhouse → Grayscale)

Object Greenhouse field Grayscale mapping
Candidate id Internal candidate reference ID
Candidate first_name, last_name Candidate name
Candidate email_addresses[].value Candidate email(s)
Candidate phone_numbers[].value, .type Candidate phone(s)
Candidate website_addresses[].value, .type Candidate URL(s)
Candidate company, title Candidate company / title
Candidate tags Candidate tags
Candidate custom_fields (consent field) SMS consent state
Candidate last_activity_at, updated_at, created_at Candidate timestamps
Job Application id Internal application reference ID
Job Application candidate_id Candidate reference
Job Application job_id Job requisition reference
Job Application stage_id, stage_name Job stage
Job Application status (in_process/converted/rejected/hired) Application status
Job Application created_at, rejected_at, updated_at Application timestamps
Job Application reject_reason.name Reject reason
Job Application answers[].question, .answer Question/answer pairs
Job Requisition id, requisition_id Internal job reference ID / code
Job Requisition name Job name
Job Requisition status (open/closed) Job status
Job Requisition departments[].id, .name Department(s)
Job Requisition offices[].id, .name, .location Office(s)
Job Requisition hiring_team[].user_id, .type, .responsible Hiring team roles
Job Requisition custom_fields['brand'] Brand metadata
Job Requisition created_at, updated_at Job timestamps
Job Post id, job_id Internal job post reference ID
Job Post title, content, internal_content Job post content
Job Post internal, live, active Post visibility/status
Job Post questions[].label, .answer_type, .required, .private, .options Application questions
Job Stage id, job_id Internal job stage reference ID
Job Stage name, sort_order Stage name / order
Job Interview id, application_id, job_id Internal interview reference ID
Job Interview location, status Interview location / status
Job Interview starts_at/all_day_start_on, ends_at/all_day_end_on Interview start/end time
Job Interview organizer/interviewer id, first_name, last_name, primary_email Interview participants
Remote User id Internal user reference ID
Remote User first_name, last_name, primary_email User identity
Remote User deactivated Disabled flag
Remote User created_at, updated_at User timestamps
Offer id, application_id Internal offer reference ID
Offer status (Created/Accepted/Rejected/Deprecated) Offer status
Offer created_at, resolved_at Offer timestamps
Prospect Pool Membership candidate id, tags Candidate prospect pool tags

WRITES (Grayscale → Greenhouse)

Action Grayscale input Greenhouse field
Create Candidate (POST /candidates) first_name, last_name first_name, last_name
Create Candidate (POST /candidates) email email_addresses[].value (type: personal)
Create Candidate (POST /candidates) phone_number phone_numbers[].value (type: mobile)
Create Candidate (POST /candidates) tag_labels tags
Create Candidate (POST /candidates) consent state custom_fields[] (by custom_field_id or name_key)
Create Candidate (POST /candidates) job_req_ids application.job_ids
Create Candidate (POST /candidates) source_id application.source_id
Create Candidate (POST /candidates) prospect flag application.prospect (always true)
Add Employment History (POST /candidate_employments) candidate_id, company, title, start_date, end_date candidate_id, company_name, title, start_date, end_date (dates as YYYY-MM-DD)
Add Attachment (POST /attachments) resume file name + content application_id, filename, type (resume), content
Publish Note / Transcript (POST /notes) conversation transcript body candidate_id, body, note_type (NOTE), visibility (public), user_id

Use the Paylocity + Grayscale integration

The Grayscale integration allows you to text candidates directly within Greenhouse Recruiting via the Chrome extension. The extension works on sourcing sites like LinkedIn as well.

Text candidates

With the extension open, click the g icon on the right of your screen. This allows you to start texting with the candidate.

Grayscale extension is highlighted on the right side of the page in a marigold emphasis box

If the candidate is not recognized within Grayscale, you can seamlessly add them to Grayscale. Grayscale automatically pulls in name, cell phone number, and email address, so all you need to do is click Save.

To access your full inbox, click on the Menu icon and select Inbox.

When texting, your conversation history will automatically be imported into the candidate's Activity Feed in Greenhouse Recruiting.

Note: To ensure the full communication is organized together in one Activity Feed note, Grayscale imports the entire conversation one hour after the last message is sent or received.

Bulk messaging

To send text messages in bulk, search open jobs in Greenhouse Recruiting directly from the Grayscale Chrome extension. Grayscale will provide you with a list of relevant candidates to message.

For example, if you want to message all candidates at the phone interview stage of an open job, simply search for the job in the Grayscale extension, and select the stage.

Opt-in consent for application-to-person (A2P) messaging

Application-to-person (A2P) messaging allows organizations to send messages to standard 10-digit long code (10DLC) phone numbers.

New texting regulations for A2P 10DLC require candidates expressly opt in when applying for jobs to receive A2P communications. If a candidate opts out, these messages will be blocked.

To obtain this opt-in consent in Greenhouse Recruiting, create a custom application question using Yes / No as the configured answer type, and then apply this question to your job posts in bulk.

Once created, you can report on candidate application responses to locate the consent status.

To learn more about working with A2P 10DLC regulations in Greenhouse Recruiting, reach out to your Customer Success manager or open a ticket with Greenhouse Technical Support.

Frequently asked questions

Where do I download the Chrome extension?

Download the extension here.

I downloaded the Chrome extension, and the Grayscale tab is not showing up.

First, verify that you're using the Chrome browser, then try refreshing the page. If this doesn't resolve the issue, make sure you're on a supported website such as Greenhouse Recruiting or LinkedIn. If you're not on Greenhouse Recruiting, navigate to Greenhouse Recruiting, refresh the page, and try again. If the issue persists, clear your cache / cookies and restart Chrome.

My texting history is not displaying on the candidate Activity Feed.

Grayscale updates the candidate's Activity Feed one hour after the latest text message was sent or received for that candidate. This ensures your entire conversation is organized within the same note in the Activity Feed. If it's been longer than an hour, try refreshing the candidate's profile in Greenhouse Recruiting.

Where can I get more resources?

For additional support using the Grayscale integration, check out their FAQ.

Additional resources

For additional information not covered here, reach out to Support@grayscaleapp.com.