# Fresh Jobs Feed - New Jobs Daily from Career Pages (`nabeelbaghoor/fresh-jobs-feed`) Actor

A scheduled-ready feed of newly posted jobs (last 24h by default) direct from company career pages - 14,000+ new listings daily across 20+ ATS platforms. Filter by keyword, category, location, remote, salary. Structured output with direct apply links. Pay per result. Built for schedules & alerts.

- **URL**: https://apify.com/nabeelbaghoor/fresh-jobs-feed.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** Jobs, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 job results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Fresh Jobs Feed - the newest jobs, every day

**Fresh Jobs Feed** delivers newly posted jobs - by default everything posted in the **last 24 hours** (14,000+ new listings/day) - sourced directly from company career pages at the source. Designed to run on an [Apify Schedule](https://docs.apify.com/platform/schedules) so your job board, alert system, or data pipeline always has the freshest listings first.

> ⏰ Defaults to jobs posted within the last 1 day, sorted newest-first - perfect for a daily schedule. Increase "Posted within the last … days" for a longer look-back window.

### Why use this actor?

- **Fresh, real jobs only** - listings come straight from employer career pages and expired/ghost jobs are filtered out automatically.
- **3.7 million+ live listings** across 22+ ATS platforms (Workday, Greenhouse, Lever, iCIMS, SmartRecruiters, and more).
- **Rich structured output** - salary ranges, remote/hybrid/on-site type, experience level, skills, technologies, benefits, visa sponsorship, company data with logos, and direct application links.
- **Powerful filters** - keywords, job titles, 39 job categories, location with radius, employment type, seniority, years of experience, salary range, industry, company size, and posting date.
- **Pay per result** - you are charged only for the jobs actually returned, up to 5,000 results per run.
- **No cookies, no proxies, no CAPTCHAs** - data comes from a stable API, so runs are fast and never get blocked.

### Use cases

- **Job boards & aggregators** - keep your board stocked with fresh jobs feed api listings that never 404.
- **Recruiting & sourcing** - monitor which companies are hiring for which roles, with salary transparency.
- **Market & salary research** - analyze demand, compensation, and technology trends by role, region, or industry.
- **Lead generation** - a company that is hiring is a company that is buying; use hiring signals to time outreach.
- **Job alert automations** - schedule daily runs and push new matches to Slack, email, or your ATS via Zapier/Make/n8n.

### Input

Configure everything from the visual editor - every filter is a proper dropdown or list, no code needed. Example JSON input:

```json
{
  "jobCategories": [
    "Software Engineer Jobs"
  ],
  "locationTypes": [
    "Remote"
  ],
  "postedWithinDays": 1,
  "maxResults": 500
}
```

All filters are optional and can be freely combined. See the **Input** tab for the full reference.

### Output

One clean JSON object per job, ready for export as JSON, CSV, Excel, or via the API:

```json
{
  "job_title": "Senior Python Engineer",
  "company_name": "Acme Corp",
  "location": "New York, New York, United States",
  "location_type": "Remote",
  "job_type": "Full Time",
  "salary": "$150,000 - $210,000 / year",
  "date_posted": "2026-07-14",
  "application_link": "https://boards.greenhouse.io/acme/jobs/1234567",
  "experience_level": "Senior",
  "job_board": "greenhouse",
  "skills": [
    "Python",
    "FastAPI",
    "PostgreSQL"
  ],
  "technologies": [
    "AWS",
    "Docker",
    "Kubernetes"
  ],
  "benefits": [
    "401k matching",
    "Remote-first",
    "Equity"
  ],
  "visa_sponsored": false,
  "salary_range": {
    "min": 150000,
    "max": 210000,
    "currency": "USD",
    "period": "yearly"
  },
  "company_data": {
    "description_summary": "Acme builds developer tools…",
    "size_range": {
      "min": 51,
      "max": 200
    },
    "industries": [
      "Tech, Software & IT Services"
    ],
    "linkedin_link": "https://www.linkedin.com/company/acme"
  }
}
```

### Pay per result

You pay only for the job listings the actor actually returns - no subscriptions, no minimum commitments. Set **Maximum results** to cap each run's spend exactly.

### FAQ

#### How do I run this on a schedule?

In Apify Console, open the actor and create a Schedule, or add this actor as a task to an existing Schedule. A daily run with "Posted within the last 1 day" gives you a complete rolling feed of new listings. Connect the dataset to webhooks, Zapier, Make, or n8n to push new jobs anywhere.

#### Will I get duplicates across daily runs?

Each run is independent, so a listing posted late yesterday can appear in two consecutive runs. Deduplicate downstream on the stable `_id` (or `md5_hash`) field.

#### Where does the data come from?

From an engine that continuously scans company career pages (Workday, Greenhouse, Lever, iCIMS, and many more ATS platforms) and parses each listing with LLMs into clean, structured fields. Jobs are collected at the source - the employer's own site - not rescraped from aggregators.

#### Are expired or ghost jobs included?

No. Listings are checked against the employer's live career page and removed once they disappear, so you don't waste time (or money) on jobs that are no longer real.

#### How much does it cost?

Pricing is pay-per-result: you pay a small fixed amount for every job returned, plus standard Apify platform usage. A run that returns nothing costs you (almost) nothing. Use the **Maximum results** input to control spend precisely.

#### How many results can I get per run?

Up to 5,000 jobs per run. For larger exports, split the search by category, country, or ATS platform, or run it on a schedule and collect deltas with the "Posted within the last … days" filter.

#### Do I need an API key?

No - the actor works out of the box. Your Apify account is all you need.

#### How fresh is the data?

Career pages are rescanned continuously and new jobs typically appear within hours of being posted. Use the "Posted within the last … days" filter (e.g. 1) to fetch only the newest listings.

#### Can I run this on a schedule?

Yes. Use Apify Schedules to run it hourly/daily, and connect the dataset to Zapier, Make, n8n, webhooks, or the API to pipe new jobs anywhere.

#### Is this legal?

Yes. The actor returns publicly available job listings published by employers on their own career sites, retrieved through a licensed API - no login-walled or personal data is collected.

### Support & feedback

Found an issue or missing a filter? Open an issue in the **Issues** tab - it is monitored daily.

# Actor input Schema

## `keywords` (type: `array`):

Keywords matched against job descriptions, technologies, skills, and benefits - e.g. `python`, `react`, `CPA`. Leave empty to match all jobs.

## `jobTitles` (type: `array`):

Match against the parsed job title, e.g. `Software Engineer`, `Account Manager`.

## `jobCategories` (type: `array`):

Limit results to one or more of 39 curated job categories.

## `locationTypes` (type: `array`):

Remote, Hybrid, or In-Person. Leave empty for all.

## `countries` (type: `array`):

Full country names, e.g. `United States`, `Germany`, `India`.

## `regions` (type: `array`):

State, province, or region names, e.g. `California`, `Bavaria`, `Ontario`.

## `cities` (type: `array`):

City names, e.g. `New York`, `London`, `Berlin`. Combine with the search radius below.

## `locationRadius` (type: `integer`):

Radius applied around each city (default 25).

## `locationRadiusUnit` (type: `string`):

Unit for the search radius.

## `jobTypes` (type: `array`):

Full Time, Part Time, Contract, or Internship. Leave empty for all.

## `experienceLevels` (type: `array`):

Seniority of the role. Leave empty for all levels.

## `minYearsOfExperience` (type: `integer`):

Only jobs requiring at least this many years of experience.

## `maxYearsOfExperience` (type: `integer`):

Only jobs requiring at most this many years of experience.

## `postedWithinDays` (type: `integer`):

E.g. `7` returns jobs posted in the last week. Leave empty for all time.

## `visaSponsorshipOnly` (type: `boolean`):

Only return jobs that offer visa sponsorship.

## `companyNames` (type: `array`):

Only jobs from these companies, e.g. `Google`, `Stripe`.

## `industries` (type: `array`):

Industry of the hiring company.

## `companySizes` (type: `array`):

Headcount of the hiring company.

## `atsPlatforms` (type: `array`):

Only jobs hosted on specific applicant tracking systems (career-site platforms).

## `hideRecruitingAgencies` (type: `boolean`):

Filter out listings posted by recruiting/staffing agencies - keep only direct employers.

## `minSalary` (type: `integer`):

Lower bound for the advertised salary range (yearly, in the selected currency).

## `maxSalary` (type: `integer`):

Upper bound for the advertised salary range.

## `salaryCurrency` (type: `string`):

Currency used for the salary filter.

## `includeJobsWithoutSalary` (type: `boolean`):

When a salary filter is set, also keep jobs that don't disclose pay.

## `maxResults` (type: `integer`):

Stop after this many jobs (1-5,000). You are charged per result returned.

## `fullDescription` (type: `boolean`):

Adds `description_raw` - the complete original HTML description from the ATS (usually 7,000+ characters) - to every job.

## `sortBy` (type: `string`):

Order of results.

## `sortOrder` (type: `string`):

Descending (newest / highest first) or ascending.

## Actor input object example

```json
{
  "keywords": [],
  "locationRadius": 25,
  "locationRadiusUnit": "mi",
  "postedWithinDays": 1,
  "visaSponsorshipOnly": false,
  "hideRecruitingAgencies": false,
  "salaryCurrency": "USD",
  "includeJobsWithoutSalary": true,
  "maxResults": 100,
  "fullDescription": false,
  "sortBy": "relevance",
  "sortOrder": "desc"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [],
    "locationRadius": 25,
    "postedWithinDays": 1,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/fresh-jobs-feed").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": [],
    "locationRadius": 25,
    "postedWithinDays": 1,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/fresh-jobs-feed").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [],
  "locationRadius": 25,
  "postedWithinDays": 1,
  "maxResults": 100
}' |
apify call nabeelbaghoor/fresh-jobs-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nabeelbaghoor/fresh-jobs-feed",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/BQjJ9w632XAmf1FdY/builds/rwlQhJqpN3cEPdEfL/openapi.json
