# Peopleperhour Job Parser Script (`hello.datawizards/peopleperhour-job-parser-script`) Actor

PeoplePerHour Job Parser Script extracts structured job listings—including title, budget, client info, dates, location type, and proposal count—directly from PeoplePerHour. Ideal for freelancers, analysts, and automation workflows needing clean, reliable job market data.

- **URL**: https://apify.com/hello.datawizards/peopleperhour-job-parser-script.md
- **Developed by:** [datawizards](https://apify.com/hello.datawizards) (community)
- **Categories:** AI, Agents, Automation
- **Stats:** 5 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.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.

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

***

## 💼 PeoplePerHour Job Parser Script · Apify Actor

Extract **detailed job listings** from PeoplePerHour with full project info, budgets, posting dates, client details, and category metadata — delivered as clean JSON for automation, analytics, and market intelligence.
Built and maintained by **[DataWizards](https://linkedin.com/in/data-wizards-aa8080342)**.

***

### 📌 What Is `PeoplePerHour Job Parser Script`?

`PeoplePerHour Job Parser Script` is a powerful Apify Actor designed to scrape **complete job listing data** directly from PeoplePerHour.
It automatically extracts structured information such as project titles, IDs, job descriptions, budgets, currency conversions, proposal counts, client country, posting/expiry dates, categories, and more.

If you work in **freelancer analytics**, **market research**, **proposal automation**, or **job monitoring**, this actor gives you a seamless pipeline for capturing real-time project insights.

***

### 🧠 Key Features

✔️ Extracts **full project details**: ID, title, URL, description
✔️ Captures **budget, currency, and budget bracket**
✔️ Includes **posting & expiration dates**
✔️ Detects **project type** (fixed, hourly, remote, onsite)
✔️ Retrieves **client name and location**
✔️ Includes **proposal count** for competition analysis
✔️ JSON output designed for automation & dashboards
✔️ Fully supports **RESIDENTIAL proxies** for accuracy
✔️ Fast, reliable, and scalable for bulk job parsing

***

### 🛠️ Input Schema

```json
{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

#### 🔐 Proxy Configuration

- **useApifyProxy**: Must be `true`
- **RESIDENTIAL group** ensures minimal blocking and stable scraping

***

### 📤 Output Example

```json
{
    "ProjectId": 4450029,
    "Title": "Desktop Course Audit Tool – Python-Based File Validator",
    "Url": "https://www.peopleperhour.com/freelance-jobs/technology-programming/programming-coding/desktop-course-audit-tool-python-based-file-validator-4450029",
    "Description": "We're looking for an experienced Python developer to build a simple yet powerful desktop application...",
    "Budget": 1500,
    "BudgetConverted": 1971.6090122894857,
    "Currency": "GBP",
    "BudgetBracket": 3,
    "ProjectType": "fixed_price",
    "Category": "Technology & Programming",
    "SubCategory": "Programming & Coding",
    "PostedDate": "2025-11-21 10:43:20",
    "ExpiryDate": "2025-12-21 10:43:20",
    "LocationType": "remote",
    "ProposalCount": 48,
    "ClientName": "Richard Milton",
    "ClientCountry": "United Kingdom",
    "Query": "Python developer"
}
```

***

### 🚀 Use Cases

📊 **Freelance Market Research**
Track budgets, project types, and competition levels.

🤖 **Automation & Alerts**
Build systems that notify you of new matching jobs.

📈 **Proposal Optimization**
Analyze proposal counts and pricing ranges to improve bids.

💼 **Freelancer/Agency Tools**
Integrate directly into dashboards for job monitoring.

🔎 **Industry Trend Tracking**
Study hiring demand for specific skills (e.g., “Python developer").

***

### ✅ Best Practices

- Always run with **RESIDENTIAL proxies** for consistency
- Schedule frequent runs for real-time job monitoring
- Use the ProjectId field for **job deduplication**
- Filter results by category or query to refine insights
- Store BudgetConverted for cross-currency analytics

***

### 🧰 Need Something More?

If you need:
✨ Custom fields
✨ Additional metadata
✨ Bulk PeoplePerHour job scraping
✨ API-friendly CSV/Excel outputs
✨ Integration with external tools

**DataWizards can upgrade or tailor this Actor for your workflow anytime.**

***

### 🤝 Support

Need help or want to add new features?
We’re always here for you.

📩 Email: **<hello.datawizard@gmail.com>**
✉️ **Subject:** `PeoplePerHour Job Parser – Custom Support`
🔗 Connect: **<https://linkedin.com/in/data-wizards-aa8080342>**

***

### 🐞 Feedback & Bug Reports

If something isn’t working as expected:

📧 Email: `hello.datawizard@gmail.com`
✉️ **Subject:** `Bug Report – PeoplePerHour Job Parser Script`

Thank you for using **DataWizards** —
*Your trusted partner for intelligent, scalable data extraction.*

***

# Actor input Schema

## `Queries` (type: `array`):

The queries for the spider.

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

Specifies proxy servers that will be used by the scraper in order to hide its origin.

## Actor input object example

```json
{
  "Queries": [
    "Python developer"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("hello.datawizards/peopleperhour-job-parser-script").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 = { "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    } }

# Run the Actor and wait for it to finish
run = client.actor("hello.datawizards/peopleperhour-job-parser-script").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 '{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call hello.datawizards/peopleperhour-job-parser-script --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hello.datawizards/peopleperhour-job-parser-script"
        }
    }
}

```

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/bk06FdfRETVTtZXhh/builds/RmaYxxqbdgbtbu3WI/openapi.json
