Skip to main content

Official UpHunt SDK — auto-apply to Upwork jobs, fetch archived job & client data, and generate AI proposals.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uphunt-0.1.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uphunt-0.1.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file uphunt-0.1.0.tar.gz.

File metadata

  • Download URL: uphunt-0.1.0.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for uphunt-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a0b8452825afbed5b49fffa4ea98ff16d5a5539d69ca94d172bb5c5e38ca1881
MD5 5f4f8e48cacaa82af7d146e47c0c6edc
BLAKE2b-256 c7a810a40115d9239c00e46caefc81d65ced9dd308cdd8a497d9a41acc0e074a

See more details on using hashes here.

File details

Details for the file uphunt-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: uphunt-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for uphunt-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f058c76eac3a9ce7b47a330738a8a769f59cf1a14973a226e5f908899584dc45
MD5 a0aaf2f411be203ce9de85bccf7008c5
BLAKE2b-256 392e4bb99144dc45a410a6462e4ffe4904b2f5881e40099e4763bc11cde04d06

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page