Breezy HR Jobs Scraper
Pricing
Pay per event
Breezy HR Jobs Scraper
Extract normalized active jobs from public Breezy HR career boards with multi-board input, keyword, department, location, remote, and publication-date filters.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Extract normalized active job listings from public Breezy HR career boards. Give the Actor one board or a list of boards, add optional recruiting filters, and receive clean records ready for spreadsheets, databases, alerts, or labor-market analysis.
Breezy HR Jobs Scraper uses each employer's public structured job feed. It does not require a Breezy account, browser, proxy, cookie, or API key.
What does Breezy HR Jobs Scraper do?
The Actor accepts public *.breezy.hr board URLs or tenant slugs and returns one dataset item per active position.
It can:
- scrape one or many Breezy HR employer boards;
- normalize job IDs, titles, URLs, dates, and employer details;
- extract department and employment type;
- extract primary and additional locations;
- expose country, country code, city, and remote status;
- preserve the full description HTML;
- create a plain-text description for search and analysis;
- keep salary data when the employer publishes it;
- filter jobs by keyword, department, location, remote status, or publication date;
- deduplicate jobs by board and source job ID;
- stop at a global result limit.
The output covers currently active public positions. It is not a closed-job history service.
Who is it for?
Recruiting aggregators
Refresh selected employer boards on a schedule and load normalized openings into a job search product.
Staffing and lead-generation teams
Track target companies for new roles, hiring functions, locations, and expansion signals.
Labor-market analysts
Build repeatable snapshots of active demand by department, geography, and employment type.
Company-intelligence teams
Monitor hiring activity across a watchlist and route newly observed positions into research or sales workflows.
Developers and data engineers
Use one stable Apify dataset contract instead of maintaining a separate integration for every Breezy HR tenant.
Why use this Actor?
Breezy career boards expose structured public data, but production workflows still need input validation, retries, multi-board controls, normalization, filtering, deduplication, charging, and dataset integration.
This Actor provides those operational pieces while keeping the extraction route lightweight:
- one structured feed request per board;
- no detail-page crawl for fields already in the feed;
- no automatic paid proxy fallback;
- bounded board concurrency;
- clear failures for invalid, private, or unavailable boards;
- typed, integration-friendly output.
What Breezy HR job data can I extract?
| Field | Meaning |
|---|---|
boardSlug | Breezy HR tenant slug |
boardUrl | Canonical employer board URL |
employer | Employer name from the feed |
jobId | Stable source job ID |
friendlyId | Human-readable Breezy job identifier |
title | Position title |
url | Canonical public job URL |
publishedAt | ISO 8601 publication timestamp |
employmentType | Display value such as Full-Time |
employmentTypeId | Source employment-type ID |
department | Employer department |
location | Primary location label |
locations | All source location labels |
country | Primary country name |
countryCode | Primary country code |
city | Primary city or locality |
isRemote | Remote flag supplied by the employer |
salary | Salary text or normalized range, when available |
descriptionHtml | Full source description HTML |
descriptionText | Plain-text description |
scrapedAt | Run processing timestamp |
Optional Breezy fields are returned as null or an empty array when an employer does not publish them.
How to scrape Breezy HR jobs
- Open the Actor input page.
- Add a board URL such as
https://new-incentives.breezy.hr/or the slugnew-incentives. - Add more boards if you want one combined dataset.
- Optionally enter keyword, department, or location filters.
- Enable Remote jobs only if required.
- Set a publication cutoff for a recent-openings workflow.
- Choose the maximum number of jobs to save.
- Run the Actor and open the Dataset output.
- Export the results as JSON, CSV, Excel, XML, or another Apify-supported format.
- Schedule the task if you need recurring hiring updates.
The default input uses a real public board and completes without credentials.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
boards | string array | New Incentives board | Breezy HR board URLs or tenant slugs; 1–100 entries |
keywords | string array | none | Match at least one value across title, department, employer, location, or description |
departments | string array | none | Match at least one department substring |
locations | string array | none | Match at least one city, country, or location phrase |
remoteOnly | boolean | false | Keep only jobs marked remote |
publishedSince | string | none | ISO 8601 date or date-time cutoff, inclusive |
maxItems | integer | 1000 | Global saved-result limit from 1 to 10,000 |
concurrency | integer | 3 | Simultaneous board-feed requests from 1 to 10 |
All text filters are case-insensitive and use OR logic within the same filter list. Different filter groups are combined with AND logic. For example, two keywords plus one department means “either keyword, and this department.”
Example input
{"boards": ["https://new-incentives.breezy.hr/"],"keywords": ["manager","operations"],"departments": ["Operations"],"publishedSince": "2026-01-01","remoteOnly": false,"maxItems": 100,"concurrency": 3}
A board job-detail URL is also accepted. The Actor normalizes it back to the tenant's board feed and applies the same filters.
Example output
The following abbreviated record reflects the current public feed shape:
{"boardSlug": "new-incentives","boardUrl": "https://new-incentives.breezy.hr/","employer": "New Incentives","jobId": "b8e6b722f7ed","friendlyId": "b8e6b722f7ed-assistant-field-managers-external-vacancy","title": "Assistant Field Managers - (External Vacancy)","url": "https://new-incentives.breezy.hr/p/b8e6b722f7ed-assistant-field-managers-external-vacancy","publishedAt": "2026-05-25T14:45:23.799Z","employmentType": "Full-Time","employmentTypeId": "fullTime","department": "Operations","location": "Niger, Sokoto, Kebbi, Zamfara, NG","locations": ["Niger, Sokoto, Kebbi, Zamfara, NG"],"country": "Nigeria","countryCode": "NG","city": "Niger, Sokoto, Kebbi, Zamfara","isRemote": false,"salary": null,"descriptionHtml": "<h3>Organization Overview</h3>...","descriptionText": "Organization Overview ...","scrapedAt": "2026-07-27T04:05:00.000Z"}
Dataset fields remain stable across URL and slug inputs. The source may omit salary, department, location, or other optional fields.
How much does it cost to scrape Breezy HR jobs?
Breezy HR Jobs Scraper uses pay-per-event pricing:
- Actor start: $0.005 once per run.
- Job result: one event for each job saved to the default dataset.
- Filtered-out, duplicate, malformed, empty, or failed records are not charged as job results.
Current job-result prices decrease by Apify plan tier:
| Plan tier | Price per saved job |
|---|---|
| Free | $0.000041071 |
| Bronze | $0.000035714 |
| Silver | $0.000027857 |
| Gold | $0.000021429 |
| Platinum | $0.000014286 |
| Diamond | $0.000010000 |
Examples on the Free tier, including the $0.005 start event:
- 10 saved jobs cost about $0.00541.
- 100 saved jobs cost about $0.00911.
- 1,000 saved jobs cost about $0.04607.
The result charge depends on saved jobs, not on how many raw jobs were rejected by filters. There is no proxy surcharge in the Actor because v1 does not use a proxy.
Multi-board monitoring workflow
Create an Apify task with a stable board watchlist and schedule it daily or weekly.
Use publishedSince to reduce the result set for time-window reporting, or omit it when you need a complete active-board snapshot.
A typical pipeline is:
- run the Actor on the board watchlist;
- export or fetch the default dataset;
- compare
boardSlug + jobIdwith your prior snapshot; - mark unseen IDs as new openings;
- update your active-role table;
- notify recruiters, analysts, or account owners.
The Actor deduplicates within one run. Cross-run change detection belongs in your database, automation, or downstream Actor.
Integration ideas
- Send new openings to Slack, Microsoft Teams, or email.
- Append current jobs to Google Sheets or Airtable.
- Load descriptions into a search index or vector database.
- Enrich target-company records with hiring departments and locations.
- Build a recurring regional labor-demand report.
- Trigger a CRM task when a monitored company opens a relevant role.
- Join Breezy results with Greenhouse, Personio, or Recruitee ATS datasets.
Apify integrations can connect datasets to webhooks, Zapier, Make, n8n, cloud storage, and custom applications.
Use the Apify API
Replace YOUR_APIFY_TOKEN with your token.
Avoid committing tokens to source control.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~breezy-hr-jobs-scraper/runs?waitForFinish=300" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"boards": ["new-incentives"],"maxItems": 20}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/breezy-hr-jobs-scraper').call({boards: ['new-incentives'],keywords: ['manager'],maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/breezy-hr-jobs-scraper').call(run_input={'boards': ['new-incentives'],'departments': ['Operations'],'maxItems': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use Breezy HR Jobs Scraper with MCP
Add the Apify MCP server to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/breezy-hr-jobs-scraper"
Claude Desktop, Cursor, and VS Code
Use the same HTTP MCP configuration in Claude Desktop, Cursor, or VS Code. Add it to the MCP settings supported by your client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/breezy-hr-jobs-scraper"}}}
Example prompts:
- “Run Breezy HR Jobs Scraper for
new-incentivesand return operations roles.” - “Extract up to 100 jobs from these Breezy HR boards and summarize hiring by country.”
- “Find remote jobs published since 2026-01-01 on my Breezy employer watchlist.”
Your MCP client still needs valid Apify authentication.
Reliability and failure behavior
The Actor retries network failures, HTTP 429, and temporary 5xx responses up to three attempts with backoff. It does not blindly retry deterministic 4xx responses.
A run fails clearly when:
- an input is not a valid Breezy HR slug or HTTPS board URL;
- a board is private, missing, or unavailable;
- a response is not JSON;
- the structured feed changes to an unexpected shape;
- any requested board cannot be fetched.
The Actor does not silently return partial multi-board output when one requested board fails. Fix or remove the failing board and run the task again.
Limits and tips
- Use slugs when your watchlist is already normalized.
- Keep concurrency at the default unless you have many boards and a measured reason to raise it.
- Put broad terms in
keywordsand exact organizational terms indepartments. - Location filters search the primary city, country, location label, and all additional location labels.
remoteOnlyrelies on the employer's Breezy remote flag; it does not infer remote work from prose.publishedSincefilters the current active feed; it cannot recover positions that have already closed.maxItemsis applied after filtering and deduplication.- A board can naturally contain zero active jobs.
- Salary is often absent because employers choose whether to publish it.
- Very long descriptions increase dataset size but do not trigger an additional event charge.
Responsible use and legality
Breezy HR career pages and the job records used by this Actor are publicly accessible. You are responsible for ensuring that your use complies with applicable laws, contractual obligations, website terms, and data-protection requirements.
Use the data for legitimate recruiting, research, aggregation, and business-intelligence purposes. Do not use job descriptions or employer information to misrepresent affiliation, send unlawful spam, discriminate, or make solely automated high-impact decisions about individuals. Store only the fields you need and apply suitable retention and access controls.
This documentation is operational guidance, not legal advice.
Troubleshooting
Why did my board return HTTP 4xx?
Confirm that the tenant slug is correct and that the board opens publicly at https://SLUG.breezy.hr/.
Private, disabled, deleted, and misspelled boards are not scrapeable through the public feed.
Why did the run return zero jobs?
Open the public board to confirm that it currently has active positions. Then remove filters one at a time. A valid board with no active or matching jobs is a successful zero-result run.
Why is salary null?
Breezy only returns salary when the employer publishes it. The Actor does not estimate compensation.
Why does a remote-looking description have isRemote: false?
The Actor preserves Breezy's structured remote flag.
Use a keywords filter if you also want to search description wording.
Can I provide a job-detail URL?
Yes. The Actor extracts the Breezy tenant hostname and fetches the complete active board, then applies the same filters and limits.
Related Automation Lab actors
- Greenhouse Jobs Scraper — extract public Greenhouse employer boards.
- Personio Jobs Scraper — collect jobs from Personio career pages.
- Recruitee Jobs Scraper — normalize public Recruitee openings.
Use separate source-specific Actors when you need the best available fields and failure handling for each ATS. Merge their datasets downstream for a multi-ATS view.
FAQ
Does this Actor need a Breezy HR login?
No. It supports public employer career boards only.
Does it use a browser or proxy?
No. The complete v1 output comes from Breezy's public structured feed.
Does it scrape application forms or candidates?
No. It returns public active job postings and does not access candidate or application data.
Can it retrieve closed jobs?
No. Breezy's public feed represents current active positions. Create scheduled snapshots if you need your own longitudinal history.
Are duplicate jobs charged twice?
Not within one run. The Actor deduplicates by Breezy board and job ID before charging and saving.
Can I export to CSV or Excel?
Yes. Use the dataset export controls or Apify dataset API after the run completes.
How fresh is the data?
Each run fetches the board's current public feed at run time. Freshness therefore depends on when you run or schedule the Actor and when the employer updates Breezy.