PUBLIC-RECORD DATA. Real organization name, phone & address from the NCES Common Core of Data (CCD). The contact-name, title, email & web-domain columns are empty disclosed seams — the source does not publish them and they are never fabricated. Scope is the Education (K-12) layer of SLED.
US SLED Contact Directory — Education layer

Run & Deploy

← Back to case study Browse the directory ↗

Run & Deploy

Local run

cd delivery-package/us-sled-contact-directory
node src/collect.mjs     # re-fetch the dataset from the public source
node verify.mjs          # 17/17 checks; writes verification-report.*
node build-site.mjs      # writes public/index.html

Requirements: Node >= 18. No npm install, no API key. Network is needed only for src/collect.mjs (host: educationdata.urban.org); verify.mjs is offline.

Use the data

  • Open dataset/contacts.csv (full) or dataset/by-state/<ST>.csv (per state).
  • Or open public/index.html in a browser for the searchable, state-grouped view.

Publish (Forge pipeline)

cd ../..
node tools/forge-frontier.mjs --outcome delivery-package/us-sled-contact-directory
node tools/forge-proof.mjs --outcome delivery-package/us-sled-contact-directory --verify "node verify.mjs" --report verification-report.json
node tools/forge-gate.mjs --outcome delivery-package/us-sled-contact-directory --action publish
node delivery-package/us-sled-contact-directory/publish.mjs
node tools/forge-portfolio.mjs

The published site lands at published/us-sled-contact-directory/ and is deployed to GitHub Pages by .github/workflows/deploy-pages.yml on push to main.

Disclosed seams (read before using for outreach)

The contactName, contactTitle, email, and domain columns are empty — the source does not publish them (see proof/LIMITATIONS.md). Phone + address + organization name are real. For email/title/domain coverage, follow the v2 sourcing plan in design/CAPABILITY_GAP.json.