PeoplePerHour Scraper 💰 From $4.5/1K | Jobs & Profiles avatar

PeoplePerHour Scraper 💰 From $4.5/1K | Jobs & Profiles

Pricing

from $4.40 / 1,000 results

Go to Apify Store
PeoplePerHour Scraper 💰 From $4.5/1K | Jobs & Profiles

PeoplePerHour Scraper 💰 From $4.5/1K | Jobs & Profiles

Scrape freelance projects and freelancer profiles from PeoplePerHour: budgets, skills, proposal counts, client details, hourly rates and ratings. Built for agency lead generation, staffing and freelance market research.

Pricing

from $4.40 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

PeoplePerHour Scraper

Extract freelance projects and freelancer profiles from PeoplePerHour as clean, structured JSON — the data you need for freelance job market research, agency lead generation, staffing and recruiting, and proposal-competition analysis.

Unlike project-only scrapers, this actor returns both sides of the marketplace: open freelance jobs (with budgets, skills, proposal counts and client details) and freelancer profiles (with hourly rates, ratings, skills and experience).

Use Cases

  • Agency & freelancer lead generation — pull fresh projects matching your skills and pitch them before the proposal count climbs
  • Freelance market research — track demand by category, budget level, skills and geography over time
  • Recruiting & talent sourcing — search freelancer profiles by skill to build a candidate pipeline
  • Competitor & rate benchmarking — see what freelancers in a category charge and how busy projects are
  • Marketplace data pipelines — feed dashboards, CRMs and Data Warehouses with recurring freelance-market data
  • Building a freelance jobs dataset — export thousands of projects and profiles for analytics

How It Works

PeoplePerHour is a React single-page app, but its frontend talks to a clean internal JSON API that is not behind a Cloudflare/anti-bot wall and needs no cookies or login. This actor calls that API directly — no browser, no DOM scraping, so runs are fast and cheap (256 MB).

  1. It resolves your start URLs or search keywords to the correct PeoplePerHour filter (category id or listing tag id).
  2. It pages through the JSON API (up to 50 records per request) until maxItems is reached.
  3. Category slugs that cannot be resolved fall back to a keyword search, so results still match the intent instead of returning the whole unfiltered marketplace.

Extract Freelance Projects And Freelancer Profiles Without The Official API

PeoplePerHour has no public developer API for project or profile data. Third-party "PeoplePerHour APIs" are wrappers around this same public frontend surface. This actor reads that surface directly and returns structured items you can pipe into any tool.

  • Projects — title, URL, full description, budget + currency + converted budget + budget bracket, project type (fixed / hourly), category & subcategory, skills (category + subcategory), posted & expiry dates, proposal count, location type (remote / on-site), and badges (featured, urgent, high-earning, pre-funded, NDA).
  • Client details per project — name, country, city, profile URL, job title, member since, verified flag, hourly rate and about text.
  • Freelancers — name, profile URL, headline, about, skill tags, hourly rate + converted rate + currency, rating & review count, projects completed, completion ratio, response time, buyers worked with, endorsements, last project, location, member since, verified/featured flags, certification, spoken languages and photo.

Cost & Performance

  • Plain HTTP against the internal JSON API — no browser, so it is fast and cheap (run at 256 MB).
  • The API returns up to 50 records per request; a 100-item run costs roughly 2–4 API calls.
  • Free Apify users get a 10-item preview; paid users can pull the full dataset (thousands of profiles, hundreds of open projects).

Input

FieldTypeRequiredDefaultNotes
startUrlsarrayNo/freelance-jobs + /hire-freelancers listingsPeoplePerHour search/category URLs. Supports /freelance-jobs/... (projects) and /hire-freelancers/... (freelancers), category paths and ?query= / ?skills= params. Plain strings or { "url": "..." } objects.
searchQueriesarrayNo[]Keywords to search. Each keyword is searched and filters projects and/or freelancer profiles.
maxItemsintegerNo100Max records returned (projects + freelancers combined). Free users are capped at 10.
proxyobjectNoApify proxy offStandard Apify proxy picker.

Tip: the entity type (projects vs freelancers) is driven by the URLs you provide — use /freelance-jobs/... URLs to collect projects and /hire-freelancers/... URLs to collect freelancer profiles.

Output

Every dataset item is either a project or a freelancer. Key fields:

FieldTypeDescription
titlestringProject title or freelancer headline
urlstringCanonical PeoplePerHour URL
descriptionstringFull project description (projects)
budget / currency / budgetBracketnumber / stringProject budget in native currency
projectTypestringfixed_price or hourly
category / subCategorystringMarketplace category hierarchy
skillsarraySkill tags
postedDate / expiryDatestringISO timestamps (projects)
proposalCountnumberBids received (projects)
locationTypestringremote or on_site
clientName / clientCountry / clientUrlstringHiring client details (projects)
hourlyRatenumberFreelancer hourly rate (freelancers)
rating / reviewCountnumberFreelancer rating and review count
projectsCompletednumberFreelancer completed projects

(Exact field names are shown in Apify Console's dataset views; the actor output is flattened per entity type.)

Example Input

{
"startUrls": [
"https://www.peopleperhour.com/freelance-jobs/technology-programming",
"https://www.peopleperhour.com/hire-freelancers/design"
],
"searchQueries": ["wordpress developer", "logo design"],
"maxItems": 100,
"proxy": { "useApifyProxy": false }
}

Example Output

{
"type": "project",
"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 plugin with calendar sync...",
"budget": 800,
"currency": "GBP",
"projectType": "fixed_price",
"category": "Technology & Programming",
"subCategory": "WordPress",
"skills": ["WordPress", "PHP", "Plugin Development"],
"postedDate": "2026-06-18T09:14:22",
"expiryDate": "2026-07-18T09:14:22",
"locationType": "remote",
"proposalCount": 7,
"clientName": "Sarah M.",
"clientCountry": "United Kingdom",
"clientUrl": "https://www.peopleperhour.com/freelancer/sarah-m"
}

Integrations And Automation

  • Apify API — run the actor programmatically and fetch results from the dataset.
  • Webhooks — trigger downstream systems when a run finishes.
  • Scheduled runs — set a daily schedule to catch new projects early (proposal counts rise fast; early bidding wins) or a weekly schedule for market tracking.
  • Zapier / Make / n8n — push new projects and profiles into your CRM, Slack or Google Sheets.
  • Export — download results as JSON, CSV or Excel from the dataset tab.

A recurring daily schedule is the highest-value setup for lead generation: new freelance projects are worth pitching within hours of posting.

  • Upwork Scraper — the largest freelance marketplace; pair with this actor to compare freelance demand across platforms
  • Fiverr Scraper — freelance services marketplace data for broader gig-economy research
  • Freelancer.com Scraper — third major freelance marketplace for triangulating rates and demand
  • Wuzzuf Scraper — MENA job-board data if your recruiting research spans regions
  • LinkedIn Jobs Scraper — full-time roles to complement your freelance and contract data

FAQ

Does PeoplePerHour have an official API?

PeoplePerHour has no public API for project or profile data. Its seller/marketplace tooling is separate from the public job listings. This actor works with the public listing surface the site's own frontend uses, so you get the same data the website shows — no credentials or approval required.

Why use this actor instead of building your own PeoplePerHour scraper?

You don't have to maintain pagination, category-slug resolution, retries or field mappings. The actor already handles category→id mapping, keyword fallbacks for unresolvable slugs, and both URL formats, and returns clean JSON you can schedule and export.

What are alternatives to this actor?

Other PeoplePerHour actors on Apify, and managed scraping APIs. This actor is built around the internal JSON API (fast, no browser), and returns both projects and freelancer profiles in one run.

Can I scrape freelancer profiles, not just projects?

Yes. Point startUrls at /hire-freelancers/... URLs or use searchQueries to collect freelancer profiles with rates, ratings and skills.

Does this work for lead generation?

Yes — that is a primary use case. Schedule it daily, filter fresh projects by your category and skills, and export them to your CRM or outreach tool.

Can I export the data to CSV or Excel?

Yes. Apify datasets export to JSON, CSV, Excel and more from the dataset tab or via the API.

How much does a run cost?

You pay standard Apify platform usage (compute + proxy). A 100-item run is small — a few API calls at 256 MB — so it is inexpensive.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by PeoplePerHour. It accesses only publicly available PeoplePerHour listing and profile pages through the site's own public frontend surface; it does not bypass login, and it does not solve CAPTCHAs.

The output includes client and freelancer names, locations and profile URLs. You are responsible for complying with PeoplePerHour's Terms of Service and all applicable data-protection laws (including GDPR where the data relates to individuals in the EU/UK). Do not use personal data collected through this actor for unsolicited commercial outreach in violation of applicable law.

For AI Agents & LLM Apps

Purpose: returns PeoplePerHour freelance projects and/or freelancer profiles as structured JSON items for lead generation, market research and talent sourcing.

Minimal working input:

{
"startUrls": ["https://www.peopleperhour.com/freelance-jobs"],
"maxItems": 20
}

Variant — keyword search:

{
"searchQueries": ["wordpress developer"],
"maxItems": 50
}

Variant — freelancer profiles:

{
"startUrls": ["https://www.peopleperhour.com/hire-freelancers/technology-programming"],
"maxItems": 50
}

Output fields: type, title, url, description, budget, currency, budgetBracket, projectType, category, subCategory, skills, postedDate, expiryDate, proposalCount, locationType, clientName, clientCountry, clientUrl (projects); name, url, headline, skills, hourlyRate, rating, reviewCount, projectsCompleted, location, memberSince, verified (freelancers).

Behaviors an agent should know:

  • Entity type is driven by the URL you pass: /freelance-jobs/... → projects, /hire-freelancers/... → freelancer profiles.
  • maxItems caps projects + freelancers combined; free Apify accounts are capped at 10 items.
  • startUrls accepts either plain strings or { "url": "..." } objects.
  • Unresolvable category slugs fall back to a keyword search (a warning is logged) rather than returning the whole unfiltered feed.
  • Billing is pay-per-event (per saved dataset item); see the Store page for live prices.

SEO Keywords

peopleperhour scraper, peopleperhour api, peopleperhour job scraper, peopleperhour freelancer scraper, scrape peopleperhour projects, freelance job data, freelance project data, freelance marketplace data, freelance lead generation, agency lead generation, freelance jobs dataset, freelance profile scraper, freelance market research, freelance demand data, freelance rate benchmarking, peopleperhour dataset, peopleperhour jobs export, peopleperhour api alternative, upwork jobs api alternative, freelancer jobs api alternative, staffing data, recruiting data, build a freelance jobs database, freelance proposal count data