About Deutschkurs Finder
An independent Vienna-based directory of every fixed-schedule German language course in the city. Built and operated as a small business — independent of any single school, transparent about how we make money.
Why this exists
Finding a German course in Vienna shouldn't take a weekend of comparison browsing. There are roughly 20 language schools across the 23 districts, each with its own website, its own price card, its own way of structuring level names ("A1.1", "Anfängerkurs", "Grundstufe 1"), its own treatment of funding eligibility. To compare two schools you used to need two browser tabs, a notepad, and a calculator. To compare ten you needed an afternoon.
We built this so you can do it in fifteen seconds. One filter for the level you need, one for when you can attend, one for what you can pay — and the list narrows to the courses you actually qualify for. The data is collected daily by software that reads each school's own published price card.
Deutschkurs Finder is an independent business. We earn revenue from sponsored listings, lead-generation, the school portal, and advertising — all clearly labelled. The default course list is sorted by the criterion you choose; paid placements appear in separate, visibly labelled slots above or beside the organic results. See Advertising & sponsorship for the full disclosure.
Data sources
We collect data two ways. Partner schools manage their listing directly through the school portal — that data is authoritative. Schools that haven't joined the portal are listed by name with a link to their site; full course data is available only for partner schools (or for schools whose data we already collected publicly and who have not asked to be removed).
Organic results are ordered by the sort criterion you select — alphabetical, soonest start, cheapest, best € per hour, etc. Paid placements appear in separately labelled slots ("Anzeige · Sponsored") and do not displace or reorder the organic list. We don't sell your data or your clicks to third parties.
Source quality tiers
Each row is tagged by where we got its data. The tiers are ordered by trust — school-submitted is the highest:
- school-submitted Authoritative. The school itself manages this row through the school portal. They signed up, were verified by us, and now control their own JSON. Their data wins over anything our scrapers would find. The school's own description is what's displayed.
- live-scraped Fully verified at every refresh. Price, level, dates, and URL are read straight from the school's live website each morning. If they change a price yesterday, the live row shows the new price today.
- verified-static Re-verified every day. On every refresh we fetch the school's price page, check that each of our snapshot prices still appears in the live HTML, and stamp the row with today's verification timestamp. If a price has drifted off the page the row is downgraded to verified-static · stale so you know to confirm before booking.
- placeholder No reliable source — treat as a hint, not a quote. No rows carry this tag at present.
If you run a Vienna German school and want to take ownership of your row, sign up to the school portal: ten minutes, free, and your updates appear on the public site within about a minute of saving.
Schools we index
The current list — 18 schools across Vienna. Each tag indicates how its data is collected:
All 18 schools currently produce live or verified-static data — no placeholders remain. 12 are live-scraped in real time; 6 are verified-static, meaning we ping the school's site to confirm it's online and emit course rows from their publicly-published pricing material (the school doesn't expose a machine-readable catalog).
Schools — opt in or opt out at any time. If you run one of the schools above, you can take over your listing via the school portal (free, ten minutes — your edits are authoritative and overwrite anything our scraper produces). You can also request removal at any time by emailing [YOUR-EMAIL] — we honour removal requests within 7 days.
Not listed: some major Vienna institutions are deliberately excluded. Volkshochschule Wien (VHS) has 17 branches and no single one fairly represents the network. Goethe-Institut Wien is primarily an exam centre with no fixed-schedule courses. Caritas Sprachschule has no stable course programme at the moment. If any of those changes, we'll add them back.
How fresh is this?
A scheduled job re-scrapes every source once a day in the early Vienna morning (04:30 UTC, so around 06:30 in summer or 05:30 in winter). The footer of every page shows the timestamp of the last successful run. Courses that disappear from the source disappear from here within 24–48 hours.
Google ratings refresh weekly via the official Google Places API. The verification timestamps on each verified-static row update every day; a row that fails its daily check gets downgraded to verified-static · stale so you can see the data may have drifted.
What we collect
For every course we record:
- Identity: title, the school's own slug, the URL to their signup page
- Level: exact level (with sub-levels like
A1.2), rolled-up level group (A1–C2orMixed) - When: start date, end date, duration in weeks, total Unterrichtseinheiten (UE — the 45-minute teaching units used by Austrian schools), hours per week, days, exact start/end times, time of day
- Format: in-person / online / hybrid; intensity (intensive / semi-intensive / extensive / evening / weekend / crash)
- Cost: price in €, whether free, what's included in the price (materials, exam, tutoring)
- Location: address, district (1–23), latitude/longitude, nearby public transport
- Extras: maximum class size, exam preparation (which exam), funding eligibility (waff, MA17, AK-Bildungsgutschein), language of instruction, description
The detail page for each course shows everything we have.
CEFR levels explained
Every level on the site uses the Common European Framework of Reference (CEFR). If you're new to the system, here's what each level means in practice:
Hour counts are rough estimates and depend heavily on intensity, your prior languages, and how much you practice outside class. Schools sometimes use intermediate labels like A1.1, A2+, or B1.2 — we preserve their exact label and roll it up into the standard level group for filtering.
Course types
The five categories you can filter on under "Intensity":
- Intensive — 4 or more days per week, typically 3+ hours per day. Finishes a level in 4–6 weeks. Best if you can dedicate yourself fully (most international students, between jobs, on parental leave).
- Semi-intensive — 2–3 days per week. Finishes a level in 8–12 weeks. The middle ground.
- Extensive — 1–2 sessions per week, lasting a full semester (14–16 weeks). Lower hours-per-week but longer duration. Common at university and adult education centres.
- Evening — runs entirely outside working hours, usually two evenings per week. Designed for full-time workers.
- Weekend — Saturday or Saturday + Sunday sessions. The least common format.
- Crash — 1–2 weeks, very condensed. Useful for revision before an exam or for a focused topic.
A short guide to Vienna course funding
Vienna offers several subsidies that can drastically reduce — or completely cover — the cost of a German course. Most schools advertise these only in passing. We've moved the full guide to its own page: open the Funding eligibility check to see which of waff, MA17 Sprachgutschein, AK-Bildungsgutschein, AMS, ÖIF, and FSW apply to your situation, with concrete next steps for each.
Exams in detail
Several different certificates exist, and only some are accepted for Austrian official purposes. If you need a certificate for a residence permit, citizenship, university, or a specific job:
ÖSD — Österreichisches Sprachdiplom Deutsch
Use: Accepted by Austrian authorities for all visa categories, citizenship, naturalisation, and admission to Austrian universities. The most universally accepted in Austria.
Levels: A1 through C2. The A2/B1 "Integration" version specifically aligns with the Austrian integration agreement.
Cost: roughly €115 (A1) to €185 (C1).
ÖIF — Integrationsprüfung
Use: Required for the residence permit "Daueraufenthalt EU" and for Austrian citizenship at the B1 level. The exam combines language and "Values & Orientation" content.
Levels: A2 and B1.
Cost: €130. Free with certain Integrationsgutscheine.
Goethe-Zertifikat
Use: Globally recognised. Accepted in Austria for most purposes (visa, university), but Austrian residency authorities prefer ÖSD/ÖIF — check the specific form before booking.
Levels: A1 through C2.
Cost: approx €130 to €220 depending on level.
telc — The European Language Certificates
Use: Accepted across the EU for university admission and some professional purposes. In Austria less widely required than ÖSD/ÖIF.
Levels: A1 through C2; also subject-specific (telc Deutsch B2/C1 Medizin for doctors).
DSH and TestDaF
Use: Required for admission to most German-speaking universities. Both are accepted equally — DSH is taken at the university itself; TestDaF is centrally administered.
Levels: Both target B2/C1.
On the main page, filter by Exam preparation to see only courses that specifically prepare you for one of these exams.
Choosing the right course — practical tips
- Decide on intensity before anything else. An intensive course in 4 weeks costs more per week but works out cheaper per CEFR level than an evening course over 16 weeks — and you reach the level much faster.
- Filter by "best € per hour" first. Schools price differently — total course cost can be misleading. The sort option converts everything to a per-hour price for fair comparison.
- Check the maximum class size. Group classes range from 6 (premium) to 20 (volkshochschulen-style). Below 10 you get real speaking time; above 15 you mostly listen.
- Verify funding eligibility before booking. waff requires pre-approval — pay first and they won't refund. Click through to the school's site and read the small print.
- Look at the timing carefully. "08:30–13:00" sounds neat, but check whether it includes a coffee break. Total UE per day matters more than wall-clock hours.
- If you're aiming for an exam, book the exam prep course explicitly, not just a general level. Exam techniques (mark schemes, time pressure, exam formats) are not the same as general fluency.
- Try a trial lesson if the school offers one. Most do for free or at a nominal fee. The teaching style varies more than the brochures suggest.
- Read the cancellation policy. Austrian consumer protection (Konsumentenschutzgesetz) gives you a 14-day withdrawal right for distance-booked courses, but many schools' in-person cancellation policies are stricter — usually you can cancel up to a week before the course starts.
Glossary of Austrian education terms
- UE / Unterrichtseinheit
- A teaching unit. Almost always 45 minutes in Austria (occasionally 50). When a course advertises "80 UE", multiply by 0.75 to get clock hours (60 hours).
- Niveaustufe
- Level — A1 through C2.
- Modul
- A sub-section of a level, e.g. A2.1, A2.2. Two modules typically make a full level.
- Kursbestätigung
- Course confirmation document. Schools give you this on enrolment; needed for waff, MA17, AK funding applications, and sometimes for residence permit renewals.
- Wien-cert
- Vienna's quality-certification scheme for adult education providers. waff funding requires the provider to be wien-cert certified.
- Bildungskonto
- The "education account" run by waff for Vienna employees — your personal pot of funding eligibility.
- Integrationsvereinbarung
- Integration Agreement — the binding obligation for third-country nationals on certain residence permits to reach A2 (within 2 years) and then B1 (within 5 years).
- e-card
- Austrian health insurance card — used as digital ID for waff, AMS, and other authority interactions.
- Meldezettel
- Registration certificate confirming your residence address. Required for almost every funding application.
- WIFI / BFI
- The two major adult education networks. WIFI is run by the Wirtschaftskammer (employers' side); BFI by the Arbeiterkammer (workers' side). BFI Wien is in our directory.
Roadmap
- shippedIndependent commercial directory — Sponsored placements, lead-generation, school subscriptions, and advertising are all clearly labelled. Organic results are never reordered by payment.
- shippedHybrid school coverage — Partner schools manage their full listing via the portal; non-partner schools are listed by name and website only, with no scraped course details.
- shippedSelf-hosted in the EU — Migrated from GitHub Pages + Render to a single Hetzner VPS in Falkenstein. All your data stays in the European Union.
- shipped12 languages — UI translated live via Google Translate. Added Romanian, Hungarian, Russian, Persian, and Bulgarian to serve Vienna's biggest migrant communities.
- shippedDSGVO-compliant cookie consent — Granular toggles for analytics and advertising; refusing is always one click, and strictly-necessary cookies are the only default.
- shippedSchool portal — Schools can claim their listing, upload a verification document, and manage their courses directly. Their data overrides anything our scraper produces.
- shippedDaily price verification — Verified-static rows are re-checked against the school's live price page each morning; drift gets the row flagged as stale so you know to confirm before booking.
- shippedGoogle ratings auto-refresh — Each school's Google rating is refreshed weekly via the official Places API.
- shippedSide-by-side comparison — Pick up to 4 courses with "+ Compare" on any card and see them at compare.html: schedule, level, format, cost, location, and funding eligibility all in one table. Best price, earliest start, smallest class, lowest €/UE are highlighted automatically when there's a clear winner.
- shippedCalendar export — On every course detail page, "Add to your calendar" exports the schedule as either a Google Calendar event or a downloadable .ics file (Apple Calendar / Outlook / iCloud / Thunderbird). Recurring weekly courses become a proper RRULE with the right BYDAY tokens and Europe/Vienna timezone.
- shippedFunding eligibility wizard — A 2-minute, 5-question check at funding.html that figures out which of waff, MA17 Sprachgutschein, AK-Bildungsgutschein, AMS, ÖIF, and FSW apply to your situation, with concrete next-step instructions per program. All client-side; no answers leave the browser.
- shippedMap view — Every school location on an interactive Vienna map with one marker per address. Click a marker for the school's courses (level, price, link), Google rating, and nearby public transit. Sidebar has the full filter set: search, level, intensity, format, time of day, days, districts, funding accepted, exam prep, price range, and per-school checklist.
- shippedCourse reviews (MVP) — Students can submit star + text reviews on any course detail page. Every submission is held in a moderation queue and only published once an admin approves it. Approved reviews appear on every course page for that school, with the aggregate star average and review count up top. Anti-spam: honeypot field, rate-limited to 3 per hour per IP, manual moderation of every entry. v2 will add email verification + verified-attendance + school replies.
- shippedSchool profile pages — Every school now has a rich, full-page profile at
/school.html?slug=Xwith a hero (cover photo, tagline, stats), an About section (description, teaching method, quick facts), teachers, FAQs, current promotions, student reviews, course list filtered to that school, photo gallery, embedded map of the location, contact card with hours and social links, plus a sidebar of ratings (Google + students) and tag badges (funding accepted, exam prep, accreditations, facilities). Schools claim and edit everything themselves from the portal at/portal/school-page— every field is optional, missing fields just hide. - shippedImage upload & cropping — Schools now upload hero, logo, gallery, and teacher photos directly from the portal (no need to host them anywhere else). Every upload opens an in-browser cropper with the right aspect ratio locked: 8:3 for the hero banner, 4:3 for gallery photos, 1:1 for logos and teacher headshots. Server-side Pillow re-encodes uploads (resize, JPEG quality 82, EXIF strip) for safety and file-size sanity. Admins can add, replace, or remove any image on any school via the corresponding admin page editor under
/schools/{slug}/page. - in progressMobile design pass — Improving filter ergonomics and card density on small screens.
- shippedReal
.atdomain — Site lives atdeutschkursfinder.atwith three reserved aliases (.com,deutschkurskompass.at,deutschlernenwien.at) all 301-redirecting to the main. - plannedInquiry form — Contact a school directly through the directory, in your language, without leaving the site.
- plannedSaved-search alerts — Email notifications when a course matching your saved filters appears (e.g. "B1 evening course in district 7, under €600").
- plannedSchool analytics dashboard — Partner schools see views, click-throughs, and inquiries on each of their courses, plus aggregated demand signals (which levels / districts get the most searches).
- plannedSponsored placement slots — Schools can purchase clearly-labelled "Anzeige · Sponsored" placements above the organic list. Disclosure rules: separate visual treatment, never reorder organic results, sponsor identity always visible.
- plannedPremium school portal — Paid tier with priority placement candidates, multi-user editing, lead routing, and richer analytics. Free portal tier stays available for any school that just wants to manage its listing.
- plannedTranslated course content — Not just the UI but the actual course descriptions, in all 12 supported languages, with school sign-off so translations are accurate.
- plannedPublic read-only API — Filtered JSON access to course data for aggregators, integration NGOs, and city/state portals.
Want something else added? Email [YOUR-EMAIL].
Advertising & sponsorship
We're an independent business and we earn revenue four ways. Every form is clearly labelled wherever it appears on the site, so you always know whether you're looking at an organic listing or a paid one.
- Sponsored placements. A school can pay to appear in a dedicated slot above or beside the organic course list. These are always labelled "Anzeige · Sponsored" in line with § 26 Mediengesetz and the Austrian UWG. They do not reorder, replace, or hide organic results.
- Lead generation. When a school opts in, we may charge for verified course-inquiry clicks or form submissions made through a sponsored slot. Organic listings link directly to the school's site at no cost to anyone.
- School portal subscription. Schools can pay a monthly fee for premium portal features (managed listing, analytics dashboard, lead routing, multiple course editors). Free tier remains available for any school that wants only to manage their listing.
- Display advertising. The site may carry display ads via a recognised advertising network. When it does, you'll see a cookie-consent banner on first visit; refuse it and no advertising cookies will be set. Ads will be visually separated from listings and labelled "Anzeige".
What we don't do: reorder organic results based on payment; hide a school from organic search because they haven't paid; sell your personal data; embed third-party tracking pixels you can't opt out of.
For partnership, sponsorship, or advertising inquiries: [YOUR-EMAIL].
How the site works
The frontend is a single static page (HTML, CSS, vanilla JavaScript) that reads a daily-updated JSON feed. The feed is built by a scheduled job that runs about 20 small Python scrapers — one per school — each of which fetches that school's public website, parses the schedule and price information, and emits a list of courses. Partner-school data submitted through the portal overrides the scraped data.
The school portal and admin tools run as a Flask application behind nginx. Everything — public site, portal, admin, scraper — is hosted on a single virtual server with Hetzner Online GmbH in a German EU data centre (Falkenstein). The source code is maintained privately; technical inquiries via email.
Translation is provided by Google Translate, loaded only when you change the UI language away from English. Google ratings shown next to each school are refreshed weekly through the official Google Places API.
Get in touch
- School owners — claim your listing or remove it: school portal or [YOUR-EMAIL].
- Advertising & partnerships: [YOUR-EMAIL].
- Wrong data, bug reports, suggestions: [YOUR-EMAIL].
- Privacy & data-protection questions: [YOUR-EMAIL].
- Press: [YOUR-EMAIL].
FAQ
Why isn't course X here?
Either the school hasn't joined the portal, we don't yet have a verified data source for them, or the course was removed from the school's website between refreshes. Drop us a note at [YOUR-EMAIL] if it's an important omission.
The price I see here differs from the school's site.
Schools sometimes change pricing between our daily refresh and your visit. The price card on each course page links straight to the school — always confirm there before paying. Our footer shows the timestamp of the last successful refresh.
Can I trust the data?
We try hard to be accurate, and partner-school listings are managed by the schools themselves. But we make no guarantee — treat us as a strong starting point, not the final word. Every course detail page links to the original. For high-stakes decisions (visa applications, funding pre-approvals), confirm directly with the school in writing.
Do you take money from schools? Are listings paid?
Yes — we're an independent business, and schools can pay us for clearly labelled "Anzeige · Sponsored" placements, lead-generation, and premium portal features. Organic listings are not reordered, hidden, or promoted on the basis of payment. See the Advertising & sponsorship section above for the full breakdown.
Is Deutschkurs Finder affiliated with the Austrian government, the City of Vienna, or any school?
No. We are independent of every institution referenced on the site. Government bodies mentioned (waff, MA17, AK, AMS, ÖIF) are described from publicly-available information for informational purposes only; school information is sourced from each school's own website or submitted directly by the school via the portal.
How is my data handled?
We minimise data collection. The full disclosure — what we collect, why, how long we keep it, and your DSGVO rights — lives in the Privacy Policy. If we add display advertising, a cookie-consent banner will appear before any advertising cookies are set, and you can refuse it.
What's the legal entity behind the site?
See the Impressum for the full legal disclosure required by Austrian media law (§ 24 Mediengesetz), e-commerce law (§ 5 ECG), and business law (§ 14 UGB).
How do I report a bug or wrong data?
Email [YOUR-EMAIL] with the course or page URL and what's off. We aim to respond within a few business days.
I'm a school owner — how do I add, correct, or remove our listing?
Two paths:
- Manage it yourself: sign up at the school portal. You'll verify with a document showing you have authority to represent the school (business registration extract, letterhead, signed authorisation). Once approved, you control your listing directly — our scraper steps back.
- Request removal: email [YOUR-EMAIL]. We honour removal requests within 7 days.
Impressum · Privacy · Terms of Use · Advertising policy · Cookie settings