# Employ Florida Jobs Scraper (`scraping_crew/employflorida-jobs-scraper`) Actor

Collect job listings from Employ Florida by keyword and location — title, employer, salary, schedule, education, benefits, full description, coordinates and apply links — ready for export, analytics or AI workflows.

- **URL**: https://apify.com/scraping_crew/employflorida-jobs-scraper.md
- **Developed by:** [Scraping Crew](https://apify.com/scraping_crew) (community)
- **Security:** Limited permissions
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### What does Employ Florida Jobs Scraper do?

**Employ Florida Jobs Scraper** collects **job listings from [Employ Florida](https://www.employflorida.com)**, Florida's official statewide job board. It has tens of thousands of open positions from local employers, hospitals, schools, government agencies and national recruiters. You get **clean, structured job data**: job title, employer, industry, occupation code, city and ZIP, map coordinates, **salary**, schedule, education and experience requirements, **benefits**, posting and closing dates, and the **full job description**.

Try it now: type a keyword such as `nurse` and a location such as `Tampa` or `Hillsborough County`, then click **Start**. Leave the keywords empty to collect every job in Florida. Because it runs on the [Apify platform](https://apify.com), you also get API access, scheduling, integrations, proxy rotation and run monitoring out of the box.

### Features

- ⚡ Fast results, even for statewide searches
- 🔎 Search many keywords and Florida cities, ZIP codes or counties in one run
- 🎓 Filter by education level: no minimum, high school, vocational, associate's, bachelor's, master's, doctorate and more
- 🗓️ Filter by posting date (today, last 7 / 30 / 90 days or any time) and by distance from a city or ZIP code
- 💵 Salary range and pay period, job type, shift, hours, schedule and duration
- 🚗 Driver's license requirement, public transit access and veteran / older-worker / disability friendly flags
- 🎓 Education and experience requirements, benefits and number of open positions
- 🏢 Employer name, industry, logo and careers website
- 🧭 Standard O\*NET occupation title and code, city, ZIP and latitude/longitude for mapping
- 📝 Full job description as clean plain text
- ♻️ A job that matches several of your searches is saved only once
- 🎯 Set a job limit for quick, low-cost test runs
- 🗂️ Structured, consistent dataset
- 📊 Export as JSON, CSV, Excel, or via API
- 🤖 Ready for AI, n8n, Zapier, Make and RAG workflows
- 🌐 Optional Apify Proxy support

### Why use Employ Florida Jobs Scraper?

- **Labor-market research:** track hiring demand in Florida by role, city, county or industry.
- **Salary benchmarking:** compare advertised pay ranges across occupations and regions.
- **Job boards and career apps:** feed a niche job board, newsletter or career app with fresh Florida openings.
- **Recruiting and sales leads:** find employers who are actively hiring, along with their careers websites.
- **AI and analytics:** power AI assistants, dashboards and search tools with structured job data.

Schedule the Actor to run daily with **Posted within: Today** and you get a steady feed of new Florida job openings.

### How to use Employ Florida Jobs Scraper

1. Open the Actor and go to the **Input** tab.
2. Add one or more **Keywords** (e.g. `registered nurse`, `truck driver`). Leave this empty to collect all jobs.
3. Add one or more **Locations**: a city, ZIP code, county or state, or `Florida` for the whole state.
4. (Optional) Choose **Education level**, **Posted within**, **Distance from location**, **Sort by** and **Remove duplicate postings**.
5. (Optional) Set **Max items** (default `1000`, or `0` for unlimited on a paid plan).
6. Click **Start**. When the run finishes, open the **Output** tab to preview and download your jobs.

### Input

You can set everything on the **Input** tab. Every keyword is searched in every location.

| Field | Type | Description |
|---|---|---|
| `keywords` | array | Job keywords or titles. Each keyword is searched in every location. Empty = all jobs. |
| `locations` | array | Cities, ZIP codes, counties or states (e.g. `Tampa`, `33101`, `Hillsborough County`), or `Florida` for the whole state (default). |
| `educationLevels` | array | Keep only jobs requiring these education levels: `none`, `high_school`, `vocational_certificate`, `college_1_year`, `college_2_years`, `college_3_years`, `associate`, `bachelor`, `master`, `doctorate`, `specialized`. Empty = any. |
| `postedWithinDays` | string | `any` (default), `0` (today), `1`, `2`, `3`, `7`, `14`, `30`, `60` or `90` days. |
| `distanceMiles` | string | Radius around a city or ZIP: `0` (exact), `5`, `10`, `25` (default), `50`, `75`, `100`. Counties and states are always searched in full. |
| `sortBy` | string | Newest listings (default), oldest listings, posting date, salary, job title or employer. |
| `removeDuplicates` | boolean | Merge postings that share the same title, employer and location. |
| `maxItems` | integer | Stop after this many jobs (default `10`, `0` = unlimited). |
| `proxyConfiguration` | object | Optional proxy settings. |

Example input:

```json
{
    "keywords": ["registered nurse", "medical assistant"],
    "locations": ["Tampa", "Orange County"],
    "educationLevels": ["associate", "bachelor"],
    "postedWithinDays": "7",
    "maxItems": 500
}
```

### Output

Each dataset item is one job listing. Example:

```json
{
    "job_id": 12552517,
    "title": "REGISTERED NURSE RN",
    "employer": "Example Rehabilitation Center",
    "industry": "Health Care and Social Assistance",
    "occupation": "Registered Nurses",
    "onet_code": "29114100",
    "city": "Wauchula",
    "state": "FL",
    "zip_code": "33873",
    "region": "Tampa",
    "latitude": 27.5483,
    "longitude": -81.9194,
    "onsite_work": true,
    "salary_min": 32.5,
    "salary_max": 41.0,
    "salary_unit": "Hour",
    "job_type": "Regular",
    "shift_desc": "Shift - Rotating Shift",
    "hours_desc": null,
    "pub_tran_desc": "2",
    "schedule": "Full and Part Time Positions",
    "duration": "Permanent Employment",
    "education": "Associate's Degree",
    "experience_months": 12,
    "positions": 3,
    "dl_required": false,
    "friendly_for": [],
    "benefits": ["Dental", "Life Insurance", "Medical", "Tuition Assistance"],
    "posted_at": "2026-10-05T12:37:00",
    "updated_at": "2026-10-05T12:37:00",
    "closes_at": "2027-04-05T00:00:00",
    "description": "RN Registered Nurse\nJob Description:\nFull time and PRN shifts available...",
    "job_url": "https://www.employflorida.com/vosnet/jobbanks/jobdetails.aspx?enc=...",
    "employer_website": "https://www.example.com/careers",
    "employer_logo_url": null,
    "posted_by": "Employ Florida",
    "search_keyword": "nurse",
    "search_location": "Tampa",
    "scraped_at": "2026-10-08T19:36:52+00:00"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Data table

| Field | Description |
|---|---|
| `job_id` | Unique job listing ID |
| `title` / `employer` / `industry` | Job title, hiring employer and its industry sector |
| `occupation` / `onet_code` | Standard O\*NET occupation title and code |
| `city` / `state` / `zip_code` / `region` | Job location |
| `latitude` / `longitude` | Coordinates for mapping |
| `salary_min` / `salary_max` / `salary_unit` | Advertised pay range and its period (Hour, Week, Year…) |
| `job_type` / `schedule` / `duration` | Regular / Seasonal / Temporary, Full / Part Time, expected duration |
| `shift_desc` / `hours_desc` | Shift worked and scheduled weekly hours |
| `onsite_work` | `true` when the job is worked on site |
| `pub_tran_desc` | Public transit availability, as stated in the listing |
| `dl_required` | `true` when a driver's license is required |
| `friendly_for` | Older-worker, veteran and disability friendly flags |
| `education` / `experience_months` | Minimum education and required experience in months |
| `positions` / `benefits` | Number of openings and benefits offered |
| `posted_at` / `updated_at` / `closes_at` | Posting, last update and closing dates (Florida local time) |
| `description` | Full job description as plain text |
| `job_url` / `employer_website` / `employer_logo_url` | Listing link, careers site and logo |
| `posted_by` | Organisation or job board that published the listing |
| `search_keyword` / `search_location` | The search that found the job |
| `scraped_at` | When the job was collected (UTC) |

When a listing leaves a value out, the field is `null`. List fields (`benefits`, `friendly_for`) are empty instead, and the yes/no fields (`onsite_work`, `dl_required`) are always `true` or `false`.

### How much does it cost to scrape Employ Florida?

The Actor is lightweight and runs on minimal memory, so collecting Employ Florida jobs is cheap. Cost grows with the number of jobs you collect. Keep runs small with **Max items** and **Posted within**. For example, a daily run with **Posted within: Today** picks up only the new openings.

### Free User Limitations

Runs started on a **free plan are limited to 10 jobs per run**. On a free plan, setting `maxItems` above 10 (or to `0` for unlimited) has no effect. The run still stops at 10 jobs and a message in the log explains why. Values below 10 work as usual.

Upgrade to any **paid plan** to lift the limit. `maxItems` then controls the run exactly, and `0` collects every job found. No other feature, output field or filter is restricted for free users.

### Tips and advanced options

- **Each search returns up to 10,000 jobs.** For bigger statewide pulls, split the run into several keywords or locations (e.g. major cities or counties), or narrow **Posted within**.
- **Newest listings** is the most reliable sort order for large runs.
- Use **Distance from location** with a city or ZIP code to cover a whole metro area.
- To cover a region such as Central Florida or Tampa Bay, list its counties (e.g. `Orange County`, `Seminole County`, `Osceola County`). Region nicknames are not recognized as locations.
- **Education level** is applied to the jobs each search finds, so a narrow level combined with a very broad search may return fewer jobs than exist. Add keywords or narrow **Posted within** to reach more of them.
- Schedule a daily run with **Posted within: Today** for a fresh feed of new openings.
- Turn on **Remove duplicate postings** to skip the same job advertised several times.
- Start with the default **Max items** of `10` to preview the data before a large run.

### FAQ, disclaimers, and support

**Is it legal to scrape Employ Florida?** Scraping publicly available data is generally legal, but you are responsible for following the site's Terms of Service and applicable laws. This Actor collects only public job listing data. It never collects any job seeker information.

**Why is the employer or salary empty for some jobs?** Some employers post confidentially or choose not to publish pay. Those fields are then returned as `null`.

**Why do I get fewer jobs than expected?** Check the **Max items** value and the free plan limit, and remember that a single search returns at most 10,000 jobs.

**Something looks off?** Websites change over time. Open an issue on the Actor's **Issues** tab and we'll take a look. Custom scraping solutions are available on request.

**Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Employ Florida, FloridaCommerce, CareerSource Florida or any of their subsidiaries or partners. All trademarks mentioned are the property of their respective owners.

### SEO Keywords

Employ Florida scraper, Employ Florida jobs scraper, employflorida.com scraper, Florida jobs scraper, Florida job listings data, Florida job board scraper, scrape Florida jobs, Florida salary data, Florida hiring data, Florida labor market data, job postings dataset, jobs data export, recruiting leads, hiring employers list, O\*NET occupation data, job market research, salary benchmarking, Apify Actor, job scraper, Tampa jobs, Miami jobs, Orlando jobs, Jacksonville jobs, Tallahassee jobs, Florida nursing jobs, Florida government jobs

# Actor input Schema

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

Job keywords or titles to search for (e.g. nurse, truck driver). Leave empty to collect every job.

## `locations` (type: `array`):

City, ZIP code, county or state (e.g. Tampa, 33101, Hillsborough County, Florida). For a region, add its counties. Use "Florida" for the whole state.

## `educationLevels` (type: `array`):

Only include jobs whose minimum education requirement is one of the selected levels. Leave empty for any education level.

## `postedWithinDays` (type: `string`):

Only include jobs posted within this time window.

## `distanceMiles` (type: `string`):

Search radius around a city or ZIP code. Counties and states are always searched in full.

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

Order in which jobs are collected. "Newest listings" is the most reliable choice for large runs.

## `removeDuplicates` (type: `boolean`):

Collapse postings that share the same title, employer and location (the same job advertised several times).

## `maxItems` (type: `integer`):

Stop the run after this many jobs have been collected. Set to 0 for unlimited. Free plans are always limited to 10 items per run.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. Usually not needed; enable a US proxy if you run into blocking on large runs.

## Actor input object example

```json
{
  "keywords": [
    "nurse"
  ],
  "locations": [
    "Florida"
  ],
  "educationLevels": [],
  "postedWithinDays": "any",
  "distanceMiles": "25",
  "sortBy": "JobIDDesc",
  "removeDuplicates": false,
  "maxItems": 1000,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Structured job listings (employer, salary, schedule, requirements, description, location) collected during the run.

# 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": [
        "nurse"
    ],
    "locations": [
        "Florida"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraping_crew/employflorida-jobs-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": ["nurse"],
    "locations": ["Florida"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("scraping_crew/employflorida-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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": [
    "nurse"
  ],
  "locations": [
    "Florida"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call scraping_crew/employflorida-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraping_crew/employflorida-jobs-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/axrt5i5hwUWGKnfFm/builds/tOgiMgChVGu3vnH4e/openapi.json
