=== Reach ATS ===
Contributors: reach-ats
Tags: jobs, vacancies, ats, recruitment, careers
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 8.0
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Embed live vacancies, vacancy detail pages and job alert sign-up from your Reach ATS account using shortcodes or Gutenberg blocks.

== Description ==

Reach ATS connects your WordPress careers site to your Reach Applicant Tracking System account.

* Render live vacancies anywhere on your site with a shortcode or block.
* Filter vacancies on any field returned by the API (role, location, type, county, region, office, group, category, application type, etc.) without writing PHP.
* Drop a single detail page block that renders whatever vacancy is requested in the URL.
* Embed the job alert sign-up form via a generated iframe URL.
* Responses are cached in WordPress transients (TTL configurable, flushed automatically when settings change).

== Installation ==

1. Upload the `reach-ats` folder to `/wp-content/plugins/` (or install the zip via Plugins → Add New → Upload Plugin).
2. Activate the plugin through the Plugins screen.
3. Go to Settings → Reach ATS and enter your API key plus the path of the page you've reserved for vacancy detail.

== Usage ==

**Shortcodes**

* `[reach-listing]` — full live listing.
* `[reach-filtered-listing role="Nurse|Doctor" county="Greater Manchester"]` — filter on any payload field. Multi-value with `|` or `,` (interchangeable). Tokens within a field are OR'd; fields are AND'd; matching is case-insensitive substring.
* `[reach-detail]` — render the detail page for the vacancy id passed in the query string.
* `[reach-jobalert-url]` — output a ready-to-embed iframe URL for the job alert sign-up form.

**Gutenberg blocks**

The same three views are available as blocks under "Widgets": *Reach ATS Listing*, *Reach ATS Filtered Listing*, *Reach ATS Vacancy Detail*.

**Override per instance**

Every shortcode and block honours the defaults on the settings page, but every attribute can be overridden in the editor for that specific instance.

== Frequently Asked Questions ==

= Where do I get an API key? =

The API key is the subdomain prefix of your Reach candidate-portal URL (the part before `.reach-ats.com`).

= Does the plugin make an API request on every page load? =

No — responses are cached in WordPress transients for the TTL configured in Settings → Reach ATS (default 5 minutes). Saving the settings page flushes the cache automatically.

= Can I filter on fields the listing returns that you don't list in the docs? =

Yes — `[reach-filtered-listing]` accepts any field that appears in the listing JSON payload. Use lowercase field names exactly as the payload uses them.

== Changelog ==

= 1.0.0 =
* Initial release.
