### Install UpHunt SDK Source: https://github.com/ffucucuoglu/uphunt-node/blob/main/README.md Install the UpHunt SDK using npm, pnpm, yarn, or bun. Requires Node.js 18 or higher. ```bash npm install uphunt # or: pnpm add uphunt / yarn add uphunt / bun add uphunt ``` -------------------------------- ### Quickstart: Apply to a Job and Check Status Source: https://github.com/ffucucuoglu/uphunt-node/blob/main/README.md Initialize the UpHunt client and use it to apply for a job. The client automatically reads the API key from the environment if not provided. ```typescript import { UpHunt } from 'uphunt' const uphunt = new UpHunt({ apiKey: process.env.UPHUNT_API_KEY }) // Apply to a job const { queueId, creditsRemaining } = await uphunt.apply({ jobId: '~022053140178050136031', coverLetter: "Hi — I'd love to help with this project…", proposal: { hourlyRate: 65, timeline: '1 to 3 months' }, }) // Poll status const status = await uphunt.status({ queueId }) console.log(status.applicationStatus) // 'processing' | 'applied' | … ``` -------------------------------- ### Generate Proposal and Apply Source: https://github.com/ffucucuoglu/uphunt-node/blob/main/README.md First, generate a proposal using AI based on job details and reasoning effort, then use the generated proposal to apply for the job. ```typescript const { proposal } = await uphunt.generateProposal({ jobId: '~01abc', reasoningEffort: 'medium' }) await uphunt.apply({ jobId: '~01abc', coverLetter: proposal }) ``` -------------------------------- ### freelancers Source: https://github.com/ffucucuoglu/uphunt-node/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 ``` -------------------------------- ### generateProposal Source: https://github.com/ffucucuoglu/uphunt-node/blob/main/README.md Generates an AI-powered proposal for a given job. Requires a job ID and optionally accepts reasoning effort level. Returns the generated proposal text. ```APIDOC ## POST /api/auto-apply-v2/generate-proposal ### Description Generates an AI-powered proposal for a given job. Requires a job ID and optionally accepts reasoning effort level. Returns the generated proposal text. ### Method POST ### Endpoint /api/auto-apply-v2/generate-proposal ### Parameters #### Request Body - **jobId** (string) - Required - The ID of the job for which to generate a proposal. - **reasoningEffort** (string) - Optional - The level of reasoning effort for the proposal generation (e.g., 'medium'). ### Response #### Success Response (200) - **proposal** (string) - The generated proposal text. #### Response Example ```json { "proposal": "Hi there, I am experienced in..." } ``` ``` -------------------------------- ### appliedJobs Source: https://github.com/ffucucuoglu/uphunt-node/blob/main/README.md Fetches a list of jobs that have been applied to. Supports filtering by limit, offset, and application status. ```APIDOC ## GET /api/auto-apply-v2/applied-jobs ### Description Fetches a list of jobs that have been applied to. Supports filtering by limit, offset, and application status. ### Method GET ### Endpoint /api/auto-apply-v2/applied-jobs ### Parameters #### Query Parameters - **limit** (number) - Optional - The maximum number of jobs to return. - **offset** (number) - Optional - The number of jobs to skip. - **status** (string) - Optional - The status to filter applications by. ``` -------------------------------- ### apply Source: https://github.com/ffucucuoglu/uphunt-node/blob/main/README.md Applies to a specified Upwork job. Requires a job ID and a cover letter. Optionally accepts proposal details like hourly rate and timeline. Returns a queue ID for status tracking and remaining credits. ```APIDOC ## POST /api/auto-apply-v2/apply ### Description Applies to a specified Upwork job. Requires a job ID and a cover letter. Optionally accepts proposal details like hourly rate and timeline. Returns a queue ID for status tracking and remaining credits. ### Method POST ### Endpoint /api/auto-apply-v2/apply ### Parameters #### Request Body - **jobId** (string) - Required - The ID of the job to apply to. - **coverLetter** (string) - Required - The cover letter for the proposal. - **proposal** (object) - Optional - Details for the proposal. - **hourlyRate** (number) - Optional - The proposed hourly rate. - **timeline** (string) - Optional - The estimated timeline for the project. ### Request Example ```json { "jobId": "~022053140178050136031", "coverLetter": "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. - **creditsRemaining** (number) - The number of credits remaining after the application. #### Response Example ```json { "queueId": "some-queue-id", "creditsRemaining": 95 } ``` ``` -------------------------------- ### status Source: https://github.com/ffucucuoglu/uphunt-node/blob/main/README.md Retrieves the status of a job application. Requires either a queue ID or a job ID to identify the application. ```APIDOC ## GET /api/auto-apply-v2/status ### Description Retrieves the status of a job application. Requires either a queue ID or a job ID to identify the application. ### Method GET ### Endpoint /api/auto-apply-v2/status ### Parameters #### Query Parameters - **queueId** (string) - Required - The ID of the application queue. - **jobId** (string) - Required - The ID of the job. ### Response #### Success Response (200) - **applicationStatus** (string) - The current status of the application (e.g., 'processing', 'applied'). #### Response Example ```json { "applicationStatus": "applied" } ``` ``` -------------------------------- ### getJob Source: https://github.com/ffucucuoglu/uphunt-node/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 identifier. ### Method GET ### Endpoint /api/jobs/by-ciphertext ### Parameters #### Query Parameters - **ciphertext** (string) - Required - The ciphertext identifier of the job. ``` -------------------------------- ### getClientJobs Source: https://github.com/ffucucuoglu/uphunt-node/blob/main/README.md Fetches jobs associated with a specific client company ID. ```APIDOC ## GET /api/clients/:companyId/jobs ### Description Fetches jobs associated with a specific client company ID. ### Method GET ### Endpoint /api/clients/:companyId/jobs ### Parameters #### Path Parameters - **companyId** (string) - Required - The ID of the client company. ``` -------------------------------- ### Error Handling with UpHuntError Source: https://github.com/ffucucuoglu/uphunt-node/blob/main/README.md Catch and handle UpHunt-specific errors, accessing the HTTP status code, message, and response body. ```typescript import { UpHunt, UpHuntError } from 'uphunt' try { await uphunt.apply({ jobId: '~01abc', coverLetter: '…' }) } catch (err) { if (err instanceof UpHuntError) { console.error(err.status, err.message, err.body) } } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.