A human approval workspace on top of an n8n research agent that scores PartnerStack applicants with an explicit four-factor rubric and writes dossiers back for ops review.
Real ops.html + ops.js from aleksei-manychat-gh, pointed at anonymised local fixtures. Layout, filters, and scoring display are unchanged.
Production research agent (manychat/prompts/V3.2-workflows/Node_1_Research_Agent.md) scores out of 100:
| Factor | Weight | Source |
|---|---|---|
| Audience Reach | 40 / 100 | Node_1_Research_Agent.md scoring framework |
| Profile Fit | 35 / 100 | Node_1_Research_Agent.md — independent of audience size |
| Engagement Quality | 15 / 100 | Node_1_Research_Agent.md |
| Identity Verification | 10 / 100 | Node_1_Research_Agent.md |
Decision thresholds from the same prompt:
| Outcome | When | Notes |
|---|---|---|
| APPROVED_EXCELLENT | score ≥ 80 and fraud < 0.35 | Approve + dual-language welcome |
| APPROVED_MONITOR | score 60–79 (or quality override), fraud < 0.45 | Approve + monitoring |
| MANUAL_REVIEW_QUESTIONS | missing proof / fraud 0.35–0.6 | Leave pending + ≤2 questions |
| MANUAL_REVIEW_DECLINE | fraud ≥ 0.6 or identity failure | No direct DECLINE from agent |
A separate pilot schema also exists at manychat/scoring/schema.json (historical / engagement blend). Shown for completeness — not substituted for the production Node_1 table above:
| schema.json key | Weight | Source |
|---|---|---|
| historical | 0.4 | manychat/scoring/schema.json (pilot/historical layer) |
| profileFit | 0.35 | manychat/scoring/schema.json (pilot/historical layer) |
| engagement | 0.15 | manychat/scoring/schema.json (pilot/historical layer) |
| tenureAndTags | 0.1 | manychat/scoring/schema.json (pilot/historical layer) |
Ops UI decision chips collapse research outcomes into APPROVE / MANUAL_REVIEW / DECLINE for the human gate — that mapping is in the unified dataset’s summary.decision, not invented here.
Rendered from the exported workflow JSON — nodes, types, and connections only. No screenshot, no invented studio UI, no execution payloads.
Source: manychat-dashboard/docs/n8n/3. Research [final]/workflow-configs/3. Research [final] (2).json. Structure also saved at data/n8n_research_workflow.json.
These denominators are not merged. 91 ≠ 2,671 ≠ 228.
DECLINE was forbidden at the agent layer; declines became MANUAL_REVIEW_DECLINE for a human (named in the original prompt — redacted here).ops.html / ops.js / applications.html / applications.js / applications.css; scoring weights from Node_1 + schema.json; n8n node graph from the exported workflow JSON; volume counts from meta fields; decision/score distributions preserved from the unified dataset.
All names, emails, employers, URLs, handles, and dossier prose are anonymised. Applications rows were reshaped to the UI schema the table already expected. Partner analytics Streamlit UI is omitted (not runnable without secrets). Prompt anatomy page is the real production prompt with secrets/PII scrubbed and section annotations added.
Also read: Anatomy of a production prompt · PROVENANCE.md