Freelancermap Scraper | Projects, Skills and Companies avatar

Freelancermap Scraper | Projects, Skills and Companies

Pricing

from $0.12 / 1,000 projects

Go to Apify Store
Freelancermap Scraper | Projects, Skills and Companies

Freelancermap Scraper | Projects, Skills and Companies

Freelancermap scraper for freelance, contract and permanent IT projects from freelancermap.com, .de, .at and .ch. Search by keyword, link or project ID and get skills, rate, start, duration, remote share, location, company and contact name. 20 projects in 4 seconds, 50 fields each. No account.

Pricing

from $0.12 / 1,000 projects

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Freelancermap Scraper | Freelance Projects, Skills and Contacts (2026)

Freelancermap projects, 50 fields each, from any search.

From SilentFlow. Creators of Facebook Search Scraper and JD Products Scraper (#1 for “jd scraper” in Apify Store search), with 880,000+ combined lifetime runs.

Every freelancermap project as one clean row: the skills it asks for, when it starts and how long it runs, how much of it is remote, the rate when the poster gives one, where it takes place, and the agency or client behind it with the name of the person to contact. Our default test run typed java and saved 20 projects in 4 seconds, out of 906 that freelancermap matched that day.

Why choose this actor?

Opening freelancermap projects one tab at a time to copy the skills, the start date and the agency? Getting a title, a company and a link from a scraper, but not the skill tags, the remote share or who to call? Keeping one tool for searches and another for the projects you already track?

  • 48 fields filled per project, not 34. In our default run of 20 java projects, 48 data fields held a value on at least half of the rows: ID, link, slug, title, full description as text and as HTML, skill tags, main category, all categories, industry, contract type, employment type, remote share, work mode, start as written, start date, starts as soon as possible, duration in months, duration as text, extension possible, company, company ID, company page, company profile, company logo, company website, company city, postal code and country, verified company, member since, contact person, direct client, location, city, country, ISO country code, all locations, latitude, longitude, posted, updated, expires, active, archived, top project, accepting applications and update count. The most used freelancermap actor on the Store lists 34 fields in its dataset and shows 11 in its output example.
  • What you would otherwise open each project for. In the same run, 18 of the 20 projects came with their skill tags (245 tags in all, up to 48 on one project), 17 with the name of the contact person, 19 with map coordinates, 15 with the company's freelancermap profile and all 20 with the industry, the employment type and the date the posting expires. A search for SAP in Germany, freelance only, gave 120 projects from 56 companies, 70 of them open to an extension.
  • Start from a keyword, a freelancermap link or a project ID, in the same run. Type skills or roles, paste any search link from freelancermap.com, .de, .at or .ch (its filters are kept) or a city, skill or country page, or list the projects you follow by ID or link. In our test, the London page, a .de search for fully remote Python projects, one project link and three project IDs returned 150 projects in 24 seconds, every Python row fully remote, and named the two IDs freelancermap no longer lists.

Try Freelancermap Scraper free

Try your first 20 projects

Paste this input in the JSON tab of the Input page and press Start. It reads the 20 newest projects that match java on freelancermap, from every country, each completed with its full project page.

{
"searchQueries": ["java"],
"maxItems": 20
}

It runs on the Apify Free plan. Each project becomes one row of your dataset: open the Output tab to see the "Projects" table with the title, company, location, remote work, contract type, duration, posting date and link, then export the rows as JSON, CSV or Excel, or pull them from the API into your own tools.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it full context about this scraper:

You have access to the Freelancermap Scraper on Apify: silentflow/freelancermap-scraper
It returns freelance, contract and permanent projects from freelancermap.com, .de, .at and .ch, one row per project.
Input (no field is required; an empty input reads the newest projects):
- searchQueries (array of strings): keywords as typed in freelancermap's search box, e.g. ["java", "SAP FICO", "DevOps"]
- startUrls (array of {"url": ...}): freelancermap search links (filters kept), city/skill/country pages, or project links
- projectIds (array of strings): project IDs (e.g. "3067504"), project links or slugs
- country (string, optional): ISO code or English name, e.g. "de", "deu", "Germany", "gb"
- maxAgeDays (integer, optional): only projects posted in the last N days
- contractType (string: any | contracting | permanent_position | employee_leasing, default any)
- workMode (string: any | remote | hybrid | on_site, default any)
- maxItems (integer, default 50): total projects to save across all inputs
- includeDetails (boolean, default true): read each project page (skills, industry, contact, extension, workload, application questions)
Output per project (53 data fields + searchQuery and scrapedAt; null when freelancermap does not show the value):
- id (integer, stable), url (string, permanent), slug (string), title (string)
- description (string, plain text), descriptionHtml (string, as posted)
- skills (array of strings), category (string), categories (array of strings), industry (string)
- contractType (contracting | permanent_position | employee_leasing), employmentType (CONTRACTOR | TEMPORARY | FULL_TIME ...)
- remotePercent (integer 0-100), workMode (remote | hybrid | on_site)
- startText (string, as posted), startDate (YYYY-MM-DD), isStartAsap (boolean)
- durationMonths (integer), durationText (string), isExtensionPossible (boolean), workloadPercent (integer)
- budget (number), currency (string), referenceNumber (string), applicationQuestions (array of strings)
- company, companyUrl, companyProfileUrl, companyLogoUrl, companyWebsite, companyCity, companyPostalCode, companyCountry (string)
- companyId (integer), isCompanyVerified (boolean), companyMemberSince (RFC 3339), contactName (string), isDirectClient (boolean)
- location, city, country, countryCode (ISO 3166-1 alpha-2) (string), locations (array of strings), latitude, longitude (number)
- postedAt, updatedAt, expiresAt (RFC 3339, UTC)
- isActive, isArchived, isTopProject, isAcceptingApplications (boolean), updateCount (integer)
- searchQuery (string, the keyword the row came from), scrapedAt (RFC 3339)
Use apify-client for Python or JavaScript: client.actor("silentflow/freelancermap-scraper").call(run_input=...)

How to scrape freelancermap projects

Get the newest projects for a skill

{
"searchQueries": ["python"],
"maxItems": 50
}

The 50 newest projects that mention Python, from Germany, Austria, Switzerland and every other country freelancermap covers, each with its skill tags, contact person and company.

Pull fully remote freelance SAP projects in Germany

{
"searchQueries": ["SAP"],
"country": "Germany",
"contractType": "contracting",
"workMode": "remote",
"maxItems": 100
}

Freelance and contract projects only, located in Germany, that can be done fully remote. Our SAP search in Germany with freelance only matched 2,484 projects; 103 of the 120 we saved were fully remote.

Watch this week's DevOps and Kubernetes projects in Switzerland and Austria

{
"searchQueries": ["DevOps", "Kubernetes"],
"country": "ch",
"maxAgeDays": 7,
"maxItems": 200
}

Projects posted in the last seven days, two keywords in one run. A project that matches both keywords is saved once, and each row says which keyword found it in searchQuery. Run it again with "country": "at" for Austria.

Input parameters

ParameterTypeDefaultWhat it does
searchQueriesarray of strings["java"] in the formKeywords to search, as you would type them on freelancermap: a skill, a role or a technology.
startUrlsarray of linksnonefreelancermap search links with their filters, city, skill or country pages, or project links.
projectIdsarray of stringsnoneProjects you already know: their ID, their link or the last part of their link.
countrycountry code or nameevery countryWhere the project takes place.
maxAgeDaysintegernoneOnly projects posted in the last N days.
contractTypeany, contracting, permanent_position, employee_leasinganyFreelance and contract work, permanent jobs, or temporary staffing through an agency.
workModeany, remote, hybrid, on_siteanyFully remote, part remote, or on site only.
maxItemsinteger50 (20 in the form)Total projects to save across all keywords, links and IDs.
includeDetailsbooleantrueRead each project page. Off gives a faster run with the search data only.

No field is required. An empty input reads the newest projects on freelancermap.

Accepted formats

  • Keywords: java, SAP FICO, DevOps, project manager, Data Engineer. freelancermap matches them in the title, the description and the skill tags, as its own search box does. Keyword searches cover every country, Germany, Austria and Switzerland included.
  • Countries: a two-letter code (de, gb, ch), a three-letter code (deu, gbr) or an English name (Germany, United Kingdom). uk works too. The form suggests 26 countries; any of the 165 countries freelancermap lists can be typed.
  • Search links: anything under https://www.freelancermap.com/projects?... or https://www.freelancermap.de/projekte?... (also .at and .ch), for example https://www.freelancermap.com/projects?query=react&countries[0]=4. The keyword, countries, contract type, remote share, categories, city and sort of the link are all kept. The country, age, contract and remote filters of the form apply to keywords only: a link keeps its own.
  • City, skill and country pages: https://www.freelancermap.com/projects/london, https://www.freelancermap.com/projects/java, https://www.freelancermap.com/projects/united-kingdom.
  • Projects: a link such as https://www.freelancermap.com/project/senior-non-functional-test-engineer-active-sc-clearance-inside-ir35-3067504 (or the /projekt/ link of freelancermap.de), the ID 3067504, or the last part of the link.

What data can you extract from freelancermap?

Each row is one project, with 53 data fields and 2 fields that record where the row came from and when. A field freelancermap does not show for a project is null, never an empty text.

  • Identity: id (freelancermap's project number, stable), url (the project's permanent page on freelancermap.com), slug, title.
  • The project: description (the full text, one paragraph or list item per line), descriptionHtml (as posted), skills (freelancermap's skill tags in English), category and categories (freelancermap's main categories, such as Web and software development or IT Services), industry.
  • Terms: contractType (contracting for freelance and contract work, permanent_position, employee_leasing for temporary staffing through an agency), employmentType (CONTRACTOR, TEMPORARY, FULL_TIME), remotePercent (0 to 100), workMode (remote, hybrid or on_site), startText (as the poster wrote it: "ASAP", "ab sofort", "01/2027"), startDate, isStartAsap, durationMonths, durationText, isExtensionPossible, workloadPercent, budget and currency (the rate or budget the poster entered, when there is one), referenceNumber (the poster's own reference), applicationQuestions (the questions of the poster's application form, when the project has one).
  • Who posted it: company, companyId, companyUrl (all its projects on freelancermap), companyProfileUrl (its company profile), companyLogoUrl, companyWebsite, companyCity, companyPostalCode, companyCountry, isCompanyVerified, companyMemberSince, contactName (the person named on the project), isDirectClient (the end client posted it, not an agency).
  • Place and time: location, city, country, countryCode (ISO, GB for the United Kingdom), locations (city and region), latitude, longitude, postedAt, updatedAt, expiresAt (RFC 3339 in UTC).
  • Status: isActive, isArchived, isTopProject (a promoted project), isAcceptingApplications, updateCount.
  • Row record: searchQuery (the keyword the row came from, null for links and IDs) and scrapedAt (RFC 3339).

With includeDetails off, a row keeps the search data: title, description, company, contact, location with coordinates, contract type, remote share, start, duration, categories and dates. 41 fields held a value on at least half of the rows in our java run that way, and the 20 projects arrived in 1 second.

Output example

A real row from our default run, with the description shortened here for reading. In the dataset, description and descriptionHtml hold the full text.

{
"id": 3067303,
"url": "https://www.freelancermap.com/project/varius-it-keycloak-spezialist-iam",
"slug": "varius-it-keycloak-spezialist-iam",
"title": "Varius IT - Keycloak-Spezialist (IAM)",
"description": "für einen bestehenden Auftrag bei einem unserer Direktkunden suchen wir eine(n)\nKeycloak-Spezialist (IAM)\nBeginn: a.s.a.p. / Dauer: 31.12.2026, ca 40 PT / Ort: Essen / Remote / Projekt-ID: 5456",
"descriptionHtml": "<div class=\"ql-editor\"><div><span>für einen bestehenden Auftrag bei einem unserer Direktkunden suchen wir eine(n)</span></div>",
"skills": ["OAuth 2.0", "Keycloak", "OIDC", "IAM", "Active Directory", "Authentications", "Key Management", "Network Security", "Lightweight Directory Access Protocols (LDAP)", "LDAP Admin", "Customer Identity Access Management"],
"category": "IT Services",
"categories": ["IT Services", "Web and software development"],
"industry": "IT",
"contractType": "contracting",
"employmentType": "CONTRACTOR",
"remotePercent": 60,
"workMode": "hybrid",
"startText": "ab sofort",
"startDate": null,
"isStartAsap": true,
"durationMonths": 2,
"durationText": "2 months",
"isExtensionPossible": true,
"workloadPercent": null,
"budget": 85,
"currency": "EUR",
"referenceNumber": null,
"applicationQuestions": null,
"company": "VARIUS IT Informations-Technologien",
"companyId": 18366,
"companyUrl": "https://www.freelancermap.com/project-provider/VARIUS+IT+Informations-Technologien-18366.html",
"companyProfileUrl": "https://www.freelancermap.com/company/614-varius-it-informations-technologien-varius-it-ist-der-experte-fuer-den-einsatz-von-hochqualifizierten-it-spezialisten-in-nationalen-und-internationalen-it-projekten",
"companyLogoUrl": "https://www.freelancermap.com/companyimages/company-logo-18366.jpg",
"companyWebsite": "https://www.varius-it.com",
"companyCity": "Hamburg",
"companyPostalCode": "20099",
"companyCountry": "Germany",
"isCompanyVerified": false,
"companyMemberSince": "2006-07-14T09:58:13Z",
"contactName": "Petra Haack",
"isDirectClient": false,
"location": "Essen, Germany",
"city": "Essen",
"country": "Germany",
"countryCode": "DE",
"locations": ["Essen", "Nordrhein-Westfalen"],
"latitude": 51.45657,
"longitude": 7.01228,
"postedAt": "2026-10-30T14:15:33Z",
"updatedAt": "2026-10-30T14:15:33Z",
"expiresAt": "2027-04-30T13:15:33Z",
"isActive": true,
"isArchived": false,
"isTopProject": false,
"isAcceptingApplications": true,
"updateCount": 0,
"searchQuery": "java",
"scrapedAt": "2026-11-02T12:58:23Z"
}

id and url are permanent and safe to use as keys. companyLogoUrl points to the image freelancermap shows today; a company that changes its logo changes the link.

Advanced usage

Get every new remote Java contract each morning

{
"searchQueries": ["java"],
"contractType": "contracting",
"workMode": "remote",
"maxAgeDays": 1,
"maxItems": 300
}

Schedule it daily in the Apify Console. maxAgeDays: 1 keeps the projects posted since yesterday, so each run delivers only what is new, and id lets you drop what you already have.

Build a list of the agencies and clients hiring for SAP in Germany

{
"searchQueries": ["SAP S/4HANA", "SAP FICO", "SAP BTP"],
"country": "de",
"maxItems": 500
}

Group the rows by companyId: each company comes with its city, postal code, website, freelancermap profile and the contact person named on each project. isDirectClient tells end clients apart from agencies. Our SAP run in Germany gave 56 companies for 120 projects.

Mirror a search you set up on freelancermap.de

{
"startUrls": [
{ "url": "https://www.freelancermap.de/projekte?query=python&remoteInPercent[0]=100" }
],
"maxItems": 100
}

Set the filters on the website, copy the address of the results page and paste it here. This .de search for fully remote Python projects matched 391 projects in our test; the 85 we saved were all fully remote.

Check whether the projects you follow are still open

{
"projectIds": ["3067504", "3067303", "https://www.freelancermap.com/project/senior-camunda-8-java-entwickler-m-w-d-80-prozent"],
"maxItems": 10
}

Each project comes back with isActive, isAcceptingApplications, updatedAt and expiresAt. A project that freelancermap no longer lists gives no row and is named in the log, so you know which ones are gone.

Pull a fast list of permanent and staffing jobs without opening each page

{
"searchQueries": ["Data Engineer"],
"contractType": "permanent_position",
"includeDetails": false,
"maxItems": 200
}

With includeDetails off, the run keeps the search data (title, company, contact, location, terms, dates, description) and skips the project pages, which makes large lists arrive several times faster. Switch contractType to employee_leasing for temporary staffing through agencies.

FAQ

What is freelancermap? freelancermap is a project marketplace for freelancers, born in Germany and run as freelancermap.de, .at, .ch and .com. Agencies, consultancies and companies post IT, SAP, engineering and consulting projects there, most of them in Germany, Austria and Switzerland, many open to remote work. On the day we tested, a search for java matched 906 open projects and SAP in Germany, freelance only, 2,484.

Do I need a freelancermap account? No. The actor reads what any visitor sees on freelancermap. No login, no API key, no membership.

What can I search by? Keywords, any freelancermap search link (with its filters), the city, skill and country pages, project links and project IDs. You can mix them in one run; each project is saved once even if two inputs find it.

How many projects can I get? There is no fixed limit: maxItems stops the run where you want. freelancermap shows visitors the first 22 results of a search; the actor reads the same search narrowed by contract type, remote share, country and industry to go further, and keeps each project once. Our SAP search in Germany saved 120 different projects in 18 seconds, and the London page 64 of its 80 projects. With full details on, each project adds one page to read: plan a minute or two for several hundred projects.

Can I combine filters? Yes, they add up. country: "de" with contractType: "contracting", workMode: "remote" and maxAgeDays: 7 returns the fully remote freelance projects in Germany posted in the last week. On a pasted link, the link's own filters apply.

Why are some fields empty? freelancermap does not show every value on every project. Most posters leave the rate empty: 10 of the 120 projects of our SAP run had a budget. applicationQuestions exists only for projects with their own application form, referenceNumber when the poster gives one, startDate when the start is a date and not "ASAP", and workloadPercent when the poster states it. A missing value is null, never an empty text or a 0.

Can I get the contact's email or phone number? No. freelancermap hides them from visitors (they read ***** in the description). The row gives what the project shows: the contact person's name, the company, its city and postal code, its website and its freelancermap profile.

Why are some descriptions in German? Posters write in their own language and freelancermap does not translate them: projects in Germany, Austria and Switzerland are often in German. Skill tags, categories, industries and country names come in English on every row.

How fresh is the data? Live. Every run reads freelancermap at the moment it runs; nothing is cached. postedAt says when the project went online, updatedAt when it last changed and expiresAt when the posting ends.

What happens to expired projects? They leave freelancermap's search. A project ID that freelancermap no longer lists gives no row and is named in the log. A project link of an archived project still returns its row, with isArchived and isActive telling you its state.

Does it cover freelancer profiles? No. This actor returns projects, the offers that agencies and companies post. Freelancer profiles are a different part of freelancermap.

Can I run it from my own code or an AI agent? Yes. Call silentflow/freelancermap-scraper with the Apify API or the apify-client library for Python or JavaScript, schedule it from the Console, or let an AI agent call it through the Apify MCP server. The "Copy to your AI assistant" block above gives an assistant every input and output field.

More SilentFlow scrapers

🛒 E-commerce

💼 Jobs

🏠 Real estate

📣 Social media

🏢 Business data

✈️ Travel

🎯 Lead generation

🔎 SEO

🎬 Video

📰 News

🧰 More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This Actor extracts publicly available data from freelancermap.com, freelancermap.de, freelancermap.at and freelancermap.ch. It does not bypass any login, paywall or CAPTCHA. Users are responsible for complying with freelancermap's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant). The output contains personal data in a limited form: the name of the contact person a company put on its project, and whatever the poster wrote in the description. Handle that data accordingly, keep it only as long as you need it, and respect the choices of the people named. The data returned is informational; verify it before any regulated use such as hiring decisions.

Built for IT staffing agencies, recruiters, freelancers and market analysts who need freelancermap's projects as data, not as tabs.