Skip to main content

Greenhouse

This page contains the setup guide and reference information for the Greenhouse source connector.

Prerequisites​

The connector reads the Greenhouse Harvest v3 API, which supports two authentication methods. Choose the one that matches your Airbyte deployment and where your credential comes from.

OAuth​

OAuth (Authorization Code) authenticates through Airbyte's registered Greenhouse partner application. You don't create, request, or register a Greenhouse OAuth application of your own: Greenhouse issues partner credentials only to integration partners, not to Greenhouse customers, and Airbyte supplies the client ID and client secret during the consent flow. Because the consent flow relies on Airbyte's partner credentials, this method is available only in Airbyte Cloud.

To set up the source with OAuth, you need:

  • An Airbyte Cloud workspace.
  • A Greenhouse user who is a Site Admin to approve the consent flow.

Client Credentials​

Client Credentials authenticates with a Harvest V3 (OAuth) custom integration credential that you create in Greenhouse. Use this method on self-managed Airbyte, or in Airbyte Cloud when you want to connect with your own credential instead of Airbyte's partner application.

To set up the source with Client Credentials, you need:

  • Access to Configure > Dev Center > API Credential Management in Greenhouse. Click Create new API credentials, select Harvest V3 (OAuth), save the credential, and then grant it the scopes listed below. Greenhouse gives you a client ID and a client secret; copy both into the source.
  • Optionally, the numeric Greenhouse user ID of a Site Admin. Greenhouse creates an integration service user for every custom credential, and by default the connector makes requests as that user, which can read every Harvest v3 list endpoint. Enter a user ID as the Site Admin user ID only if you want requests attributed to a specific person instead; Greenhouse denies the list endpoints to any user who isn't a Site Admin.

Scopes​

Both methods need the same scopes. With OAuth, the consent flow requests them; approve all of them. With Client Credentials, grant them to the credential in Greenhouse:

  • harvest:application_stages:list
  • harvest:applications:list
  • harvest:applied_candidate_tags:list
  • harvest:approval_flows:list
  • harvest:approver_groups:list
  • harvest:approvers:list
  • harvest:attachments:list
  • harvest:candidate_educations:list
  • harvest:candidate_employments:list
  • harvest:candidate_tags:list
  • harvest:candidates:list
  • harvest:close_reasons:list
  • harvest:custom_field_options:list
  • harvest:custom_fields:list
  • harvest:demographic_answer_options:list
  • harvest:demographic_answers:list
  • harvest:demographic_question_sets:list
  • harvest:demographic_questions:list
  • harvest:departments:list
  • harvest:eeoc:list
  • harvest:email_templates:list
  • harvest:interview_kits:list
  • harvest:interviewer_tags:list
  • harvest:interviewers:list
  • harvest:interviews:list
  • harvest:job_hiring_managers:list
  • harvest:job_interview_stages:list
  • harvest:job_interviews:list
  • harvest:job_owners:list
  • harvest:job_posts:list
  • harvest:jobs:list
  • harvest:notes:list
  • harvest:offers:list
  • harvest:offices:list
  • harvest:openings:list
  • harvest:prospect_details:list
  • harvest:prospect_pool_stages:list
  • harvest:prospect_pools:list
  • harvest:referrers:list
  • harvest:rejection_details:list
  • harvest:rejection_reasons:list
  • harvest:scorecard_candidate_attributes:list
  • harvest:scorecard_questions:list
  • harvest:scorecards:list
  • harvest:sources:list
  • harvest:user_emails:list
  • harvest:user_job_permissions:list
  • harvest:user_roles:list
  • harvest:users:list

Harvest v3 rejects requests to its list endpoints from any user who isn't a Site Admin or a custom integration's service user, and the connector fails the sync with a configuration error. A missing scope produces the same failure for the streams that depend on it, so grant every scope in the list unless you plan to leave the corresponding streams disabled. Grant harvest:users:list in every case: the connection check reads the users stream, so the source fails to set up without it even if you never sync that stream.

With OAuth, Greenhouse ties the scopes to the refresh token it issued when you approved the consent flow. If you set up the source with OAuth before version 1.2.0, your token doesn't include the 20 scopes that version added, and enabling any of the streams added in 1.2.0 fails with a 403 error until you open the source settings, click Authenticate, and approve the consent flow again. Streams you already sync keep working without re-authenticating.

Set up the Greenhouse connector in Airbyte​

  1. Log into your Airbyte Cloud account or open your self-managed Airbyte instance.
  2. Click Sources and then click + New source.
  3. On the Set up the source page, select Greenhouse from the Source type dropdown.
  4. Enter the name for the Greenhouse connector.
  5. Under Authentication, select OAuth or Client Credentials.
    • For OAuth (Airbyte Cloud only), click Authenticate, sign in to Greenhouse as a Site Admin, and approve the requested scopes. Airbyte fills in its partner application's client ID and client secret and stores the resulting refresh token. You don't enter any Greenhouse credentials yourself.
    • For Client Credentials, enter the custom integration credential's Client ID and Client secret. Leave Site Admin user ID blank unless you want the connector to make requests as a specific Site Admin instead of the credential's integration service user.
  6. Optionally enter a Start date in UTC using the format YYYY-MM-DDTHH:MM:SSZ. Records updated before this date will not be replicated. If omitted, the connector replicates all history.
  7. Optionally change Number of concurrent threads. The connector syncs with 2 threads by default and accepts 1 to 8. All threads share one Greenhouse rate limit, so raise this only if your Greenhouse account can absorb more API traffic, and lower it to 1 if syncs fail with rate-limit errors.
  8. Click Set up source.
warning

If you use OAuth, sync more often than once a day. Greenhouse refresh tokens expire after approximately 24 hours of non-use and rotate on every refresh, so a connection left paused, turned off, or failing for more than 24 hours requires re-running the consent flow from the source settings. See Troubleshooting for the error this produces. Client Credentials has no refresh token, so this doesn't apply to it.

Supported sync modes​

The Greenhouse source connector supports the following sync modes:

Start date filters the Greenhouse request, not the sync. Every stream the table below marks as incremental sends updated_at=gte|<start date> on each sync, including a sync you configure as Full refresh, so a full refresh of those streams returns only records updated on or after your start date. Leave Start date empty to replicate all history.

Incremental streams re-read a one-hour lookback window before the saved cursor on each sync, so records updated shortly before the previous sync finished aren't missed. With Incremental - Append, this can produce duplicate records in your destination; use Incremental - Append + Deduped, if your destination supports it, to keep only the latest version of each record.

Supported Streams​

When you create a new connection, Airbyte enables 10 streams by default: applications, candidates, jobs, job_posts, offers, interviews, scorecards, users, departments, and offices. Enable any of the other streams in the connection's stream list.

The table lists the stream names as they appear in Airbyte, with the Harvest v3 endpoint each one reads. Start date applies to every stream marked incremental here, in whichever sync mode you select it, and to no others. Only the four demographics question and answer-option streams are full refresh, because Harvest v3 exposes no date filter on /v3/demographic_questions or /v3/demographic_answer_options; they always read everything the endpoint returns, and the two child streams among them pull parent IDs over your full Greenhouse history, so their coverage doesn't depend on Start date either.

StreamSync modeNotes
activity_feedIncremental (updated_at)Notes across all candidates
application_stagesIncremental (updated_at)Stage history per application, with time in stage. One row per application per stage entered
applicationsIncremental (updated_at)
applied_candidate_tagsIncremental (updated_at)Candidate-to-tag assignments; tags on its own is only the dictionary
approvalsIncremental (updated_at)
approver_groupsIncremental (updated_at)The steps of an approval chain, per approval flow
approversIncremental (updated_at)Individual approvers and their status within a group
attachmentsIncremental (updated_at)One file per application. url is a download link Greenhouse expires after seven days
candidate_educationsIncremental (updated_at)School, degree and discipline history per candidate
candidate_employmentsIncremental (updated_at)Employer and title history per candidate
candidatesIncremental (updated_at)
close_reasonsIncremental (updated_at)
custom_field_optionsIncremental (updated_at)Every custom field option in the account
custom_fieldsIncremental (updated_at)
degreesIncremental (updated_at)Custom field options for the degree field
demographics_answer_optionsFull refresh
demographics_answersIncremental (updated_at)
demographics_answers_answer_optionsFull refreshAnswer options for each question in demographics_questions
demographics_question_setsIncremental (updated_at)
demographics_question_sets_questionsFull refreshQuestions in each set in demographics_question_sets
demographics_questionsFull refresh
departmentsIncremental (updated_at)
disciplinesIncremental (updated_at)Custom field options for the discipline field
eeocIncremental (submitted_at)
email_templatesIncremental (updated_at)
interview_kitsIncremental (updated_at)Kit content per job interview. exercises is the live value and may contain HTML
interviewer_tagsIncremental (updated_at)The interviewer tag dictionary
interviewersIncremental (updated_at)One row per panel member on a scheduled interview
interviewsIncremental (updated_at)
job_hiring_managersIncremental (updated_at)One row per hiring manager on a job
job_interviewsIncremental (updated_at)The interview plan for each job stage
job_ownersIncremental (updated_at)Recruiter, sourcer and coordinator per job, with a responsible flag
job_postsIncremental (updated_at)Includes deleted posts
job_stagesIncremental (updated_at)
jobsIncremental (updated_at)
jobs_openingsIncremental (updated_at)Openings across all jobs
offersIncremental (updated_at)
officesIncremental (updated_at)
prospect_detailsIncremental (updated_at)Pool, stage and owner per prospect application
prospect_pool_stagesIncremental (updated_at)The stage dictionary for each prospect pool
prospect_poolsIncremental (updated_at)
referrersIncremental (updated_at)Referral attribution per candidate
rejection_detailsIncremental (updated_at)Reason, rejecter and note per rejected application
rejection_reasonsIncremental (updated_at)Includes the reasons Greenhouse ships with
schoolsIncremental (updated_at)Custom field options for the school_name field
scorecard_candidate_attributesIncremental (updated_at)One row per rated attribute on each scorecard
scorecard_questionsIncremental (updated_at)The question dictionary behind scorecards, defined per interview kit
scorecardsIncremental (updated_at)
sourcesIncremental (updated_at)
tagsIncremental (updated_at)Candidate tags
user_emailsIncremental (updated_at)Every email address per user; users.primary_email is only one of them
user_permissionsIncremental (updated_at)Job permissions across all users
user_rolesIncremental (updated_at)
usersIncremental (updated_at)Includes integration service users

Streams added in 1.2.0​

Version 1.2.0 added these 20 streams, all incremental on updated_at. They carry the detail that Harvest v1 embedded on its parent records and Harvest v3 serves from separate endpoints:

application_stages, applied_candidate_tags, approver_groups, approvers, attachments, candidate_educations, candidate_employments, interview_kits, interviewer_tags, interviewers, job_hiring_managers, job_interviews, job_owners, prospect_details, prospect_pool_stages, referrers, rejection_details, scorecard_candidate_attributes, scorecard_questions, user_emails

All 20 are disabled by default on new and existing connections. Each one needs its own Harvest v3 scope, so on a source you authorized before 1.2.0, re-run the consent flow before enabling any of them. See Prerequisites.

Streams that became incremental in 1.1.0​

These 18 streams were full refresh before 1.1.0 and are now incremental on updated_at:

activity_feed, approvals, close_reasons, custom_field_options, custom_fields, degrees, demographics_question_sets, departments, disciplines, jobs_openings, offices, prospect_pools, rejection_reasons, schools, sources, tags, user_permissions, user_roles

This isn't a breaking change. Schemas, primary keys, and your existing sync modes are unchanged, and there was no stream state to migrate, so no action is required and connections keep syncing.

One behavior does change: Start date now applies to these 18 streams, in every sync mode. Earlier versions sent no date filter on them and read your full Greenhouse history whatever Start date said. If you have a start date set, these streams now return only records updated on or after it - on full refresh as well as incremental, because the filter is part of the Greenhouse request rather than something applied to the sync. On a Full refresh | Overwrite connection that also removes the older rows from the destination table, because each sync replaces the table with what it read; on append and append + deduped connections the existing rows stay put and simply stop being refreshed. Clear Start date if you want these streams to keep reading full history, then refresh them.

Performance considerations​

Greenhouse rate limits Harvest v3 in fixed 30-second windows. Each response reports your remaining allowance in X-RateLimit-Remaining and the time the current window resets in X-RateLimit-Reset. Greenhouse doesn't publish a fixed request ceiling for Harvest v3, and it applies different allowances to custom and partner integrations, so the connector holds itself to a conservative 50 requests per window, tracks those headers, and waits for the Retry-After interval when Greenhouse returns 429. Because every thread draws on the same window, syncing many streams at a high Number of concurrent threads is a common cause of rate-limit errors. Lower that value before creating an issue about rate limits.

The connector requests 500 records per page, the Harvest v3 maximum, and then follows the cursor links Greenhouse returns, so large accounts still page through many requests per stream.

Limitations​

  • job_posts includes job posts that were deleted in Greenhouse. Harvest v3 excludes deleted posts by default, and the connector requests both active and deleted posts. Filter on active downstream if you only want live posts.
  • eeoc replicates on submitted_at. A correction to an EEOC response after submission doesn't change submitted_at, so incremental syncs never re-read it. Refresh the stream if you need corrections to land.
  • custom_field_options reads every custom field option in your account, which makes it a superset of degrees, disciplines, and schools. Those three streams read the same Greenhouse endpoint filtered to one field key and share the same primary keys, so enabling all four writes the same option rows to four destination tables. Enable only the ones you need.
  • users includes integration service users, which Greenhouse hides by default. Service accounts have no email address, so primary_email is empty for those records.
  • rejection_reasons includes the default reasons Greenhouse ships with, not only the ones your organization added.
  • attachments returns a url for each file that Greenhouse expires after seven days, and it may redirect to a fresh short-lived file URL on each request. A replicated url stops working a week after the sync that wrote it; re-sync the stream to get current links.
  • application_stages has one row per application per stage entered, so it holds several times as many rows as applications. Enable it only if you need funnel or time-in-stage analysis.
  • candidate_educations references schools, degrees and disciplines by custom field option id (school_name_custom_field_option_id, degree_custom_field_option_id, discipline_custom_field_option_id), not by name. Join to schools, degrees, and disciplines to resolve them.
  • interviewers has one row per panel member per interview, so an interview appears once for each attendee. user_id is empty for external attendees who match no Greenhouse user; their address is in email instead.
  • scorecard_candidate_attributes has one row per rated attribute per scorecard, so it holds many more rows than scorecards.
  • interview_kits.exercises carries the live Interview Prep content and may contain HTML. The summary and instructions fields on job_interviews are snapshots taken when the slot was first added and do not track later edits; use exercises for the current text.
  • user_emails lists every address on a user, while users.primary_email carries one. Integration service users have no address at all, so they have no rows here.
  • approvers.send_auto_reminder_at is a date (YYYY-MM-DD), not a timestamp, despite the _at suffix every other Harvest v3 field uses for timestamps.
  • The 18 streams that became incremental in 1.1.0 now honor Start date, where before they always read full history. See Streams that became incremental in 1.1.0.

Troubleshooting​

Sync fails with a configuration error asking you to re-authenticate​

This section covers OAuth. If you use Client Credentials, see Client Credentials authentication fails.

The connector can't renew its access token because Greenhouse rejected the refresh token. Starting with version 1.0.1, the connector reports this as a configuration error instead of a system error. The Greenhouse error code in the sync log tells you what to fix:

  • invalid_grant: the refresh token expired or was invalidated. This happens when the connection hasn't synced for more than about 24 hours, or when another tool used the same refresh token, which causes Greenhouse to issue a new one that Airbyte never receives. Open the source settings, click Authenticate, and complete the consent flow again to store a new refresh token. Run the consent flow separately for each Airbyte source; don't reuse one refresh token across sources or other tools.
  • invalid_client or unauthorized_client: Greenhouse rejected the partner application credentials Airbyte used for the refresh, or that application isn't allowed to use the refresh token grant. Open the source settings, click Authenticate, and complete the consent flow again. If the error persists, contact Airbyte support; there are no credentials for you to correct on your side.

Client Credentials authentication fails​

With Client Credentials the connector requests a new access token from Greenhouse with your client ID and secret, and there's no refresh token to renew. The error message still says the refresh token was rejected and asks you to re-authenticate, because it's shared with OAuth. Use the Greenhouse error code at the end of the message instead:

  • invalid_client: Greenhouse doesn't recognize the client ID and client secret. Check both values against the credential in Configure > Dev Center > API Credential Management, and make sure the credential hasn't been revoked.
  • invalid_grant: the Site Admin user ID doesn't match a Greenhouse user. Correct it, or leave it blank to make requests as the credential's integration service user.

Sync fails with a 403 configuration error on a stream​

The authorizing user isn't a Site Admin, or the consent flow didn't include the scope for that stream. This is expected when you enable one of the streams added in 1.2.0 on a source you authorized before that version. Compare the scopes in Prerequisites with the ones you approved, then open the source settings, click Authenticate, and re-run the consent flow as a Site Admin. With Client Credentials, grant the missing scope to the credential in Greenhouse, and check that Site Admin user ID is blank or belongs to a Site Admin.

A stream returns fewer records after upgrading to 1.1.0​

1.1.0 made 18 streams incremental on updated_at, and Start date is applied as a Greenhouse query filter on those streams in every sync mode. If you have a start date set, records last updated before it are no longer returned - on incremental and full refresh alike. If the connection writes in Full refresh | Overwrite, those older rows are also deleted from the destination table on the first sync after the upgrade, so the gap shows up in your warehouse even though nothing failed. Earlier versions sent no date filter on these streams and ignored Start date for them entirely. Streams that became incremental in 1.1.0 lists them.

To read full history again, clear Start date in your source settings, then refresh the affected streams so the older records are written again.

Migration from Harvest v1 before the v1/v2 sunset​

Version 1.0.0 migrates the 33 streams carried over from 0.8.1 from Harvest v1 to Harvest v3 and adds the new custom_field_options stream, for 34 streams in total, because Greenhouse has scheduled the end of support for Harvest v1 and v2 together on 2026-08-31. It also replaces API-key authentication with OAuth Authorization Code authentication and introduces an optional Start date that preserves the previous full-history behavior when omitted. Version 1.3.0 added Client Credentials so that self-managed deployments, which can't use the OAuth consent flow, can authenticate with a credential you create in Greenhouse. We recommend creating a new connection on 1.0.0 rather than refreshing the existing one; see the upgrade paths before upgrading.

IP allow list​

If you use Airbyte Cloud and your organization restricts access to specific IPs, add the Airbyte Cloud IP addresses to your allow list.

Reference​

Config fields reference

Field
Type
Property name
object
credentials
integer
num_workers
string
start_date

Changelog​

Expand to review
VersionDatePull RequestSubject
1.3.02026-09-2485178Add client-credentials authentication for Greenhouse custom integrations and self-managed deployments.
1.2.02026-09-2186477Add 20 Harvest v3 detail streams - see Streams added in 1.2.0. The consent flow requests 20 new scopes; existing connections keep syncing unchanged, but enabling a new stream on a source authorized before 1.2.0 requires re-running the consent flow
1.1.02026-09-1785841Sync 18 previously full-refresh streams incrementally on updated_at. Not breaking, but Start date now applies to those 18 streams in every sync mode, including full refresh, where before they always read full history - see Streams that became incremental in 1.1.0. Also read activity_feed, jobs_openings, and user_permissions directly instead of once per 50 parents, and suggest 10 streams for new connections
1.0.32026-09-1585507Update dependencies
1.0.22026-09-0285306Clarify in the spec that OAuth credentials come from Airbyte's Greenhouse partner application and must not be requested from Greenhouse
1.0.12026-09-0285300Surface expired or rotated refresh tokens (invalid_grant) as a re-authenticate config error instead of a system error
1.0.02026-08-2884846Breaking migration from Harvest v1 to Harvest v3 with OAuth. See the migration guide.
0.8.12026-08-1884641Update dependencies
0.8.02026-08-1283811Send pagination page-size parameters only on first-page requests and use fully-qualified per-stream URLs in preparation for the Harvest v3 migration.
0.7.332026-08-1183956Update dependencies
0.7.322026-07-2883194Update to CDK 7.23.8 (fixes AirbyteCustomCodeNotPermittedError for bundled custom components) and remove the temporary Cloud version override
0.7.312026-07-281082Roll Cloud back to 0.7.29 — 0.7.30 is built on SDM 7.23.7, which breaks bundled custom components
0.7.302026-07-2882944Update dependencies
0.7.292026-07-2182444Update dependencies
0.7.282026-07-1481887Update dependencies
0.7.272026-06-3081129Update dependencies
0.7.262026-06-2380487Update dependencies
0.7.252026-06-1679888Update dependencies
0.7.242026-06-0979354Update dependencies
0.7.232026-06-0278766Update dependencies
0.7.222026-05-1578119Set the default concurrency to 2 and expose the number of concurrent threads as a user-configurable option.
0.7.22-rc.32026-05-1278052Reduce default_concurrency to 3 for concurrency tuning after rate-limit failures at higher settings.
0.7.22-rc.22026-05-0878006Concurrency tuning iteration: bump default_concurrency to 5
0.7.22-rc.12026-05-0677826Start concurrency tuning at default_concurrency=4 (Path A) and enable progressive rollout
0.7.212026-04-2877287Update dependencies
0.7.202026-04-2176637Update dependencies
0.7.192026-03-3175729Update dependencies
0.7.182026-03-1774919Update dependencies
0.7.172026-03-1074688Update dependencies
0.7.162026-03-0374176Update dependencies
0.7.152026-02-1073107Update dependencies
0.7.142026-02-0372661Update dependencies
0.7.132026-01-2071894Update dependencies
0.7.122026-01-1471700Update dependencies
0.7.112025-12-1870503Update dependencies
0.7.102025-11-2570056Update dependencies
0.7.92025-11-1869420Update dependencies
0.7.82025-10-2968823Update dependencies
0.7.72025-10-2168226Update dependencies
0.7.62025-10-1467896Update dependencies
0.7.52025-10-0767399Update dependencies
0.7.42025-09-3066408Update dependencies
0.7.32025-09-0965896Update dependencies
0.7.22025-08-2864973Update dependencies
0.7.12025-08-2665510Fix custom migrations to reference DeclarativeStream Pydantic model instead of runtime component
0.7.02025-07-0762830Promoting release candidate 0.7.0-rc.1 to a main version.
0.7.0-rc.12025-06-2947283Migrate to Manifest-only
0.6.12025-03-2253800Update dependencies
0.6.02025-03-1455774Promoting release candidate 0.6.0-rc.1 to a main version.
0.6.0-rc.12025-03-1454702Update to latest airbyte-cdk, remove custom cursors.
0.5.322025-02-0152724Update dependencies
0.5.312025-01-2551842Update dependencies
0.5.302025-01-1151214Update dependencies
0.5.292024-12-2850632Update dependencies
0.5.282024-12-2150109Update dependencies
0.5.272024-12-1449248Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64
0.5.262024-12-1248996Update dependencies
0.5.252024-10-2947110Update dependencies
0.5.242024-10-2347306Add 'job_post_id' to applications stream scehma
0.5.232024-10-1246828Update dependencies
0.5.222024-10-0546506Update dependencies
0.5.212024-09-2846159Update dependencies
0.5.202024-09-2145834Update dependencies
0.5.192024-09-1745625Change check stream
0.5.182024-09-1445476Update dependencies
0.5.172024-09-0745229Update dependencies
0.5.162024-08-3144755Update dependencies
0.5.152024-08-1744246Update dependencies
0.5.142024-08-1043595Update dependencies
0.5.132024-08-0343160Update dependencies
0.5.122024-07-2742816Update dependencies
0.5.112024-07-2042240Update dependencies
0.5.102024-07-1341787Update dependencies
0.5.92024-07-1041215Update dependencies
0.5.82024-07-1039601Move spec to manifest, fix readme
0.5.72024-07-0640882Update dependencies
0.5.62024-06-2540451Update dependencies
0.5.52024-06-2239968Update dependencies
0.5.42024-06-0639247[autopull] Upgrade base image to v1.2.2
0.5.32024-04-1936640Updating to 0.80.0 CDK
0.5.22024-04-1236640schema descriptions
0.5.12024-03-1235988Unpin CDK version
0.5.02024-02-2035465Per-error reporting and continue sync on stream failures
0.4.52024-02-0935077Manage dependencies with Poetry.
0.4.42023-11-2932397Increase test coverage and migrate to base image
0.4.32023-09-2030648Update candidates.json
0.4.22023-08-0228969Update CDK version
0.4.12023-06-2827773Update following state breaking changes
0.4.02023-04-2625332Add new streams: ActivityFeed, Approvals, Disciplines, Eeoc, EmailTemplates, Offices, ProspectPools, Schools, Tags, UserPermissions, UserRoles
0.3.12023-03-0623231Publish using low-code CDK Beta version
0.3.02022-10-1918154Extend Users stream schema
0.2.112022-09-2717239Always install the latest version of Airbyte CDK
0.2.102022-09-0516338Implement incremental syncs & fix SATs
0.2.92022-08-2215800Bugfix to allow reading sentry.yaml and schemas at runtime
0.2.82022-08-1015344Migrate connector to config-based framework
0.2.72022-04-1511941Correct Schema data type for Applications, Candidates, Scorecards and Users
0.2.62021-11-087607Implement demographics streams support. Update SAT for demographics streams
0.2.52021-09-226377Refactor the connector to use CDK. Implement additional stream support
0.2.42021-09-156238Add identification of accessible streams for API keys with limited permissions