Deploy Demo Template
When using Job Signal this template will be used for your demos.
Just deployed
/data
Deploy and Host demo-host on Railway
demo-host is a tiny, dependency-free static host for the demos job-signal
generates. Each deploy is your own private copy: demos you build are uploaded
to it and served at clean public links like /apple, /stripe, or /notion —
many demos living on a single site.
About Hosting demo-host
Hosting demo-host gives you a personal, always-on home for shareable demo pages.
The service exposes a tiny API — PUT /upload/ (token-protected) to store a
demo and GET / to serve it publicly — backed by a persistent volume so
your demos survive restarts and redeploys. Railway auto-provisions the volume and
a unique upload token on deploy, so there's nothing to wire up by hand: deploy,
generate a domain, and connect it in job-signal Settings.
Why Deploy demo-host on Railway
Railway is the natural home for demo-host because a single click provisions
everything it needs — the service, a persistent /data volume, and a freshly
generated upload secret — with zero CLI and zero manual config. You stay in full
control: it's deployed to your account, on your domain, with your token.
Built-in healthchecks and on-failure restarts keep the host available, and
Railway's generated domain gives you a public link to drop straight into outreach.
Common Use Cases
- Hosting interactive sales/outreach demos generated by job-signal at per-company links.
- Sharing a self-contained static demo with a prospect via a clean public URL.
- Keeping a personal, private library of many demos served from one lightweight site.
Dependencies for demo-host Hosting
- A Railway account (free to start).
- A persistent volume mounted at
/datafor storing uploaded demos. - Python 3 (provided automatically by Railway's Nixpacks builder) — the app uses the standard library only, so there are no third-party packages to install.
Deployment Dependencies
- Railway — hosting platform.
- job-signal — generates the demos and uploads them to this host.
DEMO_HOST_TOKEN(${{ secret(48) }}) andDEMO_HOST_DATA_DIR(/data) variables, plus the volume at/data.
Template Content
