Files
politics-tracking/backend/tests/fixtures/parlament.persons/person_detail.expected.json
T
Simon DiesenreiterandClaude Opus 5.5 9da5a1dc48 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 19:47:14 +01:00

682 lines
17 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
{
"__type__": "PersonRecord",
"aliases": [],
"birth_date": null,
"death_date": null,
"family_name": null,
"full_name": "Tanja Graf",
"gender": null,
"given_name": null,
"honorific_prefix": null,
"honorific_suffix": null,
"match_by_name": false,
"photo_url": "https://www.parlament.gv.at/dokument/bild/201426/20142639_500.jpg",
"ref": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
}
},
{
"__type__": "SocialAccount",
"handle": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"platform": "website",
"url": "https://www.tanjagraf.at/",
"verified": true
},
{
"__type__": "SocialAccount",
"handle": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"platform": "facebook",
"url": "https://www.facebook.com/tanjagraf.salzburg/",
"verified": true
},
{
"__type__": "SocialAccount",
"handle": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"platform": "instagram",
"url": "https://www.instagram.com/tanjagraf_official/",
"verified": true
},
{
"__type__": "Claim",
"claim_type": "role",
"counterpart_org": null,
"counterpart_person": null,
"data": {},
"evidence": [
{
"__type__": "Evidence",
"confidence": 1.0,
"doc_type": "api_record",
"excerpt": null,
"full_text": null,
"locator": "funktion:Schriftführerin des Nationalrates:2024-10-24",
"meta": {},
"published_at": null,
"quote": null,
"source": null,
"stance": "supports",
"title": "Parlament: Tanja Graf",
"url": "https://www.parlament.gv.at/person/1977"
}
],
"facet": {
"__type__": "Role",
"body": null,
"end": null,
"level": "other",
"party": null,
"region": null,
"role": "Schriftführerin des Nationalrates",
"start": "2024-10-24"
},
"key": null,
"occurred_at": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"review": false,
"sensitive": false,
"summary_de": "Tanja Graf: Schriftführerin des Nationalrates",
"summary_en": null,
"topics": [],
"valid_from": "2024-10-24",
"valid_to": null
},
{
"__type__": "Claim",
"claim_type": "side_job",
"counterpart_org": {
"__type__": "OrgRef",
"create": true,
"ids": {
"firmenbuch": "306527a"
},
"kind": "company",
"name": "25 PersonaldienstleistungsgesmbH",
"short_name": null,
"slug": null
},
"counterpart_person": null,
"data": {
"category": "Leitende Stellungen in Aktiengesellschaft, Gesellschaft mit beschränkter Haftung, Stiftung oder Sparkasse - § 6 Abs. 2 Z 1",
"cells": [
"25 PersonaldienstleistungsgesmbH (FN 306527a)",
"Geschäftsführende Gesellschafterin"
],
"employer": "25 PersonaldienstleistungsgesmbH",
"firmenbuch": "306527a",
"unpaid": false
},
"evidence": [
{
"__type__": "Evidence",
"confidence": 1.0,
"doc_type": "register_entry",
"excerpt": null,
"full_text": null,
"locator": "unvtrans:z1",
"meta": {},
"published_at": null,
"quote": "25 PersonaldienstleistungsgesmbH (FN 306527a) – Geschäftsführende Gesellschafterin",
"source": null,
"stance": "supports",
"title": "Unvereinbarkeits-/Transparenzliste Tanja Graf",
"url": "https://www.parlament.gv.at/dokument/unvtrans/person/1977/BezBegrBVGPar9.pdf"
}
],
"facet": null,
"key": [
"unvtrans",
"1977",
"z1",
"25 PersonaldienstleistungsgesmbH (FN 306527a) – Geschäftsführende Gesellschafterin"
],
"occurred_at": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"review": false,
"sensitive": false,
"summary_de": "Tanja Graf – Leitende Stellungen in Aktiengesellschaft, Gesellschaft mit beschränkter Haftung, Stiftung oder Sparkasse: 25 PersonaldienstleistungsgesmbH (FN 306527a) – Geschäftsführende Gesellschafterin",
"summary_en": null,
"topics": [
"Transparenz und Korruption"
],
"valid_from": null,
"valid_to": null
},
{
"__type__": "Claim",
"claim_type": "side_job",
"counterpart_org": {
"__type__": "OrgRef",
"create": true,
"ids": {},
"kind": "company",
"name": "Salzburger Parkgaragen Gesellschaft m.b.H",
"short_name": null,
"slug": null
},
"counterpart_person": null,
"data": {
"category": "Leitende Stellungen in Aktiengesellschaft, Gesellschaft mit beschränkter Haftung, Stiftung oder Sparkasse - § 6 Abs. 2 Z 1",
"cells": [
"Salzburger Parkgaragen Gesellschaft m.b.H",
"Stv. Aufsichtsratsvorsitzende * (bis 09.03.2026)"
],
"employer": "Salzburger Parkgaragen Gesellschaft m.b.H",
"firmenbuch": null,
"unpaid": true
},
"evidence": [
{
"__type__": "Evidence",
"confidence": 1.0,
"doc_type": "register_entry",
"excerpt": null,
"full_text": null,
"locator": "unvtrans:z1",
"meta": {},
"published_at": null,
"quote": "Salzburger Parkgaragen Gesellschaft m.b.H – Stv. Aufsichtsratsvorsitzende * (bis 09.03.2026)",
"source": null,
"stance": "supports",
"title": "Unvereinbarkeits-/Transparenzliste Tanja Graf",
"url": "https://www.parlament.gv.at/dokument/unvtrans/person/1977/BezBegrBVGPar9.pdf"
}
],
"facet": null,
"key": [
"unvtrans",
"1977",
"z1",
"Salzburger Parkgaragen Gesellschaft m.b.H – Stv. Aufsichtsratsvorsitzende * (bis 09.03.2026)"
],
"occurred_at": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"review": false,
"sensitive": false,
"summary_de": "Tanja Graf – Leitende Stellungen in Aktiengesellschaft, Gesellschaft mit beschränkter Haftung, Stiftung oder Sparkasse: Salzburger Parkgaragen Gesellschaft m.b.H – Stv. Aufsichtsratsvorsitzende * (bis 09.03.2026)",
"summary_en": null,
"topics": [
"Transparenz und Korruption"
],
"valid_from": null,
"valid_to": null
},
{
"__type__": "Claim",
"claim_type": "side_job",
"counterpart_org": {
"__type__": "OrgRef",
"create": true,
"ids": {},
"kind": "other",
"name": "Wirtschaftskammer Salzburg",
"short_name": null,
"slug": null
},
"counterpart_person": null,
"data": {
"category": "Sonstige Tätigkeiten, aus denen Vermögensvorteile erzielt werden - § 6 Abs. 2 Z 2",
"cells": [
"Wirtschaftskammer Salzburg",
"Fachgruppenobmann Stellvertreterin (bis 31.01.2026)"
],
"employer": "Wirtschaftskammer Salzburg",
"firmenbuch": null,
"unpaid": false
},
"evidence": [
{
"__type__": "Evidence",
"confidence": 1.0,
"doc_type": "register_entry",
"excerpt": null,
"full_text": null,
"locator": "unvtrans:z2",
"meta": {},
"published_at": null,
"quote": "Wirtschaftskammer Salzburg – Fachgruppenobmann Stellvertreterin (bis 31.01.2026)",
"source": null,
"stance": "supports",
"title": "Unvereinbarkeits-/Transparenzliste Tanja Graf",
"url": "https://www.parlament.gv.at/dokument/unvtrans/person/1977/BezBegrBVGPar9.pdf"
}
],
"facet": null,
"key": [
"unvtrans",
"1977",
"z2",
"Wirtschaftskammer Salzburg – Fachgruppenobmann Stellvertreterin (bis 31.01.2026)"
],
"occurred_at": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"review": false,
"sensitive": false,
"summary_de": "Tanja Graf – Sonstige Tätigkeiten, aus denen Vermögensvorteile erzielt werden: Wirtschaftskammer Salzburg – Fachgruppenobmann Stellvertreterin (bis 31.01.2026)",
"summary_en": null,
"topics": [
"Transparenz und Korruption"
],
"valid_from": null,
"valid_to": null
},
{
"__type__": "Claim",
"claim_type": "side_job",
"counterpart_org": {
"__type__": "OrgRef",
"create": true,
"ids": {},
"kind": "other",
"name": "Österreichischer Wirtschaftsbund",
"short_name": null,
"slug": null
},
"counterpart_person": null,
"data": {
"category": "Sonstige Tätigkeiten, aus denen Vermögensvorteile erzielt werden - § 6 Abs. 2 Z 2",
"cells": [
"Österreichischer Wirtschaftsbund",
"Generalsekretärin (ab 14.01.2026)"
],
"employer": "Österreichischer Wirtschaftsbund",
"firmenbuch": null,
"unpaid": false
},
"evidence": [
{
"__type__": "Evidence",
"confidence": 1.0,
"doc_type": "register_entry",
"excerpt": null,
"full_text": null,
"locator": "unvtrans:z2",
"meta": {},
"published_at": null,
"quote": "Österreichischer Wirtschaftsbund – Generalsekretärin (ab 14.01.2026)",
"source": null,
"stance": "supports",
"title": "Unvereinbarkeits-/Transparenzliste Tanja Graf",
"url": "https://www.parlament.gv.at/dokument/unvtrans/person/1977/BezBegrBVGPar9.pdf"
}
],
"facet": null,
"key": [
"unvtrans",
"1977",
"z2",
"Österreichischer Wirtschaftsbund – Generalsekretärin (ab 14.01.2026)"
],
"occurred_at": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"review": false,
"sensitive": false,
"summary_de": "Tanja Graf – Sonstige Tätigkeiten, aus denen Vermögensvorteile erzielt werden: Österreichischer Wirtschaftsbund – Generalsekretärin (ab 14.01.2026)",
"summary_en": null,
"topics": [
"Transparenz und Korruption"
],
"valid_from": null,
"valid_to": null
},
{
"__type__": "Claim",
"claim_type": "side_job",
"counterpart_org": {
"__type__": "OrgRef",
"create": true,
"ids": {},
"kind": "other",
"name": "Wirtschaftsbund Salzburg",
"short_name": null,
"slug": null
},
"counterpart_person": null,
"data": {
"category": "Leitende ehrenamtliche Tätigkeiten (keine Vermögensvorteile) - § 6 Abs. 2 Z 3",
"cells": [
"Wirtschaftsbund Salzburg",
"Vorstand / Landesobmann Stellvertreterin"
],
"employer": "Wirtschaftsbund Salzburg",
"firmenbuch": null,
"unpaid": false
},
"evidence": [
{
"__type__": "Evidence",
"confidence": 1.0,
"doc_type": "register_entry",
"excerpt": null,
"full_text": null,
"locator": "unvtrans:z3",
"meta": {},
"published_at": null,
"quote": "Wirtschaftsbund Salzburg – Vorstand / Landesobmann Stellvertreterin",
"source": null,
"stance": "supports",
"title": "Unvereinbarkeits-/Transparenzliste Tanja Graf",
"url": "https://www.parlament.gv.at/dokument/unvtrans/person/1977/BezBegrBVGPar9.pdf"
}
],
"facet": null,
"key": [
"unvtrans",
"1977",
"z3",
"Wirtschaftsbund Salzburg – Vorstand / Landesobmann Stellvertreterin"
],
"occurred_at": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"review": false,
"sensitive": false,
"summary_de": "Tanja Graf – Leitende ehrenamtliche Tätigkeiten (keine Vermögensvorteile): Wirtschaftsbund Salzburg – Vorstand / Landesobmann Stellvertreterin",
"summary_en": null,
"topics": [
"Transparenz und Korruption"
],
"valid_from": null,
"valid_to": null
},
{
"__type__": "Claim",
"claim_type": "side_job",
"counterpart_org": {
"__type__": "OrgRef",
"create": true,
"ids": {},
"kind": "other",
"name": "Frau in der Wirtschaft",
"short_name": null,
"slug": null
},
"counterpart_person": null,
"data": {
"category": "Leitende ehrenamtliche Tätigkeiten (keine Vermögensvorteile) - § 6 Abs. 2 Z 3",
"cells": [
"Frau in der Wirtschaft",
"Vorstandsmitglied"
],
"employer": "Frau in der Wirtschaft",
"firmenbuch": null,
"unpaid": false
},
"evidence": [
{
"__type__": "Evidence",
"confidence": 1.0,
"doc_type": "register_entry",
"excerpt": null,
"full_text": null,
"locator": "unvtrans:z3",
"meta": {},
"published_at": null,
"quote": "Frau in der Wirtschaft – Vorstandsmitglied",
"source": null,
"stance": "supports",
"title": "Unvereinbarkeits-/Transparenzliste Tanja Graf",
"url": "https://www.parlament.gv.at/dokument/unvtrans/person/1977/BezBegrBVGPar9.pdf"
}
],
"facet": null,
"key": [
"unvtrans",
"1977",
"z3",
"Frau in der Wirtschaft – Vorstandsmitglied"
],
"occurred_at": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"review": false,
"sensitive": false,
"summary_de": "Tanja Graf – Leitende ehrenamtliche Tätigkeiten (keine Vermögensvorteile): Frau in der Wirtschaft – Vorstandsmitglied",
"summary_en": null,
"topics": [
"Transparenz und Korruption"
],
"valid_from": null,
"valid_to": null
},
{
"__type__": "Claim",
"claim_type": "side_job",
"counterpart_org": {
"__type__": "OrgRef",
"create": true,
"ids": {},
"kind": "other",
"name": "Wirtschaftskammer Österreich",
"short_name": null,
"slug": null
},
"counterpart_person": null,
"data": {
"category": "Leitende ehrenamtliche Tätigkeiten (keine Vermögensvorteile) - § 6 Abs. 2 Z 3",
"cells": [
"Wirtschaftskammer Österreich",
"Bundesvorsitzender - Stellvertreterin der Arbeitskräfteüberlasser"
],
"employer": "Wirtschaftskammer Österreich",
"firmenbuch": null,
"unpaid": false
},
"evidence": [
{
"__type__": "Evidence",
"confidence": 1.0,
"doc_type": "register_entry",
"excerpt": null,
"full_text": null,
"locator": "unvtrans:z3",
"meta": {},
"published_at": null,
"quote": "Wirtschaftskammer Österreich – Bundesvorsitzender - Stellvertreterin der Arbeitskräfteüberlasser",
"source": null,
"stance": "supports",
"title": "Unvereinbarkeits-/Transparenzliste Tanja Graf",
"url": "https://www.parlament.gv.at/dokument/unvtrans/person/1977/BezBegrBVGPar9.pdf"
}
],
"facet": null,
"key": [
"unvtrans",
"1977",
"z3",
"Wirtschaftskammer Österreich – Bundesvorsitzender - Stellvertreterin der Arbeitskräfteüberlasser"
],
"occurred_at": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"review": false,
"sensitive": false,
"summary_de": "Tanja Graf – Leitende ehrenamtliche Tätigkeiten (keine Vermögensvorteile): Wirtschaftskammer Österreich – Bundesvorsitzender - Stellvertreterin der Arbeitskräfteüberlasser",
"summary_en": null,
"topics": [
"Transparenz und Korruption"
],
"valid_from": null,
"valid_to": null
},
{
"__type__": "Claim",
"claim_type": "side_job",
"counterpart_org": {
"__type__": "OrgRef",
"create": true,
"ids": {},
"kind": "other",
"name": "Wirtschaftskammer Salzburg",
"short_name": null,
"slug": null
},
"counterpart_person": null,
"data": {
"category": "Leitende ehrenamtliche Tätigkeiten (keine Vermögensvorteile) - § 6 Abs. 2 Z 3",
"cells": [
"Wirtschaftskammer Salzburg",
"Mitglied im Bezirksstellenausschuss (bis 31.01.2026)"
],
"employer": "Wirtschaftskammer Salzburg",
"firmenbuch": null,
"unpaid": false
},
"evidence": [
{
"__type__": "Evidence",
"confidence": 1.0,
"doc_type": "register_entry",
"excerpt": null,
"full_text": null,
"locator": "unvtrans:z3",
"meta": {},
"published_at": null,
"quote": "Wirtschaftskammer Salzburg – Mitglied im Bezirksstellenausschuss (bis 31.01.2026)",
"source": null,
"stance": "supports",
"title": "Unvereinbarkeits-/Transparenzliste Tanja Graf",
"url": "https://www.parlament.gv.at/dokument/unvtrans/person/1977/BezBegrBVGPar9.pdf"
}
],
"facet": null,
"key": [
"unvtrans",
"1977",
"z3",
"Wirtschaftskammer Salzburg – Mitglied im Bezirksstellenausschuss (bis 31.01.2026)"
],
"occurred_at": null,
"org": null,
"person": {
"__type__": "PersonRef",
"hints": {},
"ids": {
"parlament": "1977"
},
"name": null
},
"review": false,
"sensitive": false,
"summary_de": "Tanja Graf – Leitende ehrenamtliche Tätigkeiten (keine Vermögensvorteile): Wirtschaftskammer Salzburg – Mitglied im Bezirksstellenausschuss (bis 31.01.2026)",
"summary_en": null,
"topics": [
"Transparenz und Korruption"
],
"valid_from": null,
"valid_to": null
},
{
"__type__": "Request",
"conditional": true,
"headers": null,
"json": {
"PAD_INTERN": [
1977
]
},
"kind": "speeches",
"meta": {
"name": "Tanja Graf",
"pad": "1977"
},
"method": "POST",
"params": null,
"skip_unchanged": true,
"url": "https://www.parlament.gv.at/Filter/api/filter/data/251?js=eval&showAll=true"
}
]