Skip to main content
JobCannon

Mapping JobCannon Scores to HubSpot Properties

Canonical table of the 17 jc_* custom properties JobCannon creates on the HubSpot Contact object: DISC, Big Five, IQ, integrity, MBTI, RIASEC, plus status/result URL/invitation metadata. Includes value-range conventions and worked examples.

~760 wordsVendor docs →

Mapping JobCannon Scores to HubSpot Properties


Reference for the 17 custom properties JobCannon creates in your HubSpot Contacts schema and what each one carries. Every property name uses the `jc_` prefix and is grouped under `jobcannon_assessments` (label: "JobCannon Assessments").


This table is the source of truth — JobCannon's adapter at `lib/crm/providers/hubspot.ts` is the canonical generator.


Property table


| Property name | Label | Type | Field type | Value range / notes |
|---|---|---|---|---|
| jc_disc_d | JC DISC — Dominance | number | number | 0–100 (percentile within the candidate's response set) |
| jc_disc_i | JC DISC — Influence | number | number | 0–100 |
| jc_disc_s | JC DISC — Steadiness | number | number | 0–100 |
| jc_disc_c | JC DISC — Conscientiousness | number | number | 0–100 |
| jc_bigfive_o | JC Big Five — Openness | number | number | 0–100 |
| jc_bigfive_c | JC Big Five — Conscientiousness | number | number | 0–100 |
| jc_bigfive_e | JC Big Five — Extraversion | number | number | 0–100 |
| jc_bigfive_a | JC Big Five — Agreeableness | number | number | 0–100 |
| jc_bigfive_n | JC Big Five — Neuroticism | number | number | 0–100 |
| jc_iq_score | JC IQ Score | number | number | Standard IQ scale (50–160). Empty when no IQ test was assigned. |
| jc_integrity_score | JC Integrity Score | number | number | 0–100 — combined integrity-events + self-deception signal. Higher = cleaner. |
| jc_mbti_type | JC MBTI Type | string | text | 4-letter code (e.g. INTJ, ENFP). |
| jc_riasec_holland | JC RIASEC Holland Code | string | text | 3-letter code (e.g. IAS, RIC). Top-three Holland types in rank order. |
| jc_test_status | JC Test Status | enumeration | select | One of: invited, in_progress, completed, expired. |
| jc_result_url | JC Result URL | string | text | Absolute link to the full result envelope in JobCannon Business dashboard. |
| jc_completed_at | JC Completed At | datetime | date | ISO-8601 timestamp of the latest completion that triggered this push. |
| jc_invitation_id | JC Invitation ID | string | text | UUID of the JobCannon invite. Stable across re-pushes — useful for joins. |

Worked example


A candidate named Maria López ([email protected]) completes DISC and Big Five on a Trimlight invite. The push to HubSpot writes:


| Field | Value |
|---|---|
| email | [email protected] |
| firstname | Maria |
| lastname | López |
| jc_disc_d | 64 |
| jc_disc_i | 81 |
| jc_disc_s | 42 |
| jc_disc_c | 55 |
| jc_bigfive_o | 72 |
| jc_bigfive_c | 60 |
| jc_bigfive_e | 78 |
| jc_bigfive_a | 64 |
| jc_bigfive_n | 38 |
| jc_test_status | completed |
| jc_result_url | https://jobcannon.io/business/dashboard/invites/9f7c... |
| jc_completed_at | 2026-05-18T14:22:09Z |
| jc_invitation_id | 9f7c8d12-... |

Properties not populated by the test set (jc_iq_score, jc_mbti_type, jc_riasec_holland) are simply omitted from the upsert payload — HubSpot leaves the existing value (or the default empty) untouched.


Value-range conventions


All numeric scores are **0–100 percentiles** against the assessment's normative sample, except `jc_iq_score` which uses the standard IQ scale (mean 100, sd 15). This makes them directly comparable across tests and easy to use in HubSpot views and workflows ("Contact has jc_disc_d > 70" is a meaningful filter).


`jc_integrity_score` is the combined cleanliness score after the integrity-events check (response speed, attention checks, social-desirability adjustment). Higher = more confident the result reflects the candidate's real disposition.


Using the data in HubSpot


**Lists.** Build static or active lists on any jc_* property. Example: "DISC-I high (>70) and Big Five Extraversion > 60" — a quick sales-DNA filter.


**Workflows.** Trigger HubSpot workflows on `jc_test_status = completed` to route hot candidates to a recruiter inbox or sequence them automatically.


**Views.** Add jc_test_status + jc_completed_at + jc_result_url as columns on your Contacts index view to see, at a glance, who has results ready to read.


**Reports.** Standard HubSpot Contact reports support all jc_* properties — group by jc_test_status or chart jc_disc_d distribution across your candidate pool.


Re-push behavior


Every push is an upsert by email. The same candidate finishing a second test simply updates the existing contact — no duplicate contacts are created. The `jc_completed_at` value reflects the most recent push, not the first one. If you need a "first completed" timestamp for reporting, capture it in a separate HubSpot custom property and use a workflow to copy from jc_completed_at on first set.


Field mapping overrides


If your portal already uses one of the jc_* names for something else (unlikely but possible), contact [email protected] and we'll add a per-tenant mapping override in your connection record. The default mapping is what 99% of orgs use.


---


**Vendor docs:** https://developers.hubspot.com/docs/api/crm/properties

**Contacts schema:** https://developers.hubspot.com/docs/api/crm/contacts

**Support:** [email protected]