Inspiration

As HR teams struggle to bridge the technical gap with engineering, we saw an opportunity to leverage Atlassian's ecosystem to transform technical hiring. The challenge? HR teams spend weeks waiting for engineers to define roles, manually reviewing code, and coordinating interviews—all while top talent slips away.

We asked: What if HR could generate contextual job descriptions from existing project documentation? What if candidate code could be automatically analyzed against real team standards? What if interviews scheduled themselves?

Pye Smart HR was born from this vision: eliminate friction, ensure zero-bias evaluation, and give HR teams the clarity and speed they need to stay ahead of the competition.

What We Learned

Building on Atlassian Forge taught us the power of serverless architecture and seamless integrations. We discovered:

  • Context Injection works: Feeding AI models with actual project documentation produces more accurate, contextual job descriptions than generic templates
  • Team baselines matter: Evaluating candidates against real team standards (not generic checklists) ensures better cultural and technical fit
  • Automation reduces bias: Objective, AI-driven scoring eliminates human bias while maintaining speed
  • Forge Storage enables cross-app workflows: Sharing data between Confluence, Bitbucket, and Jira apps creates powerful end-to-end automation

How We Built It

Pye Smart HR consists of three integrated Forge apps:

1. Confluence App (pye-forge-jd)

  • JD Generator: Uses DeepSeek AI to analyze PRD pages and generate comprehensive job descriptions
  • Shareable Pages: Creates candidate-facing JD pages with application instructions
  • Context Extraction: Pulls technical stack, architecture patterns, and requirements from Confluence documentation

2. Bitbucket App (pye-forge-bitbucket)

  • Team Baseline Configuration: Allows engineering managers to define technical standards (architecture, frameworks, testing, code quality)
  • Automatic Analysis: Triggers on commit events to analyze candidate code against team baseline
  • Skill Radar: Generates four-dimensional scoring (Clarity, Builder, Fast Follower, Early Adopter)
  • Auto-ticket Requests: Creates interview ticket requests for high-scoring candidates (≥80%)

3. Jira App (pye-forge-jira)

  • Talent Leaderboard: Displays all candidates ranked by alignment score
  • Interview Automation: Processes pending ticket requests and creates Jira issues automatically
  • Manual Override: Allows HR to create interview tickets for any candidate

Technical Architecture

  • Frontend: React with Forge UI Kit (Confluence Macro, Bitbucket Settings Page, Jira Dashboard)
  • Backend: Forge Functions (serverless Node.js)
  • AI: DeepSeek API for JD generation and code analysis
  • Storage: Forge Storage API (shared across all apps)
  • Integrations: Confluence REST API, Bitbucket REST API, Jira REST API

Challenges We Faced

  1. Scope Separation: Initially tried to mix workspace (Bitbucket) and site (Confluence/Jira) scopes in one app. Solution: Split into three apps, each optimized for its platform.

  2. JD Formatting: Converting markdown to Confluence storage format while preserving structure. Solution: Built custom markdown-to-Confluence converter with proper heading and list handling.

  3. Cross-App Data Sharing: Ensuring all apps can read/write to the same storage namespace. Solution: Used Developer Space to share storage across apps.

  4. AI Prompt Engineering: Getting consistent, high-quality outputs from DeepSeek for both JD generation and code analysis. Solution: Iterative prompt refinement with context injection patterns.

  5. Real-time Analysis: Ensuring candidate code analysis happens immediately on commit. Solution: Leveraged Bitbucket's avi:bitbucket:created:commit trigger for instant processing.

Impact

Pye Smart HR transforms technical hiring from a weeks-long manual process into a minutes-long automated workflow:

  • HR teams generate contextual JDs without waiting for engineers
  • Candidates submit code with zero friction (just push to repo)
  • Engineering managers define standards once, evaluate all candidates objectively
  • Hiring teams see ranked candidates in real-time, never miss top talent

The result? Faster hiring, better matches, zero bias, and complete transparency from JD to interview.

Built With

Share this project:

Updates