Skip to content

[No QA] Update help docs for Release 1: Greenhouse and Classic Parity - #102428

Merged
sakluger merged 6 commits into
mainfrom
claude-recruitingHelpDocsRelease1
Sep 28, 2026
Merged

sakluger merged 6 commits into
mainfrom
claude-recruitingHelpDocsRelease1

Conversation

@MelvinBot

Copy link
Copy Markdown
Contributor

Explanation of Change

Adds help docs for the new workspace Recruiting feature, which connects Greenhouse in New Expensify and imports candidates based on filters. Nothing on the help site covered this feature yet, and the NewDot Greenhouse URL was sending people to the Classic webhook steps.

  • New article: docs/articles/new-expensify/connections/Connect-a-recruiting-integration-to-Expensify.md. It covers who can connect (Control plan, Workspace Admin), how to turn on Recruiting, how to connect Greenhouse, Import settings (you must turn on Job stages or Tags; Offices is optional), Default approver (Basic, Advanced, and Custom approval), sync results, the daily auto-sync (which removes candidates who no longer match), Sync now (limited to 2 per 24 hours), Disconnect, and an FAQ. UI labels match src/languages/en.ts.
  • Classic Greenhouse article: adds a note at the top. New connections now go through Take me to New Expensify, and the webhook steps apply only to workspaces that already use them.
  • HR article: adds one line that points ATS or candidate imports to the Recruiting page.
  • docs/redirects.csv: new-expensify/connections/Greenhouse now points to the new article instead of docs/Hidden/Greenhouse, which was a copy of the Classic webhook instructions.

AI tests: I couldn't run createDocsRoutes.sh or verifyRedirect.sh locally, because npm ci failed on a Node engine mismatch (the repo needs 26.5.0; the runner has 24.19.0). I checked the redirect by hand instead. The changed line keeps the same source URL, so there's no duplicate, and the new destination isn't a redirect source anywhere, so there's no cycle.

Fixed Issues

$ https://github.com/Expensify/Expensify/issues/673061
PROPOSAL:

Tests

// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review"
// Please describe what tests you performed that validates your changed worked.

  • Verify that no errors appear in the JS console

Offline tests

QA Steps

// TODO: The human co-author must fill out the QA tests you ran before marking this PR as "ready for review".
// Please describe what QA needs to do to validate your changes and what areas do they need to test for regressions.

  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android: Native
    • Android: mWeb Chrome
    • iOS: Native
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))
  • If new assets were added or existing ones were modified, I verified that:
    • The assets are optimized and compressed (for SVG files, run npm run compress-svg)
    • The assets load correctly across all supported platforms.
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
    • I verified that all the inputs inside a form are aligned with each other.
    • I added Design label and/or tagged @Expensify/design so the design team can review the changes.
  • I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari

Co-authored-by: Garrett Knight <garrettmknight@users.noreply.github.com>
@MelvinBot
MelvinBot requested a review from a team September 28, 2026 13:35
@github-actions github-actions Bot changed the title Update help docs for Release 1: Greenhouse and Classic Parity [No QA] Update help docs for Release 1: Greenhouse and Classic Parity Sep 28, 2026
@OSBotify

This comment has been minimized.

@garrettmknight

Copy link
Copy Markdown
Contributor

@MelvinBot update the docs/articles/new-expensify/connections/Connect-a-recruiting-integration-to-Expensify.md page to follow the patterns for our HR integrations: https://help.expensify.com/articles/new-expensify/connections/Connect-BambooHR-to-Expensify. Each one has it's own page, there isn't a general 'Connect-an-hr-integration page.

…h HR integration article pattern

Co-authored-by: Garrett Knight <garrettmknight@users.noreply.github.com>
@MelvinBot

Copy link
Copy Markdown
Contributor Author

I renamed the recruiting article to a Greenhouse-specific page that follows the BambooHR article's structure, and pushed it in f6b95c2.

  • New file: docs/articles/new-expensify/connections/Connect-Greenhouse-to-Expensify.md. It replaces Connect-a-recruiting-integration-to-Expensify.md.
  • Sections now match BambooHR: who can connect, how to connect, what happens after you connect, the approval mode, what happens to approval workflows, manual sync, disconnect, and FAQ. I kept the Greenhouse-only Import settings section.
  • Removed: the "which ATS providers you can connect" section and the FAQ about the Recruiting and HR pages.
  • Links updated: the Classic Greenhouse note, the HR article pointer, and the new-expensify/connections/Greenhouse redirect in docs/redirects.csv.

createDocsRoutes and detectRedirectCycle both pass.

One thing to check: Connect-an-HR-integration-to-Expensify.md does exist on main, and this PR adds one line to it that points to the Greenhouse article. If you'd rather leave that page alone, I can revert that line. The PR description still uses the old filename, so you may want to update it.

@OSBotify

This comment has been minimized.


- Add Greenhouse candidates who match your import settings to your Expensify workspace.
- Set each candidate's expense approver, including their recruiter or recruiting coordinator from Greenhouse.
- Remove candidates from the workspace when they no longer match your import settings.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove candidates from the workspace when they no longer match your import settings.

Remove this, we don't deprovision.


- New candidates who match your import settings are added to the workspace.
- Candidate details are updated to match Greenhouse.
- Candidates who no longer match your import settings are removed from the workspace automatically.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove this, we're changing the code for this one.

Updated instructions for importing candidates from Greenhouse to clarify filter usage and sync behavior.
Removed the line about removing candidates from the workspace when they no longer match import settings.
@garrettmknight
garrettmknight marked this pull request as ready for review September 28, 2026 15:14
@melvin-bot

melvin-bot Bot commented Sep 28, 2026

Copy link
Copy Markdown

Concierge reviewer checklist:

  • I have verified the accuracy of the article
    • The article is within a hub that makes sense, and the navigation is correct
    • All processes, screenshots, and examples align with current product behavior.
    • All links within the doc have been verified for correct destination and functionality.
  • I have verified the readability of the article
    • The article's language is clear, concise, and free of jargon.
    • The grammar, spelling, and punctuation are correct.
    • The article contains at least one image, or that an image is not necessary
  • I have verified the formatting of the article
    • The article has consistent formatting (headings, bullet points, etc.) with other HelpDot articles and that aligns with the HelpDot formatting standards.
    • The article has proper text spacing and breaks for readability.
  • I have verified the article has the appropriate tone and style
    • The article's tone is professional, friendly, and suitable for the target audience.
    • The article's tone, terminology, and voice are consistent throughout.
  • I have verified the overall quality of the article
    • The article is not missing any information, nor does it contain redundant information.
    • The article fully addresses user needs.
  • I have verified that all requested improvements have been addressed

For more detailed instructions on completing this checklist, see How do I review a HelpDot PR as a Concierge Team member?

cc @kadiealexander

@melvin-bot
melvin-bot Bot requested review from aimane-chnaif and kadiealexander and removed request for a team September 28, 2026 15:14
@melvin-bot

melvin-bot Bot commented Sep 28, 2026

Copy link
Copy Markdown

@aimane-chnaif @kadiealexander One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

NOTE: It looks like docs/redirects.csv was modified in this PR. Please see this SO for special instructions on how to review changes to that file.

@OSBotify

This comment has been minimized.

@garrettmknight

garrettmknight commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

@kadiealexander @stephanieelliott ready for review, a couple notes:

  • We originally scoped automatic removal, but we're removing it. So any points mentioning that should be scrubbed, but let me know if you catch anything further.
  • I think the examples are really helpful, but I'm not sure how standard they are and if we have a pattern somewhere for them
  • We'll add an overarching 'Connect an ATS' page once we launch the next ATS integration. For now, sticking to a single Greenhouse page.

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

HelpDot Documentation Review

Overall Assessment
This PR adds a new NewDot article, Connect-Greenhouse-to-Expensify.md, documenting the new workspace Recruiting integration, plus a note on the Classic Greenhouse article, a one-line pointer in the HR integration article, and an updated redirect. The changes are well-structured, task-focused, and closely aligned with the governance files. Content quality is strong; the main deduction is a heading-hierarchy violation in the new article.

Scores Summary

  • Readability: 9/10 - Clear, scannable, sequential numbered steps; concrete worked examples; concise benefit-focused intro. Excellent step formatting.
  • AI Readiness: 7/10 - Task-based headings, full feature names, and a complete YAML block including internalScope. Deducted because the new article uses level-3 (three-hash) sub-headings (two "Example:" headings), which violates the H1-and-H2-only hierarchy rule in HELP_AUTHORING_GUIDELINES.md Sections 4/9 and TEMPLATE.md.
  • Style Compliance: 9/10 - Buttons/tabs/toggles correctly bolded in Sentence case, the three dots rendered as the three dots (⋮), the exact unified web/mobile navigation sentence used verbatim, relative links with descriptive anchor text, FAQ questions task-based.

Key Findings

  • Heading hierarchy violation: the two level-3 "Example:" headings in the new article break the strict "only H1 and H2 for content" rule. Promote them to H2 task-based headings or fold them into the parent section.
  • Strong governance alignment across UI referencing: exact labels, correct bolding, the three dots convention, and the exact unified navigation sentence are all used correctly.
  • Cross-linking is exemplary: relative links only, descriptive anchors, and links kept out of numbered steps.
  • Redirect update is sound: same source URL, and the new destination is not itself a redirect source (no cycle or duplicate).
  • Minor: the PR description references a filename (Connect-a-recruiting-integration-to-Expensify.md) that does not match the committed file (Connect-Greenhouse-to-Expensify.md).
  • The Classic note and HR pointer are concise, correctly bold UI labels, and use descriptive relative links.

Recommendations

  • Priority: Convert the two level-3 "Example:" headings to H2 task-based headings (or restructure without a sub-heading) so the article passes the pre-publish validation checklist.
  • Confirm exact UI casing for multi-word labels against src/languages/en.ts (e.g. Job stages, Import settings, Default approver, Final approver (optional)).
  • Align the PR description article filename with the actual committed file name.

Files Reviewed

  • docs/articles/new-expensify/connections/Connect-Greenhouse-to-Expensify.md - New article; strong overall, one level-3 heading-hierarchy issue.
  • docs/articles/expensify-classic/connections/Greenhouse.md - Added top note; compliant.
  • docs/articles/new-expensify/connections/Connect-an-HR-integration-to-Expensify.md - Added cross-reference line; compliant.
  • docs/redirects.csv - Redirect target updated; valid, no cycle or duplicate.

Note: Detailed line-by-line feedback has been provided as inline comments.

Updated examples for filtering candidate imports using Job stages, Tags, and Offices.
@garrettmknight
garrettmknight requested a review from a team as a code owner September 28, 2026 15:19
@melvin-bot
melvin-bot Bot requested review from Ollyws and removed request for a team September 28, 2026 15:19
@melvin-bot

melvin-bot Bot commented Sep 28, 2026

Copy link
Copy Markdown

@Ollyws Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

NOTE: It looks like docs/redirects.csv was modified in this PR. Please see this SO for special instructions on how to review changes to that file.

@garrettmknight
garrettmknight removed the request for review from aimane-chnaif September 28, 2026 15:19

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ae316d26f5

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

@garrettmknight
garrettmknight removed the request for review from Ollyws September 28, 2026 15:20
@OSBotify

This comment has been minimized.

Clarified conditions under which the Greenhouse sync complete screen appears after a sync.
@OSBotify

This comment has been minimized.

@OSBotify

Copy link
Copy Markdown
Contributor

@sakluger sakluger left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@sakluger
sakluger merged commit 8299454 into main Sep 28, 2026
19 of 23 checks passed
@sakluger
sakluger deleted the claude-recruitingHelpDocsRelease1 branch September 28, 2026 21:21
@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/sakluger in version: 9.4.96-0 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 cancelled 🔪
🍎 iOS 🍎 cancelled 🔪

@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to staging by https://github.com/sakluger in version: 9.4.99-0 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

@OSBotify

Copy link
Copy Markdown
Contributor

🚀 Deployed to production by https://github.com/Julesssss in version: 9.4.99-2 🚀

platform result
🕸 web 🕸 success ✅
🤖 android 🤖 success ✅
🍎 iOS 🍎 success ✅

Bundle Size Analysis (Sentry):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants