Post a Job
The form for posting a job: the job itself, where it is, how to apply, the company and its logo. Members save a draft or submit it, visitors can post without signing in first where your site allows it, and your site’s moderation rules decide whether it goes live.
Before you start
Section titled “Before you start”| Plugin | JobBoardWP |
| Endpoint groups | Jobs. Maps for location search |
| Plan | Every plan |
| For location search | A Google Maps API key under Memberside → API Keys. Add a Google Maps server key too when the API key is restricted by HTTP referrer |
| For a challenge on signed-out posts | A Turnstile site key and Turnstile secret key under Memberside → API Keys |
Whether a visitor who is not signed in can use the form is decided by JobBoardWP’s own account settings. See Posting without an account.
Add it to your app
Section titled “Add it to your app”Drag Post a Job onto a navigation bar or into the side drawer.
You may not need a tab for it. Show Post a job button in Jobs opens the same form from the board, and Edit on a job opens it too. Place it as a tab when posting jobs is the main thing your app is for.
Settings
Section titled “Settings”| Setting | What it does | Default |
|---|---|---|
| Title, Description | Shown at the top | Empty |
| Restrictions | Which roles see the tab | Everyone |
Everything else about the form comes from JobBoardWP’s settings, below.
What your members see
Section titled “What your members see”| Section | Fields |
|---|---|
| Job | Title, description, location type (onsite, remote, or either), location, job type, category |
| Salary | Fixed or recurring, a single amount or a range, and the period for a recurring salary |
| How to apply | An email address or a website link |
| Company | Name, website, tagline, Twitter, Facebook, Instagram, logo |
| Expiry | An expiry date, when the site lets posters choose one |
Location suggests addresses as the member types, and Use my location fills it in from the phone’s position. Picking a suggestion stores the job’s coordinates, city, state and country in JobBoardWP’s own fields, so the job gets a pin on the Jobs map and a map card on the Job screen, and the website’s location filter finds it too. Without a Google Maps API key on your site, Location is a plain text field and the job has no map.
Your site looks up the place when the job is submitted, using the Google Maps server key if you set one, and the Google Maps API key if you did not. Google refuses that lookup for a key restricted by HTTP referrer, which is how most sites restrict the API key. When that happens and the member chose the spot on the map or used Use my location, the job still saves with its pin and the address they typed, but without a city, state or country. A picked suggestion with no pin cannot be placed, so Submit reports the refusal instead. Adding a server key restricted by IP address fixes both. See Connection and API keys.
Logo opens the photo library. The image uploads straight away and shows in the form; JPEG, PNG, GIF and WebP are accepted. A visitor who is not signed in can upload a logo too.
Posting a job saves its company details to the member’s account, as the website does.
Two buttons sit at the bottom:
- Save draft keeps the job as a draft. Nobody else sees it, and it waits in My Jobs.
- Submit publishes the job, or sends it for review when your site holds new jobs for approval. The app says which happened.
After submitting, the form empties itself and the new job opens. The website’s separate preview step is skipped: the form is the preview.
What your site’s settings change
Section titled “What your site’s settings change”| JobBoardWP setting | What changes in the form |
|---|---|
| Job Categories (General → Job) | Off: no category field |
| Enable salary (General → Job) | Off: no salary section |
| Required job salary (General → Job Submission) | The salary type must be chosen |
| Required job type (General → Job Submission) | A job type must be chosen |
| How to apply (General → Job Submission) | Whether the field takes an email address, a website URL, or either |
| Set submissions as Pending (General → Job Submission) | On: Submit sends the job to pending review. Administrators’ jobs publish straight away |
| Show individual expiry date (General → Job Submission) | On: an expiry date field. Off: the expiry comes from Job duration |
| Currency (General → Job) | The symbol beside the salary amounts |
Submitting also sends JobBoardWP’s own “job submitted” or “job edited” email to the site’s administrators, so the inbox matches what the website sends.
Posting without an account
Section titled “Posting without an account”A visitor who is not signed in sees the form, or does not, according to two JobBoardWP settings under General → Job Submission:
| User Registration | Account Needed | A signed-out visitor |
|---|---|---|
| On | On | Fills in a Your details section. Submitting creates their account and signs them in to the app |
| On | Off | Sees Your details as optional. Filling it in creates the account; leaving the email blank posts the job without one |
| Off | Off | Posts the job without an account. Nobody can edit it from the app afterwards |
| Off | On | Sees no Post a job button. The site refuses a job from anyone not signed in |
Your details follows the rest of JobBoardWP’s account settings:
| JobBoardWP setting | What changes in Your details |
|---|---|
| Use email addresses as usernames | On: no username field |
| Email password link | On: no password fields. The new member sets a password from the email WordPress sends |
| First and Last names required | On: first and last name must be filled in |
The new account gets the role set in JobBoardWP, and the app keeps the new member signed in, as after registering. Their job then waits in My Jobs like any other.
A visitor posting without an account cannot Save draft, because nobody could open the draft again.
With a Turnstile secret key set under Memberside → API Keys, a signed-out visitor completes the Cloudflare Turnstile challenge before Submit goes through. Signed-out submissions are also limited to ten every ten minutes from one address.
Validation
Section titled “Validation”Every problem is reported against its own field, all at once, rather than one message at the top of the form per attempt. A missing title, a missing description, a website that is not a URL, an onsite job with no location, a minimum salary above the maximum — each is shown beside the field it belongs to.
Submitting the same job twice in quick succession is caught by the site and answered with a warning. Submitting again straight after that goes through, because the repeat was clearly meant.
Editing a job
Section titled “Editing a job”Edit on a job opens this form filled in with that job, and Submit saves the changes. What happens next follows JobBoardWP’s editing rules:
| Job being edited | After Submit |
|---|---|
| Pending review | Stays pending |
| Published, Published Job Edits requires approval | Goes back to pending review |
| Published, edits allowed without approval | Stays published |
| Draft or expired | Treated as a new submission, so moderation applies |
Save draft on a published or pending job keeps it in its current state rather than taking it off the board.
When it does not work
Section titled “When it does not work”| Symptom | Cause | Fix |
|---|---|---|
| A visitor sees no Post a job and no form | Account Needed is on and User Registration is off | Turn on User Registration in JobBoardWP → General → Job Submission, or sign in |
| “Please use another email address” | That email already has an account on the site | Sign in with it instead |
| “You cannot save draft jobs” | A visitor without an account pressed Save draft | Fill in Your details, or Submit |
| Submitting is refused with a Turnstile error | The challenge was not completed, or Cloudflare rejected it | Complete the challenge, and check the Turnstile keys under Memberside → API Keys |
| “Too many job submissions” | Ten signed-out submissions from one address in ten minutes | Wait, or sign in |
| Location is a plain text box | Your site has no Google Maps API key, or the Maps group is off | Set the key, and enable the group |
| “That place could not be found” | The suggestion no longer resolves | Pick another suggestion |
| “Google refused this lookup: the Maps key is restricted by HTTP referrer” | Your site looked the place up with a key restricted to websites, which Google refuses for lookups your site makes itself | Add a Google Maps server key restricted by IP address under Memberside → API Keys |
| “Google refused this lookup: the Google Maps server key is restricted by HTTP referrer” | The server key was restricted like the API key | Restrict the server key by IP address instead |
| A posted job has a pin but no city or country | Google refused the lookup, so the job kept the pin and the address the member typed | Add a Google Maps server key. Jobs posted after that get their city and country |
| The form is empty or never loads | The Jobs endpoint group is off | Turn it on in Memberside → REST API |
| The card is greyed out | JobBoardWP is inactive | Activate it |
| “Job application must be an email address” | How to apply is set to email addresses | Enter an email address, or change the setting |
| No salary section | Enable salary is off in JobBoardWP | Turn it on |
| No expiry date field | Show individual expiry date is off | Turn it on in JobBoardWP → General → Job Submission |
| The logo will not upload | The file is not JPEG, PNG, GIF or WebP, or the site’s upload limit is lower than the file | Pick another image, or raise the limit |
| The job is not on the board after submitting | It is waiting for approval | Approve it in Job Moderation |
| “You can’t edit this job” | JobBoardWP’s editing settings no longer allow editing it | Check Pending Job Edits and Published Job Edits |