What you will do
- Connect a Google Calendar for interview scheduling
- Configure outbound email and inbound reply routing
- Set up Slack notifications for recruiting events
- Enable Harly Signing for offer documents
Before you begin
Part 1 — Google Calendar
1.1 Create the OAuth client
In Google Cloud Console:- Create or select a project.
- Enable Google Calendar API under APIs & Services.
- Configure the OAuth consent screen. For an internal tool, choose Internal. For production connecting external accounts, choose External and submit for verification.
- Add test users while the app is in Testing status.
- Go to Credentials → Create credentials → OAuth 2.0 Client ID.
-
Choose Web application and register the redirect URI:
- Copy the Client ID and Client Secret.
1.2 Add installation variables
Add both values to your server environment and restart Harly:.env in the installation directory and run:
1.3 Connect the workspace
1
Open the integration
Sign in as an owner and open Settings → Integrations → Google Calendar.
2
Authorize
Select Connect, sign in with the Google account that can edit the
interview calendar, and approve the Calendar permissions.
3
Select a calendar
Choose a writable calendar from the list. Save.
4
Test
Select Test connection. Schedule a test interview from any application
and verify the event and Meet link appear on the calendar.
Common errors
Part 2 — Email
2.1 Outbound with Resend
- Create a Resend account and verify your sending domain.
- Create an API key.
- Open Settings → Email → Outbound in Harly and choose Resend.
- Paste the API key and set the sender identity:
- Sender name:
Hiring Team - Sender email:
recruiting@example.com
- Sender name:
- Select Send test and confirm delivery to a controlled mailbox.
2.1 Outbound with SMTP
If you prefer SMTP, open Settings → Email → Outbound → SMTP and enter:2.2 Inbound replies
Inbound replies let candidate responses thread back onto the application record automatically.1
Configure the receiving domain
In Settings → Email → Inbound, enter only the hostname — not a URL:Add the provider’s MX records for this hostname. For Resend inbound,
follow their inbound email guide.
2
Register the Harly webhook
Point the provider webhook to:Include the workspace inbound secret shown in the settings screen.
3
Verify
Reply to a test candidate message from an external account. Confirm the
reply appears in the application thread under the candidate’s name within
one minute.
Common errors
Part 3 — Slack notifications
1
Create a Slack app
In api.slack.com/apps, create an app for
your workspace and add the redirect URI:Copy the Client ID and Client Secret.
2
Add installation variables
Add both values to your server environment and restart for a
self-hosted/single-tenant deployment. Multi-tenant operators may enter
encrypted credentials per workspace in the Slack settings card:
3
Connect the workspace
Open Settings → Integrations → Slack, select Connect, and approve
the Slack authorization. Choose the channel where recruiting notifications
should appear. Invite the Harly bot to the destination channel first;
Harly lists only channels where the bot can post.
4
Test
Select Send test notification. Confirm the message appears in the channel.
5
Choose events
Enable the events you want — for example application received, stage change,
or offer accepted. Keep channel volume manageable; most teams enable only
the highest-signal events.
Part 4 — Harly Signing
Harly Signing is built in and requires no external account. Configure it in Settings → Signature.1
Enable signing
Open Settings → Signature → Harly Signing and toggle it on.
2
Configure sender details
Set the organization name and the email address that appears on signing
requests.
3
Test with an offer
Create a test offer on a test application. Place a signature field and date
field, then send to a test email address. Open the signing link from the
email, complete the signature, and confirm the offer state updates to
Signed in Harly.
Verification checklist
Google Calendar: test interview creates event and Meet link.
Outbound email: test message arrives in controlled mailbox.
Inbound email: test reply threads back onto the application.
Slack: test notification appears in the configured channel.
Signing: test offer reaches Signed state from the offer record.
Next steps
Video providers
Connect Zoom, Teams, Meet, or Jitsi.
Storage
Configure S3 for durable file storage.
Notifications
Add Discord or Telegram alongside Slack.
Operations
Health checks, backups, and upgrades.