### Quickstart: Use UpHunt client as a context manager Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Utilize the UpHunt client as a context manager to ensure the connection pool is automatically closed. This example shows how to fetch applied jobs. ```python with UpHunt() as client: jobs = client.applied_jobs(limit=10, status="applied") ``` -------------------------------- ### Install UpHunt Python SDK Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Install the UpHunt Python SDK using pip. Requires Python 3.9 or higher. ```bash pip install uphunt ``` -------------------------------- ### Quickstart: Apply to a job and poll status Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Initialize the UpHunt client and use it to apply for a job. The API key can be provided directly or set as an environment variable. After applying, poll the status using the returned queue ID. ```python from uphunt import UpHunt client = UpHunt(api_key="...") # or set UPHUNT_API_KEY in the environment # Apply to a job result = client.apply( job_id="~022053140178050136031", cover_letter="Hi — I'd love to help with this project…", proposal={"hourlyRate": 65, "timeline": "1 to 3 months"}, ) print(result["queueId"]) # Poll status status = client.status(queue_id=result["queueId"]) print(status["applicationStatus"]) # 'processing' | 'applied' | … ``` -------------------------------- ### Error Handling with UpHuntError Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Catch and handle potential errors during API calls using the UpHuntError exception. This example demonstrates how to access the status code and response body from the error. ```python from uphunt import UpHunt, UpHuntError try: client.apply(job_id="~01abc", cover_letter="…") except UpHuntError as err: print(err.status_code, err, err.body) ``` -------------------------------- ### Generate Proposal and Apply Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md This snippet shows a two-step process: first, generate a proposal for a job using `generate_proposal`, and then use the generated proposal to apply for the job with `apply`. ```python gen = client.generate_proposal(job_id="~01abc", reasoning_effort="medium") client.apply(job_id="~01abc", cover_letter=gen["proposal"]) ``` -------------------------------- ### freelancers Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Fetches a list of available freelancers. ```APIDOC ## GET /api/auto-apply-v2/freelancers ### Description Fetches a list of available freelancers. ### Method GET ### Endpoint /api/auto-apply-v2/freelancers ### Parameters #### Path Parameters None #### Query Parameters None ### Request Example ```json {} ``` ### Response #### Success Response (200) - (Array of freelancer objects) - A list of freelancer data. #### Response Example ```json [ { "freelancerId": "...", "name": "Example Freelancer" } ] ``` ``` -------------------------------- ### apply Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Applies to a specific Upwork job with a cover letter and proposal details. This method is used to automate job applications. ```APIDOC ## POST /api/auto-apply-v2/apply ### Description Applies to a specific Upwork job with a cover letter and proposal details. ### Method POST ### Endpoint /api/auto-apply-v2/apply ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **job_id** (string) - Required - The ID of the job to apply to. - **cover_letter** (string) - Required - The content of the cover letter. - **proposal** (object) - Optional - Details for the proposal, such as `hourlyRate` and `timeline`. ### Request Example ```json { "job_id": "~022053140178050136031", "cover_letter": "Hi — I'd love to help with this project…", "proposal": { "hourlyRate": 65, "timeline": "1 to 3 months" } } ``` ### Response #### Success Response (200) - **queueId** (string) - The ID of the application queue. #### Response Example ```json { "queueId": "some_queue_id" } ``` ``` -------------------------------- ### generate_proposal Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Generates an AI-powered proposal for a given job ID, based on specified reasoning effort. ```APIDOC ## POST /api/auto-apply-v2/generate-proposal ### Description Generates an AI-powered proposal for a job. ### Method POST ### Endpoint /api/auto-apply-v2/generate-proposal ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **job_id** (string) - Required - The ID of the job to generate a proposal for. - **reasoning_effort** (string) - Optional - The level of effort for reasoning (e.g., 'medium'). ### Request Example ```json { "job_id": "~01abc", "reasoning_effort": "medium" } ``` ### Response #### Success Response (200) - **proposal** (string) - The generated cover letter proposal. #### Response Example ```json { "proposal": "This is a generated proposal..." } ``` ``` -------------------------------- ### applied_jobs Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Retrieves a list of jobs the user has already applied to, with options for limiting results and filtering by status. ```APIDOC ## GET /api/auto-apply-v2/applied-jobs ### Description Retrieves a list of jobs the user has applied to. ### Method GET ### Endpoint /api/auto-apply-v2/applied-jobs ### Parameters #### Path Parameters None #### Query Parameters - **limit** (integer) - Optional - The maximum number of jobs to return. - **offset** (integer) - Optional - The number of jobs to skip before returning results. - **status** (string) - Optional - Filters jobs by their application status (e.g., 'applied'). ### Request Example ```json { "limit": 10, "status": "applied" } ``` ### Response #### Success Response (200) - (Array of job objects) - A list of applied jobs. #### Response Example ```json [ { "jobId": "~01abc", "title": "Example Job Title" } ] ``` ``` -------------------------------- ### get_client_jobs Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Retrieves a list of jobs posted by a specific client, identified by their company ID. ```APIDOC ## GET /api/clients/:companyId/jobs ### Description Retrieves a list of jobs posted by a specific client. ### Method GET ### Endpoint /api/clients/:companyId/jobs ### Parameters #### Path Parameters - **companyId** (string) - Required - The ID of the client's company. #### Query Parameters None ### Request Example ```json { "companyId": "client_company_id" } ``` ### Response #### Success Response (200) - (Array of job objects) - A list of jobs posted by the client. #### Response Example ```json [ { "jobId": "~01xyz", "title": "Another Job Title" } ] ``` ``` -------------------------------- ### get_job Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Retrieves details for a specific job using its ciphertext identifier. ```APIDOC ## GET /api/jobs/by-ciphertext ### Description Retrieves details for a specific job using its ciphertext. ### Method GET ### Endpoint /api/jobs/by-ciphertext ### Parameters #### Path Parameters None #### Query Parameters - **ciphertext** (string) - Required - The ciphertext identifier of the job. ### Request Example ```json { "ciphertext": "some_job_ciphertext" } ``` ### Response #### Success Response (200) - (Job object) - Detailed information about the job. #### Response Example ```json { "jobId": "~01abc", "title": "Example Job Title" } ``` ``` -------------------------------- ### status Source: https://github.com/ffucucuoglu/uphunt-python/blob/main/README.md Polls the status of a previously submitted application using its queue ID or job ID. ```APIDOC ## GET /api/auto-apply-v2/status ### Description Polls the status of a previously submitted application. ### Method GET ### Endpoint /api/auto-apply-v2/status ### Parameters #### Path Parameters None #### Query Parameters - **queue_id** (string) - Required - The ID of the application queue. - **job_id** (string) - Required - The ID of the job. ### Request Example ```json { "queue_id": "some_queue_id" } ``` ### Response #### Success Response (200) - **applicationStatus** (string) - The current status of the application (e.g., 'processing', 'applied'). #### Response Example ```json { "applicationStatus": "applied" } ``` ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.