Title: IQ Jobs Manager
Author: pritam02b
Published: <strong>August 19, 2026</strong>
Last modified: August 19, 2026

---

Search plugins

![](https://ps.w.org/iq-jobs-manager/assets/icon-128x128.png?rev=3654495)

# IQ Jobs Manager

 By [pritam02b](https://profiles.wordpress.org/pritam02b/)

[Download](https://downloads.wordpress.org/plugin/iq-jobs-manager.3.0.31.zip)

 * [Details](https://wordpress.org/plugins/iq-jobs-manager/#description)
 * [Reviews](https://wordpress.org/plugins/iq-jobs-manager/#reviews)
 *  [Installation](https://wordpress.org/plugins/iq-jobs-manager/#installation)
 * [Development](https://wordpress.org/plugins/iq-jobs-manager/#developers)

 [Support](https://wordpress.org/support/plugin/iq-jobs-manager/)

## Description

IQ Jobs Manager adds a “Job Opening” post type with a simple classic-editor admin
screen (title + one form for
 location, type, salary, deadline, etc. — no page-builder
or block-editor knowledge required), a public Careers page you set up by picking
pages in Settings (no shortcodes to add), a secure application pipeline (resumes
are never stored at a public URL and are only ever emailed as an attachment or downloaded
through a login-gated link), and HR tools for tracking and exporting applications.

#### Displaying content on your site

Go to **Job Openings > Settings** and pick a page for “Job Listings Page” and/or“
General Application Form Page”.
 The content appears there automatically — nothing
to paste into the page editor.

If you’d rather place things manually, two block-editor blocks are also available—“
Job Listings” and “Job
 Application Form” — searchable from the block inserter. 
The classic shortcodes still work too, for page builders or older themes: `[career_jobs]`(
job listing with Apply buttons) and `[career_form]` (the general application form).

#### Admin

 * **Job Openings > Add New** — HR fills in one form (description, location, type,
   experience, salary, openings,
    skills, deadline) and clicks Publish.
 * **Job Openings > Form Fields** — toggle/relabel which fields appear on the application
   form, and add custom
    fields (label + type — the internal field name is generated
   automatically).
 * **Job Openings > Settings** — pick the Job Listings / Application Form pages,
   set the HR notification email, and
    configure uninstall data behavior.
 * **Applications** — view submissions, change status (New / Reviewed / Interview/
   Hired / Rejected), download
    resumes, export to CSV. Each application also records
   the applicant’s IP address and browser (user agent) to help spot spam patterns.
 * **Job Openings > Analytics** — page views, Apply clicks, submission attempts/
   successes/failures, overall and
    broken down per job, over the last 7/30/90 days
   or all time.

### External services

This plugin can optionally connect to Google reCAPTCHA to help protect the application
forms (the Apply modal and
 the general application form) from spam and automated
submissions. It is **off by default** and only takes effect if you enable it and
enter your own site key and secret key under Job Openings > Settings > reCAPTCHA.

When enabled:

 * The applicant’s browser loads Google’s reCAPTCHA script (`https://www.google.
   com/recaptcha/api.js`) so the
    widget can render (v2) or a token can be generated(
   v3).
 * When the applicant submits the form, the site sends the reCAPTCHA response token
   and the applicant’s IP address
    to Google’s verification endpoint (`https://www.
   google.com/recaptcha/api/siteverify`) to confirm the submission wasn’t automated.
 * When an administrator saves a reCAPTCHA secret key in Settings, the site makes
   one request to the same Google
    endpoint to confirm the key is valid.

This service is provided by Google LLC:
 [Terms of Service](https://policies.google.com/terms)
| [Privacy Policy](https://policies.google.com/privacy)

No other third-party/remote service is contacted by this plugin.

## Blocks

This plugin provides 2 blocks.

 *   Job Application Form The general job application form.
 *   Job Listings Job listing with search/filter and Apply buttons.

## Installation

 1. Upload the `iq-jobs-manager` folder to `/wp-content/plugins/`.
 2. Activate the plugin through the ‘Plugins’ menu in WordPress.
 3. Go to Job Openings > Settings, set the HR notification email, and pick your Job
    Listings and Application Form
     pages.

## FAQ

### Do I need to add shortcodes to my pages?

No. Pick a “Job Listings Page” and/or “General Application Form Page” in Job Openings
> Settings and the content
 appears there automatically. Shortcodes (`[career_jobs]`,`[
career_form]`) and block-editor blocks are also available if you’d rather place 
things manually.

### Where are submitted resumes stored?

In a private subfolder of your uploads directory (`wp-content/uploads/iqjoma-private-
resumes/`), under a randomly
 generated filename and blocked from direct access.
Resumes are never given a public URL — they can only be downloaded from wp-admin(
Applications screen) by a logged-in Administrator via a capability- and nonce-checked
link, or received as an email attachment if HR notification emails are enabled.

### Who can see submitted applications?

Only Administrators, by default (not Editors, Authors, or Contributors), since applications
contain applicant PII
 (name, email, phone, resume).

### Is Google reCAPTCHA required?

No. It’s off by default. You can enable it (v2 checkbox or v3 invisible) from Job
Openings > Settings > reCAPTCHA
 with your own Google reCAPTCHA site/secret keys.
See “External services” below for what that sends to Google.

### What happens to my data if I delete the plugin?

By default, nothing is deleted — job openings, applications, resumes, and settings
are all kept. Deletion only
 happens if you explicitly enable “Delete data on uninstall”
in Settings before removing the plugin.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“IQ Jobs Manager” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ pritam02b ](https://profiles.wordpress.org/pritam02b/)

[Translate “IQ Jobs Manager” into your language.](https://translate.wordpress.org/projects/wp-plugins/iq-jobs-manager)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/iq-jobs-manager/), 
check out the [SVN repository](https://plugins.svn.wordpress.org/iq-jobs-manager/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/iq-jobs-manager/)
by [RSS](https://plugins.trac.wordpress.org/log/iq-jobs-manager/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.0.31

 * Plugin Check: the custom application-field values array is inherently sanitized
   per-element further down (the
    right sanitizer depends on each field’s configured
   type, known only inside that loop), so there’s no single sanitizer that could
   apply at the point the array is first read — documented with an inline justification
   instead of restructuring further.

#### 3.0.30

 * Re-ran Plugin Check after 3.0.29 and fixed what it still caught: a translators
   comment that had drifted away from
    its printf() call (a phpcs:ignore line got
   inserted between them), two wp_dropdown_pages() calls where a single-line ignore
   comment didn’t reach the flagged values nested inside its multi-line array argument(
   now bracketed with phpcs:disable/enable instead), a card_button_text field now
   sanitized once into a variable instead of re-reading $_POST across two branches,
   custom application-form field values now unslashed at the array level, and the
   CSV export date filters now read $_GET once per key instead of multiple times
   across a ternary.

#### 3.0.29

 * Addressed the full Plugin Check report: a few remaining unescaped values (including
   one only reachable via
    printf(), which the earlier manual review pass missed),
   several missing wp_unslash() calls, replaced direct filesystem calls (unlink()/
   rmdir()) in uninstall.php with WP_Filesystem, and prefixed uninstall.php’s local
   variables. Remaining Plugin Check warnings (custom-table direct queries, read-
   only GET filters without a nonce, a couple of confirmed-safe false positives)
   are left in place with an inline explanation at each one rather than worked around,
   since none of them are real issues.

#### 3.0.28

 * WordPress.org review follow-up: renamed the plugin’s internal prefix (options,
   hooks, post types, script/style
    handles, meta box IDs, etc.) from the too-short“
   cjm”/”job” to “iqjoma” throughout, to avoid collisions with other plugins. All
   dynamic output that reaches an echo/print statement is now either escaped at 
   the point of output or, where a helper method already escapes everything it builds
   internally (verified case by case), marked with an inline phpcs:ignore and a 
   short justification instead of double-escaping already-safe HTML.
 * Sites that already had this plugin active before 3.0.28 are migrated automatically
   and once, the first time this
    version runs: existing settings, form field/custom
   field config, the Analytics history table, published jobs, and submitted applications
   are all moved over to the new names. Nothing is deleted and no action is needed.

#### 3.0.27

 * WordPress.org review follow-up: resumes now store under the uploads directory(
   via wp_upload_dir()) instead of a
    hardcoded wp-content path. The “Powered by”
   credit link now defaults off — site owners must explicitly opt in from Settings
   > General. Inline admin CSS/JS is now enqueued through wp_add_inline_style()/
   wp_add_inline_script() instead of being echoed directly. Nonce values are sanitized
   before verification. Removed the no-longer-needed load_plugin_textdomain() call.
   Fixed the header short description’s shortcode wording to match the readme.

#### 3.0.26

 * Fixed WordPress.org automated plugin-check failures: both block.json files now
   declare apiVersion 3 (required for
    the WordPress 7.0+ iframed block editor),
   and the resume upload handler now moves the uploaded file via the WP_Filesystem
   API (with an explicit is_uploaded_file() check) instead of calling move_uploaded_file()
   directly.

#### 3.0.25

 * WordPress.org submission prep: added a GPL license header to the plugin’s main
   file, added External Services
    and FAQ sections to this readme, and removed a
   self-hosted-only “View details” popup that would have shadowed WordPress.org’s
   own plugin info screen once listed there.
 * The “Powered by IQ Jobs Manager” credit link (shown on the job listing, job detail,
   and application form pages)
    is now optional — toggle it off from Settings > 
   General. Was previously always shown with no way to disable it.
 * Hardened CSV export against formula/CSV injection: applicant-supplied values (
   name, message, custom field
    answers) are now prefixed with a leading quote if
   they start with a character (=, +, -, @) that spreadsheet apps could interpret
   as a formula when the export is opened.
 * Number of Openings is now stored as a plain integer instead of free text.
 * Minor: job posting structured data’s deadline now uses UTC rather than the server’s
   local timezone.

#### 3.0.24

 * Fixed shared job links showing this plugin’s own small “Powered by” logo in the
   link preview instead of the
    site’s own icon. Job posts have no featured image(
   no image field exists for them), so whatever generates the preview card was falling
   back to scanning the page and picking up our logo image instead. Jobs with no
   featured image now report the site’s own Site Icon (Settings > General > Site
   Icon) as their featured image, which is what virtually every SEO plugin/sharing
   platform checks first.

#### 3.0.23

 * Fixed the ID-prefixed job URL (e.g. /jobs/5433-growth-lead-job-25072026/) 404ing
   right after a job was published,
    even though the plain slug URL worked. The 
   rewrite rule that recognizes the ID-prefixed format is generic (any ID + any 
   slug) and normally only needs flushing once, but if a job got published before
   that flush had actually run for this site (e.g. right after a plugin update),
   its URL would 404 until something else happened to trigger a flush later. Now
   a flush also runs the moment a job is first published, closing that gap.

#### 3.0.22

 * Settings page now tests the reCAPTCHA secret key against Google when you save(
   if reCAPTCHA is enabled and a
    secret key is set), showing whether it looks valid
   or invalid right alongside the “Settings saved” notice. Settings are always saved
   regardless of the check result, so a typo doesn’t cost you your other changes—
   you get clear feedback and a chance to fix it, instead of only finding out when
   a real applicant’s submission fails.

#### 3.0.21

 * Fixed the grid card’s eye-icon badge not lining up with the title — it was absolutely
   positioned at a guessed
    pixel offset rather than actually being measured against
   the title, so title length/wrapping could throw the alignment off. Title and 
   badge now share a flex row instead, keeping them level regardless.

#### 3.0.20

 * Fixed the hero paragraph’s margin-top (added last release) never actually applying
   when Elementor is active — the
    rule setting it used an “h1 + p” adjacent-sibling
   selector, but wrapping the heading in its own .elementor-widget-heading div (
   an earlier fix) put a div between the h1 and the paragraph in the DOM, silently
   breaking that selector’s match. It’s now targeted by the paragraph’s own class
   instead, which doesn’t depend on exact DOM nesting.

#### 3.0.19

 * Added margin-top: 20px to the hero paragraph text (the rule setting its margin
   already existed and was
    explicitly zeroing out its top margin, so it needed 
   updating directly there rather than a new rule elsewhere).

#### 3.0.18

 * Increased the gap between the hero section and the filter bar below it to 10rem
   total — 5rem of bottom padding on
    the hero plus 5rem of top margin on the filter
   bar (kept as margin rather than padding on the filter bar itself, so its own 
   compact pill shape isn’t stretched out).

#### 3.0.17

 * Increased the gap between the hero heading and the text below it from 16px to
   20px.

#### 3.0.16

 * Apply modal: the close “x” is now in a proper flex row with the title instead
   of being absolutely positioned in
    the box’s corner, so it’s reliably vertically
   centered against the heading text rather than floating above it.
 * Modal/form container padding no longer shrinks on small screens — it now stays
   the same at every width.
 * Added top spacing above the meta/Apply row on the overview page on mobile.
 * Removed the “Share:” label before the share icons.

#### 3.0.15

 * Found the actual source of the recurring hover/click color changes: the active
   theme (Astra) has its own global
    “button:hover, button:focus” rule that repaints
   background/text/border color on every plain element site-wide. Removing our own
   hover rules in earlier rounds wasn’t enough — it just left nothing to stop that
   theme rule from taking over instead. All 5 of our buttons (copy-link, Apply, 
   Submit, filter Search, modal close) now explicitly pin their resting colors against
   it on hover/focus/active/click, and Apply/Submit no longer depend on the theme’s
   own “.button” class for their color, so there’s no more cascade-order gamble 
   there either.

#### 3.0.14

 * Fixed the Job Listings page hero heading still not matching other Elementor-built
   pages’ heading weight/spacing/
    color. It was correctly picking up Elementor’s
   site-wide default heading size, but not the bolder weight, tighter letter-spacing,
   and darker color other headings have — those come from a per-page Elementor override
   tied to that specific page’s own widget ID, which our heading (not a real Elementor-
   authored widget) has no way to match. Set the same values directly instead.

#### 3.0.13

 * Changed the filter bar’s Search button from blue to yellow with dark text, matching
   the Apply button’s color.
 * Grid card corner badge’s mobile top offset changed from 20px to 24px.

#### 3.0.12

 * The blue circle on the Apply modal’s close button on click wasn’t fixed by the
   previous round’s outline/tap-
    highlight reset — it’s most likely the theme’s
   own Bootstrap-style focus glow, which is a box-shadow ring, not an outline. Explicitly
   cleared box-shadow (and native button appearance) on the close button for every
   interaction state (hover/focus/active).

#### 3.0.11

 * Removed every hover-state color change on buttons (hero button, icon buttons/
   share row, filter Search button, view
    button) — they’re now visually static 
   on hover/click, no exceptions.
 * Killed the mobile browser’s own default blue tap-highlight/focus flash on buttons(
   a WebKit default we’d never
    explicitly turned off) — this is what was showing
   as a blue circle behind the Apply modal’s close “x”.
 * Fixed the Apply modal: a long job title wrapping to two lines could run underneath
   the close “x” button since no
    space was reserved for it; the heading now keeps
   clear of it. Increased the gap between form fields, and gave inputs slightly 
   more breathing room (padding/corner radius).

#### 3.0.10

 * Fixed job card and list row titles (h5) also being subject to the active theme’s
   own responsive heading rule at
    narrower widths, same root cause as the hero 
   heading fix in 3.0.9 — they now have an explicit font-size that can’t be overridden
   by it.
 * The grid card’s corner badge (the eye icon / “Applications Closed” label) now
   sits closer to the top on mobile
    (20px instead of 30px), matching the card’s
   own reduced mobile padding.
 * Fixed the “Powered by” line: only the icon links to iquesters.com now, not the
   whole “Powered by … Jobs
    Manager” line.

#### 3.0.9

 * Fixed the Job Listings page hero heading picking up the active theme’s generic
   mobile heading size instead of
    Elementor’s own heading typography when Elementor
   is active — the heading was using Elementor’s CSS classes but wasn’t wrapped 
   in Elementor’s own widget container, so Elementor’s real (already-loaded) heading
   styles never actually matched it and the theme’s own responsive “h1” rule won
   by default instead. It’s now wrapped correctly so Elementor’s own styling takes
   over as intended.
 * The hero heading and text are now left-aligned on mobile instead of centered.
 * Removed the green “success” background/border the copy-link button switched to
   after a click — the “Copied!”
    tooltip already confirms the action, so the button
   itself no longer changes color.

#### 3.0.7

 * Removed the “|” separator between meta items (location/type/salary, posted-date/
   experience, list-row meta, card
    meta) on small screens. No static CSS rule can
   tell where a flex row will actually wrap, so whenever only one item ended up 
   alone on its own line, it still showed a stray pipe next to nothing. Below 600px
   the pipes are dropped entirely — each item already has its own icon, so the spacing
   alone reads fine without them.
 * Fixed a font-size mismatch on the overview page header: the location/type/salary
   row had no explicit font-size
    (inheriting the theme’s default) while the posted-
   date/experience row below it was set to 0.9em, so the two rows visibly rendered
   at different sizes. Both now use the same 0.9em.

#### 3.0.6

 * The “Powered by [icon] Jobs Manager” line shown on every plugin-rendered page
   now links to iquesters.com, the
    same way “Powered by WordPress” links to wordpress.
   org.
 * On the Plugins screen: the author is now “Iquester Solutions LLP” (linked to 
   iquesters.com) instead of
    “Custom”, and there’s now a “View details” link next
   to it that opens the same details popup WordPress.org-hosted plugins get — this
   plugin isn’t on WordPress.org, so that popup is now hand-built from this readme
   instead.

#### 3.0.5

 * Fixed the “|” separator between meta items (location/type/salary, posted-date/
   experience, list-row meta, card
    meta) leaving a stray hanging “|” at the start
   of a wrapped line on narrow screens. It was baked onto the front of each item,
   so when an item wrapped onto a new line, its leading “|” wrapped with it and 
   landed with nothing before it. It’s now baked onto the end of each item instead(
   skipped on the last item), so it reads as normal trailing punctuation at the 
   end of the previous line instead of a stray mark starting the new one.

#### 3.0.4

 * Openings + application deadline on the overview page now sit together under an“
   Additional Information” heading
    with consistent spacing, instead of as two loose
   pills with inconsistent gaps between them.
 * Copy-link button: the icon now recolors on hover (previously only the background
   changed), and clicking it shows
    a small “Copied!” tooltip above the button instead
   of only updating the accessible label.
 * Rebuilt the job filter bar’s dropdown/submit styling to look like one cohesive
   component instead of a native
    select next to a theme-default button, and fixed
   a mobile layout bug where the search field could stretch to 240px tall (flex-
   basis meant for width was being applied as a height once the bar switched to 
   a column layout). On mobile, the Type/Location dropdowns now share one line instead
   of stacking one per row.

#### 3.0.3

 * Fixed the overview page’s meta rows (location/type/salary and posted-date/experience)
   rendering in a different
    font on mobile than desktop — some themes/builders 
   apply different responsive typography per breakpoint, which this text was just
   inheriting; it now uses a fixed font stack instead.
 * Reverted the mobile-only “stack one item per line” layout from the last release—
   it wasn’t actually needed:
    the “|” separator lives inside each item itself, 
   so it already wraps together with its item instead of getting stranded. Mobile
   now wraps naturally (as many items as fit per line, “|” between each), same as
   desktop.

#### 3.0.2

 * “Openings” on the overview page restyled as a quiet rounded badge, matching the“
   Apply by …” tag next to it
    instead of plain text. Also fixed a bug this surfaced:
   it shared a class with the meta-row items that get a “|” separator before them,
   which could incorrectly show a stray “|” in front of the badge.

#### 3.0.1

 * Restored the job title being moved inside the detail card, and the “|” separators
   in the overview page’s meta
    rows — both had been mistakenly removed in the previous
   release while fixing an unrelated loading flash. The flash is now fixed properly
   instead: the title move happens via a synchronous inline script positioned right
   after the card in the page HTML (runs while the browser is still parsing, before
   that part of the page is painted) rather than a DOMContentLoaded listener (which
   only runs after the whole page has already rendered).
 * Fixed the mobile bug that prompted the “|” removal properly this time: on narrow
   screens the meta rows now
    stack one item per line (so there’s no wrap point 
   for a separator to get stranded at) instead of losing the separator on desktop
   too.

#### 3.0.0

 * Added an Analytics dashboard (Job Openings > Analytics): page views, Apply button
   clicks, submission attempts,
    successes, and failures — overall and broken down
   per job, with a 7/30/90-day or all-time range selector. Backed by a new database
   table, not third-party analytics.
 * Applications now record the applicant’s IP address and browser (user agent), 
   shown on the application’s admin
    detail screen and included in CSV exports, 
   to help HR spot spam patterns (e.g. many submissions from one IP/browser in a
   short window).
 * Resume uploads are now validated more strictly, both client- and server-side:
   max 10 MB, and PDF/Word only —
    the server-side check now sniffs actual file 
   content, not just the file extension, and a rejected upload now shows a clear
   error instead of silently being dropped from the submission.

#### 2.9.0

 * Fixed the job title going invisible for a moment on page load — a previous version
   hid it via CSS and only
    revealed it after a script repositioned it, which looked
   broken (especially on a slow connection). The title now just stays in the theme’s
   normal position/visibility at all times; no more hide/move/reveal.
 * Plugin CSS/JS (and the reCAPTCHA script, if enabled) now only load on pages that
   actually use this plugin’s
    markup (the job overview page, the configured Job
   Listings/Application Form pages, or any page/post using the shortcodes or blocks
   manually) instead of on every page of the site.
 * The reCAPTCHA script now loads with the `async` attribute — as a third-party,
   cross-origin script, this was a
    likely real contributor to slow page loads when
   reCAPTCHA is enabled.

#### 2.8.2

 * Removed the light blue focus/click outline on the share icon buttons and the 
   filter bar’s search/dropdown
    fields — both now use a neutral gray focus ring
   instead.

#### 2.8.1

 * Removed the background and shadow from the job filter bar.

#### 2.8.0

 * Fixed a mobile bug on the overview page where the top meta row (location/type/
   salary) and the posted-info row
    could show a stray “|” separator stranded at
   the start of a wrapped line. Removed the “|” separator there entirely — each 
   item already has its own icon, so it reads fine on plain spacing alone.
 * “Openings” moved out of the top posted-info row and now shows after Required 
   Skills further down the page.

#### 2.7.6

 * List view meta (location/type/posted date) moved from the right side of the row
   to directly under the title,
    instead of sitting alongside it.

#### 2.7.5

 * List row corner radius reduced to 1rem (was 2rem, matching the grid card/other
   surfaces).

#### 2.7.4

 * List row meta now matches the grid card’s styling: “|” separators (was “•”), 
   and the same muted color/size for
    the meta text — so both layouts read as one
   consistent design instead of two slightly different ones.

#### 2.7.3

 * Grid card meta line: added the missing clock icon before the job type, added 
   a “Posted X ago” item (matching
    the list view), and switched the separator to“
   |” between all three items.
 * Corner badge (the eye button) top offset increased to 30px.

#### 2.7.2

 * Removed the “Apply by …” deadline pill from listing cards (grid layout) — the
   excerpt already fills the
    card, and the full deadline is one click away on the
   job’s own page.
 * Fixed a bug where a narrow grid card could wrap the location/type meta line mid-
   separator, stranding the dot
    at the end of a line — location and type are now
   each a single unit that wraps as a whole.
 * Fixed list rows showing the job type twice (once as a subtitle under the title,
   once in the meta row) when no
    department taxonomy was set — the subtitle now
   only shows the department, since type is already in the meta row.
 * Increased card/row padding so content sits further from the (2rem) rounded corners.

#### 2.7.1

 * Admin job form: the Responsibilities/Requirements/Benefits fields were relabeled
   to match what’s actually
    shown on the job page (“Key Responsibilities”, “Preferred
   Qualifications”), and each now has a persistent help note plus realistic example
   placeholders explaining that one line = one bullet point, instead of only a placeholder
   hint that disappears once you start typing.

#### 2.7.0

 * Added an Education field to the Job Details admin form, shown as its own section
   on the overview page.
 * Overview page sections reordered: Key Responsibilities, Preferred Qualifications,
   Benefits, Required Skills,
    Education, then the application deadline.
 * Fixed the “Copy link” share button looking different from the other share icons—
   it’s a `<button>` while the
    others are `<a>` links, and browsers apply different
   default styling to each even with the same CSS class; added explicit resets (
   outline, box-shadow, text-align, etc.) so all five share buttons render identically.
 * Required Skills tags restyled to match the “Apply by …” badge (same padding, 
   muted background, size, and
    weight) instead of their own slightly different 
   pill style.

#### 2.6.5

 * Required Skills tags restyled to match the “Apply by …” badge (same padding, 
   muted background, size, and
    weight) instead of their own slightly different 
   pill style.

#### 2.6.4

 * Fixed the “Copy link” share button looking different from the other share icons—
   it’s a `<button>` while the
    others are `<a>` links, and browsers apply different
   default styling to each even with the same CSS class; added explicit resets (
   outline, box-shadow, text-align, etc.) so all five share buttons render identically.

#### 2.6.3

 * Fixed a flash where the job title briefly appeared in its original position before
   jumping into the detail
    card on page load — it’s now hidden until the script
   has already moved it (with a no-JS fallback so it’s never left invisible if JavaScript
   is disabled).
 * Apply button text shortened from “Apply for this Position” to “Apply”.

#### 2.6.2

 * Overview page sections relabeled/reordered to match the section structure used
   by major job portals, mapped
    onto our existing fields: Description -> “Overview”,
   Responsibilities -> “Key Responsibilities” (now shown first), Skills -> “Required
   Skills”, Requirements -> “Preferred Qualifications”. Benefits is unchanged; there’s
   no “Required Experience” or “Education” section since we don’t collect those 
   as separate fields.

#### 2.6.1

 * The job title now moves inside the detail card (above the meta row) instead of
   sitting outside it above a plain
    white gap (best-effort, JS-driven — see the.
   entry-title caveat elsewhere in this file).
 * Top meta row trimmed to location | type | salary with pipe separators; experience
   and openings moved down next
    to the “Posted X ago” line (also pipe-separated);
   the application deadline moved to sit right after Benefits instead of in the 
   top meta row.

#### 2.6.0

 * Overview page redesigned toward the plain, flat layout used by major job portals(
   Naukri, LinkedIn, Indeed)
    instead of a tinted/elevated card: white background,
   simple dividers.
 * The theme’s author/date byline above the job title is now hidden (best-effort—
   depends on the theme using a
    common class name for it).
 * Apply now sits directly next to the meta info at the top (alongside a new “Posted
   X ago · N openings” line),
    in the same position major job portals place their
   primary CTA. Share icons moved down to a footer row instead of competing with
   Apply for attention at the top.

#### 2.5.0

 * Grid card CTA moved to a corner badge (top-right, like a bookmark icon) instead
   of a footer button, and the
    eye icon itself dropped its circular background —
   it’s now just a colored icon, no pill/fill.
 * Added a short auto-generated description snippet under the meta info on both 
   the grid card and the list row.
 * List rows now show a location and a clock icon next to location/type (previously
   plain text only, for
    consistency with the grid card’s icon treatment).

#### 2.4.3

 * All card-style surfaces (job cards, job rows, the overview page’s detail card,
   the Apply modal/general form,
    the filter bar) now use a consistent 2rem border-
   radius.
 * Application form field labels reduced to font-weight 500; form field (input/textarea/
   select) corners changed
    to 7px.

#### 2.4.2

 * Grid listing card redesigned to cut icon clutter: one icon (location) instead
   of one per field, location/type
    shown as plain dot-separated text, and the deadline
   shown as a quiet rounded tag instead of icon+sentence. Added a subtle divider
   above the view button so it reads as an integrated footer rather than a floating
   element.

#### 2.4.1

 * Replaced the default hero illustration (self-hosted SVG) with a bundled photo
   (
   assets/image/careers-hero-team-collaboration.webp). A custom image picked in 
   Settings > Hero Section still overrides it, same as before.

#### 2.4.0

 * Replaced the “View & Apply” text button on listing cards/rows with a circular
   icon-only (eye) button. The
    configured button text (Settings > Job Listings 
   > Apply Button Text) is kept as the accessible name (aria-label/title) even though
   it’s no longer shown visually.

#### 2.3.3

 * Job overview page’s detail card now uses a soft blue tint (#f5fcff) instead of
   plain white.
 * Job listing rows/cards now alternate between a soft cream (#fff6e0) and the same
   soft blue (#f5fcff) tint,
    instead of all being plain white.

#### 2.3.2

 * Overview page section headings (Skills, etc.) reduced to font-weight 500.
 * The “Back to Jobs” link now moves above the page title instead of sitting below
   it — done via a small script
    since the theme renders the title outside any area
   the plugin’s PHP can reach (best-effort: relies on the theme using the common“.
   entry-title” class, same caveat as the existing title-sizing CSS rule).

#### 2.3.1

 * Job filter bar redesigned in a Material style: filled pill-shaped search/dropdown
   fields (no borders, soft grey
    fill that turns white with an accent focus ring),
   a search icon inside the search field, and the whole bar distinguished by elevation(
   shadow) instead of a hard border.

#### 2.3.0

 * Added a “Back to Jobs” link at the top of the job overview page, linking to whichever
   page is set as the Job
    Listings Page in Settings (hidden if that setting isn’t
   configured).
 * Job URLs now include the post ID for clarity/reference (e.g. /jobs/142-frontend-
   developer/ instead of
    /jobs/frontend-developer/). The old ID-less URLs keep 
   working — this adds a URL pattern, it doesn’t replace one. Rewrite rules are 
   flushed automatically once after this update, no manual Permalinks resave needed.

#### 2.2.1

 * The Submit button now shows a spinner while an application is being sent, and
   is disabled to prevent double-submits.
 * After submitting, the form fields are replaced with a clear success (checkmark)
   or error (cross) icon and message
    instead of a small line of text under the 
   form; the Apply modal then closes automatically a few seconds later either way,
   and the form is reset and ready again for the next visitor.

#### 2.2.0

 * Added Google reCAPTCHA protection for the application forms (Apply modal + general
   application form) — choose
    v2 (“I’m not a robot” checkbox) or v3 (invisible,
   score-based) from the new Settings > reCAPTCHA tab. Off by default until keys
   for the selected version are set.
 * Job overview page redesigned: Apply and Share now sit together right under the
   job’s meta info at the top of the
    page (instead of only at the bottom after 
   scrolling), the description now has its own “Description” heading, and the page
   uses a single elevated card instead of a plain content block.
 * Listing and grid cards restyled with soft shadows and a hover lift instead of
   plain borders.
 * All content headings (job titles, section headings, form headings) reduced to
   h5, keeping only the Hero heading
    as an h1; section heading weight reduced so
   it reads as a label rather than a shout.
 * Removed the placeholder logo icon from list-layout rows.
 * Added a Location filter (populated from whatever locations are actually in use)
   alongside Search/Department/Type,
    and restyled the whole filter bar.

#### 2.1.1

 * Settings page reorganized into tabs (General / Job Listings / Hero Section) and
   gained a Hero Image picker
    (Media Library) with the original illustration kept
   as the fallback when no image is set.
 * Fixed a bug where, if the Job Listings and General Application Form settings 
   pointed at the same page, the
    listing and the general form (each with their 
   own “Powered by” footer) would both render on that page.
 * Job listing rows now show location / type / posted date on a single line instead
   of stacked.
 * Job overview page: section headings (Skills, Responsibilities, etc.), the meta
   row icon alignment/spacing, and
    the job title size/weight were all tightened
   up.
 * The auto-injected Job Listings / Application Form page content is now wrapped
   in a max-width, padded container,
    so it no longer renders edge-to-edge on full-
   width page templates and no longer butts up against the header/footer.

#### 2.1.0

 * Removed the hardcoded HR notification email default (now defaults to the site
   admin email).
 * Security review: fixed missing wp_unslash() on several inputs, and restricted
   resume/application access to
    Administrators (was previously available to any
   Contributor-level role).
 * Added Google for Jobs (schema.org JobPosting) structured data on single job pages.
 * Added Job Listings and Job Application Form blocks for the block editor, alongside
   the existing shortcodes.
 * Added a first-run admin notice pointing to Settings.
 * Accessibility: the Apply modal now traps focus, closes on Escape, and returns
   focus to the triggering button.
 * Full translation-readiness pass (all admin/frontend/JS strings wrapped for translation).

#### 2.0.0

 * Rebuilt as a namespaced, multi-file OOP plugin (was a single procedural file).
 * Added application status/pipeline tracking.
 * Added a Settings page (HR notify email is no longer a hardcoded constant).
 * Added CSV export of applications.
 * Added deadline-based Apply button hiding.
 * Moved inline CSS/JS into real enqueued asset files.
 * Added custom application-form fields (HR picks a label + type; no shortcode/name
   editing needed).
 * Added page-select in Settings so the job listing / application form display automatically—
   no shortcodes required.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **3.0.31**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **7.0.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [applications](https://wordpress.org/plugins/tags/applications/)[careers](https://wordpress.org/plugins/tags/careers/)
   [jobs](https://wordpress.org/plugins/tags/jobs/)[recruitment](https://wordpress.org/plugins/tags/recruitment/)
 *  [Advanced View](https://wordpress.org/plugins/iq-jobs-manager/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/iq-jobs-manager/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/iq-jobs-manager/reviews/)

## Contributors

 *   [ pritam02b ](https://profiles.wordpress.org/pritam02b/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/iq-jobs-manager/)