JobTeaser Jobs Scraper avatar

JobTeaser Jobs Scraper

Pricing

from $0.80 / 1,000 jobs

Go to Apify Store
JobTeaser Jobs Scraper

JobTeaser Jobs Scraper

Scrape job and internship listings from JobTeaser.com: titles, companies, locations, contract types, salaries, categories, and full descriptions.

Pricing

from $0.80 / 1,000 jobs

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

JobTeaser Jobs Scraper

Extract job and internship listings from JobTeaser, Europe's largest career platform for students and young graduates, by keyword, location, or a saved search URL.

Search by keyword, location, contract type, and posting date across 15 languages, and get clean, structured job data — full descriptions, salaries, categories, and contract types — ready for analysis or integration.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

parsebird/jobteaser-jobs-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/jobteaser-jobs-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: url (string, optional JobTeaser job-offers search URL whose filters are reused as-is), keyword (string, job search term, e.g. "developer"), location (string, e.g. "Paris" or "Remote", matched against each listing's location), language (string, listing locale, one of en/fr/de/es/it/nl/pl/pt/sv/da/fi/no/cs/ca/gl, default "en"), posted_within (string, "any"/"24h"/"7d"/"30d", default "any"), jobTypes (array of internship/alternating/cdi/graduate_program/apprenticeship/thesis/vie, default all), results_wanted (integer, max job records to collect, default 20), proxyConfiguration (object, optional Apify Proxy settings). Output fields per job: title, company, location, date_posted, original_publish_date, job_type, job_type_code, job_category, salary, description_html, description_text, job_url, job_id, locale, remote_type, last_indexed_at. Full actor spec: fetch via GET https://api.apify.com/v2/acts/parsebird~jobteaser-jobs-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations

What does JobTeaser Jobs Scraper do?

JobTeaser Jobs Scraper collects structured job offer data from JobTeaser.com, the career platform used by 800+ European schools and universities to connect students and young graduates with internships, work-study programs, and entry-level jobs. Search by keyword and location, filter by contract type and posting date, or paste a JobTeaser search URL to reuse its filters directly.

Use it as a JobTeaser API alternative to pull structured job data into JSON, CSV, or Excel without writing a scraper yourself. No coding required — set your filters and click Start. Or call it through the Apify API to automate recurring job data collection.

  • 🔍 Keyword and location search — filter by job title, skill, or free-text location, or reuse an existing JobTeaser search URL as-is
  • 🌍 15 languages — scrape listings as rendered in English, French, German, Spanish, Italian, Dutch, Polish, Portuguese, Swedish, Danish, Finnish, Norwegian, Czech, Catalan, or Galician
  • 📄 Full job descriptions — both HTML and plain-text versions, fetched from each offer's own detail page
  • 💼 Contract type filters — internship, work-study (alternance), permanent contract (CDI), graduate program, apprenticeship, thesis/PhD, and VIE
  • 📅 Posting-date filters — keep only offers posted in the last 24 hours, 7 days, or 30 days
  • 💶 Salary data — minimum/maximum pay and period, when JobTeaser publishes it
  • 🔄 Scheduling and monitoring — run daily or weekly with Apify scheduling to track new postings
  • 🔗 API access and integrations — connect to Google Sheets, Zapier, Make, webhooks, or any workflow via the Apify API

What data can you extract from JobTeaser?

FieldDescription
titleJob title
companyHiring company name
locationCity and country, or "Remote"
date_postedPublication date and time (ISO format)
job_typeHuman-readable contract type, e.g. "Internship 6 months" or "CDI"
job_type_codeStable contract code: internship, alternating, cdi, graduate_program, apprenticeship, thesis, or vie
job_categoryJob function or department
salarySalary or stipend text, when published
description_text / description_htmlFull job description, plain text and HTML
job_urlDirect JobTeaser listing URL
job_idUnique JobTeaser offer identifier
remote_typeRemote-work indicator, when JobTeaser publishes one

How to scrape JobTeaser

  1. Open the JobTeaser Jobs Scraper page on Apify Store and click Try for free
  2. Enter a Keyword and/or Location, or paste a URL copied from jobteaser.com/en/job-offers into Search URL
  3. Pick a Language, one or more Contract types, and a Posted within window
  4. Set Max results to control run size and cost
  5. Optionally enable Apify Proxy for larger or recurring runs
  6. Click Start and wait for the run to finish
  7. Download your data in JSON, CSV, Excel, or connect via the Apify API

Python API example

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("parsebird/jobteaser-jobs-scraper").call(run_input={
"keyword": "marketing",
"location": "France",
"language": "fr",
"results_wanted": 50,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['title']}{item['company']}{item.get('location')}")

JavaScript API example

import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("parsebird/jobteaser-jobs-scraper").call({
keyword: "marketing",
location: "France",
language: "fr",
results_wanted: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
console.log(`${item.title}${item.company}${item.location ?? "N/A"}`);
});

Input parameters

ParameterTypeRequiredDefaultDescription
urlstringNoPublic JobTeaser job-offers search URL. Filters already encoded in it are reused as-is
keywordstringNo""Job search term, such as developer, finance, or data analyst. Ignored when url is set
locationstringNo""Location filter, such as Paris, Germany, or Remote. Ignored when url is set
languagestringNo"en"Listing language: en, fr, de, es, it, nl, pl, pt, sv, da, fi, no, cs, ca, or gl
posted_withinstringNo"any"Posting window: any, 24h, 7d, or 30d
jobTypesarrayNo[]Contract codes: internship, alternating, cdi, graduate_program, apprenticeship, thesis, vie. Empty = all
results_wantedintegerNo20Maximum number of job records to collect. Minimum value is 1
proxyConfigurationobjectNo{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }Apify Proxy settings. JobTeaser blocks datacenter IPs, so Residential proxy is used by default

Output example

{
"title": "Founders Associate Intern (H/F/X)",
"company": "JobTeaser",
"location": "Paris, France",
"date_posted": "2026-07-20T15:08:12.000Z",
"original_publish_date": "2026-07-20T15:08:12.000Z",
"job_type": "Internship 6 months",
"job_type_code": "internship",
"job_category": "Management, Consulting & Strategy",
"salary": "1200–1400 EUR / Monthly",
"description_html": "<b>Company Description</b><br><br>...",
"description_text": "Company Description ...",
"job_url": "https://www.jobteaser.com/en/job-offers/2a54e19b-c8a7-43f2-902b-a65b66f36de2-jobteaser-founders-associate-intern-h-f-x",
"job_id": "2a54e19b-c8a7-43f2-902b-a65b66f36de2",
"locale": "en",
"remote_type": "telecommute",
"last_indexed_at": "2026-08-20T13:19:13.000Z"
}

Download results in JSON, HTML, CSV, or Excel.

Use cases

  • 📊 Job market analysis — track contract types, categories, and remote-work availability across European countries
  • 🧭 Recruitment sourcing — monitor new internships and graduate roles for specific keywords as they go live
  • 🎓 Career-center dashboards — feed a school or university career center with live JobTeaser listings
  • 🏢 Employer benchmarking — see which companies are hiring students and young graduates, and for what
  • 🔄 Recurring monitoring — schedule daily or weekly runs with posted_within to catch only new postings
  • 🔗 Data pipeline integration — feed job data into a warehouse, spreadsheet, or BI dashboard via the Apify API

How it works

  1. Builds a JobTeaser search from your keyword, jobTypes, and language — or reuses your url as-is
  2. Requests each search-results page, reading the job offers embedded in the server-rendered listing
  3. Stops pagination once results_wanted unique offers are collected or a page returns no offers
  4. Fetches each offer's own detail page and reads its structured JobPosting data for the full description, salary, category, and dates
  5. Applies your location and posted_within filters against each offer's actual listed location and posting date
  6. Pushes each job offer to the Apify dataset, deduplicated by offer ID

How much does it cost to scrape JobTeaser?

EventPrice per eventPrice per 1,000
job-scraped (Free plan)$0.0009$0.90
job-scraped (Bronze/Silver/Gold plans)$0.0008$0.80

One event is charged each time a job offer is successfully scraped and saved to the dataset — you only pay for offers actually returned. Apify offers a free trial with platform credits, enough to scrape thousands of job offers at no cost.

FAQ

Do I need to build a search URL myself? No. Set keyword, location, language, and jobTypes and the actor builds the search for you. You can also search on jobteaser.com/en/job-offers yourself and paste the resulting URL into url to reuse its filters exactly.

How does the location filter work? It's matched as a case-insensitive text match against each job offer's own listed location (for example "Paris, France"), not a radius search around coordinates. Use a city or country name, or "Remote".

Why are date_posted and original_publish_date the same value? JobTeaser publishes a single posting date per offer; both fields reflect it so downstream schemas that expect either name work without changes.

How reliable is remote_type? It's read directly from JobTeaser's own structured job data. JobTeaser doesn't always distinguish fully remote from occasional/hybrid remote in that field, so treat it as "remote work mentioned" rather than a precise policy.

Does this scraper fetch full job descriptions? Yes. Each offer's own detail page is fetched to retrieve the complete description (plain text and HTML), not just the summary shown on the search-results page.

Do I need Apify Proxy? Yes, and it's on by default. JobTeaser blocks requests from datacenter IP ranges, so the actor routes through Apify's Residential proxy group automatically — you only need to change proxyConfiguration if you want to use your own proxy setup.

Can I schedule recurring runs? Yes. Use Apify scheduling to run daily or weekly, combined with posted_within to collect only new postings each time.

Can I access the data via API? Yes. Every run produces a dataset accessible via the Apify API, usable from Python, JavaScript, Google Sheets, Zapier, Make, or any HTTP-capable tool.

This Actor extracts publicly available data from JobTeaser.com. Scraping public data is generally considered legal based on recent court rulings, including the US Ninth Circuit's decision in hiQ Labs v. LinkedIn. However, users are responsible for ensuring their use of scraped data complies with applicable laws, JobTeaser's Terms of Service, and data protection regulations including GDPR. Do not use extracted personal data for unsolicited contact or purposes incompatible with the original collection context. For more information, read Apify's blog post on web scraping legality.

Other job scrapers on Apify

Browse all ParseBird actors, including other job board scrapers, on the Apify Store.