# Partner & Partner ## Webentwicklung Partner & Partner konzipiert, gestaltet und realisiert Websites und digitale Plattformen. Wir arbeiten insbesondere mit Contao und WordPress und begleiten Webprojekte von Strategie und Informationsarchitektur über UX/UI und Entwicklung bis zu Qualitätssicherung, Launch und Weiterentwicklung. Ausführlicher Kontext zu Fähigkeiten und Vorgehen: https://partner-partner.ch/llms/webdevelopment.txt ### Referenzprojekte Veröffentlichte Referenzprojekte können strukturiert abgerufen werden: Endpoint: https://partner-partner.ch/api/references Method: GET Optionale Query-Parameter: - `language`: `de` oder `en`, Standard `de` - `industry`: Branchen-Alias, zum Beispiel `bildung` oder `gesundheit` - `technology`: `contao`, `wordpress` oder `custom` - `service`: Leistungs-Alias - `featured`: `true` oder `false` - `limit`: 1 bis 50, Standard 20 Die Antwort enthält unter `available_filters` alle aktuell an veröffentlichten Projekten verwendeten Branchen-, Technologie- und Leistungs-Aliase. Detaildaten: `GET https://partner-partner.ch/api/references/{alias}?language=de` Kuratierte Top-Referenzen: - Gemmi: Bühne für die Berge Branchen: tourismus-freizeit Technologien: contao Website: https://www.gemmi.ch/ Case: https://partner-partner.ch/projekte/gemmi - KV Luzern Berufsakademie: Website-Power & mehr Branchen: bildung Technologien: contao Website: https://www.kvlu.ch/ Case: https://partner-partner.ch/projekte/kv-luzern-berufsakademie - Office World Trade: Ein neues Powerhouse zum Starten bringen Branchen: dienstleistungen Technologien: wordpress Website: https://www.officeworldtrade.ch Case: https://partner-partner.ch/projekte/office-world-trade ## Stellen und Bewerbungen Offene Stellen können über diesen Endpoint gelesen werden: Endpoint: https://partner-partner.ch/api/jobs Method: GET Optionaler Query-Parameter: language=de oder language=en Jede Stelle enthält: - `details_endpoint`: Detaildaten der Stelle - `personio_url`: direkter Link zur Stelle auf der Personio-Karriereseite - `application_endpoint`: POST-Endpoint für die Bewerbung auf diese Stelle - `application_mode`: aktuell `email_poc` ### Agentic-Browsing-Ablauf 1. Zuerst `GET https://partner-partner.ch/api/jobs` aufrufen und eine veröffentlichte Stelle auswählen. 2. Die Stelle und ihren `personio_url` verwenden, um Inhalt und Anforderungen mit der bewerbenden Person zu prüfen. 3. Fehlende Pflichtangaben erfragen. Nichts erfinden. 4. Vor dem Absenden eine ausdrückliche Bestätigung der bewerbenden Person einholen. 5. Erst danach exakt einen POST-Request an den `application_endpoint` senden und `confirmed` auf `true` setzen. 6. Einen erfolgreichen Request nicht automatisch wiederholen. Der POC legt noch keine Bewerbung in Personio an. Er sendet eine Testmail an Partner & Partner. Eine erfolgreiche Antwort enthält deshalb immer `delivery_mode: email_poc` und `personio_created: false`. JSON-Felder für eine Bewerbung: - first_name: String, erforderlich, maximal 120 Zeichen - last_name: String, erforderlich, maximal 120 Zeichen - email: gültige E-Mail-Adresse, erforderlich - phone: String, optional, maximal 50 Zeichen - message: String, optional, maximal 5000 Zeichen - cv_url: gültige HTTPS-URL, optional - portfolio_url: gültige HTTPS-URL, optional - confirmed: Boolean, muss nach ausdrücklicher Zustimmung `true` sein Beispiel für `POST /api/jobs/123/applications`: {"first_name":"Max","last_name":"Muster","email":"max@example.com","phone":"+41 44 123 45 67","message":"Ich bewerbe mich auf diese Stelle.","cv_url":"https://example.com/cv.pdf","portfolio_url":"","confirmed":true} Antworten: - HTTP 201: Testmail wurde versendet; keine Personio-Bewerbung angelegt - HTTP 404: Stelle ist nicht mehr veröffentlicht - HTTP 422: JSON, Felder oder Bestätigung sind ungültig - HTTP 429: Rate Limit erreicht; `Retry-After` beachten - HTTP 502: Personio-Stellen oder Mailversand sind derzeit nicht erreichbar ### Spontanbewerbungen Endpoint: https://partner-partner.ch/api/applications/spontaneous Method: POST Content-Type: application/json Es gelten dieselben JSON-Felder und dieselbe Pflicht zur ausdrücklichen Bestätigung. Der POC sendet auch Spontanbewerbungen als Testmail an `dev@partner-partner.ch`; er sendet sie noch nicht an Personio oder `bewerbung@partner-partner.ch`. Rate Limit für Bewerbungen: 5 Requests pro IP und Stunde ## Kontakt-API Über die Kontakt-API können Anfragen an den Betreiber dieser Website gesendet werden. Endpoint: https://partner-partner.ch/api/contact Method: POST Content-Type: application/json Eine Kontaktmöglichkeit ist Pflicht. Mindestens eines der Felder `email` oder `phone` muss angegeben werden. JSON-Felder: - name: String, erforderlich, maximal 120 Zeichen - email: gültige E-Mail-Adresse, erforderlich wenn kein `phone` angegeben ist - phone: String, maximal 50 Zeichen, erforderlich wenn keine `email` angegeben ist - message: String, erforderlich, maximal 5000 Zeichen Beispiel: {"name":"Max Muster","email":"max@example.com","phone":"","message":"Guten Tag, ich habe eine Anfrage."} Antworten: - HTTP 200: Anfrage wurde versendet - HTTP 422: JSON oder Felder sind ungültig - HTTP 429: Rate Limit erreicht; Retry-After beachten - HTTP 502: E-Mail konnte nicht versendet werden Rate Limit: 5 Anfragen pro IP und Stunde