PeoplePerHour Scraper avatar

PeoplePerHour Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
PeoplePerHour Scraper

PeoplePerHour Scraper

[πŸ’° $3.0 / 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

2

Total users

1

Monthly active users

a day 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 β€” Artificial Intelligence, Technology & Programming, Design, Digital Marketing, Writing & Translation, Social Media, Marketing/Branding/Sales, Video & Photography, Music & Audio, and Business. Pick one from a dropdown; no URL crafting.
  • 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.
  • Structured budget ranges β€” separate budgetMin and budgetMax fields whenever a project advertises a range, plus a single headline budget figure.
  • 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 project β€” proposalCount tells you how saturated each lead is before you spend time on a pitch.
  • Full project brief on every row, plus skills tags when available β€” every row carries the complete project description, not just a truncated teaser; when a project's detail page is reachable we add the client's required-skills list on top.
  • 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 Artificial Intelligence 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 budget ranges by experience level 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: Artificial Intelligence, Technology & Programming, Writing & Translation, Design, Digital Marketing, Social Media, Marketing/Branding/Sales, Video & Photography, Music & Audio, or Business.
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 projects that can be done remotely.
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.
includeDescriptionbooleantrueInclude the full project description for each project, plus skills tags when they can be read. Turn off for lighter, faster records when you only need titles, budgets, categories, dates, and links.

Output

Each project posting is returned as one flat row. Here is a representative result with full descriptions enabled (the skills array shows a row whose detail page was reachable; see the field note below):

{
"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...",
"descriptionHtml": "<p>We need an experienced WordPress developer to build a booking management plugin...</p>",
"budget": 800,
"budgetMin": 800,
"budgetMax": 1200,
"currency": "GBP",
"priceType": "fixed",
"category": "Technology & Programming",
"subCategory": "WordPress",
"skills": ["WordPress", "PHP", "Plugin Development", "JavaScript"],
"postedDate": "2026-06-18T09:14:22",
"expiryDate": "2026-07-18T09:14:22",
"duration": "1 to 3 months",
"locationType": "Remote",
"experienceLevel": "Expert",
"proposalCount": 7,
"isUrgent": false,
"isFeatured": 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 as plain text
descriptionHtmlstringFull project brief with original HTML formatting

Budget & Pricing

FieldTypeDescription
budgetnumberHeadline budget amount
budgetMinnumberLower bound when the project advertises a range
budgetMaxnumberUpper bound when the project advertises a range
currencystringNative currency the client posted in (GBP, USD, EUR)
priceTypestringPricing model: fixed or hourly

Classification

FieldTypeDescription
categorystringTop-level category name
subCategorystringSub-category name when present
skillsstring[]Required skills tags β€” included when available (added from a project's detail page when it can be read)
experienceLevelstringSeniority tier β€” Entry, Intermediate, or Expert β€” inferred from the project's budget tier
locationTypestringRemote or On-site
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
isUrgentbooleanWhether the project is flagged urgent
isFeaturedbooleanWhether the project is featured/promoted

Meta

FieldTypeDescription
postedDatestringWhen the project was posted (ISO-style timestamp)
expiryDatestringWhen the project listing expires
postedRelativestringRelative posting time when the site provides one
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.
  • 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.
  • Compare native currencies, not converted estimates β€” because every budget keeps its original GBP/USD/EUR, you can benchmark true regional rates without conversion drift.
  • 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 structured 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.