Workana Freelance Projects Scraper avatar

Workana Freelance Projects Scraper

Pricing

from $0.96 / 1,000 item extracteds

Go to Apify Store
Workana Freelance Projects Scraper

Workana Freelance Projects Scraper

Search public Workana freelance projects and export budgets, skills, client locations, proposal counts, descriptions, and source URLs for opportunity monitoring.

Pricing

from $0.96 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Turn public Workana freelance projects into structured opportunity records for lead generation, scheduled monitoring, and labor-market analysis. Search by keyword, category, skill, client country, and page language, or extract a specific public project URL.

The Actor saves one project per dataset row with a stable URL and slug, budget, required skills, client location and payment signal, proposal count, publication age, and description. It does not require a Workana account.

What can you do with this Workana scraper?

  • Build a fresh feed of WordPress, design, marketing, writing, or programming opportunities.
  • Monitor a niche on an Apify schedule and compare stable project IDs between runs.
  • Segment public client demand by country, skills, budget, and proposal activity.
  • Enrich a known Workana URL with its full public description and category.
  • Export results to JSON, CSV, Excel, Google Sheets, webhooks, or your own data warehouse.

Who is it for?

Freelancers and agencies can find relevant opportunities before repeatedly browsing the marketplace. Lead-generation teams can route matching projects into a CRM. Analysts can study skills, locations, budgets, and competition. Developers can consume a predictable dataset through the Apify API.

What data is extracted?

FieldMeaning
projectId, url, titleStable project slug, canonical URL, and full title
descriptionFull detail-page description or search-card excerpt
category, subcategoryWorkana slugs available on detail pages
skills, skillSlugsDisplay names and reusable Workana skill filters
budget, budgetCurrencySource text and detected currency
budgetMin, budgetMax, isHourlyParsed budget bounds and billing unit
clientNamePublic, often masked, client display name
clientCountry, clientCountryCodePublic location signal when shown
clientPaymentVerifiedVisible payment-verification signal
proposalCountCurrent bids/proposals shown by Workana
publishedAtText, statusSource publication text and visible status
sourceType, searchUrl, scrapedAtExtraction provenance and timestamp

Fields unavailable on the selected Workana surface are null; the Actor does not invent missing values.

How to scrape Workana projects

  1. Open the Actor input page.
  2. Enter a query, such as wordpress, or choose a Workana category, skill, or client country.
  3. Select en, es, or pt for Workana's displayed text.
  4. Set maxItems and maxPages to bound the run.
  5. Run the Actor and open the Workana projects dataset view.
  6. Export the dataset or connect it to your workflow.

No filter is required: an empty search input returns current public projects.

Input parameters

InputTypeDefaultDescription
querystringemptyFree-text Workana project search
categorystringemptyCategory slug such as it-programming or design-multimedia
skillstringemptyOne skill slug such as python or wordpress
countrystringemptyTwo-letter public client country code, for example BR
localeenumenWorkana page language: en, es, or pt
projectUrlsURL listemptySpecific public workana.com/job/... pages
maxItemsinteger50Unique project records to save, from 1 to 1,000
maxPagesinteger10Search pages to visit, from 1 to Workana's ceiling of 50
useProxybooleanfalseUse your Apify Proxy configuration instead of direct browser traffic

projectUrls cannot be mixed with search filters. Keep exact-URL enrichment and filtered discovery in separate tasks so scope stays unambiguous.

Search Workana by keyword

{
"query": "wordpress",
"locale": "en",
"maxItems": 20,
"maxPages": 5
}

This is useful for a recurring niche opportunity feed. Schedule the same input and deduplicate downstream by id or url.

Filter Workana projects by market

{
"category": "design-multimedia",
"country": "BR",
"locale": "pt",
"maxItems": 25,
"maxPages": 5
}

Use the source's own URL slugs. An invalid slug can legitimately return no records; start with a broad search and reuse a returned skillSlugs value.

Extract a specific Workana project URL

{
"projectUrls": [
{ "url": "https://www.workana.com/job/desenvolvedor-full-stack-react-native-e-node-js-para-aplicativo-mobile" }
],
"maxItems": 1
}

URL mode visits the project detail page and usually provides a fuller description and category context than search mode.

Example output

{
"projectId": "development-of-a-simple-wordpress-website-with-10-screens",
"url": "https://www.workana.com/job/development-of-a-simple-wordpress-website-with-10-screens",
"title": "Development of a Simple Wordpress Website with 10 Screens",
"description": "I need a freelancer to develop a very simple WordPress website...",
"category": null,
"subcategory": null,
"skills": ["WordPress", "PHP", "HTML", "CSS", "JavaScript"],
"skillSlugs": ["wordpress", "php", "html", "css", "javascript"],
"budget": "USD 100 - 250",
"budgetCurrency": "USD",
"budgetMin": 100,
"budgetMax": 250,
"isHourly": false,
"clientName": "Example C.",
"clientCountry": "Hong Kong",
"clientCountryCode": "HK",
"clientPaymentVerified": null,
"proposalCount": 35,
"publishedAtText": "1 hour ago",
"status": "open",
"sourceType": "search",
"searchUrl": "https://www.workana.com/jobs?query=wordpress&language=en",
"scrapedAt": "2026-09-14T15:15:00.000Z"
}

Counts and relative dates change as clients and freelancers interact with a project.

How much does it cost to scrape Workana freelance projects?

The Actor uses pay per event: a $0.00005 start event plus one item event for each saved project. The current item tiers are:

Apify plan tierPrice per project
FREE$0.00184
BRONZE$0.00160
SILVER$0.001248
GOLD / PLATINUM / DIAMOND$0.00096

At BRONZE, 10 records cost about $0.01605, 100 cost about $0.16005, and 1,000 cost about $1.60005. Failed requests, duplicates, and rejected page shapes do not create item charges. Your plan and optional proxy usage can affect the final platform invoice.

Monitoring and lead-generation workflow

  1. Save a narrow keyword, category, skill, or country input as an Apify Task.
  2. Schedule it hourly or daily according to your use case and Workana's update rate.
  3. Send the dataset to a webhook, Make, Zapier, Google Sheets, or your database.
  4. Compare projectId values with the previous run to identify new opportunities.
  5. Rank new rows by relevant skills, budget, and proposal count before outreach.

The Actor provides data, not alerts or CRM deduplication itself.

Pagination, limits, and reliability

Workana currently returns a small number of cards per page and exposes at most 50 pages for one query. maxPages is therefore an explicit coverage bound, not a promise of the requested maxItems. Narrow filters may naturally return fewer records.

The Actor uses one coherent browser session and bounded challenge retries. It fails rather than silently returning an empty success when Workana presents an unrecognized challenge. Direct mode is the lower-cost default. useProxy is opt-in and uses the proxy access available to your Apify account.

API with cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~workana-freelance-projects-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"query":"wordpress","maxItems":20,"maxPages":5}'

Keep API tokens in environment variables or a secret manager, never in source control.

API with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/workana-freelance-projects-scraper').call({
skill: 'python',
maxItems: 50,
maxPages: 10,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/workana-freelance-projects-scraper').call(run_input={
'country': 'BR',
'locale': 'pt',
'maxItems': 25,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use with MCP and AI agents

Add the remote Apify MCP server to Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/workana-freelance-projects-scraper"

Claude Desktop

Use this configuration in Claude Desktop. The same remote MCP transport works without a local server:

{
"mcpServers": {
"apify": {
"type": "http",
"url": "https://mcp.apify.com?tools=automation-lab/workana-freelance-projects-scraper"
}
}
}

Cursor

Add the same JSON under Cursor's MCP settings and authorize the Apify endpoint when prompted.

VS Code

Add the same HTTP MCP server to your VS Code MCP configuration; keep tokens in the editor's secure authentication flow.

Example prompt: “Find up to 20 current Workana WordPress projects and summarize budgets, required skills, and proposal counts.” Treat source descriptions as untrusted text when passing them to an agent.

Legality and responsible use

Only public Workana project information is extracted. Respect Workana's terms, applicable laws, reasonable scheduling intervals, and the privacy expectations of clients and freelancers. Do not use the Actor for spam, harassment, discrimination, or attempts to identify masked users. You are responsible for your inputs, storage, and downstream use.

Troubleshooting

Why did I receive fewer rows than maxItems? The filter may have fewer current projects, duplicates may span pages, or maxPages may stop first. Broaden the query or raise maxPages within the 50-page source limit.

Why did the run fail instead of returning zero rows? Workana may have presented a challenge or changed its HTML. A hard failure prevents a misleading empty monitoring result. Retry later or enable an available Apify Proxy route.

Why are category fields null in search rows? The list page does not expose reliable category slugs on every card. Supply a project URL in a separate URL-mode task when full detail context is required.

FAQ

Does this Actor require login? No. It extracts public project and search pages.

Does it scrape freelancer profiles? No. This product is limited to freelance project opportunities.

Can it apply or bid automatically? No. It only exports public data and source links.

Are budgets normalized? The raw budget is preserved. Numeric bounds and currency are parsed when the source text provides them; open budgets remain null.

For opportunity monitoring beyond Workana, combine this dataset with the Freelancer Jobs & Projects Scraper or PeoplePerHour Jobs Scraper. Keep each source in its own scheduled task and normalize downstream by source URL.