# Infosec-Jobs Cybersecurity Listings Scraper (`parseforge/infosec-jobs-scraper`) Actor

Scrapes cybersecurity job listings from Infosec-Jobs by keyword. Returns each job as a flat row with title, company, location, and description.

- **URL**: https://apify.com/parseforge/infosec-jobs-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Jobs, Other
- **Stats:** 10 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.00 / 1,000 result items

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?

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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Infosec-Jobs Cybersecurity Listings Scraper

**Scrape cybersecurity job listings from Infosec-Jobs by keyword, up to a million per run.** Every job comes with its title, company, location, and full description. No login or API key. Export to CSV, JSON, Excel, or XML.

Infosec-Jobs is a niche job board for cybersecurity roles, but browsing it manually means clicking through pages and copying details one by one. This Actor reads the public job listings directly, filters by your keyword, and returns each match in one fixed schema. It is built for security recruiters, hiring managers, and analysts who need fresh listings without the manual work.

| Who uses it | What they scrape Infosec-Jobs for |
|---|---|
| Security recruiters | Build a pipeline of open cybersecurity roles for their clients |
| Hiring managers | Monitor the market for similar roles to benchmark their own openings |
| Job board aggregators | Feed Infosec-Jobs listings into their own search platform |
| Market researchers | Track which cybersecurity skills and certifications employers demand |

### What it does

This Actor collects cybersecurity job listings from Infosec-Jobs by keyword and returns each one as a flat row.

- 🔎 **Keyword filter:** enter a job title or skill like 'penetration tester' or 'SOC analyst' and only matching jobs are returned.
- 📦 **Bulk collection:** set maxItems up to 1,000,000 to pull every listing that matches your query.
- 📄 **Flat output:** each job is one row with title, company, location, and description, ready for spreadsheets or databases.
- ⚙️ **No setup:** no API key, no OAuth, no browser. run it from Apify.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Infosec-Jobs data

**🎯 Fill a security recruiter's pipeline.**

A recruiter runs the Actor daily with the keyword 'incident response' and imports the CSV into their ATS to see every new opening.

**📊 Benchmark your own job posting.**

A hiring manager scrapes all 'cloud security engineer' roles to compare salary ranges and required certifications before posting.

**🔔 Power a job alert service.**

A developer schedules the Actor every hour for 'penetration tester' and pushes new rows to a Slack channel for their community.

**🧠 Research the cybersecurity job market.**

An analyst collects a year of 'SOC analyst' listings to count which SIEM tools appear most often in descriptions.

### Why choose this scraper

| | What you get |
|---|---|
| **Direct from the source** | Reads the public Infosec-Jobs listings, so you get the same data a visitor sees, without scraping HTML yourself. |
| **One row per job** | Every listing is flattened into a single record with consistent fields, ready for CSV, JSON, Excel, or XML export. |
| **Scale on demand** | Collect one job or a million. The Actor respects the site and runs on Apify's infrastructure. |

### How it compares

No other Store actor targets Infosec-Jobs the same way, so the honest comparison is with the alternatives teams actually weigh.

| | Infosec-Jobs Cybersecurity Listings Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When Infosec-Jobs changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor with a single keyword or job title, and set a maximum number of jobs to collect. The filter runs as each listing is read, so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "maxItems": 10
}
```

A larger pull:

```json
{
 "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.021 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $2.10 |
| 1,000 results | $21.00 |
| 10,000 results | $210.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Infosec-Jobs Cybersecurity Listings Scraper](https://apify.com/parseforge/infosec-jobs-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Infosec-Jobs through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/infosec-jobs-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Your keyword may be too specific. Try a broader term like 'security' or leave the query empty. Also confirm the site is up and has jobs posted.

**The run stops before reaching maxItems.**

The Actor stops when there are no more matching jobs on the site. Lower maxItems or broaden your query if you expected more.

**Some fields are empty in the output.**

Infosec-Jobs may not provide every field for every listing. Empty values are normal when the site leaves a field blank.

**The run fails with a timeout.**

The site may be slow or blocking. Retry the run, or schedule it for a less busy time. If it persists, contact Apify support.

### FAQ

| Question | Answer |
|---|---|
| Do I need an Infosec-Jobs account or API key? | No. The Actor reads the public job listings, so no login or key is required. |
| What does the query field match against? | It matches the job title and description text. For example, 'SIEM' will return jobs that mention SIEM anywhere in the listing. |
| Can I scrape all jobs without a keyword? | Yes. Leave the query field empty and set maxItems to a high number to collect every listing currently on the site. |
| How many jobs can I get in one run? | Up to 1,000,000, but the actual number depends on how many listings match your query on Infosec-Jobs at that moment. |
| What format is the data in? | Each job is a flat JSON object. You can export the dataset as CSV, JSON, Excel, or XML from Apify. |
| How fresh is the data? | The Actor reads the live site on every run, so you get whatever is currently listed. Schedule it to run as often as you need. |
| Does it include the full job description? | Yes, the full description text is included in each row, along with title, company, and location. |
| Can I filter by location or company? | The input only has a keyword field, but you can filter the exported dataset in Excel or your own code using the location and company columns. |
| Is this legal to scrape? | You are responsible for complying with the site's terms of service and applicable laws. The Actor only accesses publicly available pages. |
| What if I get no results? | Try a broader keyword or leave the query empty. Also check that Infosec-Jobs is currently reachable and has listings. |

### Related actors

- [indeed-scraper](https://apify.com/parseforge/indeed-scraper?fpr=vmoqkp): Use this if you need job listings from Indeed, which covers a broader range of roles beyond cybersecurity.
- [linkedin-jobs-scraper](https://apify.com/parseforge/linkedin-jobs-scraper?fpr=vmoqkp): Use this for LinkedIn job postings, especially if you need company and recruiter details.

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Infosec-Jobs.com. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `query` (type: `string`):

Keyword

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

How many jobs to collect per run.

## Actor input object example

```json
{
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "query": "",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/infosec-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 = {
    "query": "",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/infosec-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 '{
  "query": "",
  "maxItems": 10
}' |
apify call parseforge/infosec-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/infosec-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/2chc0lymvZKxFVz5B/builds/5tcatMFtpK3cIAFSJ/openapi.json
