SEEK Company Reviews - Profiles, Ratings & Employee Sentiment
Pricing
from $1.00 / 1,000 results
SEEK Company Reviews - Profiles, Ratings & Employee Sentiment
From $1/1K. Scrape SEEK Australia and New Zealand company profiles and employee reviews. Choose aggregated company data with top reviews or one row per review for sentiment analysis. Region is auto-detected from each URL, with clean structured output ready for analytics.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
SEEK Scraper: Company Reviews, Ratings and Culture Data for Australia and New Zealand
SEEK Scraper pulls company review data from au.seek.com and nz.seek.com, the two largest job platforms in their markets. Get a company's overall rating, five-star distribution, per-category sub-ratings, recommended percentage, salary perception score, AI-generated review summary, perks and awards, plus its individual reviews with pros, cons, long-form experience details and reviewer context. Choose one row per company with top reviews embedded, or one row per individual review for sentiment and NLP pipelines. Search by company name, browse an industry, or paste company links; region is detected automatically per link so Australian and New Zealand companies can be mixed in one run. Export to JSON, CSV or Excel, or pull results straight into your app through the API.
Why This Scraper?
- Two record grains from one input: company aggregates with embedded top reviews, or one row per individual review.
- Rich per-company fields: overall rating, five-star distribution, six per-category sub-ratings (work-life balance, career development, benefits, management, environment, diversity), recommended percent, salary perception score, branding, an AI-generated review summary, perks and awards.
- Full review record: title, pros, cons, long-form experience details, reviewer job title, employment status, salary perception, per-category ratings, upvotes and review date.
- Optional embedded open jobs: switch on
includeJobsto add each company's currently listed positions to its record in the same run. - Deep review history on demand: 5 reviews embedded per company by default, or fetch hundreds by raising the review cap.
- Region auto-detected per URL, so Australian and New Zealand company links can be mixed freely in one run.
- Built for monitoring: Incremental mode returns only new and changed records on recurring runs, Resume continues one interrupted run without re-collecting what it already has, and a blocked or empty run still finishes cleanly with a status message instead of erroring out.
Use Cases
- Employer branding and HR teams: track how your own company's SEEK rating, recommend percent and pros/cons shift over time.
- Recruiters and talent teams: check a target employer's culture signals before placing a candidate or accepting a role.
- Market researchers: build a comparison set of employee sentiment across an industry or a named shortlist of companies.
- Sentiment and NLP pipelines: feed individual review text (title, pros, cons, experience details) into classification or theme-extraction workflows.
- Competitive analysis: compare a company's ratings and hiring volume, via the optional open-jobs embed, against named competitors.
Data You Get
Sample shape: values are illustrative placeholders, not from a live profile.
Shown below: companies mode (the default), one row per company.
| Field | Example |
|---|---|
id | "610233" |
slug | "sample-company-610233" |
url | "https://au.seek.com/companies/sample-company-610233" |
region | "AU" |
name | "Sample Company Pty Ltd" |
isClaimed | true |
logoUrl | "https://image-service-cdn.seek.com.au/610233/logo" |
coverImageUrl / brandId / customStatement | branding fields, present on every company record whether or not includeJobs is on |
totalJobs | 42 |
ratingOverall | 3.7 |
reviewCount | 128 |
salaryRating | 3 |
recommendedPercent | 64 |
ratingBreakdown | { "companyRating1StarCount": 6, ..., "companyRating5StarPercentage": 21.1 } |
categoryRatings | [ { "rating": 3.8, "count": 128, "description": "Work/Life balance" }, ... ] |
aiSummary | { "headline": "Supportive teams, slower promotion track", "summary": "Generated summary text appears here.", "pros": "...", "cons": "...", "themes": [...] } |
perks | [ "Flexible working hours", "Study leave", "Staff discount" ] |
awards | [ { "name": "Sample Employer Award", "year": "2025" } ] |
topReviews | [ <up to maxReviewsPerCompany review objects, shape below> ] |
topReviewCount | 1 |
scrapedAt | "2026-03-14T02:15:00.000Z" |
Every company record carries coverImageUrl, brandId and customStatement (extra branding fields), whether or not includeJobs is on. When includeJobs is on, each company record also gets a jobs array of the company's currently listed positions, each with id, url, title, teaser, salaryLabel, workTypes, location, classifications, bulletPoints, listingDate, advertiserName and employerCompanyId, and a jobsEmbeddedCount count. In reviews mode, each row is a single review instead: reviewId, companyId, companyName, companySlug, region, url, title, pros, cons, overallExperienceDetails, jobTitle, workLocation, employmentStatus, salarySummary, recommended, recommendedLabel, overallRating, ratings, upvotes, createdAt, hasBeenFlagged and scrapedAt.
How to Use
- Pick a mode:
companies(one row per company, top reviews embedded) orreviews(one row per individual review). - Choose a source: paste company URLs, or set keywords, industry, or both to discover companies.
- Set the review depth and any optional toggles (AI summary, open jobs), then set Max items to cap run size and cost.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.
Search for a company by keyword (companies mode):
{"mode": "companies","region": "AU","keywords": "atlassian","industry": "","maxReviewsPerCompany": 5,"maxItems": 5,"proxyConfiguration": { "useApifyProxy": true }}
The industry field defaults to a specific industry category even when you don't set it, and combining a keyword with an industry narrows to matching names inside that industry only, so a keyword-only search must explicitly set "industry": "" to search company names generally rather than inside the default industry.
Pull the most recent reviews for a company by URL (reviews mode):
{"mode": "reviews","urls": [{ "url": "https://au.seek.com/companies/coles-group-433124" }],"maxReviewsPerCompany": 20,"reviewSort": "recent","maxItems": 20}
Browse New Zealand companies by keyword:
{"mode": "companies","region": "NZ","keywords": "Air New Zealand","industry": "","maxReviewsPerCompany": 3,"maxItems": 1}
Companies mode with embedded open jobs:
{"mode": "companies","urls": [{ "url": "https://au.seek.com/companies/coles-group-433124" }],"maxReviewsPerCompany": 3,"includeJobs": true,"maxJobsPerCompany": 20,"maxItems": 1}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("abotapi/seek-companies-reviews-scraper").call(run_input={"mode": "companies", "keywords": "atlassian", "industry": "", "maxItems": 5})for company in client.dataset(run["defaultDatasetId"]).iterate_items():print(company["name"], company["ratingOverall"], company["reviewCount"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('abotapi/seek-companies-reviews-scraper').call({ mode: 'companies', keywords: 'atlassian', industry: '', maxItems: 5 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.
Review and job depth
maxReviewsPerCompany controls both grains: in companies mode it is how many top reviews are embedded per company (default 5); in reviews mode it is the cap per company. Setting it to 0 does not mean unlimited, it falls back to the same default of 5; raise it to an explicit number to fetch deeper history a page at a time. maxJobsPerCompany (companies mode, includeJobs on) caps the embedded jobs array the same way (default 50); setting it to 0 does not pull every open job either, it falls back to 20, which is actually lower than the default, so leave it at a real number rather than 0.
Resume and recurring updates
- Resume (
resumeFromRunId) continues one specific interrupted or previous run: paste its run id or dataset id and this run skips records it already collected there, so pasted URLs are not re-fetched or re-billed on a resumed companies-mode run (matching is by the company's ownid, which is parsed directly from the URL, so a pasted link is recognized without needing to fetch it first). In reviews mode, each company's page is still fetched, but individual reviews already seen (matched byreviewId) are not re-pushed or re-billed. - Incremental mode (
incrementalMode) is for scheduling the same mode/query repeatedly: the actor remembers the previous run itself, so you never paste a run id. The first run returns everything asNEW. Later runs return onlyNEW,UPDATEDandREAPPEAREDby default;UNCHANGEDrecords are suppressed and not billed unlessemitUnchangedis on. State is isolated per mode and per URLs/keywords/industry/reviewSort/includeJobs/includeAISummarysetup; setstateKeyto name or deliberately share a campaign. REAPPEAREDandEXPIREDin detail:EXPIRED(companies mode only) is only produced once a run has fully scanned its tracked URLs/keywords/industry, withemitExpiredon, and was not capped by Max items or Max run time and did not use Resume. That same condition is also what marks a company as "gone" in the stored state; ifemitExpiredhas never been turned on, no company is ever marked gone, soREAPPEAREDcannot occur either, since it only fires for a company that state says is currently gone. Reviews mode never producesEXPIRED: its review sample is a bounded top-N per company, not an exhaustive scan, so an absent review in one run's sample is not reliable evidence it was deleted.- Jobs and change detection:
jobsis always returned in full on every row whenincludeJobsis on, but a capped job list (more open roles thanmaxJobsPerCompany, the common case at the default of 50) is excluded from change detection entirely, since SEEK's job list can reorder between requests. When a company's full job list fits under the cap,jobsis compared by its set of ids and a genuine add or remove still surfaces asUPDATED.
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape, the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each record, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.
- Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string enum | "companies" | "companies" (one row per company, top reviews embedded) or "reviews" (one row per individual review). |
region | string enum | "AU" | "AU" (au.seek.com) or "NZ" (nz.seek.com). Auto-detected per URL when urls is set. |
urls | array | [] | SEEK company URLs. Overrides keywords/industry when set. The Console prefills one example URL to try it quickly. |
keywords | string | (none) | Company-name keyword search. Ignored if urls is set. Combined with industry, narrows that industry's browse list to matching names. |
industry | string enum | "Mining, Resources & Energy" | Browse up to 30 companies in a SEEK industry category. For keyword-only or URL-only sourcing, explicitly set this to ""; omitting it from an API call still fills in the default industry and narrows your keyword search to that industry's companies. |
maxReviewsPerCompany | integer | 5 | Companies mode: top-N reviews to embed. Reviews mode: max reviews per company. 0 falls back to the same default of 5, not unlimited; set an explicit number to fetch deeper history. |
reviewSort | string enum | "helpful" | "helpful" (most upvoted first) or "recent" (newest first). |
includeAISummary | boolean | true | Companies mode only. Adds SEEK's AI-generated review summary when available. |
includeJobs | boolean | false | Companies mode only. Embeds a jobs array of the company's currently listed positions on each record. |
maxJobsPerCompany | integer | 50 | Cap on jobs length when includeJobs is true. 0 does not mean unlimited, it falls back to 20, lower than the default; set an explicit number instead. |
maxItems | integer | 0 | Total cap across all companies (reviews mode counts individual reviews). 0 = unlimited. |
maxTimeSec | integer | 0 | Wall-clock cap; the actor flushes what it has and exits cleanly when exceeded. 0 = no time limit. |
resumeFromRunId | string | (none) | Continue one specific interrupted or previous run: paste its run id or dataset id. |
incrementalMode | boolean | false | Turn on for recurring monitoring of this same mode/query; see "Resume and recurring updates" above. |
stateKey | string | (none) | Incremental mode only. Name a monitoring campaign, or deliberately share state across differently-configured runs. |
emitUnchanged | boolean | false | Incremental mode only. Also return (and bill) records unchanged since the last run. |
emitExpired | boolean | false | Incremental mode + companies mode only. Also return (and bill) companies from a previous run no longer resolved, once a run has fully scanned its targets. |
proxyConfiguration | object | Apify Datacenter | Connection settings. For heavier workloads, set apifyProxyGroups to ["RESIDENTIAL"]. |
mcpConnectors | array | (none) | Optional: send a summary of each record to apps you authorized under Integrations. |
notionParentPageUrl | string | (none) | Notion connector only: page under which records are created. |
maxNotifyListings | integer | 50 | Cap on items written to each connector per run. Does not affect the dataset. |
Output Example
Sample shape: values are illustrative placeholders, not from a live profile.
{"id": "610233","slug": "sample-company-610233","url": "https://au.seek.com/companies/sample-company-610233","region": "AU","name": "Sample Company Pty Ltd","isClaimed": true,"logoUrl": "https://image-service-cdn.seek.com.au/610233/logo","coverImageUrl": "https://image-service-cdn.seek.com.au/610233/cover","brandId": "11111111-2222-3333-4444-555555555555","totalJobs": 42,"ratingOverall": 3.7,"reviewCount": 128,"salaryRating": 3,"recommendedPercent": 64,"ratingBreakdown": {"companyRating1StarCount": 6,"companyRating1StarPercentage": 4.7,"companyRating2StarCount": 9,"companyRating2StarPercentage": 7.0,"companyRating3StarCount": 24,"companyRating3StarPercentage": 18.8,"companyRating4StarCount": 62,"companyRating4StarPercentage": 48.4,"companyRating5StarCount": 27,"companyRating5StarPercentage": 21.1},"categoryRatings": [{ "rating": 3.8, "count": 128, "description": "Work/Life balance" },{ "rating": 3.5, "count": 128, "description": "Career development" },{ "rating": 3.9, "count": 128, "description": "Benefits & perks" },{ "rating": 3.4, "count": 128, "description": "Management" },{ "rating": 3.7, "count": 128, "description": "Working environment" },{ "rating": 3.6, "count": 128, "description": "Diversity & equal opportunity" }],"aiSummary": {"headline": "Supportive teams, slower promotion track","summary": "Generated summary text appears here, drawn from recent reviews.","pros": "Colleagues are described as friendly and management as approachable.","cons": "Several reviewers note limited progression beyond entry-level roles.","themes": ["teamwork", "career growth", "work-life balance"]},"perks": ["Flexible working hours", "Study leave", "Staff discount"],"awards": [{ "name": "Sample Employer Award", "year": "2025" }],"topReviews": [{"reviewId": "710004421","companyId": "610233","title": "Good team, slow to promote","pros": "Friendly colleagues and flexible hours.","cons": "Promotions can take a long time to come through.","jobTitle": "Customer Service Officer","workLocation": "Sample Suburb NSW 2000","employmentStatus": "2 to 4 years in the role, current employee","salarySummary": "Average","recommended": true,"recommendedLabel": "Recommended","overallRating": 4,"ratings": [{ "category": "Work/Life balance", "rating": 4 },{ "category": "Career development", "rating": 3 }],"upvotes": 6,"createdAt": "9 March 2026","hasBeenFlagged": false}],"topReviewCount": 1,"scrapedAt": "2026-03-14T02:15:00.000Z"}
Plan Requirement
The default proxy setting works out of the box. If a request is refused, that one company is skipped rather than retried on a different connection within the same run. For heavier or scheduled production workloads, switch to the Residential proxy group by setting apifyProxyGroups to ["RESIDENTIAL"] and apifyProxyCountry to "AU" or "NZ". Runs comfortably in 256 MB of memory.
FAQ
How much does it cost?
You pay per company or review row returned, depending on the mode. Embedding open jobs (includeJobs) adds a small extra charge, but only for a company record that is actually returned, never for one suppressed by Incremental mode even if its jobs were fetched to check for changes. The Pricing tab shows the current rates. Use Max items to cap the cost of any run.
Is it legal to scrape SEEK?
This actor collects only publicly available company and review data. You are responsible for how you use it: follow SEEK's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution or further processing of reviewer-submitted content.
Can I get only new or changed companies and reviews on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared records, and unchanged ones are not billed.
Why did I get REAPPEARED or EXPIRED records I wasn't expecting?
Both only ever occur in companies mode, and only after a run with Emit expired companies turned on has completed a full, uncapped scan of your URLs/keywords/industry with no Resume. That is the only way a company is ever marked "gone" in the stored state; without it, no company can later be marked REAPPEARED either. Reviews mode never produces either state, since its review sample is a bounded top-N per company, not an exhaustive scan.
Why did my run finish with an empty dataset instead of failing?
This actor treats "nothing matched your search" and "every company failed to fetch" the same way: the run finishes with a clear status message explaining what happened, rather than erroring out, so a legitimate empty result is never confused with a crash. Check the status message and the run log for the specific reason, and try again if requests were refused.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
🔗 Want more SEEK data?
Pair this actor with these related scrapers from the same team:
| 💼 SEEK Jobs Scraper From $0.7/1K. Scrape SEEK.com.au and SEEK.co.nz jobs by keyword, location, or filters... | 📇 JobStreet From $1/1K. Pull JobStreet company profiles and employee reviews across Malaysia... |
| 🚗 Trade Me NZ Scraper Scrape trademe.co.nz across all five sections: Marketplace goods and auctions, Property... | 📇 Comparably From $1/1K. Extract rich company data from comparably.com using company names or profile... |
| 🏠 Homes.co.nz Scraper Scrape Homes.co.nz listings by location or URL with pagination. Extract property details... | 🛒 The Warehouse NZ Scraper Scrape The Warehouse New Zealand search results, category pages, and direct product URLs... |
💬 Support
- 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
- 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com.
- ⭐ Enjoying it? A quick review on the actor page helps other users find it.