Freelancermap IT Projects & Freelancer Finder avatar

Freelancermap IT Projects & Freelancer Finder

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Freelancermap IT Projects & Freelancer Finder

Freelancermap IT Projects & Freelancer Finder

Search freelancermap.com IT freelance projects and freelancer profiles by category, workplace type, contract type, location, and skills, or fetch full detail by URL.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

Xyrelith Data

Xyrelith Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Security

Limited permissions

Share

Freelancermap Projects & Freelancer Profiles

Scrape live IT project listings and freelancer profiles from freelancermap.com, one of Europe's largest freelance marketplaces. Search by keyword, skill, category, country, city, contract type and workplace setup, or paste project/profile URLs for a full detail export. Everything runs over plain HTTP with no account, cookies or proxy setup.

Highlights

  • Four modes — project search, freelancer search, project detail and freelancer profile detail.
  • Multiple queries per run — searchQueries accepts a list and merges the results.
  • Paste any freelancermap URL — search URLs keep their filters; direct project/profile URLs become detail records.
  • Far more than one results page — anonymous freelancermap only serves page 1 per search, so this actor splits each query across the site's own facets (contract type, workplace, category, country, industry, date, language, rates, availability) and de-duplicates the merged pool.
  • Full project rows — description, skills, industry, contract and remote share, budget amount/currency, start and duration, workload, status flags, dates, reference number, company link, poster/company block and locations.
  • Full freelancer rows — rate and currency, experience, skills, spoken languages, availability, travel preference, certificates, project history, portfolio, recommendations, attachment file names, membership/freshness signals and avatar.
  • Omit-empty output — fields the source does not publish are left out instead of being sent as null.
  • No credentials, no proxy — freelancermap serves all of this publicly.

Modes

ModeWhat it does
projectSearchSearch or browse IT projects.
freelancerSearchSearch or browse freelancer profiles.
projectDetailFetch full records for project URLs or slugs.
freelancerProfileFetch full records for freelancer profile URLs or slugs.

Project output fields

Search rows use recordType: "projectListing"; detail rows use recordType: "project".

projectId, slug, title, company, companyUrl, companyVerified (only when true), city, country, locations[], additionalLocations[], states[], contractType, remotePercent, remoteType, industry, skills[], budget, budgetAmount, budgetCurrency, startText, startYear, startMonth, startAvailability, duration, durationText, durationMonths, extensionPossible, workloadPercent, isEndClient, isEndcustomerProject, isTopProject, isActive, applicationsPaused, isArchived, updateCount, description, created, updated, postedLabel, expires, referenceNumber, posterName, posterId, posterCompany, posterCity, posterZip, posterCountry, posterWebsite, posterAccountType, posterMembership, posterMemberSince, searchQuery, sourceUrl, scrapedAt.

  • remotePercent is the published remote share (0, 20, 40, 60, 80 or 100); remoteType is On-site, Hybrid or Remote.
  • contractType is Freelance, Permanent or Agency contract.
  • budget keeps the source object for compatibility; budgetAmount is the amount in whole currency units and budgetCurrency is the ISO code.
  • startAvailability and postedLabel are compatibility aliases (startText and the posting date). duration is the published duration text, as before.
  • Dates are ISO 8601. poster* fields describe the recruiter/company account that published the listing, never a private email or phone number.

Freelancer output fields

Search rows use recordType: "freelancerListing"; detail rows use recordType: "freelancer".

profileId, slug, name, headline, about, city, country, postalCode, rate, rateCurrency, experienceYears, freelancerSinceYear, graduation, skills[], skillsCount, skillsSummary, languages[], availability, availabilityPercent, unavailableUntil, profileCompletionPercent, isVerified, isActive, isAnonymousProfile, membershipTier, travelAvailability, certificates[], projectHistory[], portfolioItems[], reviews[], avatarUrl, websiteUrl, youtubeUrl, attachmentNames[], subCategories[], memberSince, profileUpdatedAt, lastLoginAt, hasAttachments, hasPortfolio, hasCertifications, hasRatings, permanentJobs, employeeLeasingJobs, searchQuery, sourceUrl, scrapedAt.

  • languages[] entries look like {"language": "English", "code": "en", "level": 3} (level 1-4).
  • rate is the figure the freelancer published; freelancermap does not expose whether it is hourly or daily.
  • reviews[] contains only public recommendations (body, position, fullName, company, url). Reviewer phone numbers are never exported.
  • attachmentNames[] lists uploaded CV/portfolio file names; the download links themselves require a freelancermap login, so they are not included.
  • availabilityPercent is 0, 20, 40, 60, 80 or 100 and availability is Not available, Partially available or Available.

Input reference

FieldTypeDefaultApplies to
modeselectprojectSearchall
searchQueriesstring list–searches
startUrlsURL list–searches (search URLs or direct detail URLs)
categoryselect–searches
countryselect (165 countries)–searches
citytext–searches
radiusKminteger 1-500–searches
industryselect–project search
remoteTypeonsite / hybrid / remote–project search
contractTypecontracting / permanent_position / employee_leasing–project search
sortBynewest / relevant / recentlyUpdated / lowestRatenewestsearches
postedWithinDaysinteger 1-365–project search
afterProjectIdinteger–project search
endClientOnlybooleanfalseproject search
includeDachRegionbooleanfalsesearches
technologySlugtext–searches
minDurationMonthsinteger 0-120–project search
languageselect (43 languages)–freelancer search
maxHourlyRateinteger 1-2000–freelancer search
maxDailyRateinteger 1-20000–freelancer search
updatedWithinDaysinteger 1-365–freelancer search
minAvailabilityPercentinteger 1-100–freelancer search
hasAttachmentsOnlybooleanfalsefreelancer search
openToPermanentJobsbooleanfalsefreelancer search
openToAgencyContractbooleanfalsefreelancer search
excludeUnavailablebooleanfalsefreelancer search
recentlyActiveOnlybooleanfalsefreelancer search
requireDisplayedNamebooleanfalsefreelancer search
verifiedOnlybooleanfalsefreelancer search/profile
includeDetailsbooleantruesearches
projectSlugsOrUrlsstring list–project detail
profileSlugsOrUrlsstring list–freelancer profile
minExperienceYearsinteger 0-60–freelancer profile
availableOnlybooleanfalsefreelancer profile
maxItemsinteger 1-100050all

The prefill (one Python project, no detail enrichment) is the cheapest possible run and produces a result on the first request. Turn includeDetails off for fast, low-cost bulk listings; turn it on when you need descriptions, budgets and rates on every row.

Examples

Search multiple skills and enrich the results:

{
"mode": "projectSearch",
"searchQueries": ["python", "rust", "golang"],
"country": "1",
"includeDachRegion": true,
"includeDetails": true,
"maxItems": 100
}

Find available freelancers in Germany under a rate cap:

{
"mode": "freelancerSearch",
"searchQueries": ["sap"],
"country": "1",
"language": "5",
"maxHourlyRate": 90,
"minAvailabilityPercent": 100,
"maxItems": 50
}

Re-use a search you built on freelancermap:

{
"mode": "projectSearch",
"startUrls": [
{
"url": "https://www.freelancermap.com/projects/python?projectContractTypes[]=contracting&remoteInPercent[]=100"
}
],
"maxItems": 80
}

Fetch exact projects and profiles:

{
"mode": "projectDetail",
"projectSlugsOrUrls": [
"https://www.freelancermap.com/project/data-scientist-3066110",
"sc-cleared-devops-engineer-aws-azure-contract-inside-ir35-6-months-hybrid-london"
]
}
{
"mode": "freelancerProfile",
"profileSlugsOrUrls": ["https://www.freelancermap.com/profile/jiri-lamos"],
"minExperienceYears": 5
}

Incremental daily run:

{
"mode": "projectSearch",
"searchQueries": ["java"],
"includeDachRegion": true,
"afterProjectId": 3065000,
"includeDetails": false,
"maxItems": 200
}

How result coverage works

freelancermap shows anonymous visitors only the first results page per search (about 22 projects / 18 profiles), and the page number itself is ignored past page 1. To go deeper, this actor asks the same JSON endpoint for several facet slices of the query — different sort orders, contract types, workplace buckets, categories, countries, industries, posting dates, languages, rate caps and availability thresholds — then merges the slices and removes duplicates.

That is why a broad query can return hundreds of rows without an account. When the source genuinely runs out of matching records, the run stops with the real total; it never pads the dataset.

Use cases

  • Recruiters and staffing agencies monitoring fresh freelance IT demand.
  • Sourcing shortlists of available freelancers by skill, language and rate.
  • Rate and skill benchmarking across European IT markets.
  • Lead generation from projects that disclose the hiring company and poster.

Data source and limitations

freelancermap.com is a public marketplace. This actor is independent and not affiliated with freelancermap.

  • Project budgets are published on a minority of listings; workload and some start dates are also optional. Missing fields are omitted.
  • Placeholder locations such as Not Specified are omitted rather than emitted as a city. city + radiusKm keeps every result inside the radius even when the city name differs.
  • Freelancer rates are published by roughly 85 % of profiles and the unit (hourly or daily) is not exposed by the source. The source offers one lower-rate ordering, exposed as lowestRate.
  • Project category is not part of the public project payload; use the category search filter instead of expecting a category field on each row.
  • Freelancer email, phone and attachment downloads require a paid freelancermap login and are deliberately not scraped.
  • The .de, .at and .ch sites expose a regional slice of the same inventory; this actor queries .com with includeDachRegion so you get the full pool.

FAQ

Do I need a freelancermap account, cookies or a proxy? No. All four modes use public endpoints and pages. There is no login, cookie, API key or proxy option.

How many records can one search return? Broad queries commonly return several hundred unique projects or profiles; narrow ones return only what the source has. maxItems is the hard cap (up to 1,000 per run). The actor stops honestly when the source is exhausted.

Why is description missing on some rows? Search rows are enriched from the detail page when includeDetails is on. If a detail page is temporarily unavailable, the listing row is still emitted without the extra fields rather than failing the run.

Why do some freelancer profiles have no name? Freelancers can hide their name from anonymous visitors; those rows omit name instead of writing a placeholder. Enable requireDisplayedName to skip them, or leave it off to keep the row with its headline and skills.

Is the freelancer rate hourly or daily? The profile publishes one figure, and freelancermap does not expose its unit. The actor reports the figure in rate with rateCurrency and leaves the interpretation to you.

Why is budgetAmount absent on most projects? Most posters do not disclose a budget publicly. When they do, both budgetAmount and budgetCurrency are filled alongside the source budget object.

What does includeDachRegion change? freelancermap hides most Germany/Austria/Switzerland listings from its default international view. Enable it to search the full DACH pool, which is usually the largest part of the marketplace.

How does afterProjectId help scheduled runs? Project IDs increase over time. Store the highest ID from one run and pass it as afterProjectId next time to keep only newer projects. IDs are sequential but not a guaranteed timestamp, so treat it as an incremental filter rather than an exact date boundary.

Can I paste a search URL from the site? Yes. Put it in startUrls; the actor copies the supported query parameters. A URL pointing directly at a project or profile is emitted as a detail record.

How fresh are profile activity fields? profileUpdatedAt and lastLoginAt come from the public profile payload. They are signals published by freelancermap, not a guarantee that the freelancer is currently taking work.