PeoplePerHour Freelancers Scraper
parseforge/peopleperhour-freelancers-scraper
Lead generationAutomation
Scrapes PeoplePerHour freelancer profiles by skill or keyword, with optional location and rating filters. Returns each freelancer as a flat row with profile URL, rating, and location.
- Total users
- 2
- Monthly active
- 0
- Total runs
- 119
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 9 days ago
Overview
PeoplePerHour Freelancers Scraper
Scrape PeoplePerHour freelancers by skill, keyword, or location, up to a million per run. Each freelancer comes with their profile URL, rating, and location. No login or API key. Export to CSV, JSON, Excel, or XML.
PeoplePerHour's official API needs an app registration, OAuth, and rate-limits you. This reads the public freelancer search results directly, filtered by skill, location, and minimum rating, and returns each match in one fixed schema.
| Who uses it | What they scrape PeoplePerHour for |
|---|---|
| Recruiters | Build a shortlist of freelancers with a specific skill in a target city |
| Market researchers | Map the supply of freelance talent for a given skill across locations |
| Sales teams | Find freelancers who offer services complementary to your product |
| Agencies | Identify subcontractors for overflow work in a niche |
What it does
This Actor collects PeoplePerHour freelancer profiles by skill or keyword, with optional location and rating filters, and returns each one as a flat row.
- ๐ Skill or keyword search: enter any role or skill, like "wordpress developer" or "logo design".
- ๐ Location filter: narrow results to a city or region, such as "London" or "Berlin".
- โญ Minimum rating filter: only collect freelancers at or above a star rating you set.
- ๐ฆ Bulk collection: set a maximum up to 1,000,000 freelancers per run.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with PeoplePerHour data
๐งฒ Build a freelancer shortlist.
A recruiter searches for "wordpress developer" in London with a minimum rating of 4.5 and gets a clean list of profiles to contact.
๐ Analyze freelance supply.
A market researcher collects all freelancers for "data entry" across several cities to compare hourly rates and availability.
๐ค Find subcontractors.
An agency owner scrapes freelancers for "UI design" to identify potential partners for overflow projects.
๐ฏ Generate sales leads.
A SaaS founder collects freelancers who offer "social media management" to pitch them a complementary tool.
Why choose this scraper
| What you get | |
|---|---|
| No API key | Scrape public PeoplePerHour search results without registering an app or dealing with OAuth. |
| Fixed schema | Every freelancer comes back as one flat row, ready for CSV, JSON, Excel, or XML. |
| Filtered at the source | Location and rating filters are applied while scraping, so your dataset only contains relevant profiles. |
| Scalable | Collect up to a million freelancers per run, enough for market-wide analysis. |
How it compares
This Actor focuses on freelancer profiles only, while the competitors below also scrape job listings or service listings. Choose based on whether you need freelancers, jobs, or both.
| Feature | ParseForge | PeoplePerHour Job Scraper | PeoplePerHour Listings Scraper | PeoplePerHour Jobs & Freelancers Scraper |
|---|---|---|---|---|
| Freelancer profiles | Yes | Not listed | Yes | Yes |
| Job listings | No | Yes | Not listed | Yes |
| Service listings (hourlies) | No | Not listed | Yes | Yes |
| Location filter | Yes | Not listed | Not listed | Not listed |
| Minimum rating filter | Yes | Not listed | Not listed | Not listed |
| Bulk collection up to 1M | Yes | Not listed | Not listed | Not listed |
Configure the run
Drive the Actor from a skill or keyword, optionally add a location and a minimum rating, and set the maximum number of freelancers to collect. Filters run as each profile is read so only matches reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{
"query": "wordpress developer",
"maxItems": 10
}
A larger pull:
{
"query": "wordpress developer",
"maxItems": 200
}
Pricing
Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.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 to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the PeoplePerHour Freelancers Scraper.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to PeoplePerHour through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/peopleperhour-freelancers-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, or the location and rating filters may be too restrictive. Try a broader skill term, remove the location, or lower the minimum rating.
Why did the run stop before reaching my maxItems?
PeoplePerHour may not have enough freelancers matching your filters. The Actor stops when there are no more results to scrape.
Why are some freelancer profiles missing data?
Some freelancers may not have filled in all fields on their profile. The Actor returns whatever is publicly available on the search results page.
Why did I get blocked or see a captcha?
PeoplePerHour may be rate-limiting your requests. Try using Apify proxy, increase the delay between requests, or run the Actor at a less busy time.
Can I scrape a specific freelancer's full profile?
This Actor collects data from the search results page, not individual profile pages. For full profile details, you would need a different scraper.
FAQ
| Question | Answer |
|---|---|
| Do I need a PeoplePerHour API key? | No. This Actor scrapes the public freelancer search pages directly, so no API key or app registration is required. |
| What data does each freelancer row include? | Each row includes the freelancer's profile URL, name, rating, location, and other details available on the search results page. The exact fields are shown in the sample output below. |
| Can I filter by location and rating at the same time? | Yes. You can set a city or location and a minimum star rating, and both filters are applied while scraping. |
| How many freelancers can I collect in one run? | You can set the maximum up to 1,000,000 freelancers per run. The Actor will stop once it reaches that number or runs out of results. |
| What export formats are supported? | You can export the results as CSV, JSON, Excel, or XML from the Apify dataset. |
| Can I search for multiple skills in one run? | The input accepts one skill or keyword per run. To collect multiple skills, run the Actor multiple times or use Apify's scheduler to run it with different inputs. |
| Does this Actor scrape job listings too? | No, this Actor focuses on freelancer profiles. If you need job listings, check the PeoplePerHour Job Scraper in the Apify Store. |
| Is this Actor legal to use? | You should only scrape public data that you are allowed to access. Check PeoplePerHour's terms of service and your local laws before scraping. |
| Can I schedule this Actor to run regularly? | Yes, you can use Apify's scheduler to run it daily, weekly, or at any interval you need. |
| What if I get no results? | Try a broader keyword, remove the location or rating filter, or check if PeoplePerHour has changed its search layout. See the troubleshooting section below. |
Related actors
Browse the full ParseForge collection 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 PeoplePerHour Ltd. 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.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| query | string | Skill or role keywords (e.g. "wordpress developer"). | wordpress developer |
| maxItems | integer | How many freelancers to collect per run. | 10 |
| location | string | Optional location filter. | not set |
| minRating | number | Optional minimum star rating (0 to 5). | not set |
Pricing
from $7.50 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.0075 to $0.0085 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~peopleperhour-freelancers-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
