Skip to main content

uphunt

Official UpHunt SDK for Python — auto-apply to Upwork jobs, fetch archived job & client data, and generate AI proposals, all from your own stack.

Install

pip install uphunt

Requires Python 3.9+.

Quickstart

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' | …

Use it as a context manager to close the connection pool automatically:

with UpHunt() as client:
    jobs = client.applied_jobs(limit=10, status="applied")

Methods

Method REST endpoint
apply(...) POST /api/auto-apply-v2/apply
status(queue_id=, job_id=) GET /api/auto-apply-v2/status
applied_jobs(limit=, offset=, status=) GET /api/auto-apply-v2/applied-jobs
generate_proposal(...) POST /api/auto-apply-v2/generate-proposal
freelancers() GET /api/auto-apply-v2/freelancers
get_job(ciphertext) GET /api/jobs/by-ciphertext
get_client_jobs(company_id) GET /api/clients/:companyId/jobs

Error handling

Any non-2xx response raises UpHuntError with .status_code and .body:

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 a proposal, then apply

gen = client.generate_proposal(job_id="~01abc", reasoning_effort="medium")
client.apply(job_id="~01abc", cover_letter=gen["proposal"])

License

MIT © UpHunt

Metadata

Release files for uphunt 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for uphunt 0.1.0
File Size Uploaded
uphunt-0.1.0.tar.gz 4.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for uphunt 0.1.0
File Interpreter ABI Platform
uphunt-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.7 kB

Release files / uphunt-0.1.0.tar.gz

Download URL uphunt-0.1.0.tar.gz
Size 4.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a0b8452825afbed5b49fffa4ea98ff16d5a5539d69ca94d172bb5c5e38ca1881
BLAKE2b-256 checksum
How to use checksums
c7a810a40115d9239c00e46caefc81d65ced9dd308cdd8a497d9a41acc0e074a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / uphunt-0.1.0-py3-none-any.whl

Download URL uphunt-0.1.0-py3-none-any.whl
Size 6.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f058c76eac3a9ce7b47a330738a8a769f59cf1a14973a226e5f908899584dc45
BLAKE2b-256 checksum
How to use checksums
392e4bb99144dc45a410a6462e4ffe4904b2f5881e40099e4763bc11cde04d06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page