Turns PDF URLs into one dataset row per page: plain text, Markdown, tables as row arrays, and an honest has_text_layer flag for scanned pages. Built to sit behind any crawler that downloads PDFs but does not read them.
Daily structured feed of Swiss building permit applications (Baugesuche/Baupublikationen) from the official cantonal gazettes API (amtsblattportal.ch). Applicant, project, location, parcel, objection deadline.
Daily feed of German public procurement notices from the official Open Data API (oeffentlichevergabe.de, CC0). Filter by CPV, region (NUTS), keyword. Includes buyer, submission deadline, documents links.