# SimplyHired Scraper (`solidcode/simplyhired-scraper`) Actor

\[💰 $0.95 / 1K] Extract US job listings from SimplyHired — title, company, location, salary, employment type, description, qualifications, benefits, and apply URL. Search by keyword + location with filters for date posted, job type, salary, and distance.

- **URL**: https://apify.com/solidcode/simplyhired-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.95 / 1,000 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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## SimplyHired Scraper

Pull US job listings from SimplyHired at scale — title, employer, location, parsed salary range, full long-form description, qualifications and benefits bullets, employer rating, posted date, and a direct apply URL. Built for recruiters, sales teams chasing hiring-signal leads, salary analysts, and ATS/HR-tech vendors who need a fresh, structured job-postings feed without babysitting yet another keyword crawler.

### Why This Scraper?

- **Full long-form description plus qualifications and benefits bullets** on every listing — not just the search-card snippet.
- **Parsed salary range with explicit min, max, currency, and period** — hourly rates auto-annualized at the US 2,080-hour standard, so a "$45 an hour" listing slots in alongside a "$120,000 a year" one with no regex on your end.
- **Direct apply URL extraction** — the employer's actual application destination, not a SimplyHired tracking redirect.
- **Filter by 5 employment types** (Full-time, Part-time, Contract, Temporary, Internship) and **7 commute radius options** (Exact location, plus 5/10/15/25/50/100-mile rings).
- **Minimum-salary filtering across 9 thresholds** from $40K to $225K+ — cut entry-level noise from a senior-only sourcing run in one dropdown.
- **Date-posted windows of 24 hours, 7, 14, or 30 days** plus a "newest first" sort — perfect for daily-refreshed sourcing pipelines.
- **Multi-keyword batch runs of up to 50 search terms** in a single invocation — pay one setup cost, get one combined dataset back, auto-deduped on SimplyHired's stable `jobKey`.
- **URL-as-input** — paste any SimplyHired search URL (your hand-tuned filters and all) into `startUrls` and it replays exactly. Mix raw URLs and keyword searches in the same run.

### Use Cases

**Recruiting & Talent Sourcing**
- Track competitor postings to map their hiring roadmap and team expansion
- Surface hard-to-fill roles that have sat open across multiple refresh cycles
- Build remote-friendly candidate pipelines by combining `location: "Remote"` with skill keywords

**Sales & Lead Generation**
- Identify companies actively hiring — the strongest growth signal a B2B prospect can give
- Build target-account lists by role: every company posting "VP of Engineering" right now
- Power ATS, payroll, or HR-tech outbound by feeding new postings straight into your CRM

**Salary Benchmarking & Compensation Research**
- Real-time market rates by job title, geography, and experience level
- Hourly-to-annual normalization lets you blend retail, healthcare, and corporate roles in one analysis
- Track posted salary ranges over time to spot wage inflation in tight markets

**Market & Industry Intelligence**
- Track hiring trends in tech, healthcare, finance, logistics, or any vertical you cover
- Map regional hiring shifts — Sun Belt vs Northeast, remote vs in-office, urban vs suburban
- Benchmark a company's job-mix against peers (engineering-heavy vs sales-heavy)

**Career & Job Board Products**
- Power a niche job board with fresh, deduplicated postings for your audience
- Augment résumé-matching AI with up-to-date job descriptions and qualifications
- Feed alerting products that ping users when a target role appears

**Workforce Analytics & Talent Mobility**
- Track which employers are leaning into remote-friendly work models
- Quantify hiring velocity by metro to inform relocation and recruiting strategy
- Build datasets for academic and policy research on US labor markets

### Getting Started

#### Simple Keyword Search

The minimum input — one keyword, all-US coverage, top 100 results:

```json
{
    "keywords": ["software engineer"],
    "maxResults": 100
}
````

#### Fresh-Only, High-Salary Sourcing

Senior roles only, posted in the last 7 days, sorted newest-first:

```json
{
    "keywords": ["staff engineer", "principal engineer"],
    "location": "San Francisco, CA",
    "distance": "50",
    "minSalary": "175000",
    "datePosted": "7",
    "sort": "date",
    "maxResults": 200
}
```

#### Remote-Only Contract Roles

```json
{
    "keywords": ["data scientist", "machine learning engineer"],
    "location": "Remote",
    "jobType": "contract",
    "maxResults": 150
}
```

#### Paste a SimplyHired URL Directly

Use a hand-crafted search URL exactly as you built it in the UI:

```json
{
    "startUrls": [
        "https://www.simplyhired.com/search?q=registered+nurse&l=Boston%2C+MA&t=7&jt=CF3CP"
    ],
    "maxResults": 100
}
```

#### Fast List-Mode Run (No Descriptions)

Skip the per-job detail fetch for a fast, lean dataset with only search-card fields:

```json
{
    "keywords": ["barista", "server", "host"],
    "location": "Austin, TX",
    "includeDescription": false,
    "maxResults": 500
}
```

### Input Reference

#### Search

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `keywords` | string\[] | `["software engineer"]` | Job-title or skill keywords. Each keyword runs as its own search and is combined with the Location below. Up to 50 keywords per run. |
| `location` | string | `"United States"` | City, state, ZIP code, or `"Remote"`. Applied to every keyword. Leave as `"United States"` for nationwide coverage. |
| `startUrls` | string\[] | `[]` | Paste SimplyHired search URLs directly. Any filters in the URL are honored as-is. Mix freely with keyword searches. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `datePosted` | select | `Any time` | Recency window: `Any time`, `Last 24 hours`, `Last 7 days`, `Last 14 days`, `Last 30 days`. |
| `jobType` | select | `All types` | Employment type: `All types`, `Full-time`, `Part-time`, `Contract`, `Temporary`, `Internship`. |
| `minSalary` | select | `No minimum` | Annual salary floor: `No minimum`, `$40,000+`, `$60,000+`, `$80,000+`, `$100,000+`, `$120,000+`, `$150,000+`, `$175,000+`, `$200,000+`, `$225,000+`. |
| `distance` | select | `Within 25 miles` | Search radius around the location: `Exact location`, `Within 5 miles`, `Within 10 miles`, `Within 15 miles`, `Within 25 miles`, `Within 50 miles`, `Within 100 miles`. |
| `sort` | select | `Relevance (default)` | Result ordering: `Relevance (default)` or `Date (newest first)`. |

#### Limits & Detail

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `100` | Hard cap on total jobs across all keywords and URLs. Set to `0` for no cap. The actor stops requesting new pages once the cap is reached but keeps the full final page. |
| `includeDescription` | boolean | `true` | When on, the actor fetches each job's detail page for the full long-form description, qualifications list, and apply URL. Turn off for a much faster run when search-card fields are all you need. |

### Output

One row per job listing. Example with `includeDescription: true`:

```json
{
    "jobKey": "abc123def456",
    "title": "Senior Software Engineer",
    "company": "Acme Cloud",
    "companyUrl": "https://www.simplyhired.com/company/acme-cloud",
    "location": "Austin, TX",
    "isRemote": false,
    "salary": "$140,000 - $185,000 a year",
    "salaryMin": 140000,
    "salaryMax": 185000,
    "salaryCurrency": "USD",
    "jobType": "Full-time",
    "description": "We're hiring a Senior Software Engineer to lead our data platform team...",
    "snippet": "Lead the data platform team. 5+ years experience required. Hybrid in Austin.",
    "qualifications": [
        "5+ years backend experience",
        "Strong systems design background",
        "Experience with cloud platforms (AWS, GCP)"
    ],
    "benefits": ["Health insurance", "401(k) match", "Unlimited PTO", "Equity"],
    "companyRating": 4.2,
    "datePosted": "3 days ago",
    "datePostedAt": "2026-05-13T14:22:00Z",
    "sponsored": false,
    "url": "https://www.simplyhired.com/job/abc123def456",
    "applyUrl": "https://careers.acmecloud.com/apply/12345",
    "sourceQuery": "software engineer",
    "scrapedAt": "2026-05-16T10:05:33Z"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `jobKey` | string | Stable SimplyHired identifier — use this as your dedupe key. |
| `title` | string | Job title as posted by the employer. |
| `company` | string | Hiring company name. |
| `location` | string | City, state, or `"Remote"`. |
| `isRemote` | boolean | True when the listing is explicitly remote. |
| `url` | string | Canonical SimplyHired listing URL. |
| `sourceQuery` | string | The keyword or URL that produced this row — useful for filtering downstream. |
| `scrapedAt` | string | ISO 8601 timestamp of capture. |

#### Compensation

| Field | Type | Description |
|-------|------|-------------|
| `salary` | string | Salary as displayed on the listing (e.g. `"$120,000 - $150,000 a year"`). |
| `salaryMin` | number | Parsed minimum annual salary in USD. Hourly rates are converted at 2,080 hours/year. |
| `salaryMax` | number | Parsed maximum annual salary in USD. Equals `salaryMin` for single-value listings. |
| `salaryCurrency` | string | Currency code — `"USD"` on all US listings. |

#### Job Details

| Field | Type | Description |
|-------|------|-------------|
| `jobType` | string | Employment type label (`Full-time`, `Contract`, etc.) — null when the employer did not specify. |
| `snippet` | string | Short preview shown on the search-result card. |
| `description` | string | Full plain-text job description. Populated when `includeDescription: true`. |
| `qualifications` | string\[] | Bulleted qualifications list when the employer provides one. |
| `benefits` | string\[] | Bulleted benefits list (health, 401(k), PTO, equity, etc.). |

#### Posting Metadata

| Field | Type | Description |
|-------|------|-------------|
| `datePosted` | string | Human-readable post age (e.g. `"3 days ago"`, `"today"`). |
| `datePostedAt` | string | Parsed ISO 8601 timestamp — ready for sorting or filtering. |
| `sponsored` | boolean | True when the card is a paid promotion. |

#### Application & Company

| Field | Type | Description |
|-------|------|-------------|
| `applyUrl` | string | Direct external apply URL on the employer's site — only available when `includeDescription: true`. |
| `companyUrl` | string | SimplyHired company-profile URL when available. |
| `companyRating` | number | Employer star rating out of 5, when shown. |

### Tips for Best Results

- **For daily sourcing pipelines, combine `sort: "date"` with `datePosted: "7"`** and re-run nightly. You'll catch only what was posted in the last week, newest first — feed the output straight into your ATS or CRM.
- **Set `includeDescription: false` for fast list-mode runs** when you only need title, company, location, salary, and snippet. Roughly 17× fewer requests per job and a much quicker, cheaper run for keyword-survey work.
- **High-volume keywords need bigger caps.** For broad terms like `"software engineer"` or `"registered nurse"`, set `maxResults` to 200+ to get sustained pagination — the default 100 will only return the first five pages.
- **Use `location: "Remote"` plus `distance: "100"`** to capture both fully-remote postings and hybrid roles within commuting distance of a hub city — great for talent maps in metros with high remote concentration.
- **Replicate any UI search exactly** by pasting the SimplyHired URL (with your filters applied in the browser) into `startUrls`. Cursor pagination and every filter parameter are preserved.
- **Watch the `sponsored` flag** for downstream analytics — paid placements skew duplicate-employer counts upward in market-share studies. Filter them out when you want organic listings only.
- **Combine related keywords in one run.** `["data engineer", "data scientist", "ML engineer"]` in a single invocation gives you one deduplicated dataset (SimplyHired's `jobKey` is the dedupe anchor) and avoids paying setup costs three times.

### Pricing

**$0.95 per 1,000 results** — Pay-Per-Result. No compute charges — you only pay per result returned.

| Results | Estimated Cost |
|---------|----------------|
| 100 | $0.10 |
| 1,000 | $0.95 |
| 10,000 | $9.50 |
| 100,000 | $95.00 |

A "result" is any job row in the output dataset. Platform fees (storage, transfer) are additional and depend on your Apify plan.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation into your ATS, CRM, or data warehouse
- **Google Sheets** — Direct spreadsheet export for ad-hoc analysis
- **Slack** / **Email** — Notifications when new postings match a saved query
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access for production pipelines

Sample API call to start a run:

```bash
curl -X POST "https://api.apify.com/v2/acts/<your-actor-id>/runs?token=<APIFY_TOKEN>" \
    -H "Content-Type: application/json" \
    -d '{"keywords":["product manager"],"location":"New York, NY","maxResults":200}'
```

### Legal & Ethical Use

This actor is designed for legitimate recruiting, market research, salary benchmarking, and lead-generation use cases. Users are responsible for complying with applicable laws and SimplyHired's Terms of Service. Treat any personal data (employer contact emails, candidate-adjacent information) in line with GDPR, CCPA, and other relevant privacy regulations in your jurisdiction. Consult a qualified attorney for guidance specific to your use case. Do not use extracted data for spam, harassment, discriminatory hiring practices, or any unlawful purpose.

# Actor input Schema

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

Job-title or skill keywords to search (e.g. 'software engineer', 'registered nurse'). Each keyword runs as its own search and is combined with the Location below. Up to 50 keywords per run — extras are silently dropped. Leave empty if you are pasting full SimplyHired URLs instead.

## `location` (type: `string`):

Where to search: a city, state, ZIP code, or 'Remote'. Applied to every keyword. Leave as the default 'United States' for a nationwide search.

## `startUrls` (type: `array`):

Paste SimplyHired search URLs directly (e.g. https://www.simplyhired.com/search?q=nurse\&l=Boston). Any filters in the URL are honored as-is — useful when you have a fine-tuned search you want to repeat.

## `datePosted` (type: `string`):

Only include jobs posted within this window.

## `jobType` (type: `string`):

Restrict to one employment type. Choose 'All types' to leave it unfiltered.

## `minSalary` (type: `string`):

Only show jobs offering at least this annual salary in US dollars. Choose 'No minimum' to leave unfiltered.

## `distance` (type: `string`):

Search radius around the Location (in miles). 'Exact location' restricts to jobs in that city only.

## `sort` (type: `string`):

How results are ordered. 'Relevance' is SimplyHired's default ranking; 'Date' surfaces the newest postings first.

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

Hard cap on total job rows across all keywords and URLs. Set to 0 for no cap (an internal safety limit of 50,000 still applies to prevent runaway pagination). The actor stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots.

## `includeDescription` (type: `boolean`):

When on, the actor fetches each job's detail page to populate the full long-form description, qualifications list, and apply URL. Turn off to keep only the search-card fields (title, company, location, salary, snippet, benefits) — about 17× fewer requests per job and a much faster run.

## Actor input object example

```json
{
  "keywords": [
    "software engineer"
  ],
  "location": "United States",
  "startUrls": [],
  "datePosted": "any",
  "jobType": "all",
  "minSalary": "0",
  "distance": "100",
  "sort": "relevance",
  "maxResults": 100,
  "includeDescription": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped jobs with the most useful columns at a glance.

# 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": [
        "software engineer"
    ],
    "location": "United States",
    "startUrls": [],
    "datePosted": "any",
    "jobType": "all",
    "minSalary": "0",
    "distance": "100",
    "sort": "relevance",
    "maxResults": 100,
    "includeDescription": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/simplyhired-scraper").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": ["software engineer"],
    "location": "United States",
    "startUrls": [],
    "datePosted": "any",
    "jobType": "all",
    "minSalary": "0",
    "distance": "100",
    "sort": "relevance",
    "maxResults": 100,
    "includeDescription": False,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/simplyhired-scraper").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": [
    "software engineer"
  ],
  "location": "United States",
  "startUrls": [],
  "datePosted": "any",
  "jobType": "all",
  "minSalary": "0",
  "distance": "100",
  "sort": "relevance",
  "maxResults": 100,
  "includeDescription": false
}' |
apify call solidcode/simplyhired-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "SimplyHired Scraper",
        "description": "[💰 $0.95 / 1K] Extract US job listings from SimplyHired — title, company, location, salary, employment type, description, qualifications, benefits, and apply URL. Search by keyword + location with filters for date posted, job type, salary, and distance.",
        "version": "1.0",
        "x-build-id": "lZdfUfHvniy9S6hl8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~simplyhired-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-simplyhired-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/solidcode~simplyhired-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-simplyhired-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/solidcode~simplyhired-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-simplyhired-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "keywords": {
                        "title": "Keywords",
                        "maxItems": 50,
                        "type": "array",
                        "description": "Job-title or skill keywords to search (e.g. 'software engineer', 'registered nurse'). Each keyword runs as its own search and is combined with the Location below. Up to 50 keywords per run — extras are silently dropped. Leave empty if you are pasting full SimplyHired URLs instead.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Where to search: a city, state, ZIP code, or 'Remote'. Applied to every keyword. Leave as the default 'United States' for a nationwide search.",
                        "default": "United States"
                    },
                    "startUrls": {
                        "title": "SimplyHired URLs",
                        "type": "array",
                        "description": "Paste SimplyHired search URLs directly (e.g. https://www.simplyhired.com/search?q=nurse&l=Boston). Any filters in the URL are honored as-is — useful when you have a fine-tuned search you want to repeat.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "datePosted": {
                        "title": "Date Posted",
                        "enum": [
                            "any",
                            "1",
                            "7",
                            "14",
                            "30"
                        ],
                        "type": "string",
                        "description": "Only include jobs posted within this window.",
                        "default": "any"
                    },
                    "jobType": {
                        "title": "Employment Type",
                        "enum": [
                            "all",
                            "fulltime",
                            "parttime",
                            "contract",
                            "temporary",
                            "internship"
                        ],
                        "type": "string",
                        "description": "Restrict to one employment type. Choose 'All types' to leave it unfiltered.",
                        "default": "all"
                    },
                    "minSalary": {
                        "title": "Minimum Salary (USD/year)",
                        "enum": [
                            "0",
                            "40000",
                            "60000",
                            "80000",
                            "100000",
                            "120000",
                            "150000",
                            "175000",
                            "200000",
                            "225000"
                        ],
                        "type": "string",
                        "description": "Only show jobs offering at least this annual salary in US dollars. Choose 'No minimum' to leave unfiltered.",
                        "default": "0"
                    },
                    "distance": {
                        "title": "Distance from Location",
                        "enum": [
                            "exact",
                            "5",
                            "10",
                            "15",
                            "25",
                            "50",
                            "100"
                        ],
                        "type": "string",
                        "description": "Search radius around the Location (in miles). 'Exact location' restricts to jobs in that city only.",
                        "default": "25"
                    },
                    "sort": {
                        "title": "Sort By",
                        "enum": [
                            "relevance",
                            "date"
                        ],
                        "type": "string",
                        "description": "How results are ordered. 'Relevance' is SimplyHired's default ranking; 'Date' surfaces the newest postings first.",
                        "default": "relevance"
                    },
                    "maxResults": {
                        "title": "Maximum Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Hard cap on total job rows across all keywords and URLs. Set to 0 for no cap (an internal safety limit of 50,000 still applies to prevent runaway pagination). The actor stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots.",
                        "default": 100
                    },
                    "includeDescription": {
                        "title": "Include full job description",
                        "type": "boolean",
                        "description": "When on, the actor fetches each job's detail page to populate the full long-form description, qualifications list, and apply URL. Turn off to keep only the search-card fields (title, company, location, salary, snippet, benefits) — about 17× fewer requests per job and a much faster run.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
