Files
politics-tracking/backend/tests/fixtures/parlament.persons/person_detail.json
T
simonandClaude Opus 5.5 583ccba31c Politrack: track Austrian politicians from public sources
Initial import of Politrack, a self-hosted service that tracks Austrian
politicians from federal to municipal level - roles, votes, money flows,
statements, meetings, social media and legal proceedings - with every claim
linked to its sources.

- backend: FastAPI + Postgres/pgvector; adapter framework (fetch -> parse ->
  load -> enrich) with robots.txt/TDM-aware fetching, a raw-response archive
  for reparsing, and a claim/evidence model with corroboration
- sources: Parliament, Wikidata, EU Parliament/Commission, Council of
  Ministers, Rechnungshof party reports and donations, procurement, RTR media
  transparency, political ad libraries, WKStA, news feeds, Wikipedia edits,
  Bluesky, Mastodon, public Telegram channels, YouTube and X (official API)
- web: Next.js frontend in German and English with typed API client
- mcp: MCP server for AI agents and RAG
- docs: architecture, data model, sources, legal notes, Unraid deployment and
  contributor guides; Docker Compose setup for Unraid

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:02:01 +01:00

547 lines
15 KiB
JSON

{
"pagetype": "biografie",
"meta": {
"description": "Graf Tanja",
"generationTime": "Sat Oct 17 00:04:49 GMT 2026",
"lang": "de",
"title": "Graf Tanja | Parlament Österreich",
"openGraph": {
"image": "https://www.parlament.gv.at/dokument/bild/201426/20142639_500.jpg",
"title": "Graf Tanja | Parlament Österreich",
"description": "Abgeordnete zum Nationalrat (XXVI.-XXVIII. GP), ÖVP"
},
"scripts": [],
"styles": []
},
"content": {
"headingbox": {
"title": "Tanja Graf",
"title_plain": "Tanja Graf",
"titleSuffix": "(aktiv)",
"ebene": 1
},
"banner": {
"mandate": [
{
"funktion_text": "Abgeordnete zum Nationalrat",
"mandat": "Abgeordnete zum Nationalrat",
"klub": "Parlamentsklub der Österreichischen Volkspartei",
"wahlkreis": "5 - Salzburg",
"wahlpartei": "ÖVP",
"wahlpartei_text": "Österreichische Volkspartei",
"gremium": "NR",
"funktion": "NR",
"bez": "Abgeordnete zum Nationalrat (XXVI.-XXVIII. GP), ÖVP",
"mandatVon": "09.11.2017",
"mandatBis": "",
"funktion_von": "09.11.2017",
"funktion_bis": "",
"zeitraum": "09.11.2017-",
"aktiv": true
},
{
"funktion_text": "Schriftführerin des Nationalrates",
"mandat": "Schriftführerin des Nationalrates",
"klub": null,
"wahlkreis": null,
"wahlpartei": null,
"wahlpartei_text": null,
"gremium": "ZSN",
"funktion": "ZSN",
"bez": "Schriftführerin des Nationalrates",
"mandatVon": "24.10.2024",
"mandatBis": "",
"funktion_von": "24.10.2024",
"funktion_bis": "",
"zeitraum": "24.10.2024-",
"aktiv": true
}
],
"stand": "2024-02-15T08:44:55",
"socialMedia": [
{
"url": "https://www.tanjagraf.at/",
"name": "Website von Tanja Graf",
"type": "WEBSITE"
},
{
"url": "https://www.facebook.com/tanjagraf.salzburg/",
"name": "Facebook von Tanja Graf",
"type": "FACEBOOK"
},
{
"url": "https://www.instagram.com/tanjagraf_official/",
"name": "Instagram von Tanja Graf",
"type": "INSTAGRAM"
}
],
"portrait": {
"src": "/dokument/bild/201426/20142639_384.jpg",
"alt": "Portraitfoto von Tanja Graf",
"bildId": 20142639,
"copyright": "Parlamentsdirektion/Thomas Topf"
},
"type": "Parlamentarier"
},
"personInfo": {
"personTyp": "mandatar",
"gremium": "nr",
"pad_intern": 1977,
"aktiv": true,
"sitzplatz": "2/16"
},
"tabs": [
{
"id": "BIO",
"label": "Biografie",
"selected": true
},
{
"id": "KONTAKT",
"label": "Kontakt",
"selected": false
},
{
"id": "PLENUM",
"label": "Plenum",
"selected": false
},
{
"id": "AUS",
"label": "Ausschüsse",
"selected": false
},
{
"id": "AKT",
"label": "Aktivitäten",
"selected": false
},
{
"id": "UNVTRANS",
"label": "Transparenz",
"selected": false
},
{
"id": "MEDIEN",
"label": "Mediathek",
"selected": false
}
],
"biografie": {
"kurzinfo_html": null,
"portraitvideo": "c8d5bbce-2ac8-49e4-8041-bfbc7ab11046",
"mandatefunktionen": {
"bez": "Politische Mandate/Funktionen",
"mandate": [
{
"funktion_text": "Abgeordnete zum Nationalrat",
"mandat": "Abgeordnete zum Nationalrat",
"klub": "Parlamentsklub der Österreichischen Volkspartei",
"wahlkreis": "5 - Salzburg",
"wahlpartei": "ÖVP",
"wahlpartei_text": "Österreichische Volkspartei",
"gremium": "NR",
"funktion": "NR",
"bez": "Abgeordnete zum Nationalrat (XXVI.-XXVIII. GP), ÖVP",
"mandatVon": "09.11.2017",
"mandatBis": "",
"funktion_von": "09.11.2017",
"funktion_bis": "",
"zeitraum": "09.11.2017-",
"aktiv": true
},
{
"funktion_text": "Schriftführerin des Nationalrates",
"mandat": "Schriftführerin des Nationalrates",
"klub": null,
"wahlkreis": null,
"wahlpartei": null,
"wahlpartei_text": null,
"gremium": "ZSN",
"funktion": "ZSN",
"bez": "Schriftführerin des Nationalrates",
"mandatVon": "24.10.2024",
"mandatBis": "",
"funktion_von": "24.10.2024",
"funktion_bis": "",
"zeitraum": "24.10.2024-",
"aktiv": true
}
]
},
"kurzbiografie": {
"gebtext": "Geb.: 07.05.1975, Wien",
"beruflicheTaetigkeit": "Unternehmerin",
"beruflicherWerdegang": [
"Unternehmerin, 25 PersonaldienstleistungsgesmbH seit 2008",
"Niederlassungsleiterin für Salzburg und Wien, Dr. Rantasa GmbH 2005-2008",
"Standortleiterin für Westösterreich, Powerserv Personalservice GmbH 1999-2005",
"Auditorin, Powerserv Personalservice GmbH 2000-2001",
"Projektleiterin - Personalabwicklung für die EU Präsidentschaft Österreich für das Bundeskanzleramt und das BM für auswärtige Angelegenheiten, Powerserv Personalservice GmbH 1998"
],
"bildungsweg": [
"University of Salzburg Business School (Abschluss: Zertifizierte Leadership Competence) in Salzburg 2016-2017",
"Berufsschule (erlernter Beruf: Bürokauffrau) in Wien 1990-1993",
"Polytechnische Schule in Wien 1989-1990",
"Hauptschule in Wien 1985-1989",
"Volksschule in Wien 1982-1985"
],
"politischeFunktionen": [
"Bereichssprecherin für Wirtschaft und Industrie Parlament seit 2026",
"Bereichssprecherin für Energie Parlament 2020-2026",
"Bereichssprecherin für Sport 2018-2020",
"Landesgruppenobmann-Stellvertreterin des Österreichischen Wirtschaftsbundes (ÖWB), Landesgruppe Salzburg seit 2017",
"Mitglied des Wirtschaftsparlaments der Wirtschaftskammer Österreich (WKO) seit 2015",
"Redakteurin des Fachverbandes der gewerblichen Dienstleister 2015-30.6.2018\n",
"Ausschussmitglied des Fachverbandes der gewerblichen Dienstleister seit 2015",
"Spartenvertreterin für Gewerbe und Handwerk der Wirtschaftskammer Österreich seit 2015"
],
"bez": "Kurzbiografie",
"disclaimer": "Für Richtigkeit und Umfang der biografischen Daten verantwortlich: Tanja Graf"
},
"parentid": "biografietabs",
"tabid": "BIO"
},
"medien": {
"filter": {
"rendertype": "filter",
"data": {
"type": "FILTER",
"resultLayout": "SEARCH",
"hasForm": true,
"hasList": true,
"label": "Medien",
"pagesize": 20,
"hasPaging": false,
"showMore": true,
"definition": {
"bez": "BIO_252",
"listeId": 252,
"params": {},
"fixedParams": {
"PAD_INTERN": [
1977
]
},
"hideDimensions": [
"PAD_INTERN"
],
"sortrnr": 11,
"ascDesc": "DESC"
}
}
},
"portraitvideo": "c8d5bbce-2ac8-49e4-8041-bfbc7ab11046",
"parentid": "biografietabs",
"tabid": "MEDIEN"
},
"kontakt": {
"verantwortlich": "mandatar",
"socialMedia": [
{
"url": "https://www.tanjagraf.at/",
"name": "Website von Tanja Graf",
"type": "WEBSITE"
},
{
"url": "https://www.facebook.com/tanjagraf.salzburg/",
"name": "Facebook von Tanja Graf",
"type": "FACEBOOK"
},
{
"url": "https://www.instagram.com/tanjagraf_official/",
"name": "Instagram von Tanja Graf",
"type": "INSTAGRAM"
}
],
"mail": [
"tanja.graf@parlament.gv.at"
],
"telefonnr": [
"+43 1 401 10-4664"
],
"anschrift": [
"Parlamentsklub der Österreichischen Volkspartei<br>Dr.-Karl-Renner-Ring 3<br>1017 Wien"
],
"disclaimer": "Für Richtigkeit und Umfang der Kontaktdaten verantwortlich: Tanja Graf",
"parentid": "biografietabs",
"tabid": "KONTAKT"
},
"ausschuss": {
"parentid": "biografietabs",
"tabid": "AUS",
"filter": {
"rendertype": "filter",
"data": {
"resultLayout": "TABLE",
"hasForm": true,
"hasList": true,
"label": "Ausschuesse",
"pagesize": 20,
"definition": {
"bez": "AUSSCHUSS_BIO_250",
"listeId": 250,
"params": {},
"fixedParams": {
"PAD_INTERN": [
1977
]
},
"hideDimensions": [
"PAD_INTERN"
],
"sortrnr": 14,
"ascDesc": "DESC"
},
"type": "MONGODB"
}
}
},
"plenum": {
"filter": {
"rendertype": "filter",
"data": {
"type": "FILTER",
"resultLayout": "TABLE",
"hasForm": true,
"hasList": true,
"label": "Reden",
"pagesize": 20,
"definition": {
"bez": "BIO_251",
"listeId": 251,
"params": {},
"fixedParams": {
"PAD_INTERN": [
1977
]
},
"hideDimensions": [
"PAD_INTERN"
],
"sortrnr": 10,
"ascDesc": "DESC"
}
}
},
"parentid": "biografietabs",
"tabid": "PLENUM"
},
"unvtrans": {
"einleitung": "Hier finden Sie die von Mitgliedern des Nationalrates bzw. des Bundesrates nach § 6 Unvereinbarkeits- und Transparenz-Gesetz in Verbindung mit § 9 Bundesverfassungsgesetz über die Begrenzung von Bezügen öffentlicher Funktionäre zu veröffentlichenden leitenden Stellungen in AGs, GmbHs, Stiftungen und Sparkassen, sonstigen Tätigkeiten mit Vermögensvorteilen, leitenden ehrenamtlichen Tätigkeiten und jährlichen Einkommenskategorien.",
"header": "Liste gemäß § 9 BezBegrBVG - Abgeordnete Tanja Graf",
"linkliste": [
{
"title": "Druckversion - Liste Tanja Graf:",
"documents": [
{
"link": "/dokument/unvtrans/person/1977/BezBegrBVGPar9.pdf",
"type": "PDF"
}
]
},
{
"title": "Gesamtliste gemäß § 9 BezBegrBVG - Nationalrat:",
"documents": [
{
"link": "/person/unvtrans/BezBegrBVGPar9-NR.html",
"type": "HTML"
},
{
"link": "/dokument/unvtrans/BezBegrBVGPar9-NR.pdf",
"type": "PDF"
}
]
},
{
"title": "Informationen zur Liste gemäß § 9 BezBegrBVG (Unv-Transparenz):",
"documents": [
{
"link": "/verstehen/nationalrat/rechtsgrundlagen/UTrag/index.html",
"type": "HTML"
}
]
}
],
"unvtransData": {
"z1Header": "Leitende Stellungen in Aktiengesellschaft, Gesellschaft mit beschränkter Haftung, Stiftung oder Sparkasse - § 6 Abs. 2 Z 1",
"z1Erklaerlink": "/verstehen/nationalrat/rechtsgrundlagen/UTrag/index.html#leitende_stellungen",
"z1Zusatztext": "(Werden aus einer Tätigkeit keine Vermögensvorteile erzielt, wird dies durch * gekennzeichnet)",
"z1Table": {
"rendertype": "table",
"data": {
"header": [
{
"label": "Rechtsträger",
"sortable": false,
"filterable": false,
"hidden": false,
"additionalInfo": false
},
{
"label": "Leitende Stellung",
"sortable": false,
"filterable": false,
"hidden": false,
"additionalInfo": false
}
],
"rows": [
[
"25 PersonaldienstleistungsgesmbHFranz Josef Kai 95020 Salzburg FN306527a",
"Geschäftsführende Gesellschafterin"
],
[
"Salzburger Parkgaragen Gesellschaft m.b.H",
"Stv. Aufsichtsratsvorsitzende<b>*</b> (bis 09.03.2026)"
]
]
}
},
"z2Header": "Sonstige Tätigkeiten, aus denen Vermögensvorteile erzielt werden - § 6 Abs. 2 Z 2",
"z2Erklaerlink": "/verstehen/nationalrat/rechtsgrundlagen/UTrag/index.html#sonstige_tatigkeiten",
"z2Table": {
"rendertype": "table",
"data": {
"header": [
{
"label": "Dienstgeber/Rechtsträger/Unternehmen",
"sortable": false,
"filterable": false,
"hidden": false,
"additionalInfo": false
},
{
"label": "Tätigkeit",
"sortable": false,
"filterable": false,
"hidden": false,
"additionalInfo": false
}
],
"rows": [
[
"<a href='/verstehen/nationalrat/rechtsgrundlagen/UTrag/index.html#sonstige_tatigkeiten'>lit. e</a>: Wirtschaftskammer Salzburg",
"Fachgruppenobmann Stellvertreterin (bis 31.01.2026)"
],
[
"<a href='/verstehen/nationalrat/rechtsgrundlagen/UTrag/index.html#sonstige_tatigkeiten'>lit. a</a>: Österreichischer Wirtschaftsbund",
"Generalsekretärin (ab 14.01.2026)"
]
]
}
},
"z3Header": "Leitende ehrenamtliche Tätigkeiten (keine Vermögensvorteile) - § 6 Abs. 2 Z 3",
"z3Erklaerlink": "/verstehen/nationalrat/rechtsgrundlagen/UTrag/index.html#(weitere)_leitende_ehrenamtliche_tatigkeiten",
"z3Table": {
"rendertype": "table",
"data": {
"header": [
{
"label": "Rechtsträger",
"sortable": false,
"filterable": false,
"hidden": false,
"additionalInfo": false
},
{
"label": "Leitende ehrenamtliche Tätigkeit",
"sortable": false,
"filterable": false,
"hidden": false,
"additionalInfo": false
}
],
"rows": [
[
"Wirtschaftsbund Salzburg",
"Vorstand / Landesobmann Stellvertreterin"
],
[
"Frau in der Wirtschaft",
"Vorstandsmitglied"
],
[
"Wirtschaftskammer Österreich",
"Bundesvorsitzender - Stellvertreterin der Arbeitskräfteüberlasser"
],
[
"Wirtschaftskammer Salzburg, Bezirksstelle Tennengau",
"Mitglied im Bezirksstellenausschuss (bis 31.01.2026)"
]
]
}
},
"einkHeader": "Einkommenskategorie - § 6 Abs. 4 und 5",
"einkErklaerlink": "/verstehen/nationalrat/rechtsgrundlagen/UTrag/index.html#einkommenskategorie",
"einkTable": {
"rendertype": "table",
"data": {
"header": [
{
"label": "für das Jahr",
"sortable": false,
"filterable": false,
"hidden": false,
"additionalInfo": false
},
{
"label": "Einkommenskategorie",
"sortable": false,
"filterable": false,
"hidden": false,
"additionalInfo": false
}
],
"rows": [
[
2024,
"4&nbsp; (von 8.001 bis 12.000 Euro)"
],
[
2025,
"4&nbsp; (von 8.001 bis 12.000 Euro)"
],
[
2026,
"Meldefrist endet am 30.06.2027"
]
]
}
}
},
"parentid": "biografietabs",
"tabid": "UNVTRANS"
},
"akt": {
"parentid": "biografietabs",
"tabid": "AKT",
"filter": {
"rendertype": "filter",
"data": {
"type": "MONGODB",
"resultLayout": "TABLE",
"hasForm": true,
"hasList": true,
"label": "Aktivitaeten",
"pagesize": 20,
"definition": {
"bez": "PERS_AKTIVIT_025_MONGODB",
"listeId": 25,
"params": {},
"fixedParams": {
"PAD_INTERN": [
1977
]
},
"hideDimensions": [
"PAD_INTERN"
],
"sortrnr": 9,
"ascDesc": "DESC"
}
}
}
}
}
}