File size: 2,197 Bytes
b9ffb46
 
 
 
 
 
 
a91602d
 
 
 
 
 
 
 
 
 
 
 
b9ffb46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import requests
from .normalizer import normalize_job_data
import os

# --- THIS IS A SKELETON FILE ---


url = "https://upwork-jobs-api2.p.rapidapi.com/active-freelance-1h"

querystring = {"limit":"10"}

headers = {
	"x-rapidapi-key": "bfac064b2fmsh8be26d692fcad76p168d6cjsncf4237253560",
	"x-rapidapi-host": "upwork-jobs-api2.p.rapidapi.com"
}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())

def fetch_upwork_jobs_stub(query="web developer", limit=5):
    """
    Skeleton function to fetch jobs from an Upwork RapidAPI.
    Returns a predefined list of mock jobs.
    """
    print("Upwork agent is a stub. Returning mock data.")
    mock_upwork_jobs = [
        {
            'title': 'Build a responsive website (Stub)',
            'snippet': 'Need a developer to create a 5-page marketing website. Must be proficient in HTML, CSS, and JavaScript. This is a mock job.',
            'url': 'https://www.upwork.com/jobs',
            'published_on': '2025-01-15T12:00:00Z',
            'category2': 'Web Development',
            'client': {'country': 'United States'}
        }
    ]
    return [normalize_job_data(job, "Upwork (Stub)") for job in mock_upwork_jobs]

def fetch_upwork_jobs_real(query="web developer", limit=10):
    """
    Real implementation example for fetching jobs from an Upwork RapidAPI.
    NOTE: This code is illustrative and depends on the specific API's structure.
    """
    if RAPIDAPI_KEY == "YOUR_RAPIDAPI_KEY_HERE":
        print("RAPIDAPI_KEY not set for Upwork. Cannot fetch real data.")
        return []

    url = f"https://{RAPIDAPI_HOST}/search/jobs"
    params = {"q": query, "per_page": str(limit)}

    headers = {
        "x-rapidapi-key": RAPIDAPI_KEY,
        "x-rapidapi-host": RAPIDAPI_HOST
    }

    try:
        response = requests.get(url, headers=headers, params=params)
        response.raise_for_status()
        jobs = response.json().get('jobs', []) # Adjust based on actual API response
        return [normalize_job_data(job, "Upwork") for job in jobs]
    except requests.exceptions.RequestException as e:
        print(f"Error fetching jobs from Upwork RapidAPI: {e}")
        return []