Upwork Job Scraper avatar
Upwork Job Scraper

Pricing

$25.00/month + usage

Go to Store
Upwork Job Scraper

Upwork Job Scraper

Developed by

Neatrat

Maintained by Community

Scrape Upwork jobs without limits 🌟 Bypass CAPTCHAs & apply custom filters.

5.0 (2)

Pricing

$25.00/month + usage

5

Monthly users

18

Runs succeeded

>99%

Response time

22 hours

Last modified

a day ago

OT

Scraping Incorrect/Unwanted Jobs

Open

OtisB opened this issue
13 days ago

Hey my friend, I'm utilizing Search URLs as my source instead of keywords, this gives me much more granular control of the jobs I scrape.

However, I am currently only interested in jobs that are specifically hiring U.S. Only freelancers like myself, so I have ticked on the "U.S. Only" option. Your scraper is returning jobs that are NOT U.S. only jobs though.

Here is one of the URLs I am using: https://www.upwork.com/nx/search/jobs/?amount=500-&contractor_tier=1,2,3&hourly_rate=30-&payment_verified=1&q=%28%28website%20OR%20AND%20OR%20design%29%20OR%20%28web%20OR%20AND%20OR%20design%29%29&sort=recency&subcategory2_uid=531770282589057029,531770282584862733&t=0,1&user_location_match=1

The scraper should, in theory, only be able to return jobs that are listed in the URL. Otherwise, what's the point of using a URL as a source?

neatrat avatar

Hey Otis! Thank you for this, will check it out and come back to you asap!

neatrat avatar

I see! To make this work, I'll need to implement the ability to pass cookies in the request, since the "user_location_match" parameter within the URL refers to the relevant location of the "user" of the request, which is fetched through cookies. Right now, this is ignored (by upwork itself) because the scraper has no cookies, meaning no user is logged in.

OT

OtisB

13 days ago

Interesting. So you're saying that the US only option is unique to whoever is signed in? I thought that was a universal filtering option.

neatrat avatar

For some reason the screenshot is not properly loading, but yes, The user_location_match parameter is specific to each user's country. (For example someone from japan would get japan only jobs if user_location_match is "=1") If not logged in, upwork removes the parameter from the url completely. Thats why the scraper still returns jobs.

OT

OtisB

13 days ago

Dang.. that sucks. So the only workaround would be to feed in my cookies? That's fine with me, I've just never done something like that. Is it something that is set once and it's done? Granted that it's the same URL being scraped each time?

Secondly, I'd imagine another potential workaround would be if your scraper could identify whether the job listing is available worldwide or is specifcally looking for people in a specified country (my case being the U.S.).

(In case the images don't work, here they are as URLs: https://paste.pics/e76b6d4f32efc2e7c903fab59ea11164, https://paste.pics/361b3014d7fc5a4876bc62f78544429b)

neatrat avatar

Yeah, sucks that its not as simple as it should be. So 2 workarounds. 1 - With cookies. and yes you set it once and you're done. 2 - Once I update the scraper to include job details, you'll be able to filter them directly, so no cookies will be needed

Either way I'll include cookies tomorrow and the job details hopefully within next week!

OT

OtisB

13 days ago

Awesome man! Thanks so much. Looking forward to those updates. Keep me posted if you can

OT

OtisB

13 days ago

Hey man, another thing I am trying to figure out is if there is a limit to how many jobs it can scrape with each run? It seems to always cap at 10, but I I am unsure if that simple because it's a coincidence being that there have only been up to 10 jobs found that matched my criteria, or if it's capping the search at 10.

The following is an example of my input:

{ "maxJobAge": { "value": 70, "unit": "minutes" }, "rawUrl": "https://www.upwork.com/nx/search/jobs/?amount=300-&contractor_tier=1,2,3&from_recent_search=true&hourly_rate=30-&payment_verified=1&q=%28automation,%20OR%20make.com%29&sort=recency&t=0,1 ", "sort": "newest" }

neatrat avatar

You can set the "perPage" property to 10, 20, or 50 to get more results. for example { "perPage": 50, ... }

I’ll keep you posted here once the cookies and details are sorted out!

Btw, if you could drop a nice review, it would mean a lot, it really helps since I just got started on Apify! Thanks!

neatrat avatar

Ah actually since you're using raw url just add this param in your url "&per_page=50"

OT

OtisB

12 days ago

I totally intend on giving you a 5 star review, just as soon as these upcoming updates are live and I have been able to test them out. Great work so far, especially given that you are new to Apify.

No with the added parameter, where exactly do I add it? I don't want the URLs to break.

Also, I am specifying that I want perPage to be 100, but it doesn't seem to make a difference. I guess, like you said, it needs to be added to the URL. Please let me know exactly where and how to add that so it doesn't break anything.

Here is one of my URLs: https://www.upwork.com/nx/search/jobs/?amount=300-&contractor_tier=1,2,3&from_recent_search=true&hourly_rate=30-&payment_verified=1&q=%28automation,%20OR%20make.com%29&sort=recency&t=0,1&user_location_match=1

OT

OtisB

12 days ago

Got it, thanks. Let me know once the cookies update is live so I can test it out.

OT

OtisB

6 days ago

Any updates?

neatrat avatar

Sorry for the delay! Will have this done within the day and update you here!

neatrat avatar

Hey OtisB, Cookies are now supported, thanks for your patience! You’ll find all the details, including a how-to guide and example, on the actor’s homepage.

Pricing

Pricing model

Rental 

To use this Actor, you have to pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage.

Free trial

2 hours

Price

$25.00