Skip to content

Preference profiles

Use preference profiles to configure screening behavior for your organization.

MethodPathPurpose
GET/api/PreferenceProfiles/behavior-categoriesDefault behavior categories
GET/api/PreferenceProfilesOrganization profile summaries
POST/api/PreferenceProfilesCreate an organization-wide profile
GET/api/PreferenceProfiles/{id}Read a full profile
PUT/api/PreferenceProfiles/{id}Update a profile
DELETE/api/PreferenceProfiles/{id}Soft-delete a profile

Create, update and delete require allowPreferenceProfileUpdate on the API client. They can also be disabled by server configuration. A 403 can therefore indicate an organization permission, ownership, or feature gate; inspect the operation’s documented response.

To delete a profile, it must belong to your organization and must not be the organization-wide default.

Ferretly validates behavior-category IDs, post types, disabled platforms, profile names, and notification settings. The organization-wide default profile cannot be deleted. Updates can also reject a default-profile rename, subscriber-specific profile, or mismatched route/body ID.

POST and PUT accept PreferenceProfileUpsert. Its JSON property names include:

id, profile_name, behavior_categories, key_words, general_settings, and disabled_platforms.

The list endpoint returns PreferenceProfile summaries. Single-profile reads and writes return OrganizationPreferencesProfile.

Do not send a GET response back unchanged as a PUT body; map it to the request model and preserve the settings you intend to keep.

disabled_platforms is an exclusion list in the write model:

  • Omit it to preserve the stored selection during an update.
  • Send [] to enable all supported platforms.
  • Send a platform list to replace the exclusions.

Supported values are Facebook, Instagram, Twitter, LinkedIn, TikTok, Reddit, Pinterest, and YouTube. Handles on excluded platforms are not scraped or automatically attached during screening.

When updating other fields, send the settings you want to retain using the complete request model.

Set preferencesProfile to an existing profile name or UUID:

{
"subjectData": { "name": "Example Candidate" },
"preferencesProfile": "YOUR_EXISTING_PROFILE",
"assignToFerretlyAnalyst": false,
"isDebug": true
}

Replace YOUR_EXISTING_PROFILE with a profile in your organization. See debug mode guidance before testing.

New subjects start with the selected owner’s default profile for new subjects. It uses a matching name or UUID only when the profile belongs to the organization. An unrecognized selection can fall back to the default; inspect the returned subject’s profile rather than assuming an invalid name was rejected.

See the API reference for complete request schemas and documented error responses.