How to use it: 3 steps
- Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
- Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example:
https://jobs.homerun.co/in Homerun career pages. Each start is one run. - Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.
What it does
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.
Who uses it
Startup job boards
Fill your board with roles from Homerun companies.
Talent scouts
Follow a short list of companies and catch new roles.
Job seekers with a target list
Check your favourite companies with one run.
Price
Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.
| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.06 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Job saved | $0.0018 | One matching current job saved to the default Dataset. |
Examples
- One job: about $0.06.
- 1,000 jobs: about $1.86.
- Every day 100 jobs, for 30 days: about $7.20 a month.
Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 2,600 jobs.
Prices checked on 24 October 2026. See the current price on Apify.
Questions
Do I need a Homerun API key?
No. The tool reads public career and job pages only.
How many companies fit in one run?
One to four Homerun career pages, and up to 40 jobs.
Are talent pools included?
Yes, when the company lists them as openings. They can have fewer fields.
Will a failed page mark jobs as removed?
No. Removed jobs need a complete scan. A failed run keeps the last good baseline.
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.
Details
Step by step on Apify
- Open Input.
- In
careerUrls, addhttps://jobs.homerun.co/. - Keep
maxResults=40andmonitor=false. Use 256 MB and a 180-second timeout. - Click Start.
- Open Dataset. Check
title,description,urlandrowStatus. - Open Key-value store → OUTPUT. Check that
statusiscomplete.
Use cases
| Task | Input | Result to use |
|---|---|---|
| Fill a job board | Known company URLs | title, description, location, url and applyUrl |
| Follow hiring activity | monitor=true | CHANGES.new, CHANGES.changed and CHANGES.removed |
| Find matching roles | query and location | Matching Dataset rows; full scan status in OUTPUT |
Tips for better results
- Use the company subdomain on homerun.co. Custom domains are not supported.
- Give each watchlist its own name. Then two lists do not mix.
- Use the location filter with a city or country code to narrow results.
Limits and good to know
- 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
completemeans all pages were read and the requested output was saved.partialmeans some work was missing or capped. It does not save a new monitoring baselinenot_foundmeans all source boards returned HTTP 404/410. Other failures areerrororpartialin 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
For developers
Sample result
One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.
{
"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"
}Use it from code
Actor ID: cliqtomedia/homerun-jobs-monitor-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/homerun-jobs-monitor-scraper").call(run_input={
"careerUrls": [
"https://jobs.homerun.co/"
],
"query": ""
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~homerun-jobs-monitor-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"careerUrls": ["https://jobs.homerun.co/"], "query": ""}'# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("cliqtomedia/homerun-jobs-monitor-scraper")
result = tool.invoke({"run_input": {"careerUrls": ["https://jobs.homerun.co/"], "query": ""}})
print(result)The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.
Data fields (29)
| Field | Type |
|---|---|
jobId | string |
boardJobId | string |
jobKey | string |
title | string |
url | string |
applyUrl | string |
detailSource | string |
rowStatus | string |
careerSiteUrl | string |
source | string |
fetchedAt | string |
change | string |
companyName | string |
department | string |
location | string |
city | string |
region | string |
countryCode | string |
employmentType | string |
datePosted | string |
validThrough | string |
salaryCurrency | string |
salaryPeriod | string |
description | string |
firstSeenAt | string |
salaryMin | number |
salaryMax | number |
remote | boolean |
descriptionTruncated | boolean |
Input settings (7)
The main fields of the input form. With the API you send them as JSON.
| Setting | Name in the API | Type | Example value |
|---|---|---|---|
| Homerun career pages required | careerUrls | array | ["https://jobs.homerun.co/"] |
| Words in job content | query | string | "" |
| Location contains | location | string | "" |
| Maximum output jobs | maxResults | integer | 40 |
| Compare complete snapshots | monitor | boolean | false |
| Watchlist name | monitorKey | string | "default" |
| Output only new and updated jobs | onlyChanges | boolean | false |
