Title: PublisherKits BioBuilder
Author: Black and White
Published: <strong>July 16, 2026</strong>
Last modified: October 15, 2026

---

Search plugins

![](https://ps.w.org/publisherkits-biobuilder/assets/banner-772x250.png?rev=3610628)

![](https://ps.w.org/publisherkits-biobuilder/assets/icon.svg?rev=3610628)

# PublisherKits BioBuilder

 By [Black and White](https://profiles.wordpress.org/blackandwhitedigital/)

[Download](https://downloads.wordpress.org/plugin/publisherkits-biobuilder.0.10.6.zip)

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

 [Support](https://wordpress.org/support/plugin/publisherkits-biobuilder/)

## Description

If your WordPress site has more than a handful of authors, chances are most of their
profiles are incomplete. A name, an email address, and nothing else. No bio. No 
social links. No job title.

BioBuilder fixes that automatically.

When a post is published, BioBuilder searches the web for the author’s professional
profile, extracts their biography, social handles, job title, and employer, and 
writes it directly to their WordPress user account. No copy-pasting. No chasing 
contributors for headshots. No manual anything.

**WordPress version**

BioBuilder’s core profile and author-management features work on WordPress 5.8 or
later. Optional AI enrichment requires WordPress 7.0 or later and a configured AI
provider under Settings > Connectors. On earlier versions the plugin runs normally
and the settings screen says AI enrichment is unavailable, rather than erroring.

**Who it’s for**

 * **Publishers and editorial managers** with large or rotating author rosters —
   guest contributors, freelancers, industry experts — who accumulate thin profiles
   faster than anyone can fill them in manually
 * **SEO and marketing professionals** who know that complete author profiles improve
   search rankings, support rich results, and demonstrate expertise to Google
 * **Web developers** managing multi-author WordPress sites who want enrichment 
   to happen automatically without building it themselves
 * **Content editors** who are tired of asking contributors to fill in their bios
   and never getting a response

**What it does**

On every post publish, BioBuilder runs a web search for the author, uses AI to assess
the results, and populates the following fields automatically:

 * Professional biography (short and long versions with Pro)
 * Job title and employer
 * LinkedIn URL
 * X (Twitter) handle
 * Bluesky handle
 * Facebook profile URL
 * Instagram handle
 * Threads handle
 * Profile photo URL
 * Professional hashtags

The Author Status table in your WordPress admin gives you a clear view of every 
author — their enrichment status, email data quality, and profile completeness —
so you always know where the gaps are.

**Free features**

 * Automatic enrichment on post publish
 * Web search pipeline via Serper API (2,500 free searches/month)
 * Populates bio, social handles, job title, employer, and photo URL
 * Email confidence scoring — flags placeholder addresses, PR contacts, and free
   email providers so you know which authors are worth enriching
 * Author Status admin table with completeness tracking
 * Manual enrichment trigger per author
 * API usage estimator

**Pro features** _(upgrade at publisherkits.com)_

 * Draft / Approval Mode — review all proposed changes before they go live, with
   approve, reject, or edit-and-approve per field
 * Bulk Enrich — scan every past post author and enrich in batches, not one by one
 * AI biography drafting — full bio (150-200 words) and short bio (40-60 words),
   written by the AI model configured in your WordPress AI connector
 * AI match confidence scoring — know how reliable each enrichment result is before
   it touches your data
 * AI topic hashtag generation — relevant hashtags based on the author’s expertise
 * Social post templates — per-post, platform-specific copy for X, LinkedIn, and
   Bluesky, ready to use or schedule
 * Scheduled re-enrichment — keep profiles current automatically
 * Enrichment audit log — full history of every change made to every profile
 * Author Types — classify each author as house, staff, freelance, expert or supplier,
   with a bulk roster assigner, so house bylines and outside experts stay out of
   your in-house staff figures
 * Multi-site support

**Add-on: Author Plugin Integrations** _(available separately or included with Pro)_

Works alongside the author plugins your site already uses:

 * Molongui Authorship
 * Co-Authors Plus
 * Simple Author Box

**Why complete author profiles matter**

Google’s quality guidelines place significant weight on demonstrating author expertise,
particularly for sites publishing health, finance, legal, or news content. Complete
author profiles with verifiable credentials, social links, and professional biographies
are one of the clearest signals you can send. BioBuilder makes that achievable at
scale — without adding to anyone’s workload.

By [PublisherKits](https://publisherkits.com) — essential tools for WordPress publishers.

#### More from PublisherKits

BioBuilder is one of a small range of tools built for people who actually run publications.
Each works on its own, and all are free on WordPress.org:

 * [PublisherKits SocialPromoter](https://wordpress.org/plugins/publisherkits-socialpromoter/)–
   write, post and schedule social promotions from inside the WordPress editor, 
   straight to X, LinkedIn, Facebook Pages and Bluesky.
 * [PublisherKits ExcerptBuilder](https://wordpress.org/plugins/publisherkits-excerptbuilder/)–
   AI-powered excerpt generation using the WordPress AI Client. Write, rewrite or
   tidy excerpts on demand, or auto-draft them on publish for review.
 * [PublisherKits PluginTidy](https://wordpress.org/plugins/publisherkits-plugintidy/)–
   works out which plugins your site actually uses, records every plugin change,
   and makes removing one safe.

### External Services

This plugin connects to the following external services. By activating this plugin
and using these features, you agree to the respective terms of service and privacy
policies of each service.

**Serper (required for free and Pro)**

BioBuilder uses the Serper web search API to find publicly available information
about authors. Search queries include the author’s display name and your site’s 
domain name. No sensitive personal data is transmitted.

 * Service: [serper.dev](https://serper.dev)
 * Terms of Service: [serper.dev/terms](https://serper.dev/terms)
 * Privacy Policy: [serper.dev/privacy](https://serper.dev/privacy)

**AI provider via the WordPress AI Client (optional, Pro)**

When your site has an AI provider configured under Settings  Connectors (WordPress
7.0+), BioBuilder sends web search result snippets to that provider through the 
WordPress AI Client for AI-assisted data extraction and biography drafting. BioBuilder
stores no AI credential; the provider and key are managed by WordPress. Which service
receives the data depends on the connector you choose — for example:

 * Anthropic Claude — Service: [anthropic.com](https://anthropic.com); Terms: [anthropic.com/legal/consumer-terms](https://www.anthropic.com/legal/consumer-terms);
   Privacy: [anthropic.com/legal/privacy](https://www.anthropic.com/legal/privacy)
 * OpenAI — Service: [openai.com](https://openai.com); Terms: [openai.com/policies/terms-of-use](https://openai.com/policies/terms-of-use);
   Privacy: [openai.com/policies/privacy-policy](https://openai.com/policies/privacy-policy)

**PublisherKits Support Copilot service (optional, free and Pro)**

When you use the in-plugin Support Copilot (the Help button; managed under BioBuilder
Support), the assistant sends your typed question, the recent chat history, your
site address and, where available, its licence installation identifier (used to 
authorise the request and apply fair-use limits), and a small read-only diagnostic
snapshot — the plugin version, the versions of installed companion plugins, the 
admin screen name, and a short whitelist of non-sensitive settings — to the PublisherKits
support service. This is used to fetch documentation matched to your installed version
and, where your site has no AI provider of its own configured, to generate the answer
on the service. Where your site does have its own AI provider, the assistant tries
it first and the service is asked only for documentation (no question or chat text);
if that local answer fails and the site is authorised for the service, the assistant
automatically falls back to the service, and your question and chat history are 
then sent to it. No API keys, passwords, author records or site content are ever
sent, and the assistant is read-only. Only if you open the ticket form (“Send to
support” or “Still need to raise a ticket?”) and click “Create ticket” does the 
assistant send the chat transcript (up to its 20 most recent messages), the site
details and diagnostic snapshot above, the question category, the contact email 
address you enter (pre-filled with your WordPress account email) and the first and
last name from your WordPress user profile, to open a support ticket. Nothing is
sent until a user with BioBuilder settings access accepts the in-widget privacy 
notice. The service answers a limited number of questions per month for free; sites
answering on their own AI provider are not limited.

 * Service: [publisherkits.com](https://publisherkits.com) (support endpoint: bwtlsupport.
   com)
 * Privacy Policy: [publisherkits.com/privacy-policy](https://publisherkits.com/privacy-policy)

**Freemius (licence activation and updates)**

BioBuilder uses the Freemius SDK to validate and manage Pro licences and to deliver
Pro updates. If you activate a Pro licence, Freemius may collect basic site and 
usage data as part of licence activation. This is subject to the Freemius Privacy
Policy. No licence activation is required to use the free plan, and the free plan
does not send data to Freemius unless you opt in.

 * Service: [freemius.com](https://freemius.com)
 * Privacy Policy: [freemius.com/privacy](https://freemius.com/privacy/)

**LinkedIn (Pro, internal verification only)**

When a LinkedIn profile URL is identified for an author, BioBuilder makes a direct
HTTP request to that public LinkedIn profile page to verify that the author’s name
appears in the page content before writing the URL to their profile. This is a read-
only verification check using publicly accessible pages — no LinkedIn API is used,
no authentication credentials are transmitted, and no data is stored beyond the 
verified URL. This only occurs when a LinkedIn URL has been identified and is about
to be saved.

 * Service: [linkedin.com](https://www.linkedin.com)
 * Terms of Service: [linkedin.com/legal/user-agreement](https://www.linkedin.com/legal/user-agreement)
 * Privacy Policy: [linkedin.com/legal/privacy-policy](https://www.linkedin.com/legal/privacy-policy)

## Screenshots

[⌊Author Status — every author's enrichment status, email data quality, and profile
completeness at a glance, with per-author enrich, sync and quick-edit actions⌉⌊Author
Status — every author's enrichment status, email data quality, and profile completeness
at a glance, with per-author enrich, sync and quick-edit actions⌉[

Author Status — every author’s enrichment status, email data quality, and profile
completeness at a glance, with per-author enrich, sync and quick-edit actions

[⌊Insights — what BioBuilder has actually found across your roster, field-by-field
coverage, and the email quality mix behind the search results⌉⌊Insights — what BioBuilder
has actually found across your roster, field-by-field coverage, and the email quality
mix behind the search results⌉[

Insights — what BioBuilder has actually found across your roster, field-by-field
coverage, and the email quality mix behind the search results

[⌊Author Types (Pro) — classify the roster as house, staff, freelance, expert or
supplier, with your own custom types, so house bylines stay out of your staff figures⌉⌊
Author Types (Pro) — classify the roster as house, staff, freelance, expert or supplier,
with your own custom types, so house bylines stay out of your staff figures⌉[

Author Types (Pro) — classify the roster as house, staff, freelance, expert or supplier,
with your own custom types, so house bylines stay out of your staff figures

[⌊Bulk Enrich (Pro) — profile coverage across every field, live enrichment progress,
and targeted re-enrichment for authors missing a specific field⌉⌊Bulk Enrich (Pro)—
profile coverage across every field, live enrichment progress, and targeted re-enrichment
for authors missing a specific field⌉[

Bulk Enrich (Pro) — profile coverage across every field, live enrichment progress,
and targeted re-enrichment for authors missing a specific field

[⌊Settings — Serper web search plus AI through the WordPress AI Client, configured
once under Settings > Connectors; BioBuilder stores no AI key of its own⌉⌊Settings—
Serper web search plus AI through the WordPress AI Client, configured once under
Settings > Connectors; BioBuilder stores no AI key of its own⌉[

Settings — Serper web search plus AI through the WordPress AI Client, configured
once under Settings > Connectors; BioBuilder stores no AI key of its own

## Installation

 1. Upload the plugin files to `/wp-content/plugins/publisherkits-biobuilder/`, or 
    install directly through the WordPress Plugins screen
 2. Activate the plugin through the Plugins menu
 3. Go to **BioBuilder  Settings** and enter your Serper API key (free at serper.dev—
    2,500 searches/month included)
 4. Optionally connect an AI provider at **Settings  Connectors** (WordPress 7.0+) 
    for AI-powered biography drafting and match scoring (Pro) — BioBuilder uses the
    WordPress AI Client and stores no AI key of its own
 5. Visit **BioBuilder  Author Status** to see your full author roster and trigger 
    your first enrichment

## FAQ

### Do I need API keys?

A Serper API key is required for web search enrichment. Serper is free to sign up
and includes 2,500 searches per month — enough for most small to medium publishing
sites. Sign up at serper.dev.

AI features (Pro) use the WordPress AI Client (WordPress 7.0+): configure your AI
provider — for example Anthropic Claude or OpenAI — once at Settings  Connectors
and every compatible plugin shares it. BioBuilder stores no AI key of its own. Provider
usage is billed by the provider — typical enrichment costs are a fraction of a cent
per author.

### Will BioBuilder overwrite my existing author data?

No. By default, BioBuilder only fills in fields that are currently empty. Existing
data is never touched unless you explicitly enable Force Re-enrich in settings.

### How accurate is the enrichment?

Accuracy depends on how findable an author is online. For professionals with a LinkedIn
profile, company page, or published bylines, accuracy is high. For authors with 
very common names or minimal online presence, BioBuilder will return a lower confidence
score and leave fields blank rather than guess. The Pro confidence scoring feature
makes this transparent.

### Is this GDPR compliant?

BioBuilder only retrieves information that authors have made publicly available 
on their own professional profiles. The plugin does not create profiles, infer private
information, or store data beyond what is returned and saved to the WordPress user
account. You remain the data controller and are responsible for your own GDPR obligations.
See publisherkits.com for full GDPR guidance.

### Does it work with guest author plugins?

Yes — Molongui Authorship, Co-Authors Plus, and Simple Author Box are supported 
via the Author Plugin Integrations add-on (included with Pro or available separately).

### What happens if no profile is found?

If BioBuilder cannot find a confident match, it leaves the author’s profile unchanged
and marks the enrichment as low confidence in the Author Status table. No guesses
are written to your data.

### Can I review changes before they go live?

Yes — this is the Draft / Approval Mode feature in Pro. Every proposed field change
is held in a review queue where you can approve, reject, or edit individual fields
before anything is written to the profile.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“PublisherKits BioBuilder” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Black and White ](https://profiles.wordpress.org/blackandwhitedigital/)
 *   [ PublisherKits ](https://profiles.wordpress.org/publisherkits/)

[Translate “PublisherKits BioBuilder” into your language.](https://translate.wordpress.org/projects/wp-plugins/publisherkits-biobuilder)

### Interested in development?

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

## Changelog

#### 0.10.6

 * Updated Freemius SDK to the latest version.
 * Changed: the support assistant’s privacy notice now says that, when it answers
   on your own AI and that answer fails, the question and recent chat history are
   sent to the support service instead (only on a site authorised to use it).
 * Fixed: the support assistant’s “add your own AI” link now opens Settings > Connectors,
   where the AI provider is actually set, instead of the general Settings screen.

#### 0.10.5

 * Privacy (recommended update): on a free site the in-plugin support assistant 
   no longer offers to raise a support ticket. It previously did, and creating one
   sent the chat transcript, the diagnostic snapshot, the contact email address 
   you entered and your WordPress first and last name — which the support service
   then declined, because free-plugin support is handled on the WordPress.org forum.
   Nothing ticket-only now leaves a free site.
 * Privacy: a reply that carries no ticket number is no longer shown as a created
   ticket. The assistant shows the service’s own message and stops offering tickets
   on that page.
 * Security: the chat history is sent to the support service as separate form fields
   and sanitised as each one is read, rather than being decoded from a single combined
   value.
 * Security: each support-assistant request proves its security token and your permission
   as two separate checks, each reporting its own failure.
 * Changed: the assistant’s privacy notice and ticket form now state that the contact
   email address and your WordPress first and last name are sent with a ticket. 
   Both were always sent; only the wording was incomplete, and the plugin description
   already said so.
 * Changed: the assistant can answer from your own AI provider without a support-
   service account or licence — answering locally and using the support service 
   are now independent.
 * Internal housekeeping: refreshed the bundled support-assistant module to 2.1.4,
   and every global name it creates now carries the full PublisherKits prefix. Nothing
   you interact with changes.
 * Documentation: added PublisherKits PluginTidy to the “More from PublisherKits”
   list.

#### 0.10.4

 * Security hardening (recommended update): the in-plugin Support Copilot now contacts
   the support service through WordPress’s validated request function, which rejects
   private, loopback and non-standard-port destinations and re-checks any redirects.
   Because the support endpoint is administrator-configurable, this is defence in
   depth against a request being pointed at an internal address. Behaviour against
   the standard PublisherKits support service is unchanged.
 * Internal housekeeping: refreshed the bundled support-assistant module to 2.0.3,
   normalised line endings across the package, and aligned a comment in the bundled
   Freemius SDK. Nothing you interact with changes.
 * Documentation: added a “More from PublisherKits” section to the description linking
   the other free PublisherKits plugins.
 * Compatibility: confirmed and marked as tested up to WordPress 7.1.

#### 0.10.3

 * Housekeeping for WordPress.org compliance: two internal licence checks were written
   in a form that WordPress.org’s plugin scanner flags. They have been rewritten
   to the standard form. No behaviour changes – free and Pro installations both 
   work exactly as before.

#### 0.10.1

 * Housekeeping for WordPress.org coding standards: added missing translator notes,
   tightened input handling on the author-type, email-domain and field-mapping screens,
   and escaped one settings-page value.
 * The plugin no longer loads its translations before WordPress is ready for them,
   which removed a notice on sites running with debugging enabled.
 * The AI Client is now probed for in every place it is used, so sites on older 
   WordPress releases behave predictably.

#### 0.10.0

 * Internal: the bundled support-assistant module moved into its own namespace, 
   replacing global class names that used a short prefix. This is housekeeping for
   WordPress.org coding guidelines and changes nothing you interact with.
 * Compatibility note: other PublisherKits plugins share this module. Until each
   of them is updated to the matching version, only one of them provides the Help
   assistant on a given site; BioBuilder provides it. No duplicate assistant appears,
   and every other feature of every plugin is unaffected.

#### 0.9.9

 * Documentation: the External Services section now discloses Freemius, which handles
   Pro licence activation and updates, with a link to the Freemius privacy policy.
   The free plan needs no licence activation.
 * Documentation: corrected the PublisherKits privacy policy link and updated the
   screenshot captions.

#### 0.9.8

 * Updated the bundled Freemius SDK from 2.13.1 to 2.13.4 (pricing page currency
   fixes, configurable API timeout, PHP compatibility and query-parameter handling
   improvements).

#### 0.9.7

 * Admin screens adopt the standard PublisherKits page header: a navy band with 
   the plugin’s identity mark and eyebrow, the page title, and the page description—
   consistent with the rest of the PublisherKits range. Admin notices now appear
   below the header instead of above the page.
 * Fixed garbled characters on some admin screens (the Settings page title, the 
   Author Status count line and search placeholder, and two Bulk Enrich labels) 
   caused by mis-encoded punctuation.
 * Admin stylesheet is now cache-busted on change, so styling updates appear without
   a hard refresh.

#### 0.9.6

 * Performance: the email confidence classifier no longer calls WordPress’s filterable
   is_email() for its format check. Email-verification plugins that hook that filter
   with a remote API check (for example Antideo Email Validator) were being called
   once per author on the Insights screen — on a large roster that turned one page
   load into hundreds of remote requests and minutes of waiting. The classifier 
   now uses an unfilterable local format check; on a measured 1,451-author site 
   this took Insights from around 108 seconds to a normal page load. No behaviour
   change to classifications.

#### 0.9.5

Three things in this release: AI now runs entirely through the WordPress AI Client,
a new Support Copilot help assistant, and Pro author typing.

 * **AI runs exclusively through the WordPress AI Client** (WordPress 7.0+, Settings
   Connectors). The in-plugin AI provider selector, the Claude/OpenAI key fields
   and the shared PublisherKits key store have all been removed — no AI credential
   is stored or read by the plugin. Configure your provider once at Settings  Connectors
   and every compatible plugin shares it. A one-time admin notice explains the switch
   on sites without a connector configured. Field Discovery (Pro) AI classification
   routes through the AI Client too.
 * **Support Copilot — a Help button on BioBuilder admin screens** that answers 
   usage and setup questions in a popup chat, grounded in documentation matched 
   to your installed version. Read-only: it can explain but never change anything,
   and any conversation can be sent on as a support ticket. Manage it under BioBuilder
   Support. If your site has a WordPress AI provider configured, answers are generated
   on your own connector (labelled in the chat) with no limit; otherwise the PublisherKits
   support service answers a small number of questions per month for free (a higher
   allowance on Pro). The Help button also shows before the assistant is set up,
   with on-screen onboarding that points you to either registering this plugin for
   your free monthly answers or adding your own AI provider for unlimited answers.
   Nothing is sent to the support service until a user with BioBuilder settings 
   access accepts the in-widget privacy notice; the onboarding itself is guidance
   only and sends nothing.
 * **Pro: Author Types** — classify each author as house, staff, freelance, expert,
   supplier or a custom type, so house bylines and outside experts stay out of your
   in-house staff figures. A new Author Types screen manages the editable type list(
   add, rename, reorder, remove) with a bulk roster assigner sorted by post count
   so the biggest bylines are typed first, and a type dropdown is added to each 
   author’s profile screen.
 * New PKBB_Read author-type read contract for reporting and author-markup consumers:
   get_author_types() returns the type per WordPress user ID and get_author_type_list()
   returns the configured list. Both are null-safe and return an empty array where
   unavailable. Author typing and list editing are Pro; the read contract itself
   is always present, so any consumer degrades gracefully on the free tier (no authors
   typed) with no dependency on BioBuilder Pro.

#### 0.9.2

 * New PKBB_Read read contract for the Insight Engine: get_coverage_stats() returns
   precomputed author-profile coverage (total authors, no bio, thin bio, missing
   job title/employer, LinkedIn, enriched count) in two bulk queries instead of 
   a per-author scan.

#### 0.9.1

 * Hardening: guard the admin view helper functions against redeclare, removing 
   a class of fatal error if a view is ever loaded twice in one request.
 * Performance: prime the user-meta cache in one query before the Author Status 
   render loop, replacing up to 50 per-author priming queries per page.

#### 0.9.0

 * Adopts the WordPress 7.0 core AI Client. Enrichment now routes through wp_ai_client_prompt()
   when available, using the shared key configured at Settings > Connectors with
   no key stored by the plugin.
 * Falls back automatically to the existing shared PublisherKits key or a standalone
   key on pre-7.0 sites or where no connector is configured.
 * New AI Client panel in Settings: shows the active path, a preferred-model dropdown
   populated from the models your connector key can actually use, an exact-model
   override, and an optional strict mode.
 * Resolves the “AI connector has not been approved” block caused by direct provider
   calls under the new core AI stack.

#### 0.8.31

 * Pro: Field Discovery — scans site user meta for unknown profile fields from any
   plugin, theme, or developer
 * Pattern matching (regex) classifies obvious fields instantly with no API cost
 * AI classification handles ambiguous keys, seeded with known plugin examples (
   Yoast, AIOSEO, BuddyPress etc.)
 * Admin confirmation table — review and adjust every suggested mapping before saving
 * Saved field map used permanently by Author Plugin Bridge for all reads, writes,
   and syncs
 * Individual map entries can be removed from the Field Discovery page

#### 0.8.30

 * Author Status: per-user Sync button imports data from active author plugins into
   BioBuilder (fills gaps, no overwrite)
 * Author Status: site-wide Sync all button processes every author in one click 
   with confirmation prompt
 * Auto-sync: when a WordPress user profile is saved, BioBuilder automatically syncs
   with active author plugins
 * Recursive sync guard prevents infinite loops when write_all triggers profile_update

#### 0.8.27

 * Pro: Author Plugin Bridge — reads from and writes to Molongui Authorship, Simple
   Author Box, VK Post Author, WP Post Author, Co-Authors Plus, and PublishPress
   Authors
 * Enrichment context now enriched with employer/LinkedIn/bio from active author
   plugins before search query is built
 * After successful enrichment, data is synced to all active author plugins automatically
 * flush_user() and flush_all() methods for manual import of existing plugin data
   into BioBuilder meta

#### 0.8.26

 * AI prompt improved for authors with no employer context (phantom emails, PR emails)—
   distinctive names now scored 70+ when results consistently identify the same 
   person

#### 0.8.25

 * Critical fix: AI extraction call was missing from enrichment pipeline — extracted
   data was always empty regardless of search results
 * Added pattern-matching fallback when no AI key is configured
 * Improved error messages in modal enrichment to show actual failure reason

#### 0.8.20

 * Settings: API key presence badge (Set/Not set) shown next to each key field
 * Settings: masked key snippet displayed so you can identify which key is stored
 * Settings: Test button per API key makes a live connection check and shows result
 * Settings: Delete all data on uninstall checkbox added (off by default)
 * Uninstall: API keys and enriched author data now preserved on uninstall unless
   deletion is explicitly opted in to

#### 0.8.19

 * Query builder: RED and GREY_FAKE authors now lead with name-only LinkedIn search
 * Query builder: search_hint context field used in query construction
 * Author detector: search_hint from user meta passed into enrichment context
 * Quick Edit modal: search hint field added (stored as _pkbb_search_hint)
 * Posts list: author profile traffic light column (red/amber/green dot by completeness)
 * Posts list: click dot opens Quick Edit modal pre-filled with existing data
 * Posts list: Enrich now button runs full pipeline synchronously and auto-fills
   fields
 * New AJAX endpoint: pkbb_enrich_now_modal for synchronous modal enrichment

#### 0.8.18

 * Author Status: search box, column sorting, missing field filter bar
 * Author Status: friendly field names as pills (replacing raw meta keys)
 * Author Status: Data Quality and Enrichment Status legends
 * Author Status: article count with link to filtered post list
 * Author Status: recent 3 article links per author
 * Author Status: Quick Edit modal for LinkedIn, Job Title, Company, X handle
 * Author Status: Enrich Now button contrast fixed (navy, not grey)
 * Author Status: AJAX handler for quick edit save (pkbb_quick_edit_author)

#### 0.8.9

 * Updated Freemius SDK from 2.13.0 to 2.13.1 (multisite, scheduling, bulk update
   fixes)

#### 0.8.8

 * Pro features moved to __premium_only files — free version contains upgrade prompts
   only, no gated code
 * Inline scripts converted from
 * LinkedIn URL verification documented in External Services section of readme.txt

#### 0.8.7

 * readme.txt rewritten with benefit-led copy and audience-focused description
 * Screenshots section added
 * Changelog cleaned up and deduplicated

#### 0.8.6

 * Fixed syntax error in class-biobuilder.php caused by incomplete load_plugin_textdomain
   removal

#### 0.8.5

 * Fixed syntax error in class-database.php caused by misplaced phpcs:ignore comment
   inside query string

#### 0.8.4

 * Fixed syntax error in class-biobuilder.php — orphaned arguments after load_plugin_textdomain
   removal

#### 0.8.3

 * Fixed WordPress.DB.PreparedSQL.NotPrepared warning — table name extracted to 
   variable before use in query

#### 0.8.2

 * Fixed MissingTranslatorsComment errors in candidate-selector.php, draft-queue.
   php, author-status.php, bulk-enrich.php, and settings.php
 * Fixed unescaped integer outputs in candidate-selector.php and draft-queue.php

#### 0.8.1

 * Fixed PreparedSQL phpcs:ignore placement in class-database.php
 * Fixed remaining MissingTranslatorsComment errors across view files

#### 0.8.0

 * Plugin renamed from “PublisherKits WP BioBuilder” to “PublisherKits BioBuilder”—“
   WP” not permitted in WP.org plugin names or slugs
 * Plugin slug changed from publisherkits-wp-biobuilder to publisherkits-biobuilder
 * All i18n functions now use string literal text domain as required by WP.org
 * Heredoc syntax replaced with string concatenation in class-ai-extractor.php
 * parse_url() replaced with wp_parse_url() throughout
 * strip_tags() replaced with wp_strip_all_tags() throughout
 * wp_unslash() added to all POST/GET input handling
 * Ordered printf placeholders (%1$d, %2$d) used throughout
 * languages/ folder created
 * load_plugin_textdomain() removed (not needed since WordPress 4.6)

#### 0.7.0

 * WP.org submission preparation: external services disclosure added, PHP minimum
   version set to 8.0, tested up to 6.9

#### 0.6.9

 * Removed uninstall.php — cleanup now handled via Freemius after_uninstall hook
   to preserve opt-out feedback

#### 0.6.8

 * Upgrade buttons now link directly to Freemius checkout
 * Added pkbb_checkout_url() helper function

#### 0.6.7

 * Switched Pro gate to can_use_premium_code__premium_only() for correct WP.org 
   free version stripping

#### 0.6.6

 * Restructured main plugin file to use correct Freemius if/else auto-deactivation
   pattern

#### 0.6.5

 * Added wp_org_gatekeeper token for WP.org compliance
 * Freemius menu slug now correctly attaches Account page to BioBuilder menu

#### 0.6.2

 * Freemius SDK integrated — live licence activation, Pro feature gating, upgrade
   flows
 * LinkedIn candidate selector UI complete
 * Draft approval queue with approve, reject, and edit-and-approve per field
 * Bulk Enrich with filter tabs (incomplete, never enriched, failed, all)
 * Enrichment audit log

#### 0.1.0

 * Initial release

## Meta

 *  Version **0.10.6**
 *  Last updated **1 week ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [author](https://wordpress.org/plugins/tags/author/)[biography](https://wordpress.org/plugins/tags/biography/)
   [profile](https://wordpress.org/plugins/tags/profile/)[seo](https://wordpress.org/plugins/tags/seo/)
   [social media](https://wordpress.org/plugins/tags/social-media/)
 *  [Advanced View](https://wordpress.org/plugins/publisherkits-biobuilder/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/publisherkits-biobuilder/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/publisherkits-biobuilder/reviews/)

## Contributors

 *   [ Black and White ](https://profiles.wordpress.org/blackandwhitedigital/)
 *   [ PublisherKits ](https://profiles.wordpress.org/publisherkits/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/publisherkits-biobuilder/)