Selector Agent API
CSS Selector Repair Service with SQLite Cache
Admin Panel
Job Logs
Flow
1
GET /selectors?scope=X - Prüfe ob Selektoren gecacht sind
2
Wenn 404 → User startet Anlernen-Flow via POST /repair
3
Nach erfolgreichem Repair → POST /selectors zum Speichern
Selector Store
| Method |
Endpoint |
Description |
| GET |
/selectors?scope=X |
Selektoren für Scope abrufen |
| POST |
/selectors |
Selektoren speichern |
| DELETE |
/selectors?scope=X |
Selektoren löschen |
| GET |
/selectors/scopes |
Alle Scopes auflisten |
POST /selectors Body
{
"scope": "account_uahash", // required
"parser_object": [...] // required
}
Scope Format
scope = "{LINKEDIN_ACCOUNT}_{USER_AGENT_HASH}"
scope = "raphael-wintrich_a1b2c3d4"
Repair Endpoints
| Method |
Endpoint |
Description |
| POST |
/repair |
Selektoren reparieren (mit Claude AI) |
| POST |
/refine |
Nur bestimmte Felder reparieren |
| GET |
/job/:jobId |
Job Status abfragen |
| POST |
/job/:jobId/cancel |
Job abbrechen |
| GET |
/stream/:jobId |
Live Updates (SSE) |
| POST |
/test-parsing |
Selektoren testen (ohne Claude) |
POST /repair Body
{
"parserObject": [...], // required
"htmlString": "<html>...", // required
"url": "https://...", // required
"containerSelector": "main",
"maxIterations": 1,
"model": "sonnet",
"expectedValues": {
"name": "Max Mustermann",
"title": "Developer"
}
}
Utility
| Method |
Endpoint |
Description |
| GET |
/health |
Health Check |
| GET |
/profiles |
Test-Profile verwalten |
| GET |
/account-selectors |
Selektoren für Account-Ermittlung (LinkedIn, Xing) |
GET /account-selectors Response
{
"linkedin": {
"selectors": [".global-nav a[href*=\"/in/\"]", ...],
"regex": "\\/in\\/([^\\/\\?#]+)",
"fallback_selectors": ["nav a[href]", ...],
"fallback_regex": "linkedin\\.com\\/in\\/([^\\/\\?#]+)"
},
"xing": { ... }
}
Ablauf im Plugin: Selektoren werden per querySelector() probiert.
Auf das gefundene <a>-Element wird die Regex angewendet.
Capture-Group 1 = Account-UID.