Homerun Jobs Monitor & Scraper avatar

Homerun Jobs Monitor & Scraper

Pricing

from $1.80 / 1,000 job saveds

Go to Apify Store
Homerun Jobs Monitor & Scraper

Homerun Jobs Monitor & Scraper

Follow known Homerun career pages. Get job descriptions, pay and apply links, then compare complete job snapshots for new, updated and removed roles. Export JSON or CSV.

Pricing

from $1.80 / 1,000 job saveds

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Categories

Share

Read open jobs from known public Homerun career pages. Get each job description, pay details and apply link. Compare complete snapshots to see new, updated and removed roles.

Public career pages to full job snapshots

Start with one company URL, such as https://jobs.homerun.co/. This tool is for recruiters, job boards and teams that follow hiring changes. A run costs $0.06 plus $0.0018 for each job saved. Empty or unchanged runs still cost $0.06. A failed page is shown as an error, not as an empty job board.

Table of contents

What it does

Add career page URLs for companies you already know. The Actor reads their public pages and job details. It returns one Dataset row for each matching job. Talent pools and open applications are included when the company lists them as openings.

It supports HTTPS root URLs on a company subdomain of homerun.co. It does not search for companies. It does not use the administrative API. No Homerun login, source API key or new XML feed is needed. Custom domains and redirects are outside this version.

Data you get

You get stable job IDs, titles, department, location, employment type, dates, salary where listed, descriptions and apply links. A field is null when the public page does not give it. The Actor does not guess salary or remote status from job text.

With monitor=true, the Actor keeps a full snapshot for your watchlist. CHANGES lists new, updated and removed jobs. Filters change the Dataset rows, but they do not remove jobs from the full snapshot.

Quick start

  1. Open Input.
  2. In careerUrls, add https://jobs.homerun.co/.
  3. Keep maxResults=40 and monitor=false. Use 256 MB and a 180-second timeout.
  4. Click Start.
  5. Open Dataset. Check title, description, url and rowStatus.
  6. Open Key-value store → OUTPUT. Check that status is complete.

The checked example had four jobs. Head of Sales listed EUR 75,000 per year in Amsterdam. The live company can change its openings.

Input fields

KeyTypeDefault / prefillRangeEffectRecommendation
careerUrlsstring array, requiredno runtime default; UI prefill: Homerun URL above1–4 HTTPS company root URLsChoose boards; duplicates are read onceCopy the root career page, without a job path or language query
querystring""0–200 charactersAll words must occur in title, company, department or description; ignores caseStart empty, then add words
locationstring""0–200 charactersMatch text in location, city, region or country codeUse a city or a code such as NL
maxResultsinteger401–40Stop saving matching jobs after this many; a truncated result is partialKeep 40 for monitoring
monitorbooleanfalsetrue / falseCompare and save complete full snapshotsTurn on for repeat checks
monitorKeystring"default"1–64 letters, digits, _, -Separate watchlists by name and board setUse one name per purpose
onlyChangesbooleanfalsetrue / falseWith monitor on, save only new and updated matching jobsUse true after your first complete baseline

An empty input fails validation before source requests. Unknown keys are rejected. Descriptions are always read for snapshot comparison. Filters and onlyChanges reduce output, but they still require a full scan. onlyChanges=true requires monitor=true.

Input examples

One company

{"careerUrls":["https://jobs.homerun.co/"]}

Expected output: current jobs, including the example below. Four jobs cost $0.0672.

Follow hiring changes

{
"careerUrls":["https://jobs.homerun.co/","https://fashion-for-good.homerun.co/"],
"monitor":true,
"monitorKey":"hiring-watch",
"onlyChanges":true,
"maxResults":40
}

The first complete check marks all jobs as new. Later checks save new or updated jobs only. Jobs removed from the board appear in CHANGES.removed. A check with no changes can return zero Dataset rows and still save a complete snapshot.

Filter by job content

{"careerUrls":["https://jobs.homerun.co/"],"query":"sales","location":"Amsterdam"}

The filter reads all listed job details. No matches means an empty Dataset and a complete scan, if every source page was read.

Output example

This is a trimmed row from the one-company input. Other fields, including the full description, are in the Dataset.

{
"jobId": "job_mlVLWyEWw1l6EyqLE3LX",
"boardJobId": "382587",
"title": "Head of Sales",
"companyName": "Homerun",
"location": "Amsterdam",
"salaryMin": 75000,
"salaryCurrency": "EUR",
"salaryPeriod": "year",
"url": "https://jobs.homerun.co/head-of-sales",
"applyUrl": "https://jobs.homerun.co/head-of-sales/apply",
"rowStatus": "complete",
"change": "untracked"
}

Output fields

Every Dataset row has all the fields below. null means the source does not give the value. [] is used for empty lists in scan records.

FieldTypeNull?ExampleMeaning
jobIdstringnojob_mlVLWyEWw1l6EyqLE3LXPublic Homerun job ID; board ID string if no public ID is available
boardJobIdstringno382587Stable numeric ID from the board, stored as a string
jobKeystringnohomerun:jobs:job_mlVLWyEWw1l6EyqLE3LXSource, company slug and public job ID
titlestringnoHead of SalesTitle from the company board
urlstringnohttps://jobs.homerun.co/head-of-salesPublic job page, with its language path when present
applyUrlstringnohttps://jobs.homerun.co/head-of-sales/applyPublic application link
detailSourcestringnojsonldjsonld, public_html, or unavailable
rowStatusstringnocompletecomplete or partial for this job
careerSiteUrlstringnohttps://jobs.homerun.co/Normalized company root URL
sourcestringnohomerunhomerun
fetchedAtstringno2026-10-04T16:31:40.676ZUTC scan timestamp
changestringnountrackeduntracked, new, updated or unchanged; removals are in CHANGES
companyNamestringyesHomerunPublic company name
departmentstringyesSalesPublic department; no invented Other value
locationstringyesAmsterdamPublic board location label
citystringyesAmsterdamCity from detail or board address
regionstringyesNoord-HollandRegion from detail or board address
countryCodestringyesNLPublic country code; no geography inference
employmentTypestringyesFULL_TIMESource employment label or JSON-LD value
datePostedstringyes2026-09-29Public posting date; date-only values are kept
validThroughstringyesnullPublic expiry date
salaryCurrencystringyesEURListed currency
salaryPeriodstringyesyearListed pay period, lower case
descriptionstringyesHomerun is een hiring- en people platform, gemaakt voor moderne t…Plain text job description, up to 60,000 characters
firstSeenAtstringyesnullPrior baseline first-seen time, or this run for a new job
salaryMinnumberyes75000Listed minimum or single salary value; not an estimate
salaryMaxnumberyes75000Listed maximum or single salary value
remotebooleanyesnulltrue only for explicit TELECOMMUTE metadata; null means unknown
descriptionTruncatedbooleannofalsetrue if source description exceeds that character limit

Scan records

RecordFields and typesMeaning
OUTPUTschemaVersion integer; status string; error string/null; sourceCommit string; rows integer; boards array; changes objectRun outcome and saved job count
RUN_SUMMARYAll OUTPUT fields plus requests integer, retries integer, durationMs integer, startedAt stringScan work and timing
SNAPSHOTschemaVersion integer; complete boolean; scope string; careerUrls string array; createdAt string; jobs object arrayFull unfiltered scan, not just Dataset matches; only complete snapshots can become the baseline
CHANGEScompared boolean; snapshotUpdated boolean; new/changed/removed arraysWhole-board changes, regardless of Dataset filters; each reference has jobId and url strings

Each boards entry has url string, status string, available integer, scanned integer, emitted integer, and reason string/null. Each snapshot job has identity, fingerprint, firstSeenAt, jobId, and url, all strings. Fingerprints compare the normalized fields and up to 60,000 description characters; they do not include fetch time. Changes beyond that description limit are not tracked. Snapshots keep compact fingerprints, not a second copy of descriptions.

If validation fails, SNAPSHOT has complete=false and no jobs. A storage or resource failure can produce a short error report with status, error and sourceCommit. A hard platform stop can leave no final report; check the run status too.

Price and examples

Pay per event: $0.06 per start + $0.0018 per saved Dataset job. At the supported 256 or 512 MB, the start event is charged once. Platform usage is included in the price. No proxy or description add-on is used.

A valid empty board, a filter with no matches, and an unchanged monitoring check all cost $0.06. Partial and failed runs keep their start charge. Saved partial job rows count too; unsaved jobs do not count. New and removed references in CHANGES have no extra fee.

ScenarioRuns / saved jobsEvent price
Empty, filtered or unchanged scan1 / 0$0.0600
One saved job1 / 1$0.0618
10 saved jobs1 / 10$0.0780
14 saved jobs on four checked boards1 / 14$0.0852
100 jobs across 10 runs with 10 each10 / 100$0.7800
1,000 jobs across 100 runs with 10 each100 / 1,000$7.8000

The last two examples are price arithmetic for repeated bounded runs, not a claim that one run returns 100 or 1,000 jobs. Actual totals depend on saved rows and starts. Repeated jobs saved in a later run count again. Use a run cost limit such as $0.20. Too little budget can stop output and leave the scan partial. Use 256 or 512 MB and a finite positive timeout. The recommended timeout is 180 seconds; a 300-second Store test or larger outer timeout is supported without extending the 150-second source deadline.

Use cases

TaskInputResult to use
Fill a job boardKnown company URLstitle, description, location, url and applyUrl
Follow hiring activitymonitor=trueCHANGES.new, CHANGES.changed and CHANGES.removed
Find matching rolesquery and locationMatching Dataset rows; full scan status in OUTPUT

Schedule and monitoring

You can create your own Apify task and schedule. Use the same sorted set of companies and monitorKey each time. The baseline lives in your account's homerun-jobs-monitor-state key-value store. A new board set or name starts a new baseline. Changing filters keeps the same full-board baseline.

Do not overlap runs of the same watchlist. If a run is partial, wait and run again with enough output and cost budget. The last complete baseline stays in place. Removed jobs appear only after every board and job detail was read successfully.

API, MCP and exports

Use the Apify run API with the same JSON input. Your Apify API token belongs in the authorization header; it is not a Homerun key. Read Dataset items and the key-value records from that run. Export the Dataset as JSON or CSV in Console.

The Apify MCP server can run accessible Actors with the same input. An integration can consume jobId and url for jobs, or the CHANGES arrays for monitoring. This Actor creates no schedule, webhook or external notification by itself.

Limits and partial results

  • One run accepts 1–4 known Homerun company root URLs. Custom domains, language queries, login pages and redirects are not supported.
  • Live Cloud acceptance covered 14 complete jobs across four companies. The runtime cap is 40 scanned jobs and 40 saved rows. The 40-job limit was checked on offline fixtures, not a 40-job live board.
  • The source work has a 150-second deadline, 100 request attempts, 2 MiB per page and 12 MiB of streamed source bodies. Cloud defaults are 256 MB and 180 seconds; 512 MB is also supported.
  • complete means all pages were read and the requested output was saved. partial means some work was missing or capped. It does not save a new monitoring baseline.
  • not_found means all source boards returned HTTP 404/410. Other failures are error or partial in a mixed run. A wildcard redirect is an error, not an empty board.
  • Dates, salary, department and remote metadata can be missing. Open applications and talent pools can use plain HTML and have fewer fields.
  • Descriptions are plain text and can include list markers. Source HTML and company openings can change between runs. The tool is not an official Homerun product.
  • Resume/restart is not supported. Start a new run after a failed run. Partial Dataset results remain visible.

Troubleshooting

Zero Dataset rows: open OUTPUT. A complete scan can be empty or filtered. With onlyChanges=true, it can mean no new or updated jobs. Other statuses mean source work was not complete.

REDIRECT_REJECTED: check the company root URL. The board may have moved to a custom domain or may not exist. Use a working Homerun subdomain. The Actor does not follow the redirect.

DETAIL_SCHEMA_ERROR or BOARD_SCHEMA_ERROR: the page layout may have changed. The run does not replace the baseline. Share the run ID in the Issues tab.

RESULT_LIMIT, SCAN_LIMIT or CHARGE_LIMIT: increase output or cost budget within the supported limits. Split a large company set into separate watchlists. A board with more than 40 jobs cannot produce a complete baseline in this version.

ONLY_CHANGES_REQUIRES_MONITOR: set monitor=true or turn onlyChanges off.

FAQ

Do I need a Homerun API key?

No. The Actor reads public career and job pages. It cannot access private candidate or company administration data.

Does no output mean no charge?

No. Each start costs $0.06. Filtering and unchanged checks still read the full job set.

Does a failed board mean all its jobs were removed?

No. Removed events require a complete full scan. Partial, missing and failed pages keep the last complete baseline.

Can I use a custom career domain?

This version accepts company subdomains on homerun.co only. Custom domains and redirects fail explicitly.

Support

Use this Actor's Issues tab on Apify for bugs and questions. Include the run ID, company root URL, status and error code. Do not include tokens, cookies or candidate records.