The Seek API: what breaks a run, and what it costs

The Seek API: what breaks a run, and what it costs

blackfalcondata

Most people building against a Seek API can parse the response. Staying in is the harder part: requests go out normally, then responses arrive empty, truncated, or replaced by a challenge page the parser cannot handle.

Here is what our own Seek Actor handles, what each run costs, and where the process stops.

Doing it yourself

Building it yourself makes sense for a single snapshot, or when the data is simple enough that a failed run costs nothing. The work is more involved than sending requests and parsing fields. These specifics come directly from what our own scraper has to handle.

The front door. A plain HTTP request to Seek does not return a page. Measured on 2026-08-22 (3 attempts, all refused), it returned 403 behind Cloudflare, actively challenging. Your scraper must clear that barrier before parsing a single field.

Rate limits. Seek applies rate limits per-source rather than per-account. Exponential backoff slows the run; leaving it out causes the run to fail.

Proxies. One IP requesting a thousand Seek pages looks like a pattern, not ordinary traffic. Rotation makes that volume unremarkable, and proxies dominate the bill.

Pagination. A Seek pagination loop needs to tell the difference between "no more results" and "we stopped being served results". Both produce an empty page.

Silent breakage. A Seek redesign rarely breaks the scraper loudly. One selector fails, a field returns empty, the run reports success, and the first warning is a report that looks thin.

Deduplication. Seek has no "changed since" parameter. Run the scraper twice and the second run returns the first run's data again. Content hashes on your side turn the duplicate set into a diff.

The real cost is upkeep. The first version takes an afternoon. Keeping it alive takes an hour every few weeks, forever. Failures stay quiet: you discover them in an empty report, not through a scraper error.

This is a measured run, not an estimate:

  • 25 records in 10.5 seconds
  • cost: $0.00073 — about $0.03 per 1,000 records

The shortcut

If you do not want to own that work, one call returns the same result:

```bash curl -X POST "https://api.apify.com/v2/acts/blackfalcondata~seek-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \ -H 'Content-Type: application/json' \ -d '{"query": "..."}' ```

The Python version is just as direct:

```python from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN") run = client.actor("blackfalcondata~seek-scraper").call(run_input={"query": "..."})

for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item) ```

What comes back

Every row contains 73 fields, grouped broadly as follows:

  • company — company, companyUrl, companyIndustry, companySize, companyWebsite, companyDescription, +6 more
  • location — location, locationCountry, locationState, locationSuburb, locationPostcode
  • salary — salaryText, salaryMin, salaryMax, salaryCurrency, salaryType

What people use it for

  • Benchmarking. Pricing and salary fields support comparisons across the full set instead of a visual check of one results page.
  • Reputation monitoring. Ratings and review text reveal changes over time that a single page view cannot show.
  • Lead lists. Company-level fields narrow the data to the segment you need before anyone opens a CRM.
  • Change detection. Timestamps make it possible to diff runs and act on new records instead of reading the entire set again.
  • Geographic analysis. Location fields enable market-by-market comparisons without another data source.

Limits

  • Nothing here bypasses a Seek login. Public pages only, regardless of who writes the scraper.
  • A scraper that works today may not work in six weeks. The failure mode is silence, not an exception.
  • Proxy costs rise with volume and are the line item most people miss when estimating the DIY route.

Questions people ask

Is scraping Seek legal?

Reading publicly visible pages is generally treated differently from accessing data behind a login, and courts in the US have repeatedly declined to treat public scraping as unauthorised access. That is not legal advice. A site's terms of service remain a separate question from the law. Anything behind a login is out of scope either way.

Why am I getting 403s when the page loads fine in my browser?

The check is not about the URL. A plain request to Seek from our probe on 2026-08-22 was answered by cloudflare, actively challenging — every attempt was refused. Your browser passes because it supplies a TLS fingerprint, a cookie and a header set that a bare HTTP client does not.

Do I need proxies?

For more than a small sample, yes. A single origin IP is the simplest target for rate limiting, and residential addresses are treated differently from datacentre ones.

How often will it break?

Plan to touch the scraper whenever Seek releases a redesign. You may not notice immediately: extraction fails quietly and returns empty fields instead of errors. Budget an hour every few weeks, not a fix-and-forget afternoon.

Is it cheaper to build it myself?

Only when your time is free. The measured run below cost $0.00073 for 25 records. The DIY equivalent includes proxy spend and a recurring maintenance hour.

Try it

If you do not want to own the upkeep, a working Seek API you can call today already handles everything above. New accounts receive $5 of free platform credit each month, enough to cover a real run of this size several times over.

Disclosure: we build and maintain this Actor, and the link above is an affiliate link.

Further reading


We also publish the Seek API endpoint and what it returns on blackfalcondata.com — the request, the response, and what a run costs.

Report Page