WorkWay Backend
API service powering WorkWay — company/job discovery, filters, sitemaps, and Greenhouse/Ashby/YC ingestion.
Stack
- Node.js (ES modules) + Express 5
- PostgreSQL (
pg)
Structure
src/server.js— app bootstrap, DB init, route mount, graceful shutdownsrc/config.js— environment/config mappingsrc/routes/— API route handlerssrc/services/— business logicsrc/dao/— SQL queries and DAO abstractionssrc/utils/— logger, constants, parsing/classification helperssrc/data/greenhouseCompanies.js— seed list of Greenhouse namespacesdocs/DETAILED_DOCS.md— detailed architecture and endpoint reference
Setup
npm install
Create .env in repo root:
APP_ENV=dev
POSTGRES_DB_HOST=localhost
POSTGRES_DB_PORT=5432
POSTGRES_DB_USER=postgres
POSTGRES_DB_PASSWORD=root
POSTGRES_DB_DATABASE=eqhqdb
POSTGRES_DB_MAX_CONNECTIONS=20
PORT=3000
Run:
npm run dev # or: npm start
Defaults to http://localhost:3000.
API
Base path: /api
/api/company,/api/job,/api/feed,/api/filter,/api/cron/api/sitemap.xml,/api/sitemaps/*GET /api/job/list— paginated job listing with search/filters, returnsjobs,meta,applied_filters,facetsGET /api/job/filters— facet counts for the filter UI
Full request/response reference: docs/DETAILED_DOCS.md
Health
GET /health— uptime + timestampGET /— server-running check
Ingestion
Cron-style HTTP endpoints load Greenhouse, Ashby, and YC companies, fetch their jobs, classify them (domain/level/employment type), and upsert into PostgreSQL.
Production
Serves workway.dev.