Job Posting
TOOLS · EXPERTINI ATS

Job Posting

Write it, score it before anyone sees it, publish it free to every Expertini country site and Google for Jobs — screening questions, pipeline stages and match criteria all set on the same page.

4 min read · Updated July 2026 · Expertini Editorial

Posting a job is the one thing every hiring team does, and it is where most of the outcome is already decided. A vague title, a missing salary and a wall of unstructured requirements will cost you applicants no amount of screening can win back. Expertini ATS puts the whole posting on one page — the description, the salary, the screening questions, the pipeline it will feed and the match criteria it will be scored against — so those decisions are made deliberately rather than discovered three weeks later.

Publishing is included on every plan, with no per-posting fee and no cap on how many roles you run at once. The job reaches the matching Expertini country site and is submitted to Google for Jobs; paid channels are there when you want them, and never as the price of being visible at all.

0cost to publish, on every plan including the trial
251country sites a published job can reach
100jobs per CSV if you post in bulk
1record — the posting, its pipeline and its analytics are the same job

01What the page actually does

One form covers the whole posting: title, location, employment type, salary range, the full description, and the optional About Us / benefits / EEO blocks that get composed into the published text rather than bolted on at render time — so job boards reading your listing see the same thing candidates do.

You can draft with AI from a few notes on seniority, key skills and benefits. It writes in must / preferred / a-plus language deliberately, because that phrasing is what the scoring engine later reads as evidence — a description written this way makes every CV that follows easier to score fairly.

02Decide how candidates will be scored, before the first one arrives

By default the AI derives the match dimensions from your description at scoring time and you need set nothing at all. If you would rather fix them yourself, you can: name the dimensions, weight each 1–100, and mark the ones that are genuinely must-have. The AI then only reads each CV against YOUR criteria, and a published deterministic formula does the arithmetic.

That choice is worth making at posting time rather than later. Criteria set before you have seen a single applicant are criteria you set on the merits of the role — which is a materially different thing from criteria adjusted once you have someone in mind.

03Free distribution, and paid only when you want it

Publishing sends the job to the matching Expertini country site and submits it to Google for Jobs at no extra cost on any plan, including the free trial. From there you can add Google Ads, Microsoft Ads or programmatic job advertising — those are real pay-per-click purchases billed separately, never bundled into a subscription limit, and never required for a job to be seen.

04It is the same record all the way through

A published job is not a document that then gets copied somewhere. Applications land in its pipeline, scoring runs against the criteria you set here, and Job Analytics reports on the same record. Editing the posting updates the live listing rather than creating a second version of it.

If you already advertise on an Expertini country job site, your existing listings come across and are ADOPTED rather than duplicated — one record, one apply flow, and the search visibility the page has already earned is kept. See Expertini Job Site Import.

05Posting more than one at a time

For volume there is Bulk Job Posting — up to 100 roles from one CSV, validated row by row, with the same distribution and the same pipeline as anything posted by hand. Bulk multiplies whatever quality you feed it, so it is worth getting one posting right on this page first and using it as the template.

06Before you publish

Job Score grades a draft on salary transparency, clarity and structure, realistic requirements, bias-free language, benefits signal and candidate appeal — with the specific sentences that cost you marks. It is quicker to fix a posting than to explain a month later why nobody applied.

Engineering notes

Platform architecture & operations

A1Architecture: where it sits in the platform

Job Posting is a first-class module of the Sourcing & Job Ads suite inside the authenticated Expertini ATS workspace. The platform is deliberately server-rendered: every view is prepared by the application server and shipped as complete HTML, with no client-side framework, no third-party CDN scripts, and no build pipeline between the data and the page. What renders is what the server computed — the property that makes the interface auditable.

All persistence runs on a single search-native document store; every query carries the organisation's identifier as a mandatory filter at the lowest query layer. Tenant isolation is therefore structural — a property of how every request is composed — rather than a policy that relies on application code remembering to check.

Availability is governed by the platform's tool registry: this tool is registered from the Trial plan, and access is enforced server-side by the registry gate on every request — never by hiding a button. Plans also carry a monthly distinct-tool quota (3 / 5 / 15 / 30 / 45 across Trial→Business, unlimited on Enterprise), counted at the same chokepoint. The pricing page states both honestly: what is available, and how much of it the month includes.

A2Data model and dependency map

In production the tool reads and writes job requisitions (ats_jobs). Documents are plain, explicitly-mapped fields — mappings are provisioned ahead of first write, so term filters and aggregations behave deterministically instead of depending on inferred types.

Every distinct open is journalled to the tool-activity store — and that journal, not a parallel analytics system, is what the Reports section aggregates. The usage numbers you see are the numbers the platform actually recorded.

Anything that leaves the request path — notification fan-out, webhook delivery, activity journalling, mail — runs in fire-and-forget background threads. A slow external endpoint can never make the interface hang, and a failed side effect is logged rather than silently retried into inconsistency.

A3Operational considerations

Organisation-level settings, destructive actions, and connections are gated to owner and admin roles; recruiters operate the tool on the records they can see. Role changes apply on the next request — enforcement is at the route, not in the menu.

Failures are surfaced, not swallowed: server-side validation returns the exact field and reason, vendor errors are quoted verbatim where integrations are involved, and every write either confirms or reports. Exports regenerate on request rather than being cached — a report you download reflects the store at the moment you asked, not last night's snapshot.

Everything written is yours to take: CSV exports and the Data Export app cover the same stores the product itself reads. The exit is as open as the entrance — by design, not concession.

A4Interaction contract

The interface follows the platform's search-and-select convention: any field that names a real record — a candidate, client, or job — is a type-to-search picker over live data, never a free-typed string, which is what keeps activity trails and deduplication trustworthy. Static choices are filter-as-you-type combos rather than native dropdowns, and state transitions give explicit feedback: server confirmations surface as toasts, validation errors name the exact field, and nothing is shown as done that the server has not confirmed.

The wireframe and flow below document the structural contract of the surface — what panels exist, what order the states occur in, and what happens at every edge — rather than pixels. The layout is composed with native CSS grid and flexbox and adapts from wide desktop to a single column without separate mobile views.

Dependency map

Reads / writesats_jobs
Access gateTrial plan and above — enforced server-side by the tool registry
Monthly quotadistinct tools per month: Trial 3 / Starter 5 / Growth 15 … unlimited on Enterprise
Usage journalats_tool_activity (per open)
Tenancyevery query filtered by organisation id at the query layer
Side effectsbackground threads — never on the request path

Interface blueprint

Structural schematic of the surface — panels, hierarchy, and interaction affordances. A contract, not a screenshot.
Input panel
type-to-search record picker
run — server-side
Result panel
copyexportjournalled
Fig. 1 — Job Posting: structural interface schematic. Panels and states are the contract; data shown is placeholder.

Interaction flow — states, validations, feedback

Every state below is enforced server-side; the interface reports it, it doesn't decide it.
Open toolregistry gate: plan + monthly quota
Pick recordstype-to-search over live org data
Server computeorg-scoped reads; deterministic logic
Resultrendered server-side; export on demand
Journalactivity store → Reports
Plan below minimum → lock page shows the exact tier ladder, never a dead endMonthly quota reached → upgrade prompt with the count that triggered itValidation failure → the specific field and reason, inlineEmpty search → honest empty state; no fabricated matches
Fig. 2 — interaction flow: navy = states, gold = server-enforced gates, green = confirmed outcomes; tags list the edge cases and their feedback.

Frequently asked questions

Does it cost anything to post a job?
No. Publishing is included on every plan including the free 14-day trial, with no per-posting fee, no listing fee and no cap on how many roles are live at once. Paid advertising is available separately and is never required for a job to be visible.
Where does the job appear?
On your Expertini ATS careers page, on the matching Expertini country site, and submitted to Google for Jobs. You can add Google Ads, Microsoft Ads or programmatic advertising afterwards from the job itself.
Do I have to write the description myself?
No — describe the role in a few notes and the AI drafts it. It writes in must / preferred / a-plus language on purpose, because that is what the scoring engine later reads as evidence.
Can I decide how candidates are scored?
Yes. By default the AI derives the match dimensions from your description at scoring time. You can instead define the dimensions and weights yourself, and mark which are must-have — the AI then only reads CVs against your criteria.
I already post on an Expertini country job site — do I have to repost?
No. Your live listings are adopted, not copied: the same record, the same apply flow, and the search visibility the page already has. See the Expertini Job Site Import app.
Can I post many jobs at once?
Yes — Bulk Job Posting takes up to 100 roles from one CSV, validated row by row, with identical distribution and pipeline handling.

At a glance

  • Free to publish on every plan — no per-posting or listing fee
  • Reaches the Expertini country network and Google for Jobs
  • AI drafting from a few notes, in language the scorer can read as evidence
  • Set match criteria and weights before the first applicant arrives
  • Screening questions and custom pipeline stages on the same page
  • Existing country-site listings are adopted, never duplicated
  • Score the draft before publishing, and fix what costs you applicants

See job posting on your own hiring.

Bring a real job description to a 30-minute demo — free trial included.

Book a demo
Expertini AI
Online now
Hi! I'm Expertini's AI Product Expert. Ask me anything about our solutions, get guidance on any of our Hiring Tools, or just tell me what you're trying to do — I'll point you in the right direction. For account-specific issues, email support@expertini.com.