# SW Careers Basic — AI Agent Reference **Module name:** SW Careers Basic **Use this document when:** The user asks about a careers / jobs / openings list on a page, an in-module apply form, Google Sheet or CSV job listings, Apply Destination, JobPosting schema, Job Cards, Accordion 1 vs Accordion 2 for jobs, resubmit cooldown, or SW Careers Intro / Advanced (parked — do not invent those modules). **Master version number (check `module.html`):** 2026.09.11.20.39 --- ## 1. Overview **SW Careers Basic** is the page-level job listing module. It shows open positions (Job Cards on by default, accordion still inside each card) and can include an in-module HubSpot form for applications. **Job Source (exclusive — pick one):** - **Inline Repeater (default)** — add job rows in the module (best for a few openings). - **Google Sheet** — load from a shared spreadsheet (marketers update without republishing HubL). - **CSV File** — load from a File Manager CSV (same columns as the Sheet). **Do not use HubDB** in this module. HubDB-backed careers is **SW Careers Advanced** (later; not shipped). Do not invent HubDB fields or a careers hub. **Not this module:** A standalone form with no job list → **SW Form**. Form beside image/copy → **SW Pillar Section** (Secondary = Form). Page FAQs → **SW FAQs Basic**. A starter careers **page** (hero + this module) → page template **SW Careers Page**. --- ## 2. Content Tab - **Enable Module** — On/off. - **Heading Panel** — Default heading **Open Positions** (H2, Display Size Auto). Optional rich text and buttons above the Content Area. - **Content Area** — Optional intro above the job list. Heading defaults are **empty**. - **Footer Content** — Optional headings, rich text, and buttons below the list / form. - **Job Source** — Inline Repeater / Google Sheet / CSV File. - **Job Items** — Repeater when source = Inline Repeater. Each row: title, department, location, type, about, responsibilities, requirements, Apply Destination, Button Link (when Custom link), apply label, date posted, valid through, active, sort order. - **Apply Now — Destination** — **In-module form** (default) or **Custom link**. Form destination scrolls to `#careers-form` and prefills `position_of_interest`; Button Link is hidden so an empty URL placeholder cannot win. Custom link shows Button Link. - **Google Sheet Settings** — Share link when source = Google Sheet. - **CSV File** — File picker when source = CSV File. - **Output JobPosting Schema** — Repeater: in page HTML. Sheet/CSV: after rows load. Requires Hiring Organization and a non-blank `date_posted` per job. Skip a job if date or org is blank. - **Hiring Organization** — Used in JobPosting JSON-LD. - **Show Form** — Default on. Hides/shows the form panel. An empty Form picker still renders HubSpot’s default `{% form %}`. - **Form** — HubSpot form picker (`form_id` default null). Wrapper id is **`#careers-form`**. - **Resubmit cooldown** — Optional. Off by default. Same pattern as SW Form / SW Pillar Section. Needs a **picked Form** (empty picker cannot key localStorage). Inline thank you only. Storage prefix `swCareersBasicFormResubmitCooldown:`. - **When no jobs** — Show empty message or hide the list area. --- ## 3. Style Tab ### Module Settings - **Module Outer Spacing** — Default padding **50 / 20 / 50 / 20** (top/right/bottom/left). - **Max Module Outer Width**, **Module Inner Spacing**, **Max Module Inner Width**, **Module Height** groups. **CLS tip (Sheet / CSV):** If the list jumps when rows load, set **Module Height → Minimum Height** after measuring a published instance. ### Module Background Settings Standard **Module Outer / Module Inner** pattern (same family as SW FAQs Basic). Default Inner is transparent (padding 0, background None). Content Area uses a pale card: Custom `#45a1d7` at 5%, 1px border at 25%, radius 3, padding 25. ### Content Colors / panels Heading Panel, Content Area, Footer, and Form Box have the usual SW panel settings. ### Form Box - Color **white**, Max Form Width **Large**, Form Alignment **Center**. - Border override **on**; radius override **off**. - Padding **32**. Extra HubSpot `.hsfc-Step_Content` / `--hsf-background_padding` inside `.sw-careers__form-box` is zeroed (same idea as SW Form) so Form Box padding is the only inset. ### Job / accordion layout - **Job Cards** — Default **on**. Each opening is a card (white fill, 1px `#e5e5e5`, 8px radius, padding 25, margin top 15). Accordion stays inside the card. Accordion 2 hairline and Job Item Spacing are hidden while cards are on. Turn Job Cards **off** for the previous stacked Accordion 2 look. - **Accordion Mode** default **Accordion 2** (flat stacked rows when cards are off). **Accordion 1** remains. - Optional show/hide department, location, type on the closed row. --- ## 4. Google Sheet and CSV Starter Sheet: https://docs.google.com/spreadsheets/d/15YODUpJ1Vs27YhjUyTW5rDyIAGd3bOee1Mt94ZC-epc/edit?usp=sharing Sample CSV: https://smithworks.marketing/hubfs/module-documentation/sw-careers-basic-sample.csv Keep these headers (order as in the sample): `title, department, location, type, description_about, responsibilities, requirements, apply_url, apply_label, date_posted, valid_through, active, sort_order` 1. Copy the starter Sheet or import the sample CSV. 2. Sheet: Anyone with the link → Viewer; paste the Share URL into **Google Sheet link**. 3. CSV: upload to File Manager and pick it in **CSV File**. 4. `active` = `yes` to show. Blank `apply_url` uses in-module form; a URL uses Custom link. 5. Sheet/CSV rows are downloaded in the browser; filtering is not access control. Delete instructional sample rows before go-live. --- ## 5. Common Tasks - **Add jobs in HubSpot:** Job Source = Inline Repeater; edit Job Items (four sample jobs ship by default). - **Use a spreadsheet:** Job Source = Google Sheet; paste Share link; keep headers. - **Use a CSV:** Job Source = CSV File; pick the file. - **Apply to the in-module form:** Apply Destination = In-module form. Form field internal name **`position_of_interest`** receives the job title. - **Apply to an external URL:** Apply Destination = Custom link; set Button Link. - **Hide the form:** Show Form off. - **Accordion 2:** Style → leave Accordion Mode at Accordion 2 (default). - **Job Cards off:** Style → Job Cards off to restore Accordion 2 hairline / Job Item Spacing. - **Resubmit cooldown:** Pick a HubSpot form, then enable Resubmit cooldown (off by default). - **JobPosting schema:** Turn Output JobPosting Schema on; set Hiring Organization; give each listed job a `date_posted`. - **Start from the kit template:** Create a website page from **SW Careers Page** (Hero + SW Careers Basic). Pick your HubSpot form in the careers module. Existing pages keep saved modules until you recreate them. --- ## 6. Sample view / defaults - Heading Panel: **Open Positions**. - Four sample jobs (Brand Designer, Content Strategist, Paid Media Manager, Web Producer). First three Apply Destination = form; Paid Media = custom_link. - CTA / link default href: `https://smithworks.marketing/sw-module-documentation`. - Form picker empty still renders HubSpot’s default form. --- ## 7. Related / parked - **SW Careers Intro** — later (not shipped). - **SW Careers Advanced** — HubDB / search / filter / pagination later (not shipped). - Do not roll **SW AI Documentation.html** or this `.txt` to client portals; they live on **smithworks-2025** only. --- ## 8. Document Version **Module:** SW Careers Basic. **Master version number:** 2026.09.11.20.39. **Doc last updated:** 2026-09-11. **2026.09.11.20.39:** Job Cards default on; resubmit cooldown (off by default; needs a picked form); Accordion/Job box group renamed to Careers Box (saved Accordion settings still apply). **2026.09.11.11.55:** kit page template **SW Careers Page** (Hero + this module). First ship: job list + in-module apply form; Inline Repeater / Google Sheet / CSV (no HubDB); Apply Destination; Show Form; Heading Panel Open Positions; Form Box padding vs HubSpot extra padding; JobPosting JSON-LD skip rules.