Every matching Upwork job,
ready to pitch.
Search by keyword or paste an Upwork search URL and pull every matching job as a clean dataset — budget, client spend, rating, hire rate, proposals, and skills. Filter fresh-first so you apply before the flood. Rows, not tabs.
From a niche to a pipeline in three steps.
Describe your niche
Type keywords like "react native developer" and add filters — job type, experience level, hourly or fixed budget range, payment-verified clients, hiring history, and how fresh the post must be. Or paste an Upwork search URL you've already dialed in and we scrape it verbatim.
We pull the matches
Your job lands in a queue and reads Upwork's public job listings — no login, no captcha wrangling. Every matching post comes back with the client's spend, rating, hire rate, location, and the number of proposals so far. Close the tab; we'll webhook you when it's done.
Export and pitch
Download as CSV or JSON, fire a webhook into your CRM, or hit the REST / MCP / x402 API. Sort by freshest to apply first, or by client spend to chase the budgets that convert. The dataset is yours — no cap on what you've already pulled.
Twenty-plus fields per job. Clean. Normalized. Queryable.
Every row is the same shape no matter what you searched for. The job — title, description, budget, skills, proposals — comes back in one object; the client — location, total spent, rating, hire rate, payment verification — sits in another. That client block is the difference between a job board and a lead list: you know who actually pays before you write a proposal.
From "is anyone hiring for this?" to "this is my daily lead feed."
One scraper, six workflows, one queryable dataset. Most freelancers start with fresh-job alerts; agencies end up running four of these at once.
Be first to apply
On Upwork, the first solid proposal usually wins. Filter to jobs posted in the last hour that match your skills, budget, and a payment-verified client — then pitch while the post is still warm and the client is still reading.
Agency lead pipeline
Run a saved search for your service — "Webflow", "HubSpot", "paid media" — and every match arrives with the client's total spend and hire rate. Route the high-budget, high-hire-rate rows to your BD team and skip the tire-kickers.
Rate & market research
What are clients actually paying for your skill this month? Pull a few hundred jobs, group by budget and experience level, and price your proposals against live demand instead of guesswork.
Recruiting & sourcing
Recruiters and staffing tools track which clients are hiring for a role right now. Screening questions and required skills come back as columns, so you can match candidates to live openings the day they post.
Niche job alerts
Wire the webhook into Slack or email and get a clean digest of new matching jobs — no more refreshing the feed. Every alert carries the budget and client stats, so you decide in one glance whether it's worth a proposal.
Dataset operations
Bulk-load Upwork jobs into your warehouse. Webhook → Snowflake / BigQuery. The same job spec via REST or MCP, deduped and idempotent. Build freelance-market dashboards or track demand for a skill over time.
REST, MCP, webhook, or pay-per-call x402.
Ounie accounts get a REST API with bearer-token auth and a native MCP server that drops into Cursor, Claude, ChatGPT, or the AI SDK — your assistant can search Upwork, poll the job, and export results without writing any glue. One-off scripts hit our x402 endpoint and pay per request in USDC.
// One request. Async job.
const res = await fetch("https://upwork.ounie.com/api/scrape", {
method: "POST",
headers: {
"Authorization": "Bearer ${API_KEY}",
"Content-Type": "application/json",
},
body: JSON.stringify({
mode: "query",
query: "react native developer",
max_jobs: 200,
job_type: ["hourly"],
experience_level: ["intermediate", "expert"],
payment_verified: true,
max_job_age_hours: 24,
}),
});
const { job_id } = await res.json();
// → poll /api/jobs/${job_id} or wait on the webhookPay for jobs. Not seats, not setup, not surprises.
One returned Upwork job costs 1 Ounie credit — the same wallet every Ounie product shares. You are only charged for jobs actually returned; unused reserves refund automatically. AI agents can skip the account entirely and pay per call in USDC via x402.
The questions we get on the first call.
Sign in with Ounie, fill your pipeline in 90 seconds.
Pay for jobs in credits, not seats. No subscription — keep every row you've already pulled.