breezyhr.
Guides and Resources
Connection Setup Guide
Step-by-step instructions to connect your Breezy HR account to Kombo.
Sandbox Environment
Access the Breezy HR sandbox environment for testing and development.
Supported Features & Coverage
- Models
- Actions
- Features
Users
Users
| Field | Notes |
|---|---|
| id | |
| remote_id | |
| changed_at | |
| remote_deleted_at | |
| first_name | |
| last_name | |
| remote_data |
Jobs
Jobs
| Field | Notes |
|---|---|
| id | |
| remote_id | |
| changed_at | |
| remote_deleted_at | |
| name | |
| job_code | |
| description | |
| employment_type | |
| status | |
| visibility | |
| category | |
| department | |
| post_url | |
| experience_level | |
| location | |
| custom_fields | |
| integration_fields | |
| remote_created_at | |
| remote_updated_at | |
| remote_data |
Candidates
Candidates
| Field | Notes |
|---|---|
| id | |
| remote_id | |
| changed_at | |
| remote_deleted_at | |
| first_name | |
| last_name | |
| title | |
| source | |
| phone_numbers | |
| email_addresses | |
| remote_created_at | |
| remote_updated_at | |
| remote_data |
Application Stages
Application Stages
| Field | Notes |
|---|---|
| id | |
| remote_id | |
| changed_at | |
| remote_deleted_at | |
| name | |
| remote_data |
Applications
Applications
| Field | Notes |
|---|---|
| id | |
| remote_id | |
| changed_at | |
| remote_deleted_at | |
| outcome | |
| current_stage_id | |
| job_id | |
| candidate_id | |
| remote_created_at | |
| remote_updated_at |
Screening questions
Screening questions
| Field | Notes |
|---|---|
| id | |
| remote_id | |
| changed_at | |
| remote_deleted_at | |
| title | |
| description | |
| format |
Tags
Tags
| Field | Notes |
|---|---|
| id | |
| remote_id | |
| changed_at | |
| remote_deleted_at | |
| name |
Interviews
Interviews
| Field | Notes |
|---|---|
| id | |
| remote_id | |
| changed_at | |
| remote_deleted_at | |
| title | |
| starting_at | |
| ending_at | |
| location | |
| application_id | |
| stage_id | |
| remote_data |
Roles
Roles
| Field | Notes |
|---|---|
| id | |
| remote_id | |
| changed_at | |
| remote_deleted_at | |
| remote_label | |
| scope | |
| unified_type |
Candidate tags
Candidate tags
| Field | Notes |
|---|---|
| candidate_id | |
| tag_id | |
| id | |
| changed_at | |
| remote_deleted_at |
Job-specific application stages
Job-specific application stages
| Field | Notes |
|---|---|
| index | |
| job_id | |
| stage_id | |
| id | |
| changed_at | |
| remote_deleted_at |
Job-specific screening questions
Job-specific screening questions
| Field | Notes |
|---|---|
| index | |
| required | |
| job_id | |
| question_id | |
| id | |
| changed_at | |
| remote_deleted_at |
Job user role assignments
Job user role assignments
BreezyHR provides a list of job admins and users
- Users in all_admins map to unified type
HIRING_MANAGER - Users only in all_users (not in all_admins) have no unified type.
| Field | Notes |
|---|---|
| job_user_id | |
| role_id | |
| id | |
| changed_at | |
| remote_deleted_at |
Job hiring team members
Job hiring team members
| Field | Notes |
|---|---|
| roles | |
| job_id | |
| user_id | |
| id | |
| changed_at | |
| remote_deleted_at |
Interviewing team members
Interviewing team members
| Field | Notes |
|---|---|
| interview_id | |
| user_id | |
| id | |
| changed_at | |
| remote_deleted_at |
Create candidate
Create candidate
Due to a limitation in the Breezy API we have to fetch all jobs to find the job the application needs to be created for, even if jobs are disabled in the scope config.
| Input Field | Notes |
|---|---|
| candidate.first_name | |
| candidate.last_name | |
| candidate.email_address | |
| candidate.phone_number | |
| candidate.location.city | |
| candidate.location.country | |
| application.job_id | |
| screening_question_answers.question_id | |
| screening_question_answers.answer | |
| attachments.name | |
| attachments.content_type | |
| attachments.data_url | |
| attachments.data | |
| attachments.type | |
| source.name | |
| source.unified_key | |
| source.id |
Create application
Create application
Due to a limitation in the Breezy API we have to fetch all jobs to find the job the application needs to be created for, even if jobs are disabled in the scope config.
| Input Field | Notes |
|---|---|
| candidate.first_name | |
| candidate.last_name | |
| candidate.email_address | |
| candidate.phone_number | |
| candidate.location.city | |
| candidate.location.country | |
| application.job_id | |
| screening_question_answers.question_id | |
| screening_question_answers.answer | |
| attachments.name | |
| attachments.content_type | |
| attachments.data_url | |
| attachments.data | |
| attachments.type | |
| source.name | |
| source.unified_key | |
| source.id |
Add attachment to application
Add attachment to application
Due to a limitation in the Breezy API we have to fetch all jobs to add the attachments, even if jobs are disabled in the scope config. This action will fall back to the “Add attachment to candidate” action. Therefore, there could be cases where the attachment may not be added to the application but rather to the candidate.
| Input Field | Notes |
|---|---|
| application_id | |
| attachment.name | |
| attachment.content_type | |
| attachment.data_url | |
| attachment.data |
Move application to stage
Move application to stage
Due to a limitation in the Breezy API we have to fetch all jobs to move the application stage, even if jobs are disabled in the scope config.
| Input Field | Notes |
|---|---|
| application_id | |
| stage_id |
Add result link to application
Add result link to application
Due to a limitation in the Breezy API we have to fetch all jobs to add a result link, even if jobs are disabled in the scope config.
| Input Field | Notes |
|---|---|
| application_id | |
| label | |
| url | |
| details.custom_field_name_prefix | |
| details.attributes.key | |
| details.attributes.value |
Get application attachments
Get application attachments
All attachment types are considered as OTHER. Breezy does not provide the attachment type in the API response. Due to a limitation in the Breezy API we have to fetch all jobs to get application attachments, even if jobs are disabled in the scope config.
| Input Field | Notes |
|---|---|
| application_id |
Add attachment to candidate
Add attachment to candidate
Due to a limitation in the Breezy API we have to fetch all jobs to add the attachments, even if jobs are disabled in the scope config.
| Input Field | Notes |
|---|---|
| candidate_id | |
| attachment.name | |
| attachment.content_type | |
| attachment.data_url | |
| attachment.data |
Add result link to candidate
Add result link to candidate
Due to a limitation in the Breezy API we have to fetch all jobs to add a result link, even if jobs are disabled in the scope config.
| Input Field | Notes |
|---|---|
| candidate_id | |
| label | |
| url | |
| details.custom_field_name_prefix | |
| details.attributes.key | |
| details.attributes.value |
| Feature | Notes |
|---|---|
| API Passthrough | |
| Webhook Subscriptions | Webhook subscriptions require a BreezyHR Pro plan. Kombo automatically creates one webhook endpoint per company in the connection. BreezyHR limits customers to 10 endpoints per owner. candidateAdded: triggered when a candidate is created (applied, sourced, recruited, or referred) candidateStatusUpdated: triggered when an application stage changed (candidate moved from one stage in a pipeline to another) candidateDeleted: triggered when a candidate is deleted via the web application (not fired for GDPR auto-delete purges) companyPositionAdded: triggered when a new position is created companyPositionUpdated: triggered when a position’s details are updated (name, description, requirements, etc.) companyPositionStateUpdated: triggered when a position’s state changes (e.g. a job is published, unpublished, moved to draft, or closed) companyPositionDeleted: triggered when a position is deleted from the company Not covered: a candidate is updated without a stage change (e.g. profile edits) Not covered: a tag was assigned to a candidate Not covered: an interview was scheduled Not covered: an interview was updated Not covered: screening questions were updated for a job Not covered: a candidate is purged via GDPR auto-delete configuration |
| Automatic Setup | |
| Delta Syncs | |
| Source Writing | |
| Connection Guide | |
| Prerequisites | |
| Create credentials | |
| Candidate Cutoff Filtering | |
| Roles | |
| Job roles (e.g. Hiring Manager) | BreezyHR provides a list of job admins and users |
- Users in all_admins map to unified type
HIRING_MANAGER - Users only in all_users (not in all_admins) have no unified type. |