Odel
WorkWay BE

WorkWay BE

@enigma-521JavaScriptUpdated 1w ago

Search 490k+ live jobs from company ATS boards, save roles, follow companies, manage talent profile.

Server endpointStreamable HTTPAPI keyProbed

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

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 shutdown
  • src/config.js — environment/config mapping
  • src/routes/ — API route handlers
  • src/services/ — business logic
  • src/dao/ — SQL queries and DAO abstractions
  • src/utils/ — logger, constants, parsing/classification helpers
  • src/data/greenhouseCompanies.js — seed list of Greenhouse namespaces
  • docs/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, returns jobs, meta, applied_filters, facets
  • GET /api/job/filters — facet counts for the filter UI

Full request/response reference: docs/DETAILED_DOCS.md

Health

  • GET /health — uptime + timestamp
  • GET / — 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.