Skip to main content
This tutorial walks through connecting the integrations most teams configure after the first install: calendar sync, email with inbound replies, team notifications, and offer signing. Complete the quickstart and first-hire tutorial before starting.

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
Each integration is independent. You can complete them in any order or skip ones you do not need.

Before you begin


Part 1 — Google Calendar

1.1 Create the OAuth client

In Google Cloud Console:
  1. Create or select a project.
  2. Enable Google Calendar API under APIs & Services.
  3. Configure the OAuth consent screen. For an internal tool, choose Internal. For production connecting external accounts, choose External and submit for verification.
  4. Add test users while the app is in Testing status.
  5. Go to Credentials → Create credentials → OAuth 2.0 Client ID.
  6. Choose Web application and register the redirect URI:
  7. Copy the Client ID and Client Secret.

1.2 Add installation variables

Add both values to your server environment and restart Harly:
On a VPS deployment, edit .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

  1. Create a Resend account and verify your sending domain.
  2. Create an API key.
  3. Open Settings → Email → Outbound in Harly and choose Resend.
  4. Paste the API key and set the sender identity:
    • Sender name: Hiring Team
    • Sender email: recruiting@example.com
  5. 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:
Never use a production candidate address for testing.

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.
Do not send resumes, candidate email, phone numbers, or full notes to a Slack channel. Harly sends only an event summary with a link back to Harly.

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.
For remote signing with a third-party provider, see signatures for DocuSeal setup.

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.