# nishasirdesai09/matchgate architecture

> Architecture diagram of the GitHub repository nishasirdesai09/matchgate, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nishasirdesai09/matchgate
- Repository: https://github.com/nishasirdesai09/matchgate

## Overview

MatchIQ is a browser-based alumni review dashboard backed by a Google Apps Script web app and shared Google Sheet, with RocketReach enrichment. The main workflow loads people and prior decisions, lets reviewers filter and inspect profiles, then saves shared decisions; a separate Python pilot selects spreadsheet rows, enriches them, and produces review-oriented batch output. The README documents the dashboard’s major capabilities, while the worker excerpt shows its filtering, lookup, and queue logic. Apps Script and dashboard source were not sampled, so those relationships are based on README documentation.

Main entry points: [`code.gs`](https://github.com/nishasirdesai09/matchgate/blob/main/code.gs) (Apps Script API), [`index.html`](https://github.com/nishasirdesai09/matchgate/blob/main/index.html) (Dashboard UI), [`worker/pilot.py`](https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py) (Batch enrichment)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dashboard["Review dashboard"]
  node_dashboard_ui["Dashboard UI<br/>[index.html]"]
  node_record_browse["Record browsing<br/>[index.html]"]
  node_profile_review["Profile review<br/>[index.html]"]
  node_filter_export["Filters and export<br/>[index.html]"]
  node_reviewer_settings["Reviewer identity<br/>[index.html]"]
end

subgraph group_backend["Shared backend"]
  node_apps_script["Apps Script API<br/>[code.gs]"]
  node_review_records[("People records")]
  node_review_decisions[("Shared reviews")]
end

subgraph group_enrichment["Enrichment"]
  node_rocketreach["RocketReach API"]
end

subgraph group_pilot["Batch pilot"]
  node_pilot_cli["Pilot CLI<br/>[pilot.py]"]
  node_workbook_selection["Workbook selection<br/>[pilot.py]"]
  node_pilot_enrichment["Batch enrichment<br/>[pilot.py]"]
  node_review_queue["Review triage<br/>[pilot.py]"]
  node_pilot_output["Workbook output<br/>[pilot.py]"]
  node_pilot_status["Scrape status<br/>[pilot.py]"]
end

node_reviewer(("Reviewer"))

node_reviewer -->|"uses"| node_dashboard_ui
node_dashboard_ui -->|"shows records"| node_record_browse
node_dashboard_ui -->|"filters and exports"| node_filter_export
node_dashboard_ui -->|"sets identity"| node_reviewer_settings
node_profile_review -->|"refreshes profile"| node_apps_script
node_dashboard_ui -->|"requests data"| node_apps_script
node_apps_script -->|"reads records"| node_review_records
node_apps_script -->|"reads and writes"| node_review_decisions
node_profile_review -->|"saves decision"| node_apps_script
node_apps_script -->|"looks up profile"| node_rocketreach
node_reviewer -->|"runs"| node_pilot_cli
node_pilot_cli -->|"selects rows"| node_workbook_selection
node_workbook_selection -->|"supplies people"| node_pilot_enrichment
node_pilot_enrichment -->|"looks up people"| node_rocketreach
node_pilot_enrichment -->|"scores matches"| node_review_queue
node_pilot_enrichment -->|"writes results"| node_pilot_output
node_pilot_enrichment -->|"posts progress"| node_pilot_status

click node_dashboard_ui "https://github.com/nishasirdesai09/matchgate/blob/main/index.html"
click node_record_browse "https://github.com/nishasirdesai09/matchgate/blob/main/index.html"
click node_profile_review "https://github.com/nishasirdesai09/matchgate/blob/main/index.html"
click node_filter_export "https://github.com/nishasirdesai09/matchgate/blob/main/index.html"
click node_reviewer_settings "https://github.com/nishasirdesai09/matchgate/blob/main/index.html"
click node_apps_script "https://github.com/nishasirdesai09/matchgate/blob/main/code.gs"
click node_pilot_cli "https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py"
click node_workbook_selection "https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py"
click node_pilot_enrichment "https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py"
click node_review_queue "https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py"
click node_pilot_output "https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py"
click node_pilot_status "https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dashboard_ui,node_record_browse,node_profile_review,node_filter_export,node_reviewer_settings,node_reviewer toneBlue
class node_apps_script,node_review_records,node_review_decisions toneAmber
class node_rocketreach toneMint
class node_pilot_cli,node_workbook_selection,node_pilot_enrichment,node_review_queue,node_pilot_output,node_pilot_status toneRose
```

## Components

### Review dashboard

- [Dashboard UI](https://github.com/nishasirdesai09/matchgate/blob/main/index.html): `index.html`
- [Record browsing](https://github.com/nishasirdesai09/matchgate/blob/main/index.html): `index.html`
- [Profile review](https://github.com/nishasirdesai09/matchgate/blob/main/index.html): `index.html`
- [Filters and export](https://github.com/nishasirdesai09/matchgate/blob/main/index.html): `index.html`
- [Reviewer identity](https://github.com/nishasirdesai09/matchgate/blob/main/index.html): `index.html`

### Shared backend

- [Apps Script API](https://github.com/nishasirdesai09/matchgate/blob/main/code.gs): `code.gs`
- **People records**
- **Shared reviews**

### Enrichment

- **RocketReach API**

### Batch pilot

- [Pilot CLI](https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py): `worker/pilot.py`
- [Workbook selection](https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py): `worker/pilot.py`
- [Batch enrichment](https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py): `worker/pilot.py`
- [Review triage](https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py): `worker/pilot.py`
- [Workbook output](https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py): `worker/pilot.py`
- [Scrape status](https://github.com/nishasirdesai09/matchgate/blob/main/worker/pilot.py): `worker/pilot.py`

### Other components

- **Reviewer**

## Connections

- Reviewer → Dashboard UI: uses (evidence: `README.md`)
- Dashboard UI → Record browsing: shows records (evidence: `README.md`)
- Dashboard UI → Filters and export: filters and exports (evidence: `README.md`)
- Dashboard UI → Reviewer identity: sets identity (evidence: `README.md`)
- Profile review → Apps Script API: refreshes profile (evidence: `README.md`)
- Dashboard UI → Apps Script API: requests data (evidence: `README.md`)
- Apps Script API → People records: reads records (evidence: `README.md`)
- Apps Script API → Shared reviews: reads and writes (evidence: `README.md`)
- Profile review → Apps Script API: saves decision (evidence: `README.md`)
- Apps Script API → RocketReach API: looks up profile (evidence: `README.md`)
- Reviewer → Pilot CLI: runs (evidence: `worker/pilot.py`)
- Pilot CLI → Workbook selection: selects rows (evidence: `worker/pilot.py`)
- Workbook selection → Batch enrichment: supplies people (evidence: `worker/pilot.py`)
- Batch enrichment → RocketReach API: looks up people (evidence: `worker/pilot.py`)
- Batch enrichment → Review triage: scores matches (evidence: `worker/pilot.py`)
- Batch enrichment → Workbook output: writes results (evidence: `worker/pilot.py`)
- Batch enrichment → Scrape status: posts progress (evidence: `worker/pilot.py`)
