PeoplePerHour Scraper avatar

PeoplePerHour Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
PeoplePerHour Scraper

PeoplePerHour Scraper

[💰 $3.00 / 1K] Extract freelance project and job postings from PeoplePerHour. Search by keyword, browse a category, or paste URLs, then filter by price type, experience level, and remote work. Get titles, budgets, currencies, categories, skills, posting dates, proposal counts, and client details.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

1

Monthly active users

3 days ago

Last modified

Share

Pull live freelance project and job postings from PeoplePerHour at scale — titles, budgets in native currency, fixed vs hourly pricing, required skills, proposal counts, posting and expiry dates, and the hiring client's name and country. Built for agencies, lead-generation teams, and market researchers who need fresh freelance-demand data without manually clicking through marketplace listings page by page.

Why This Scraper?

  • 10 top-level categories, browseable by name — Technology & Programming · Design · Business · Marketing, Branding & Sales · Digital Marketing · Writing & Translation · Video, Photo & Image · AI Services · Social Media · Music & Audio. Pick one from a dropdown, and every result comes back labelled with that exact name, so your filters and pivot tables line up.
  • Per-project native currency — GBP, USD, or EUR — every budget keeps the currency the client actually posted in, not a converted home-IP estimate that distorts your pricing analysis.
  • Budget figures tagged with their pricing modelbudget is the exact amount PeoplePerHour prints on the project, and priceType says whether that number is a whole-project fixed price or a per-hour rate, so a £30/hr contract never gets averaged in as a £30 job.
  • Fixed vs Per-hour pricing filter — limit a run to fixed-price projects or hourly contracts to match exactly the work model you sell.
  • Entry / Intermediate / Expert experience filter — target only the seniority tier you compete in and skip the rest.
  • Proposal (bid) counts on every projectproposalCount tells you how saturated each lead is before you spend time on a pitch.
  • Full project brief on every row, plus the client's required-skills list — every row carries the complete project description exactly as the client wrote it, line breaks intact, not a truncated teaser. Switch on full descriptions and each row also gets the skills the client asked for: typically 6 tags per project, up to 23.
  • Hiring-client details on every row — client name and country, so you know who is posting and where they're based.
  • Deduplicated by project ID — each project is returned once even when it surfaces across several keywords or pages, so your lead list has no repeats.

Use Cases

Lead Generation for Agencies & Freelancers

  • Build a daily feed of open projects matching your service keywords
  • Prioritise leads by proposal count to find low-competition projects
  • Filter to Expert-level briefs that match premium service offerings
  • Pull client name and country to qualify and personalise outreach

Market & Demand Research

  • Measure how many projects are posted per category over time
  • Track which skills clients are requesting most across a category
  • Spot emerging demand in the dedicated AI Services category
  • Map remote-only versus on-site demand for a given skill set

Competitive Pricing Intelligence

  • Benchmark fixed-price budgets against hourly rates in your niche
  • Compare native-currency budgets (GBP/USD/EUR) across regions
  • Track budgets by experience tier (Entry / Intermediate / Expert) to position your quotes
  • Identify under-priced versus premium project segments

Talent Sourcing & Recruiting

  • Find the categories and skills with the highest open-project volume
  • Gauge market rates before posting your own briefs
  • Monitor client countries to understand where work originates
  • Track posting and expiry dates to time outreach around fresh demand

Getting Started

Search a single keyword and collect the latest matching projects:

{
"searchQueries": ["wordpress"],
"maxResults": 100
}

Browse a Category

Collect every open project in one category, sorted by most recent:

{
"category": "design",
"sortBy": "recent",
"maxResults": 200
}

Full Filtered Run

Combine a keyword with pricing, experience, and remote filters:

{
"searchQueries": ["logo design", "brand identity"],
"category": "design",
"priceType": "fixed",
"experienceLevel": "expert",
"remoteOnly": true,
"sortBy": "recent",
"maxResults": 0,
"includeDescription": true
}

Using PeoplePerHour URLs

Paste freelance-jobs URLs to scrape them exactly as shown on the site, including any filters baked into the link:

{
"startUrls": [
"https://www.peopleperhour.com/freelance-jobs/technology-programming",
"https://www.peopleperhour.com/freelance-jobs/design"
],
"maxResults": 150
}

Input Reference

Search & Targeting

ParameterTypeDefaultDescription
searchQueriesstring[]["wordpress"]Keywords or phrases to search for, such as "wordpress", "logo design", or "data entry". Each keyword runs its own search. Up to 50 keywords per run. Leave empty to use the category or collect the broadest project feed.
categoryselectAny categoryBrowse a single category: Technology & Programming · Design · Business · Marketing, Branding & Sales · Digital Marketing · Writing & Translation · Video, Photo & Image · AI Services · Social Media · Music & Audio. The category field on every result carries the same name you picked here.
startUrlsstring[][]Paste full PeoplePerHour freelance-jobs URLs (a category page or a filtered search page) to scrape them exactly as shown. Filters baked into the URL are respected. Up to 50 URLs per run.

Filters & Limits

ParameterTypeDefaultDescription
priceTypeselectAny price typeLimit results to one pricing model: Fixed price or Per hour.
experienceLevelselectAny experience levelOnly return projects asking for this seniority: Entry, Intermediate, or Expert.
remoteOnlybooleanfalseOnly return openly remote projects. PeoplePerHour's own remote filter leaves out country-restricted remote work, so leave this off if you want those too.
sortByselectMost recentOrder results by Most recent (newest postings first) or Most relevant (best match to your search).
maxResultsinteger100Maximum projects to collect per keyword, category, or start URL. Set to 0 to collect everything available.

Output Options

ParameterTypeDefaultDescription
onlyUniqueProjectsbooleantrueReturn each project once even if it appears across several pages or searches. Deduplicates by project ID.
includeDescriptionbooleantrueAdd the client's required-skills tags to every project. Turn off for lighter, faster records when you only need titles, budgets, categories, dates, and links — the full project description is always included either way.

Output

Each project posting is returned as one flat row. Here is a representative result with full descriptions enabled:

{
"projectId": "4239871",
"title": "Build a custom WordPress plugin for booking management",
"url": "https://www.peopleperhour.com/freelance-jobs/technology-programming/wordpress/build-a-custom-wordpress-plugin-4239871",
"description": "We need an experienced WordPress developer to build a booking management plugin with calendar sync, payment capture, and an admin dashboard...",
"budget": 800,
"currency": "GBP",
"priceType": "fixed",
"category": "Technology & Programming",
"subCategory": "WordPress",
"skills": ["WordPress", "PHP", "Plugin Development", "JavaScript"],
"postedDate": "2026-06-18T09:14:22",
"postedRelative": "1 day ago",
"expiryDate": "2026-07-18T09:14:22",
"duration": "1 to 3 months",
"locationType": "Remote",
"experienceLevel": "Expert",
"proposalCount": 7,
"isUrgent": false,
"isFeatured": false,
"isOpportunity": true,
"isPreFunded": false,
"clientName": "Sarah M.",
"clientCountry": "United Kingdom",
"clientUrl": "https://www.peopleperhour.com/freelancer/sarah-m",
"searchQuery": "wordpress",
"scrapedAt": "2026-06-19T12:00:00Z"
}

Core Fields

FieldTypeDescription
projectIdstringUnique PeoplePerHour project identifier (used for deduplication)
titlestringProject title as posted by the client
urlstringDirect link to the project page
descriptionstringFull project brief exactly as the client posted it, with line breaks preserved

Budget & Pricing

FieldTypeDescription
budgetnumberThe single budget figure PeoplePerHour shows on the project. Read it together with priceType: a whole-project total when priceType is fixed, a per-hour rate when it is hourly. PeoplePerHour projects carry one budget figure, not a range.
currencystringNative currency the client posted in (GBP, USD, EUR)
priceTypestringPricing model: fixed or hourly

Classification

FieldTypeDescription
categorystringTop-level category name, exactly as it appears in the Category dropdown — one of the 10 PeoplePerHour categories
subCategorystringSub-category name when present
skillsstring[]Required skills tags the client listed for the project (included when full descriptions are enabled)
experienceLevelstringSeniority tier — Entry, Intermediate, or Expert — inferred from the project's budget tier
locationTypestringRemote, Remote (country-restricted), or On-site. Country-restricted projects are remote work the client wants done from one named country.
durationstringEstimated project duration when provided

Client & Status

FieldTypeDescription
clientNamestringPublic name of the hiring client
clientCountrystringCountry the client is based in
clientUrlstringLink to the client's profile
proposalCountnumberNumber of bids the project has received
isUrgentbooleanThe client marked the project urgent (about 1.5% of open projects)
isFeaturedbooleanPeoplePerHour is promoting the project with its Featured badge. Genuinely rare: roughly 1 open project in 400
isOpportunitybooleanPeoplePerHour's High Earning Potential badge: its model predicts this project and any follow-on work will generate high value income. Around 30% of open projects
isPreFundedbooleanThe client has already funded the project before hiring, so the money is committed up front (about 2% of open projects)

Meta

FieldTypeDescription
postedDatestringWhen the project was posted (ISO-style timestamp)
expiryDatestringWhen the project listing expires
postedRelativestringHow long ago it was posted, in plain words (5 hours ago, 3 days ago)
searchQuerystringThe keyword that surfaced this project
scrapedAtstringISO timestamp of data collection

Tips for Best Results

  • Leave maxResults at 0 to capture an entire category's open demand — perfect for a full snapshot of what clients are hiring for right now in your niche.
  • Use Most recent sort for outreach — fresh postings are where new leads live; the most recent projects have the fewest existing proposals.
  • Stack isOpportunity and isPreFunded to rank leadsisOpportunity is PeoplePerHour's own High Earning Potential prediction (about 30% of open projects) and isPreFunded means the client has already put the money up (about 2%). A project carrying both is the strongest buy-signal in the feed. isFeatured is a much rarer promotion badge, roughly 1 project in 400, so treat it as a curiosity rather than a filter.
  • Watch proposalCount to find low-competition leads — a project with 0-3 proposals is far easier to win than one with 30, so sort your output by this field before pitching.
  • Turn off descriptions for fast volume runs — when you only need titles, budgets, categories, and links for market sizing, switching off full descriptions makes runs lighter and quicker.
  • Combine a keyword with a category to tighten results to exactly the segment you serve, instead of scanning a broad keyword across every category.
  • Split fixed from hourly before you average any budgetbudget is a whole-project total on fixed-price postings and a per-hour rate on hourly ones, so group by priceType first, then compare within each group and within each currency (every budget keeps its original GBP/USD/EUR, so there is no conversion drift to undo).
  • Run several keywords in one job — list every service variant you offer in searchQueries; deduplication keeps the merged lead list clean.

Pricing

From $3.00 per 1,000 results — undercuts comparable PeoplePerHour data tools while returning native-currency budgets, skills, proposal counts, and client details. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

ResultsNo discountBronzeSilverGold
100$0.36$0.34$0.32$0.30
1,000$3.60$3.40$3.20$3.00
10,000$36.00$34.00$32.00$30.00
100,000$360.00$340.00$320.00$300.00

A "result" is any project row in the output dataset. There are no compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

Integrations

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

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Trigger custom APIs on run completion
  • Apify API — Full programmatic access

This actor is designed for legitimate market research, lead generation, and competitive analysis of publicly listed freelance projects. Users are responsible for complying with applicable laws and PeoplePerHour's Terms of Service. Do not use extracted data for spam, harassment, or any unlawful purpose, and handle any personal data in line with relevant privacy regulations.