Connect Greenhouse → SwiftLynx (5-minute setup)

SwiftLynx automatically analyzes new applications from Greenhouse and posts a summary to Slack.Most teams complete setup in ~5 minutes — just follow the steps below.

TL;DR (recommended)

  1. In SwiftLynx → Account → Manage ATS integrations, choose Greenhouse, paste your Slack Webhook URL, click Create.
  2. Click Connect Greenhouse to start OAuth authorization. You'll be redirected to Greenhouse to authorize SwiftLynx. Click Authorize.
  3. SwiftLynx automatically creates the webhook in Greenhouse. You'll be redirected back to SwiftLynx.
  4. Submit a test application in Greenhouse → you should see a Slack summary, and the analysis note and match score tag will be added to the candidate's profile in Greenhouse. 🎉
Start setup in SwiftLynx

Step 1 — In SwiftLynx: Create a Greenhouse Integration

Go to Account → Manage ATS integrations, make sure sign in first. Fill the form:

  • Provider: Greenhouse
  • Label (optional): e.g., Acme Inc · Sandbox
  • Slack Webhook URL (optional): If you want to receive Slack notifications for candidate analysis results, paste your Slack incoming webhook URL here. How to create a Slack incoming webhook.
SwiftLynx Integrations form with Greenhouse selected

Click Create. A new Greenhouse integration will appear in the table below.

SwiftLynx integration created with Connect Greenhouse button

Click Connect Greenhouse to start the OAuth authorization. You'll be automatically redirected to Greenhouse's authorization page.

Step 2 — In Greenhouse: Authorize SwiftLynx

After clicking Connect Greenhouse in SwiftLynx, you'll be redirected to Greenhouse's OAuth authorization page.

  1. Sign in to Greenhouse: If you're not already signed in, you'll need to sign in to your Greenhouse account using your email and password.
  2. Review permissions: SwiftLynx requests access to:
    • Create webhooks
    • Update webhooks
    • Destroy webhooks
    • List webhooks
    • Update custom field options
    • Destroy candidate tags
    • Create candidate tags
    • Update candidates
    • Update custom fields
    • Update applications
    • List applications
    • List attachments
    • List candidate tags
    • List candidates
    • List custom field options
    • List custom fields
    • List departments
    • List job interview stages
    • List job posts
    • List jobs
    • List offices
    • Destroy applied candidate tags
    • Create applied candidate tags
    • Create notes
    • List applied candidate tags
    • List notes
  3. Click Authorize: This authorizes SwiftLynx to access your Greenhouse data and completes the connection.
Greenhouse authorization page showing permissions and Authorize button

Note: If you see an "access denied" error, make sure you're using a Greenhouse account with the necessary permissions. SwiftLynx verifies that the authorized account is valid before completing the connection.

Step 3 — Automatic Webhook Setup

After you authorize SwiftLynx in Greenhouse, the following happens automatically:

  • SwiftLynx receives OAuth tokens from Greenhouse
  • SwiftLynx automatically creates a webhook in Greenhouse for the Candidate has submitted application event
  • You're redirected back to SwiftLynx with your integration ready to use

✨ No manual webhook configuration needed! Unlike other integrations, Greenhouse uses OAuth and automatic webhook creation, so you don't need to manually copy URLs or tokens.

You can verify the webhook was created by navigating to Greenhouse → Configure → Dev Center → Webhooks.

In Greenhouse, click the "Configure" button in the top navigation bar.

Greenhouse Configure page showing Dev Center in the left sidebar

In the left sidebar, click "Dev Center" to open the Dev Center page.

Greenhouse Dev Center page showing Webhooks in the left sidebar

In the Dev Center left sidebar, click "Webhooks" (first click). This will display the Webhooks section in the main content area on the right.

In the main content area on the right, you'll see the "Webhooks" title. Click on "Webhooks" in the content area (second click) to view your created webhooks list.

Greenhouse Webhooks page showing the created SwiftLynx Integration webhook

You should see:

  • A webhook named "SwiftLynx Integration" or similar (with an integration ID)
  • The webhook event type set to Candidate has submitted application
  • A webhook URL pointing to SwiftLynx (format: https://preview.swiftlynx.ai/api/ats/webhook/v2/greenhouse/[integration-id])
  • The webhook status should be active (not deactivated)

Step 4 — Configure Job Monitoring (Optional)

After creating your integration and verifying the connection, you can configure which jobs to monitor and set custom score thresholds.

In your SwiftLynx integrations list, find your Greenhouse integration and click the "Monitor Jobs" button.

SwiftLynx integration with Monitor Jobs button highlighted
Greenhouse Job Monitoring configuration modal

In the job monitoring configuration modal, you can:

  • Job Selection: Choose which specific jobs to monitor (by default, all jobs are monitored). Uncheck jobs you don't want to monitor.
  • Slack Channel (optional): Configure individual Slack channels for each job. Leave empty to use the default integration Slack webhook.
  • Score Thresholds: Set custom score thresholds for Slack notifications (0-100). By default, the score threshold is 80. Notifications will be sent for candidates scoring above this threshold.
  • Save Configuration: Click "Save Configuration" to apply your settings.

Dynamic Updates: Rankings update automatically as new applications come in.

Using the Integration

Once your integration is set up, SwiftLynx can analyze candidates in two ways:

Automatic Analysis (Single Candidate)

When a new application is submitted in Greenhouse, SwiftLynx automatically analyzes the candidate via webhook. Within moments, SwiftLynx will:

  • Analyze the candidate's resume against the job requirements
  • Add a detailed analysis note to the candidate's profile in Greenhouse
  • Add a tag to the candidate indicating the match score (e.g., "✅ SwiftLynx: Strong Match (80-89pts)")
  • Send a Slack message with the analysis summary and a link to the full report

To test: Submit a test application in Greenhouse. Then check:

  • In Greenhouse: Go to the candidate's profile and check the NOTES section. You should see a note titled "SwiftLynx AI Analysis" with the complete analysis.
  • In Greenhouse: You should also see a tag on the candidate's profile indicating the match score.
  • In Slack: You should receive a message with the analysis summary.
Greenhouse candidate profile showing SwiftLynx AI Analysis note
Greenhouse candidate profile showing match score tag

Example Slack message:

Application analyzed (greenhouse)
Candidate: Jane Doe
Job: Engineering Manager
Match score: 65/100
Match Level: Review Needed
Rank: 49 out of 49

Strengths:
- Extensive leadership experience
- Strong background in platform reliability
- Experience with global teams

Concerns:
- Lacks specific experience in writing job descriptions
- No direct mention of mentoring experience
- Unclear motivation for the specific role

Recruiter Recommendation:
Consider for interview if mentoring and job description writing can be developed.

Score Explanation:
The candidate has extensive experience in engineering leadership and platform reliability but lacks specific experience in writing job descriptions and mentoring.

Summary:
Jane Doe has a strong background in engineering leadership with 17 years of experience, particularly in platform reliability and managing global teams. However, the resume does not highlight specific experience in writing job descriptions or mentoring, which are key requirements for the role. If Swift can demonstrate these skills or is open to developing them, they could be a valuable asset to the team. An interview could further assess their fit for the role and motivation for joining the company.

View Profile
View Full Report: Click here to view detailed analysis

Bulk Import (Multiple Candidates)

You can use the Bulk Import feature to analyze multiple historical candidates at once for any job. This is useful for analyzing existing candidates in Greenhouse before new applications start coming in.

In your SwiftLynx integrations list, find your Greenhouse integration and click the "Bulk Import" button.

SwiftLynx integration with Bulk Import button highlighted

In the Bulk Import modal:

  1. Select a job posting from the dropdown menu
  2. Click "Start Import" to begin analyzing all candidates associated with that job
Bulk Import modal showing job selection and Start Import button

SwiftLynx will analyze all candidates associated with the selected job and create a consolidated report. After clicking Start Import, a progress window will open showing the analysis progress. Once the import completes, you'll see "Import Completed!" with a link to view the full report.

After the bulk import completes, each candidate will have:

  • A detailed analysis note in their Greenhouse profile (in the NOTES section)
  • A match score tag on their profile
  • Their analysis included in the consolidated report (accessible via the report link in Slack or at the end of the analysis note in Greenhouse)

Reconnecting Your Integration

SwiftLynx automatically refreshes your OAuth access token when it expires. However, you may need to manually reconnect in the following situations:

  • Refresh token expired: If your refresh token expires, you'll need to reconnect to get a new refresh token.
  • Token revoked: If you revoke access in Greenhouse's settings, or if Greenhouse invalidates your tokens, you'll need to reconnect.
  • Refresh failed: If automatic token refresh fails for any reason, you may need to reconnect.

Important: Greenhouse webhooks use a separate secret_key for authentication, which is independent of the OAuth token. This means webhooks can still be received even if the OAuth token expires.

However, to actually analyze candidates and add results to Greenhouse, SwiftLynx needs a valid OAuth token to:

  • Read candidate resumes from Greenhouse
  • Read job descriptions from Greenhouse
  • Add analysis notes and tags to Greenhouse candidate profiles

SwiftLynx automatically refreshes OAuth access tokens when they expire. The refresh mechanism includes automatic retries for network errors and temporary API issues.

However, if the refresh token itself expires, or if you revoke access in Greenhouse, webhooks will still be received, but candidate analysis will not complete until you reconnect the integration.

To reconnect your integration:

  1. Go to SwiftLynx → Account → Manage ATS integrations
  2. Find your Greenhouse integration and click Reconnect Greenhouse
  3. You'll be redirected to Greenhouse to re-authorize SwiftLynx
  4. After authorization, your integration will be updated with fresh tokens

Troubleshooting

  • No Slack message? Verify the Slack webhook URL is correct/active. Check Account → Manage ATS integrations → Greenhouse for error logs and that your account has credits.

  • OAuth authorization failed? Make sure you're using a Greenhouse account with the necessary permissions. If you see "access denied", try selecting a different account or contact your Greenhouse administrator.

  • Webhook not created? Check that you have the necessary permissions in Greenhouse. The integration requires Partner OAuth permissions to create webhooks. If the webhook creation fails, you can manually create it in Greenhouse Dev Center using the webhook URL shown in your integration settings.

  • Not receiving notifications for some jobs? Check your job monitoring configuration. By default, all jobs are monitored with a default score threshold of 80 (candidates scoring 80 or above will trigger notifications). You can exclude specific jobs or set custom score thresholds for individual jobs.

  • Bulk import not working? Ensure you have sufficient credits and that the job is properly configured in your monitoring settings. Bulk imports work best with jobs that have detailed descriptions.

  • Token expired? Click Reconnect Greenhouse on your Greenhouse integration to refresh the OAuth tokens. This will redirect you to Greenhouse to re-authorize SwiftLynx.

Need help? Email support@swiftlynx.ai.

OAuth tokens are encrypted at rest. Webhooks are automatically managed and verified with HMAC signatures.