FlightHired V1 — Aviation Job Board & Recruitment Platform

A full-stack aviation job board and recruitment platform built on WordPress with Felan Framework. FlightHired connects pilots and aviation professionals with employers through a multi-role system featuring candidate and employer dashboards, dual subscription packages, an Auth Gate content blur system, AI-powered CV parsing, hierarchical location taxonomy, SEO schema implementation, and a custom job application pipeline — delivered across multiple major development phases with continuous live iteration.
FlightHired V1 — Aviation Job Board & Recruitment Platform
Overview
FlightHired is a niche aviation recruitment platform connecting pilots and flight crew professionals with employers in the aviation industry. The platform evolved through multiple major development phases — from a foundational job board with custom application logic, through dual candidate and employer subscription systems with a sophisticated content gating engine, to AI-powered CV parsing, structured location taxonomy, and technical SEO infrastructure — all built on WordPress and a heavily customized Felan Framework.
The Challenge
The project demanded far more than a standard job board, evolving in complexity across each phase. Key challenges included:
- Building a multi-role platform (candidates, employers, admins) with distinct dashboards and permissions
- Extending the Felan Framework — a third-party theme/plugin system — to support recurring payments, aviation-specific data, and dual package systems it wasn't built for out of the box
- Designing a server-side Auth Gate system that blurs sensitive job and company data based on user role and package status, replacing earlier hard-coded overlay approaches
- Building a candidate (freelancer) package and payment system mirroring the employer package system, with auto-renewal, upgrade modals, and featured candidate perks
- Converting flat location data into a proper Country → State → City taxonomy hierarchy
- Integrating an AI CV parsing service to auto-populate pilot profile fields from an uploaded PDF resume
- Diagnosing deep Stripe payment issues spanning webhook conflicts, legacy checkout behavior, and default payment method bugs
- Maintaining platform stability across constant live deployments while running parallel local, development, and live environments
Scope of Work
The platform was delivered across 23+ pages spanning marketing, job board, auth, candidate dashboard, employer dashboard, and system utility categories, supported by a custom-developed plugin layer extending the Felan Framework core.
Core Platform Build & Stabilization
The foundational phase established the platform. A critical bug in Felan's apply-job logic was identified — external apply had no login check and was missing email handling entirely — and was rewritten to enforce login and support email applications. An aircraft-matching bug caused by multi-array data handling was resolved. Job expiry was set to 30 days by default with automatic listing removal. Recurring subscription payments did not exist natively in Felan — after two failed approaches, a working recurring system was built by directly modifying the framework's core payment classes. Custom meta fields for company name and logo were added to support bulk-uploaded jobs with branded company display. A full bulk job upload system was built around a structured Google Sheet with custom columns and complete documentation.
Candidate Packages, Auth Gate & Access Control
An Auth Gate implementation was built to blur sensitive job listing data for guests, later extended to cover non-paid employers and pilots as well — not just guests — blurring company names and locations based on package status. A complete candidate (freelancer) package system was built, mirroring the employer package architecture: package listing, user package, payment, and payment-completed pages, with auto-renewal, package change warnings, renewal badges, and cancellation flows. A server-side blur and redaction system with package-based access control replaced the original front-end overlay approach, ensuring freelancers without an active paid package could not bypass restrictions to apply on jobs. A package upgrade modal flow was added during the job apply process for non-paid candidates, alongside role-specific informational notice blocks for blurred content across job listings.
Location & Data Structure
Flat location data was converted into a proper Country → State → City taxonomy hierarchy, visible in the WordPress admin and exposed as a filter dropdown on archive pages. Location display formats for both jobs and freelancer profiles were standardized to City, State, Country, with "State" relabeled to "State / Province" platform-wide. A "Not Disclosed" salary option was added for employers preferring not to list compensation.
AI CV Parsing
A custom CV parsing plugin was developed for pilots and freelancers, integrating with a RunPod-hosted CV parser endpoint. The feature supports PDF CV upload with a live progress modal, automatically mapping extracted resume data into the existing Felan freelancer profile fields before the native publish/save action completes — significantly reducing manual profile entry for candidates.
Package Page Redesign & Bug Resolution
Both the Employer and Freelancer Package pages were redesigned to visually match a unified package widget layout, with corresponding redesigns of the Payment pages and a centralized, redesigned package upgrade modal. A UTF-8 BOM issue causing blank archive items across all archive pages was identified and fixed. Cron-based job expiration bugs were resolved, including incorrect post type querying, missed-schedule publishing errors caused by a removed WordPress core hook, broken job re-extension after expiry, and a timezone mismatch causing jobs to expire earlier than intended — ensuring jobs reliably remained active for their full 60-day window.
Stripe & Payment Investigation
Multiple Stripe-related issues were investigated and resolved across the project, including Stripe being incorrectly pre-selected as the default payment method, a package purchase API conflict between the subdomain and main domain, and a deeper investigation into the platform's legacy Stripe Checkout implementation — documenting two resolution paths: enabling legacy checkout support or migrating to the modern Stripe Checkout integration.
SEO & Technical Infrastructure
Job schema metadata was expanded with employmentType and baseSalary fields, with postalCode and streetAddress confirmed unavailable due to the existing data structure. A SiteNavigationElement JSON-LD block was added to the site head to improve navigation indexing. Critical JavaScript dependencies for the horizontal job search widget were identified and excluded from deferred loading in the caching configuration to prevent functional breakage, while non-critical scripts were deferred with a timeout. Job Category and Job Taxonomy pages were updated to redirect to the archive page with the corresponding filter pre-selected, while retaining the original taxonomy URL for SEO purposes.
Featured Candidates & Ranking
A "Featured Candidate" package perk was implemented, with an admin-side toggle to mark freelancers as featured — automatically boosting their archive placement and displaying a "Featured" badge. A crew directory ranking logic system was implemented for the candidate module, alongside a profile completion percentage indicator on the candidate dashboard.
Documentation
A dedicated platform documentation effort was undertaken in the final weeks of the engagement — producing detailed technical and functional documentation covering the database structure, Job, Company, Employer, and Candidate modules, frontend behavior with screenshots, and a full database relationship map covering module associations and entity dependencies.
Key Features
- Multi-Role Platform — Separate flows, dashboards, and permissions for candidates, employers, and admins
- Dual Subscription Systems — Mirrored employer and candidate package architecture with auto-renewal, upgrade modals, and cancellation flows
- Server-Side Auth Gate — Role and package-based content blurring replacing hard-coded overlays
- AI CV Parsing — RunPod-integrated PDF resume parsing with automatic profile field mapping
- Hierarchical Location Taxonomy — Full Country → State → City structure with admin visibility and archive filtering
- Featured Candidate System — Package-based archive boost and featured badge display
- Custom Job Expiry Logic — 60-day expiry with resolved cron, timezone, and republishing bugs
- SEO Schema & Indexing — Job posting schema metadata and site navigation JSON-LD
- Full Platform Documentation — Database, module, and frontend documentation produced for long-term maintainability
Result
A mature, heavily iterated aviation recruitment platform — with dual subscription systems, a sophisticated server-side access control engine, AI-powered CV parsing, structured location data, technical SEO infrastructure, and comprehensive platform documentation, delivered through continuous development across multiple phases and dozens of live deployment cycles for FlightHired's pilot and aviation employer community.