Two isolated account worlds, one WordPress user table, and a server-side permission check on every contact field.
A deliberately small board: two isolated roles, one WordPress user table, and a server-side permission check on every contact field.
Candidate applies for a job. The employer sees the name and application, but no contact details.
Candidate grants that specific application, or an administrator approves a public-profile request.
Only then does the server return the contact fields. Access is logged; the candidate can revoke it.
Uploads are checked by allowed format and size, stored in a private directory, emailed to the administrator's mailbox, and readable only through a permission-checked download that is logged every single time.
Six switches in wp-admin decide whether candidates may authorise a single application, request a public profile, whether employers may register or must be verified, and whether company contacts are visible. Turning one off takes effect on the server immediately - even for links already issued. All shares can be revoked and any account suspended in one click.
Privacy is checked first, metering second. Neither can be skipped from the browser.
Privacy first: a candidate authorises one application, or an administrator approves a public profile. Then metering: a monthly level quota or a single pass is charged. Employer HR contacts are never public, job seekers never see each other, and every unlock is logged. There is no public resume database and no online checkout - the administrator confirms settlement offline and activates the level. A paid level buys capacity, never consent.
Small kernel plus independent units. Updating one never means editing another.
foundation
Theme supports, assets, menus and the shared front-end config bus.
roles
The three isolated roles and every role predicate.
policy
Administrator policy switches, suspension and sign-in throttling.
privacy
The permission gate, masking, grants and the access log.
jobs
Post types, taxonomies, field helpers and job cards.
saved-jobs
Private per-member shortlist behind the Save button.
resumes
Protected uploads, mailbox delivery and gated downloads.
auth
AJAX account endpoints, applications and the sign-in drawer.
account
Role-separated dashboard, profile and posting tools.
appearance
Skins, brand colours and every editable line of copy.
floating-ui
The right-hand tool bar only.
front-page
Hero, search, categories, job list, employers and CTA.
how-it-works
This page: permission model, access gates and the unit map.
page-copy
Editable page copy with a per-page factory reset.
regions
China / Overseas / Others, quota weights and minimum levels.
membership
Levels, monthly contact / resume quotas and upgrade requests.
credits
One contact or one resume read, with no subscription.
access
Second gate, unlock ledger and quota charging.
companies
One public company profile per employer (/company/<slug>/, directory at /companies/), with an employer self-service editor, an administrator review queue and a job-to-company link. Never stores or displays HR contact details.
job-alerts
Saved searches with an optional weekly or daily e-mail digest of NEW matching vacancies, a one-click unsubscribe link in every message and a private management panel on the account page. Stores filters only - never a contact detail, never a profile.
Each unit owns their own authority
20 units 112 contracts 8 contact channels
Resumes are stored outside the public site. Only you, an administrator, or an employer you authorised for one specific application can download the file - every attempt is logged.
Opens your mail app. Files uploaded below are sent to this address automatically.
Sign in as a job seeker to upload a private resume.
Sign in