Skip to content
SwiftJobs

Show pay in

Converted amounts are approximate and marked with ~.

ID
SwiftJobs
See open roles

Forms and payments

Connect applications, contact, alerts and posting to a form service, and take payments with Stripe.

How the forms work

Every form validates in the browser, shows an error summary, and posts to an endpoint you configure. Without an endpoint it runs in demo mode: it validates and shows success, but sends nothing.

Copy .env.example to .env and fill in what you use:

Variable Form Body
PUBLIC_APPLY_ENDPOINT Job application, with the CV file multipart
PUBLIC_CONTACT_ENDPOINT Contact page multipart
PUBLIC_NEWSLETTER_ENDPOINT Weekly roles signup multipart
PUBLIC_ALERTS_ENDPOINT Saved-search alerts JSON
PUBLIC_POST_JOB_ENDPOINT Post a job wizard JSON

Requests are sent with Accept: application/json, and any 2xx answer counts as success.

On your host, set the same variables in its environment settings: .env is not committed. These values are public URLs, not secrets.

Recipes

Formspree. Create a form and use https://formspree.io/f/<id>. Accepting CV uploads needs a paid Formspree plan.

Web3Forms. Use https://api.web3forms.com/submit and add a hidden access_key input to the forms you connect.

Your own API. Any URL that answers 2xx. The alert and posting bodies are documented in .env.example.

Job alerts

Alerts are saved in the visitor’s browser so the dashboard can list them, and posted to PUBLIC_ALERTS_ENDPOINT with the email, frequency (daily or weekly), the search query string and a readable label. Sending the emails is up to your backend or email tool.

Take payment for job postings without a server:

  1. In Stripe, create one product and one Payment Link per plan.
  2. Set PUBLIC_STRIPE_LINK_STANDARD, PUBLIC_STRIPE_LINK_FEATURED and PUBLIC_STRIPE_LINK_TEAM.

After the wizard submits a listing, the employer is sent to the plan’s payment link with prefilled_email and client_reference_id. The reference matches the reference field in the listing sent to PUBLIC_POST_JOB_ENDPOINT, so you can match payments to listings.

Plan prices are shown from PLANS in src/config/site.ts. Keep them in line with your Stripe prices.

SwiftJobs theme demo

Everything here ships in the theme. This panel does not.

Made by

Accent preset
Site mode