Manfred Tech Jobs API + English Translation
Pricing
$0.20 / 1,000 job results
Manfred Tech Jobs API + English Translation
$0.2/1K jobs | Extract Manfred tech jobs with full descriptions, salary ranges when listed, work arrangement and skills. Filter by keyword, remote or hybrid, and posting age. No login or API key. Optional AI enrichment and English translation.
Manfred Tech Jobs Scraper (No Login) + Full Descriptions
$0.2/1K jobs | Extract Manfred tech jobs with full descriptions, salary ranges when listed, work arrangement and skills. Filter by keyword, remote or hybrid, and posting age. No login or API key. Optional AI enrichment and English translation. Independent, unofficial tool. Not affiliated with or endorsed by Manfred.
Manfred Tech Jobs Bulk Scraper
Our scraper returns tech jobs from Manfred (getmanfred.com), a hiring platform focused on Spain, and lets you filter by keyword, remote, hybrid or on-site work and posting age. Every row carries the complete original description, the employer, the salary range when Manfred lists one and the skills the posting names. It is ideal for tech job alerts, salary tracking for Spanish and remote tech roles, and job boards that carry Manfred listings.
- Need jobs from every industry and country? Use our LinkedIn jobs scraper. It searches public LinkedIn postings by role and location and is not limited to tech. LinkedIn can limit request rates, so large runs may end early.
- Looking for startup jobs? Use our Y Combinator jobs scraper.
- Browse all Job Atlas job scrapers: https://apify.com/jobatlas
Key Benefits
- No login or API key: nothing to set up, and no Manfred account involved. Runs read our stored copy of Manfred's postings, so Manfred's site is not contacted during your run.
- Low pricing: $0.20 per 1,000 jobs, with no start fee. Apify platform usage is included in that price.
- Full descriptions only: a posting without a verified complete description is never returned.
- No repeats across runs: schedule the same search daily and get only postings you have not received yet.
- Newest first in our test runs, so a small
maxItemsgets you the latest jobs. - Optional AI enrichment and English translation: funded by us, off by default, no API key needed and no extra charge.
How It Works
- Provide your search. Every field is optional:
- (optional) Keyword (e.g.,
python,data engineer). A case-insensitive phrase matched against the job title, the employer and the complete description. A broad word such asengineeralso finds roles that only mention engineers, for example data analyst jobs. - (optional) Work arrangements:
remote,hybridandonsite. Leave it empty to get all of them. - (optional) Posted within (e.g.,
24h,7d,2w,1m). Default isany. Manfred publishes no posting date, so this uses the day our stored copy first saw the job. - (optional) Advanced filters, for example a minimum salary (see below).
- (optional) Keyword (e.g.,
- Set how many jobs you want with
maxItems. - Click Start. The form opens with
engineerand 10 jobs, so a first run returns real rows. The run'sRUN-SUMMARYrecord shows when the stored data was last refreshed and how many jobs were delivered.
Run the same search again and you get only postings you have not received yet; set dedupe.enabled to false to see everything again.
More settings:
maxItems- Maximum jobs returned. Default is 100;0means 200, and 200 is the maximum.dedupe- On by default: jobs already delivered to your Apify account for the same search are skipped. Setdedupe.enabledtofalsefor a stateless run, or setdedupe.keyto share or separate alert histories.filters- A versioned filter over normalized fields. The next example keeps only jobs with a minimum salary of at least 50,000. We ran it, and all 9 jobs it returned had a minimum of 50,000 or more.aiEnrichmentandtranslateToEnglish- Optional processing, described below. Default is off.
{"keyword": "engineer","filters": {"schemaVersion": "nomad-agent-job-filter-v1","expression": {"field": "data.compensation.minimum", "operator": "gte", "value": 50000}}}
With AI enrichment off, filters look at the facts Manfred published only, and a job whose value is unknown never passes a comparison. Compare salaries only together with the matching currency and period.
Expect tens of results, not hundreds. When we tested on 2026-10-16, a keyword that matched nothing scanned only 28 stored postings. Only postings with a verified complete description are served, so coverage can be smaller than Manfred's own listing. If the stored data is stale or unavailable, the run fails instead of returning old rows.
Locations are empty for most remote jobs (6 of the 10 test rows had none), so use workArrangements rather than a location to find remote work. Descriptions come in the language of the offer, Spanish or English (about half of each in our 10-job test). Switch on translateToEnglish if you need English text.
Data You'll Receive
- Job details: title, the complete original description (text with Markdown formatting), first-seen date, working schedule.
- Employer: name, website and logo.
- Pay and terms: salary range with currency and period (on 9 of 10 test jobs), work arrangement, benefits when listed.
- Skills and languages: required and preferred skills, and the spoken languages the posting asks for.
- Location: city and country when the posting names them.
- Contact: the Manfred contact person named on the posting, with a work email (
data.application.hiringContacts). - Links and identity: the Manfred job URL, plus a stable
identity.sourceandidentity.externalIdfor deduplication.
Missing facts are null, and a known empty list is []. raw.descriptionHtml is null for Manfred, because the complete text is available without source HTML.
Sample output data
Here is an example job from this Actor. Long text and some fields are shortened for display, and the personal contact details are left out:
{"schemaVersion": "nomad-agent-job-v1","identity": {"url": "https://www.getmanfred.com/en/job-offers/8508/inverence-modeling-engineer-oct26","source": "manfred","externalId": "8508"},"data": {"title": "Modeling Engineer","company": {"name": "Inverence", "url": "https://inverence.com/es/llull/"},"locations": [{"raw": "Madrid, Spain", "city": "Madrid", "countryName": "Spain"}],"employment": {"workSchedules": ["full_time"], "workArrangements": ["hybrid"]},"compensation": {"raw": "35000-45000 €","exact": null,"period": "year","maximum": 45000,"minimum": 35000,"currency": "EUR"},"application": {"postedAt": "2026-10-13T16:00:00Z"},"requirements": {"languages": [{"level": "Medium", "language": "English", "required": null}],"requiredSkills": [{"name": "Python", "yearsRequired": null},{"name": "SQL", "yearsRequired": null},{"name": "Git", "yearsRequired": null}],"preferredSkills": [{"name": "R", "yearsRequired": null}, {"name": "Numpy", "yearsRequired": null}]},"benefits": "Coffee, fruit and snacks; Internal training events"},"llm": {"status": "not_requested"},"raw": {"description": "## About the company\n\n**¿Y si pudieras tomar hoy mejores decisiones sobre algo que todavía no ha ocurrido?**\n\nEn Inverence llevan desde 2018 convirtiendo datos en predicciones que ayudan a empresas e instituciones a decidir mejor: desde cuánto invertir en mark… [shortened for display]","descriptionHtml": null},"custom": {"data": {"offerId": "8508", "remotePercentage": 45}}}
Repeat-delivery suppression for alerts
Repeat suppression is on by default. It keeps a delivery history for your Apify account, scoped to this Actor and the search, and skips jobs you already received. Schedule one search per alert and keep the default key, or give two searches the same dedupe.key to share one history:
{"keyword": "data engineer", "dedupe": {"enabled": true, "key": "my-manfred-alert"}}
If the delivery history cannot be read or written, the run fails instead of claiming a delivery it cannot confirm.
Optional AI enrichment and English translation
Turn on aiEnrichment.enabled to fill fields the posting leaves unknown, and translateToEnglish to get English display text. They are independent, both are off by default, and you do not supply any API key. They add no charge on top of the per-job price.
- AI enrichment fills unknown fields only and records its provenance in
llm. It never overwrites a fact Manfred published. A job whose requested enrichment fails is withheld, so the run can return fewer jobs. With enrichment off,llm.statusisnot_requested. - Translation converts selected human-readable fields into English.
raw.descriptionkeeps the original text. - Only when you switch them on, we send description text to OpenRouter for extraction, or selected display text to DeepL for translation. The routes we use deny provider data collection, but they do not guarantee zero retention or EU-only processing. We may cache sanitized extracted facts and translations.
Manfred Jobs API
Results are stored in a dataset that you can export as CSV, JSON or Excel, or read through the Apify API. Each run also writes a RUN-SUMMARY record to its key-value store. Setup guides and client examples are in the Job Atlas repository.
Support and Feedback
We improve these scrapers from your feedback. If something breaks or you need a filter:
- Open an issue on the Actor's Issues tab.
- If this Actor saved you time, a short review on the Store helps other people find it.
Run evidence
Observed runs
These runs used the latest build (1.0.5) on 2026-10-16, before the pay-per-event price took effect, each capped at 10 jobs and each with a fresh one-off dedupe key, so they match a first-time visitor.
| Input | Run | Result |
|---|---|---|
keyword engineer, maxItems 5 | KjcLvLQo7njy3cERs | 5 jobs |
keyword engineer, maxItems 10 | SDb4Vb1mC01L8igSj | 10 jobs from 7 employers, all with a description |
keyword engineer, minimum salary filter 50,000 | gu7AA6Mwht5wdxFVm | 9 jobs, every minimum salary at least 50,000 |
keyword cobol | Z6DCgdgOxZTvrg8gd | 0 jobs, run succeeded after scanning 28 stored postings |
In the 10-job test: salary range on 9, work arrangement on 10 (7 remote, 3 hybrid), city and country on 4, the Manfred contact person on 10.
Input and output reference
Input version nomad-agent-inventory-search-v1. The previous nomad-agent-job-search-input-v1 keyword block (manfred.q) is still accepted for old callers. includeRaw must stay true. The top-level accuracy field is a compatibility override for aiEnrichment.accuracy; it never switches enrichment on by itself.
Every dataset item follows nomad-agent-job-v1, with six roots: schemaVersion, identity, data, llm, raw and custom. Manfred's own extra facts (tech levels, perks, working-day details and so on) are in custom.data.
The RUN-SUMMARY record reports the data freshness (sourceFreshAt), the candidates found, repeats skipped (duplicateSuppressed), enrichment failures, the number delivered (emitted) and the terminal status. OWNER-USAGE separates actual provider costs from unpriced token counts when enrichment runs. Diagnostic records are not inserted into the jobs dataset.
Cost
This Actor costs $0.20 per 1,000 jobs (a per-job result charge) with no start fee and no separate enrichment or translation price. Apify platform usage is included in that price.
Job Atlas
Job Atlas runs job-data and matching Actors. Use latest and keep the immutable build ID that each run returns.
Product guide | Source and client examples | Setup skill | Setup guide
Product guides and related tools
Independent tool. We built and run this Actor ourselves. Manfred does not operate, sponsor or endorse it, and its name is used only to say which site the data comes from.