JobTeaser Graduate & Internship Listings Finder
Pricing
from $0.49 / 1,000 results
JobTeaser Graduate & Internship Listings Finder
Search JobTeaser job and internship offers by keyword, category, location, or company, with contract type, experience level, and remote-work filters.
Pricing
from $0.49 / 1,000 results
Rating
0.0
(0)
Developer
Xyrelith Data
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 hours ago
Last modified
Categories
Features
Share
Pull job, internship, and apprenticeship offers from JobTeaser — a job board aimed at students, graduates, and early-career professionals across Europe. Search by keyword, browse by category, location, or company, or fetch specific offers by URL.
What this actor does
- Six modes:
search,browseByCategory,browseByLocation,browseByCompany,bySearchUrl,byUrl - 60+ job categories (Programming, Marketing, Finance, Engineering, HR, …) as a dropdown
- 11 contract types (Internship, Apprenticeship, Full time, VIE, Graduate Programme, …)
- Location search resolved to real cities via geocoding (Paris, Lyon, Berlin, …); without a keyword it returns every offer in that area
- Company pages: all offers from any JobTeaser company profile
- Filters: experience level, study level, remote policy, company sector and size, offer language, start date, simplified application
- Sorting: by relevance or newest first
- Full descriptions and structured details (optional): fetches each offer's detail page for the complete HTML description, salary range, publication and deadline dates, and company profile
- No account, cookies, or API key needed; empty fields are omitted
Output per job
Every record carries this base set, from the search/browse results list:
jobId— JobTeaser offer UUIDtitlecompanyName,companyLogoUrl— when a logo is shown on the listing cardlocationTextcontractTextisJobOfTheWeek— only present when the listing carries that badgesourceUrlrecordType: "job",scrapedAt
The following are only added when a detail page is fetched — automatically in mode=byUrl, or in the other modes when includeDescription: true is set:
contractType,contractDurationMonths— parsed from the offer and its contract textstartDateText,wageText,remoteTextapplicationDeadlineText,studyLevelText,jobCategoryTextpublishedDateTextandpublishedDate(ISO 8601),applicationDeadline(ISO 8601)salaryCurrency,salaryMin,salaryMax,salaryPeriod— when the employer publishes a rangeeducationRequirement,directApply,jobImmediateStartcompanyBusinessText,companyOverview— company size/type and blurbcompanyLogoUrl— also resolved from the detail page inmode=byUrldescriptionHtml— full offer description
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / browseByCategory / browseByLocation / browseByCompany / bySearchUrl / byUrl |
searchQuery | string | developer | Free-text query (mode=search) |
jobCategory | string | – | Category dropdown, 60+ options (mode=browseByCategory) |
location | string | – | City / region / country (mode=browseByLocation) |
companySlug | string | – | Company slug (mode=browseByCompany) |
jobUrls | array | – | Full offer URLs (mode=byUrl) |
searchUrls | array | – | Search/browse listing URLs (mode=bySearchUrl) |
contractType | string | – | internship, cdi, cdd, part_time, … |
contractDurationMonths | string | – | 3, 6, 12, 24, 36 |
jobLocale | string | – | fr, en, de, es, … |
workExperienceCode | string | – | young_graduate, three_to_five_years, … |
studyLevel | string | – | 1–6 study-level buckets |
remoteType | string | – | remote_partial, remote_full |
companySector | string | – | 40+ sectors |
companyBusinessType | string | – | large, startup, sme, … |
startDate | string | – | 0 (as soon as possible) or YYYY_MM start month |
sortBy | string | relevance | relevance or date (newest first) |
simplifiedApplicationOnly | bool | false | Only offers with a simplified application |
includeDescription | bool | false | Fetch detail pages for full descriptions and structured detail fields |
proxyConfiguration | object | – | Optional proxy used only when JobTeaser blocks direct requests (403/429) |
maxItems | int | 50 | Hard cap (1–1000) |
Example: keyword search
{"mode": "search","searchQuery": "data engineer","contractType": "cdi","maxItems": 20}
Example: browse a category
{"mode": "browseByCategory","jobCategory": "Programming","includeDescription": true,"maxItems": 25}
Example: internships in Paris
{"mode": "browseByLocation","location": "Paris","contractType": "internship","maxItems": 30}
Example: a saved search URL
{"mode": "bySearchUrl","searchUrls": ["https://www.jobteaser.com/en/job-offers?q=data%20engineer&contract=internship"],"maxItems": 40}
Any locale path works (/en/, /fr/, /de/, …) for both job-search and company listing URLs.
Example: all offers from a company
{"mode": "browseByCompany","companySlug": "capgemini","maxItems": 50}
Use cases
- Graduate recruiters — monitor what top employers post for students and graduates
- University career services — collect internship and apprenticeship offers by category
- Job aggregators — ingest structured early-career listings at scale
- Talent analytics — track contract types, start dates and salary ranges over time
- Competitive intelligence — watch hiring signals across company profiles
FAQ
What is JobTeaser? A career platform used by 1,500+ schools and 100k+ employers across Europe to publish jobs, internships and apprenticeships for students and graduates.
Does this need an account? No. All browsing is public; applying requires an account on JobTeaser, which is outside the scope of this actor.
Do I need a proxy? No. The actor starts with direct requests and automatically switches its own proxy when JobTeaser challenges the datacenter IP. You never have to configure one.
Where do the categories come from? Directly from JobTeaser's own filter taxonomy (position categories, contract types, experience levels, study levels, sectors).
How does location search work? The location text is geocoded (city / region / country), then the actor builds JobTeaser's location filter with the correct coordinates and radius.
Why is descriptionHtml sometimes missing? Descriptions live on each offer's detail page. mode=byUrl fetches it automatically; for the other modes, set includeDescription: true to fetch it too (adds one request per offer).
How fresh is the data? Search and detail pages reflect live listings; with includeDescription (or mode=byUrl) every record carries an ISO publishedDate and publishedDateText.
Why isn't the date sort perfectly ordered? JobTeaser pins "Job of the Week" cards above the sorted results. All other rows follow newest-first when sortBy is date.
How many offers can one run return? Up to 1000 records per run, set by maxItems. JobTeaser shows at most 50 result pages (about 1,000 offers) for a single query; split broad searches by category, location, or keyword to reach more.
Do old saved inputs still work? Yes. Legacy keys such as query, contract, company, urls, maxResults, and abroadOnly are accepted; the actor maps them in code. abroadOnly was removed from JobTeaser's site, so the legacy value is logged and ignored.
Why do some detail fields disappear on some offers? Detail fields are conditional: salary is only present when the employer publishes it, and some locales omit a text label. Empty values are omitted instead of being emitted as null.
Is this affiliated with JobTeaser? No. This is a third-party actor built on JobTeaser's public pages.