API & embed

Two ways to show your open workalong roles on your own site: a key-gated JSON API if you render listings server-side, and a drop-in embed widget if you’d rather paste two lines of HTML. Both return only published jobs and link candidates to your hosted job pages.

Authentication

The JSON API uses a bearer key. Owners and admins can generate one under Settings → API in the app — each organization has a single key, shown once at creation. Keys look like wa_ followed by 32 hex characters.

Rotating the key invalidates the old one immediately — there is no grace period, so update anything using it right away. The embed widget needs no key at all.

List your published jobs

curl -H "Authorization: Bearer wa_…" \
  https://app.workalong.io/api/public/v1/jobs

Returns the published jobs of the key’s organization, newest first:

{
  "jobs": [
    {
      "id": "0b7e6c1a-…",
      "title": "Senior Backend Engineer",
      "slug": "senior-backend-engineer-x3k2",
      "url": "https://app.workalong.io/c/acme-gmbh/senior-backend-engineer-x3k2",
      "publishedAt": "2026-07-01T00:00:00Z",
      "location": "Berlin / remote",
      "compRange": "€90–110k"
    }
  ]
}

Fields

FieldNotes
urlThe canonical hosted job page — the page candidates chat on.
locationOmitted when the job has no location set.
compRangeOnly present when comp sharing is switched on for the job. What you keep private stays private.
publishedAtISO 8601 timestamp.

Errors, limits, caching

Embed widget

A small web component that renders your open roles as a styled list, each linking to its hosted job page. No API key, no build step, a few KB:

<script src="https://app.workalong.io/embed.js" async></script>
<workalong-jobs org="your-org-slug"></workalong-jobs>

Your org slug is shown in Settings → API (it’s the same slug as in your job page URLs). Under the hood the widget calls a public, CORS-open endpoint — GET /api/public/v1/orgs/<org-slug>/jobs — which returns the same payload as the keyed API and is rate limited per visitor IP.

Attributes

AttributeNotes
orgRequired. Your organization slug.
target_self (default) or _blank to open job pages in a new tab.
limitOptional. Show at most this many jobs.

Styling

The widget renders in a shadow root, so your page styles won’t leak in by accident — but it’s built to be restyled. CSS custom properties cross the boundary:

PropertyControls
--wa-accentJob title color and hover border.
--wa-fontFont family.
--wa-textBase text color.
--wa-mutedBorders and the loading skeleton.
--wa-radiusCorner radius.
--wa-gapSpace between list items.

For full control, every node exposes a part — list, item, link, title, location, comp, empty — targetable with ::part():

workalong-jobs {
  --wa-accent: #16a34a;
  --wa-font: "Inter", sans-serif;
  --wa-radius: 8px;
}
workalong-jobs::part(title) {
  text-transform: uppercase;
}

Behavior

Questions?

Email hello@workalong.io and a real person will get back to you.