TaskRabbit Scraper
Pricing
from $3.00 / 1,000 results
TaskRabbit Scraper
Scrape TaskRabbit featured taskers from public city + service pages. Get name, rating, reviews count, tasks completed, Elite status, photo, bio, city, and service with no login, no proxy required.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(8)
Developer
Crawler Bros
Maintained by CommunityActor stats
8
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Public TaskRabbit (taskrabbit.com) tasker scraper. Pull the featured taskers that TaskRabbit surfaces on each city + service page — including their rating, review count, completed tasks, Elite status, photo, and bio — all without a login, cookies, or proxy.
What you get
For every tasker the scraper extracts:
taskerId— TaskRabbit's internal numeric IDname— display name (first name + initial, e.g.Alejandro C.)averageRating— 0–5 starsreviewsCount— total reviews receivedtasksCount— total tasks completedisElite—trueif marked Elite by TaskRabbitphotoUrl— Cloudinary-hosted profile photobio— self-written description (when present)serviceSlug/serviceName— the service the tasker was featured for (e.g.assemble-furniture/Furniture Assembly)citySlug/city/state/country— the metro the tasker was featured insourceUrl— the exact TaskRabbit page each record came fromrecordType— alwaystaskerscrapedAt— ISO-8601 UTC timestamp
All empty fields are stripped — your dataset never contains null, "", or [] values.
Modes
| Mode | What it does | Required input |
|---|---|---|
search | Free-text query → the actor extracts a city + service from the phrase and scrapes them | searchQuery |
byCity | List featured taskers across all services for a city | city (or cities) |
byCategory | List featured taskers for a service, including the national page and top metros | category (or categories) |
byCityAndCategory | Drilldown: explicit (city × service) matrix | city + category (or cities + categories) |
byUrls | Paste TaskRabbit URLs directly | startUrls |
The city and category inputs are dropdowns populated with TaskRabbit's full taxonomy — 171 US metros and 20 service categories — so you do not have to guess slugs.
Supported URL patterns (mode = byUrls)
https://www.taskrabbit.com/locations/{city}/{service}(e.g.…/los-angeles/assemble-furniture)https://www.taskrabbit.com/near-me/{service}(national page for a service)https://www.taskrabbit.com/locations/{city}(location page — expanded automatically into the top services for that city)
Filters
| Filter | Type | What it does |
|---|---|---|
minRating / maxRating | 0–5 | Range filter on averageRating |
minReviewCount | integer | Drop taskers with fewer reviews than this |
minTasksCount | integer | Drop taskers with fewer completed tasks than this |
eliteOnly | boolean | Keep only Elite-flagged taskers |
containsKeyword | string | Case-insensitive substring filter over name + bio + service + city |
sortBy | enum | default, rating-desc, review-count-desc, tasks-count-desc, name-asc |
maxItems | integer (1–1000) | Hard cap on emitted records |
Example inputs
Search by phrase:
{"mode": "search","searchQuery": "house cleaning chicago","maxItems": 20}
Drilldown on (city × service):
{"mode": "byCityAndCategory","cities": ["los-angeles", "san-francisco", "new-york-city"],"categories": ["assemble-furniture", "help-moving"],"minRating": 4.5,"sortBy": "tasks-count-desc","maxItems": 50}
Direct URL:
{"mode": "byUrls","startUrls": ["https://www.taskrabbit.com/locations/austin/general-handyman","https://www.taskrabbit.com/near-me/junk-removal"],"maxItems": 30}
Output sample
{"taskerId": 5923230,"name": "Alejandro C.","averageRating": 5.0,"reviewsCount": 2984,"tasksCount": 4649,"isElite": false,"photoUrl": "https://res.cloudinary.com/taskrabbit-com/image/upload/azshsq1zulzfymkvabel","bio": "I moved to many states and many new places in my life. As a result I have had to move around and assemble lots of furniture…","serviceSlug": "assemble-furniture","serviceName": "Furniture Assembly","citySlug": "los-angeles","city": "Los Angeles","state": "CA","country": "US","sourceUrl": "https://www.taskrabbit.com/locations/los-angeles/assemble-furniture","recordType": "tasker","scrapedAt": "2026-05-21T20:32:11.847295+00:00"}
Data source
This actor reads only public TaskRabbit pages that are reachable without a login:
/locations/{city}/{service}— city + service drilldown (featured taskers panel)/near-me/{service}— national featured taskers panel/locations/{city}— city landing page
The actor parses the Next.js __NEXT_DATA__ payload embedded in every page. Each page features the top ~6 taskers for that (city, service) combo, so a single run can sample across many metros and services and aggregate hundreds of distinct taskers.
Tasker count per metro/service is also captured (taskerCount from TaskRabbit's own page header).
FAQ
Do I need a TaskRabbit account, an API key, or a proxy? No. Everything used here is publicly served HTML.
Will this scrape every tasker on TaskRabbit? No — TaskRabbit only publicly surfaces a "featured" subset (typically ~6 taskers per city + service page). The actor extracts that featured set across every city + service combination you choose. There is no public endpoint that lists the full tasker roster.
Why does the scraper output country: "US"?
TaskRabbit's /locations/ index covers US metros only — the international pages live on country-specific Next.js routes that do not currently feature taskers publicly.
How fresh is the data?
TaskRabbit renders these pages server-side from their live database. Each tasker's averageRating, reviewsCount, and tasksCount reflect the live values at fetch time.
What does isElite mean?
A TaskRabbit-assigned distinction for taskers with consistently high ratings, high task volume, and low cancellation rates.
Does the actor follow robots.txt?
Yes — only public URLs documented above are visited. No login-walled pages are touched. The actor sends a real User-Agent, paces requests, and retries on 429/5xx with exponential backoff.
Limitations
- No public hourly-rate field — TaskRabbit shows hourly rate only after you enter the booking flow, so this is not part of the dataset.
- No phone/email/last-name — only the public initials and first name are visible.
- Profile pages (
/profile/{id}) require a login and are not scraped.