Eduplace Recruitment Operating System

Complete system architecture documentation for the teacher recruitment platform. This document serves as the single source of truth for all system components, data structures, workflows, and integrations.

🏗️ System Overview

Architecture Diagram

Web Forms Teacher Submissions Email Import Candidate Profiles Resume Parser Skill Extraction AIRTABLE BASE appC97LZ25VRInfRq 16 Tables | Relational Data | 5 AI Fields Candidates | Vacancies | Clients | Applications | Placements | Interviews | Tasks | Documents Recruiter Dashboard Client Dashboard Executive Dashboard Finance Dashboard

Technology Stack

Data Layer

Airtable - Relational database with 16 tables, API access, and scripting capabilities

Primary DB

Integration Layer

Make.com - Workflow automation, API orchestration, and webhook management

Automation

AI & Processing

Resume Parser API - Extract skills, experience, and qualifications from CV files

AI/ML

Communication

WhatsApp Business API - Direct candidate messaging and notifications

Messaging

Email Integration

SMTP/IMAP - Email capture, forwarding, and auto-responses

Messaging

Document Generation

PDF Generation API - Create invoices, offer letters, and reports

Output

Design Principles

Principle Description Implementation
Single Source of Truth All data lives in Airtable. No data silos or duplicates. Relational schema, deduplication rules, audit trail
Workflow Automation Manual tasks are automated when possible Make.com automations, email triggers, status-based actions
Transparency Every action is logged, every decision is tracked Communication Log, Activity timestamps, Notes fields
Scalability System grows without losing performance Modular interface design, batch processing, archival
Role-Based Access Users see only what they need for their role 6 roles with granular permissions per table
Data Quality Consistent, validated data throughout Required fields, validation rules, compliance checks

Phase Plan & Timeline

1

Foundation

Weeks 1-3

Schema design, core interfaces, basic automations

2

Intelligence

Weeks 4-6

Resume parser, advanced automations, reporting

3

Client Experience

Weeks 7-10

Client dashboards, branded outputs, finance tools

4

Enterprise

Optional

Custom frontend, API, SaaS multi-tenancy

📊 Data Model

Entity Relationship Diagram

Candidates Full Name Email, Phone Teaching Type Pipeline Stage ✦ PK: RecID Vacancies Role Title Location Client (link) Status ✦ PK: RecID Clients Organisation Name Contact Info Country Status ✦ PK: RecID Applications (JUNCTION TABLE) Candidate (link) Vacancy (link) Client (link) Stage Date Submitted ✦ PK: RecID Placements Candidate (link) Client (link) Start Date Status ✦ PK: RecID Interviews Candidate (link) Application (link) Date/Time Outcome ✦ PK: RecID Teacher Submissions Raw intake → Candidates Documents Passport, Certs, References Tasks Follow-ups, screening, compliance Communication Log Emails, calls, messages, activity Fees & Revenue Invoices, payments, financial tracking Recruiters Team members, roles, activity

Core Tables (16 Total)

1. Teacher Submissions (tblGoBhaRRPBJDBZo)

Purpose: Raw intake from website forms. Auto-converts to Candidates.

Key Fields: Form submission data (name, email, CV, teaching preferences)

Relationships: → Candidates (one-to-one on creation)

Governance: Auto-processed by Make webhook. Archive after 90 days.

2. Candidates (tblPnMsI1upneASSY)

Purpose: Master candidate database. The single source of candidate truth.

Key Fields (40+): Full Name, Email, Phone, WhatsApp, Teaching Type, Primary/Secondary Subjects, Grade Range, Placement Preference, CV, Pipeline Stage, Consent fields (5), Notes, Date Submitted, Experience (years), Highest Qualification, LinkedIn, Desired Locations, Passport, Visa Status, GCC Eligibility, Risk Flag, Last Activity Date

AI Fields: Executive Summary, Extracted Teaching Experience, Resume Parsed status

Relationships: Links to Applications, Tasks, Interviews, Documents, Experience, Communication Log, Placements, Recruiters

Governance: Required fields by stage. Deduplication on email+phone. Audit trail on all changes.

3. Vacancies (tblzvVLKq5AQ1rtvG)

Purpose: Open roles from clients. Drives the supply-demand matching.

Key Fields: Role Title, Location, Type, Summary, Full Description, Responsibilities, Requirements, Subject, Grade Range, Curriculum, Start Date, Status, Date Posted, Industry, Salary/Package, Visa Sponsorship, Accommodation, Linked Client, Account Manager, Placement Fee, Priority

Relationships: Links to Clients, Applications, Tasks, Interviews, Placements

Governance: Required fields before "Active" status. Auto-archive after filled or 6 months expired.

4. Clients & Employers (tblD6c8lsJehrwbgp)

Purpose: All hiring organisations. Schools, international employers, hospitality chains.

Key Fields: Organisation Name, Country, City, Contact Info, Subject Needed, Grade Range, Curriculum, Start Date, Number of Positions, School Type, Status, DBE Quintile, Service Tier, Pro Bono flags, International Pipeline Flag, Industry, Fee Type, Fee Amount, Account Manager, Payment Terms, Last Activity Date

Relationships: Links to Vacancies, Applications, Placements, Tasks, Interviews, Communication Log, Fees & Revenue

Governance: Deduplicate on org name+country. Track service tier and pro bono status separately.

5. Applications (tblHU2swkWz9xPMTR) - JUNCTION TABLE

Purpose: Critical junction table connecting candidates to vacancies. Tracks the journey from submission to placement.

Key Fields: Application Reference, Candidate (link), Vacancy (link), Client (link), Recruiter (link), Stage (Screening/Submitted/Interview/Offer/Placed/Rejected/Withdrawn), Date Submitted, Interview Date, Offer Status, Rejection Reason, Notes, Created Date, Last Updated

Relationships: Links to Candidates, Vacancies, Clients, Recruiters, Interviews, Placements

Governance: Immutable audit trail. Every stage change logged with timestamp. Can't delete, only mark withdrawn.

6. Placements (tbljCoyaDjtzUKKLm)

Purpose: Successful placements. Links to invoicing and revenue tracking.

Key Fields: Placement Name, Candidate (link), Client (link), Role, Start Date, Status, Notes, Date Placed, Placement Fee (USD), Fee Type, Fee Paid, Industry, Pro Bono flag, Recruiter (link), Guarantee End Date, Vacancy (link), Application (link)

Relationships: Links to Candidates, Clients, Applications, Vacancies, Recruiters, Fees & Revenue

Governance: Created from Application when status = "Placed". Immutable after 30 days.

7. Interviews (tbl7SXbehX3aJbjES)

Purpose: Track candidate interviews. Links application progress to interview feedback.

Key Fields: Interview Reference, Candidate (link), Vacancy (link), Client (link), Application (link), Interview Stage, Date/Time, Interviewer, Feedback, Outcome, Recruiter (link)

Relationships: Links to Candidates, Vacancies, Clients, Applications, Recruiters

Governance: Auto-created when Application stage = "Interview". Immutable after completion.

8. Tasks (tblHth6x2QnFZVpEZ)

Purpose: Workflow management. Drives recruiter activity and follow-up discipline.

Key Fields: Title, Owner (link to Recruiters), Linked Candidate, Linked Vacancy, Linked Client, Due Date, Priority (High/Medium/Low), Status (Open/Completed/Overdue), Task Type (Follow-up/Screen Candidate/Document Chase/Interview Prep/Client Update/Resume Review/Reference Check/Compliance/Other), Notes, Completed Date

Relationships: Links to Recruiters, Candidates, Vacancies, Clients

Governance: Auto-created by triggers. Assignee accountability tracked via Due Date and Completed Date.

9. Candidate Documents (tblHbI1ZlTGW6MZ0t)

Purpose: Document verification and compliance tracking.

Key Fields: Document Name, Candidate (link), Document Type (Passport/National ID/Degree/Teaching Certificate/CV/Police Clearance/Medical/Reference/Visa/Work Permit/SACE/Other), File, Expiry Date, Verified, Missing flag, Verified By (link to Recruiters), Verification Date, Notes

Relationships: Links to Candidates, Recruiters

Governance: Compliance checks. Alert when expiry date within 30 days.

10. Candidate Experience (tblxbDevO0PY19Wzv)

Purpose: Work history extracted from CV or self-reported.

Key Fields: Experience Entry, Candidate (link), Employer, Role Title, Country, City, Start Date, End Date, Current Role flag, Description, Reason for Leaving, Industry

Relationships: Links to Candidates

Governance: Auto-populated by resume parser. Editable by recruiter.

11. Communication Log (tbl7vQH6McfufblE9)

Purpose: Complete communication trail. CRM backbone.

Key Fields: Summary, Type (Email/WhatsApp/Phone Call/In-Person/LinkedIn/Other), Linked Candidate, Linked Client, Date, Direction (Inbound/Outbound), Owner (link to Recruiters), Detail, Follow-up Required flag, Follow-up Date

Relationships: Links to Candidates, Clients, Recruiters

Governance: All communications auto-logged. Immutable. Critical for compliance and dispute resolution.

12. Recruiters (tblA47YKd73wIwseA)

Purpose: Team member roster and permissions.

Key Fields: Full Name, Email, Phone, Role (Admin/Director/Recruiter/Sourcer/Compliance/Finance), Status (Active/Inactive), User Account (Airtable collaborator), Start Date, Notes

Relationships: Reverse links from Candidates, Vacancies, Clients, Applications, Tasks, Interviews, Documents, Communication Log, Placements, Fees & Revenue

Governance: Single source for team structure and access control.

13-16. Support Tables

Contacts (tbljo14y1gTNWbbKO): General enquiries and leads. Auto-ingestion point.

Vacancy Alerts (tblMhdAgHZB4fiLgr): Email notification subscribers. Automated digest triggers.

WCED School Pipeline (tblIuXKs5Mgzq3hd9): Outbound lead generation for South African schools.

Fees & Revenue (tblOp40e8ApV6IeL4): Financial tracking. Fields: Fee Reference, Amount (USD), Fee Type, Industry, Invoice Date, Due Date, Paid Date, Payment Status, Notes, Client (link), Placement (link), Recruiter (link)

Data Flow Architecture

The primary data flow moves through these stages in sequence:

1. Candidate Entry: Teacher Submissions → Candidates table

2. Matching: Candidates + Vacancies → Applications (junction)

3. Evaluation: Applications → Interviews

4. Conversion: Applications (stage=Placed) → Placements

5. Revenue: Placements → Fees & Revenue (invoicing)

6. Communication: All interactions logged to Communication Log

7. Tasks: Auto-created for follow-ups, document chasing, compliance

🔗 Relationship Map

Table Relationships & Key Connections

From Table To Table Relationship Type Cardinality Purpose
Candidates Applications Lookup 1:N One candidate can apply to multiple vacancies
Vacancies Applications Lookup 1:N One vacancy receives multiple applications
Clients Vacancies Lookup 1:N One client has multiple open roles
Applications Placements Lookup 1:1 One successful application = one placement
Applications Interviews Lookup 1:N One application may have multiple interview rounds
Placements Fees & Revenue Lookup 1:1 Each placement triggers one invoice
Candidates Documents Lookup 1:N Candidate has passport, certificates, etc.
Candidates Experience Lookup 1:N Candidate has multiple work history entries
Recruiters All Tables Lookup 1:N Team members own tasks, conduct interviews, verify docs
Any Table Communication Log Lookup 1:N All interactions logged and traceable

Junction Table: Applications

Why Applications is Critical

Applications is a junction table that resolves the many-to-many relationship between Candidates and Vacancies. Without it:

  • We couldn't track that candidate A applied to vacancy B on date X
  • We couldn't see all candidates who applied for one role
  • We couldn't manage multiple rounds of the same person for the same role
  • We couldn't track stage progression (Screening → Submitted → Interview → Offer → Placed)

Applications stores the state of each candidate-vacancy pairing and drives all subsequent workflows.

Lookup & Rollup Dependencies

Candidates Table Rollups
Field Name Formula Purpose
Total Applications COUNTA(Applications) Count of all applications this candidate submitted
Active Applications COUNTIF(Applications.Stage, NOT "Rejected", NOT "Withdrawn") Pending applications in pipeline
Placements Count COUNTA(Placements) Number of successful placements
Last Interaction MAX(Communication Log.Date) Most recent contact date
Documents Status IF(COUNTA(Documents) = COUNTIF(Documents.Verified, TRUE), "Complete", "Incomplete") All required documents verified?
Vacancies Table Rollups
Field Name Formula Purpose
Total Applications COUNTA(Applications) How many candidates applied
Interview Count COUNTA(Interviews) Number of interviews scheduled
Screening Queue COUNTIF(Applications.Stage, "Screening") Pending screening applications
Days Open DATETIME_DIFF(TODAY(), {Date Posted}, "days") How long vacancy has been open
Fill Status IF(Status = "Filled", "CLOSED", IF(COUNTIF(Applications.Stage, "Placed") > 0, "Pending Fill", "Open")) Current fill status
Clients Table Rollups
Field Name Formula Purpose
Open Vacancies COUNTIF(Vacancies.Status, "Active") Current open roles
Total Placements COUNTA(Placements) Lifetime placements with this client
Revenue (YTD) SUMIF(Fees.Date, >= START_OF_YEAR(), Fees.Amount) Year-to-date revenue from client
Pipeline Stage IF(COUNTIF(Vacancies, TRUE) > 0, "Active", IF(COUNTIF(Placements, TRUE) > 0, "Inactive", "Prospect")) Client relationship status
Last Activity MAX(Communication Log.Date) Most recent interaction

Primary & Foreign Keys

Primary Keys (Record IDs): Every Airtable record has an auto-generated RecID that uniquely identifies it. This is the primary key for every table.

Foreign Keys (Links): When one table references another, it uses a "Link to another record" field. This creates the relationship. For example:

  • Applications.Candidate → RecID of Candidates record
  • Applications.Vacancy → RecID of Vacancies record
  • Placements.Candidate → RecID of Candidates record
  • Interviews.Application → RecID of Applications record

Reverse Links: When you create a link from Table A to Table B, Airtable automatically creates a reverse link in Table B back to Table A. This enables bi-directional queries and rollups.

🔄 End-to-End Lifecycle

The 10-Stage Candidate Journey

1

Application Intake

Triggers: Website form OR email resume

Tables: Teacher Submissions → Candidates

Automations: Create candidate record, send confirmation

2

CV Processing

Triggers: CV uploaded

Tables: Candidate Documents, Candidate Experience

Automations: Parse CV, extract experience, generate AI summary

3

Qualification Review

Triggers: Manual review by Recruiter

Tables: Candidates (update Pipeline Stage)

Automations: Flag risk items, create compliance tasks

4

Matching & Application

Triggers: Candidate approved OR vacancy matches profile

Tables: Applications (new record)

Automations: Create application, notify recruiter, log communication

5

Screening

Triggers: Application stage = Screening

Tables: Tasks (create "Screen Candidate"), Communication Log

Automations: Assign screener, set due date, send prep materials

6

Interview Scheduling

Triggers: Application stage = Interview

Tables: Interviews (create record), Tasks (update)

Automations: Send calendar invite, notify client, prepare interview kit

7

Interview Completion

Triggers: Interview record completed

Tables: Interviews (feedback logged), Applications (stage update)

Automations: Log feedback, update candidate status, create follow-up task

8

Offer & Negotiation

Triggers: Application stage = Offer

Tables: Applications (offer_status field), Communication Log

Automations: Generate offer letter, send to client, track response

9

Placement & Onboarding

Triggers: Application stage = Placed

Tables: Placements (new), Tasks (onboarding checklist)

Automations: Create placement record, trigger invoicing, onboarding emails

10

Revenue Tracking

Triggers: Placement created

Tables: Fees & Revenue (new), Communication Log

Automations: Generate invoice, track payment, close case

State Transitions & Validations

From Stage To Stage Requirements Automations Triggered
New Applicant Screening CV uploaded, basic info complete Assign screener, create task, send confirmation
Screening Submitted to Client CV reviewed, no risk flags, documents verified Generate submission package, send to client, log communication
Submitted to Client Interview Client approval, interview date set Create interview record, send calendar invite, prep materials
Interview Offer Stage Positive interview feedback, client approval Generate offer letter, send to all parties, track deadline
Offer Stage Placed Candidate acceptance, start date confirmed, contract signed Create placement, trigger invoicing, onboarding sequence
Any Stage Rejected Rejection reason documented Log reason, archive application, create follow-up task
Any Stage On Hold Hold reason and duration Pause automations, set re-evaluation date

Parallel Workflows

While the candidate is in the pipeline, these parallel workflows run independently:

Document Verification Workflow

Compliance checks run continuously. When documents are uploaded: verify each document type, check expiry dates, flag missing docs, create tasks for verification, send reminders for expiring documents (30-day warning).

Communication Tracking Workflow

Every interaction is logged automatically or manually to Communication Log. Daily digest sent to recruiter of follow-ups needed. WhatsApp notifications sent at key milestones (application received, interview scheduled, offer sent).

Task Management Workflow

Tasks auto-created at each stage. Overdue tasks flagged daily. Priority tasks escalated. Owner accountability tracked. Completion logged with timestamp.

Financial Tracking Workflow

Once application moves to "Placed" stage: Create invoice, set due date based on fee type, track payment status, issue reminder emails on due date, close when paid.

💻 Dashboard Specifications

1. Recruiter Dashboard

Purpose

Daily work hub for managing candidates, applications, and follow-ups.

Layout Zones

Top Bar (KPIs): Tasks due today, overdue tasks, new applications, interviews this week

Left Sidebar: My Candidates (searchable list), My Vacancies, My Tasks, My Clients

Main Content: Detailed view of selected candidate or application with full history

Right Sidebar: Quick actions (Email, WhatsApp, SMS), Recent communications, Document status

Key Views

Applications Queue (by stage), Task List (by due date), Candidate Pipeline (by status), Interview Schedule (by date), Recent Activity

Filters

By recruiter, by vacancy, by client, by stage, by date range, by priority

Data Sources

Candidates, Applications, Tasks, Interviews, Communication Log, Placements

2. Client Dashboard

Purpose

Portal for clients to track their open roles and submitted candidates.

Layout

Header: Client name, account manager, contact info

Main Content: Open vacancies (cards), submitted candidates (list), interview schedule, communication thread

Right Panel: Quick stats (total placements, active roles, pending interviews)

Key Views

Active Vacancies (with application counts), Candidate Pipeline (submitted/interviewed/offered/placed), Interview Calendar, Communication History

Filters

By vacancy, by status, by date submitted

Data Sources

Vacancies, Applications (linked to client), Interviews, Placements, Communication Log

3. Executive Dashboard

Purpose

High-level business metrics for leadership and strategic planning.

Key Metrics (Top Row)

Total Placements (YTD), Total Revenue (USD), Active Candidates, Open Vacancies, Placement Rate (%), Average Fee

Charts & Visualizations

Placements by month (trend), Revenue by client (pie), Placements by industry (bar), Conversion funnel (application → placed)

Leaderboard

Top recruiters (by placements), Top clients (by revenue), Top sources (by conversions)

Pipeline Health

Applications in each stage (waterfall), interviews scheduled, offers pending, risk flags

Data Sources

Placements, Fees & Revenue, Applications, Interviews, Candidates, Vacancies

4. Compliance Dashboard

Purpose

Risk management and regulatory compliance tracking.

Key Sections

Expiring Documents: All documents expiring within 30 days. Filters by document type, candidate, status.

Risk Flags: Candidates flagged with risk items. By risk type (visa, qualification, reference, medical).

Verification Status: Compliance checklist per candidate. Documents verified, references checked, background cleared.

Missing Documents: Candidates with incomplete documentation. Priority by placement stage.

Data Sources

Candidate Documents, Candidates (risk flag field), Communication Log

5. Finance Dashboard

Purpose

Invoice management, payment tracking, and revenue forecasting.

Key Sections

Outstanding Invoices: All unpaid invoices. Sorted by due date, amount, client. Includes aging (0-30, 30-60, 60+).

Paid Invoices: Monthly revenue tracking. Compared to forecast and previous year.

Fee Types: Revenue breakdown by fee type (upfront, on-placement, monthly retainer).

Client Accounts: A/R by client. Payment terms, historical compliance.

Cash Flow Forecast: Projected revenue based on placement pipeline.

Data Sources

Fees & Revenue, Placements, Clients

👥 Roles & Permissions

Role Definitions

Admin

Responsibility: Full system access. Database management, user management, integrations.

Access: All tables, all records, all views

Team Size: 1-2 people

Director

Responsibility: Strategic oversight, reporting, team management.

Access: All tables (read), edit Clients, Vacancies, Recruiters

Team Size: 1-2 people

Recruiter

Responsibility: Manage candidate pipeline, conduct interviews, close placements.

Access: Candidates, Applications, Interviews, Tasks (assigned to self), Communication Log

Team Size: 3-10 people

Sourcer

Responsibility: Find and qualify candidates. Light pipeline management.

Access: Candidates (create/edit own), read Applications, read Vacancies

Team Size: 1-3 people

Compliance

Responsibility: Document verification, compliance checks, risk management.

Access: Candidates, Documents, Communication Log, Compliance Dashboard

Team Size: 1 person

Finance

Responsibility: Invoicing, payment tracking, revenue reporting.

Access: Fees & Revenue, Placements (read), Clients (read), Finance Dashboard

Team Size: 1 person

Table-Level Access Matrix

Table Admin Director Recruiter Sourcer Compliance Finance
Candidates R/W R R/W R/W* R -
Vacancies R/W R/W R - - -
Clients R/W R/W R - - R
Applications R/W R R/W R R -
Placements R/W R R/W - R R
Interviews R/W R R/W - - -
Tasks R/W R R/W** R/W** - -
Documents R/W R R/W R/W R/W -
Communication Log R/W R R/W R R -
Fees & Revenue R/W R R - - R/W
Recruiters R/W R - - - -

*Sourcer can create/edit own candidates only. **Tasks can only edit tasks assigned to self.

Record-Level Permissions

Scenario Rule
Recruiter views candidate Can see all candidates, but can only edit fields in their own applications/tasks
Recruiter views tasks Can see all tasks, but can only complete/edit tasks assigned to them
Sourcer creates candidate Candidate is created and visible to all. Sourcer can edit their own created records.
Compliance verifies document Updates "Verified" field and "Verified By" field. Immutable once verified.
Finance marks invoice paid Updates payment status and date. Can view all invoices but only edit own entries.

📋 Data Governance

Deduplication Rules

Candidate Deduplication

Primary Match: Email address (case-insensitive)

Secondary Match: Phone number OR (First Name + Last Name + DOB)

Action: System alerts on submission if match found. Recruiter manually reviews and merges if duplicate.

Merge Process: Keep most recent data. Link all applications to primary record. Archive secondary record.

Vacancy Deduplication

Primary Match: Client + Role Title + Location

Action: System alerts if exact match found for same client. Prevents duplicate postings.

Client Deduplication

Primary Match: Organization Name (phonetic) + Country

Action: System alerts if similar names found in same country. Manual review required.

Required Fields by Pipeline Stage

Stage Required Fields Validation Rule
New Applicant Full Name, Email, Phone, Teaching Type Email must be valid format. Phone must be 10+ digits.
Screening + CV uploaded, Highest Qualification CV must be PDF/DOC. File size < 10MB.
Interviewed + Interview Date, Interviewer, Outcome Interview date must be in past. Outcome must be selected.
Submitted to Client + Vacancy linked, Client linked, Submission Date Vacancy must be active. Client must have open positions.
Offer Stage + Offer Status, Offer Details Offer status = Pending, Accepted, or Rejected.
Placed + Start Date, Placement Fee, Recruiter Start date >= today. Fee > 0. Recruiter assigned.

Audit Trail & Compliance

What Gets Logged

Every change to core fields (Pipeline Stage, Offer Status, Documents Verified) is logged with: Changed By (user), Changed At (timestamp), Previous Value, New Value.

Retention Policy

Active Records: Keep indefinitely. Active = current candidate or candidate with active application within 12 months.

Inactive Records: Archive after 24 months of inactivity. Move to archive table but retain for compliance.

Teacher Submissions: Auto-delete after 90 days once converted to Candidate. Or delete on demand after 12 months if not converted.

Communication Log: Keep all entries. Searchable archive for 7 years for legal compliance.

Naming Conventions

Candidate Names: First Last (no special characters except hyphen/apostrophe). Standardize to Title Case.

Vacancy Titles: Use standard job titles (e.g., "Primary Teacher - Grade 3", not "Gr3 Tchr"). Include subject and grade when applicable.

Client Names: Official organization name. Include "School", "International", etc. for clarity. No acronyms unless universally known.

Task Titles: Action-verb format. "Screen CV for grade 5 position" not "screening". Use consistent verbs (Screen, Prepare, Contact, Verify, etc.).

Field Names: PascalCase for record names. snake_case for internal field IDs. Clear, singular nouns.

Application References: Auto-generated: "APP-[Year][Month]-[Candidate Initials]-[Vacancy ID]" e.g., "APP-202604-JDM-VAC001"

Data Quality Standards

Every record must pass these checks to move forward in the pipeline:

  • No blank required fields for current stage
  • Email addresses are valid and unique (no duplicates)
  • Phone numbers are formatted consistently
  • Dates are in past (except future start dates)
  • Currency amounts are positive numbers
  • Links point to existing records
  • Risk flags are documented with reason
  • Status fields match allowed values

🤖 Resume Parser Architecture

Parser Overview

The Resume Engine automatically extracts key information from uploaded CVs, populates candidate fields, and enables intelligent matching with vacancies.

3 Format Types

GCC Format

For Middle East roles (UAE, Saudi, Qatar). Extraction focus: Work visa eligibility, passport status, Islamic qualification recognition (Al Azhar, etc.)

Middle East

USA Format

For North America roles. Extraction focus: State teaching licenses, US degree recognition, work authorization status, SAT/ACT experience

North America

Global Format

For all other regions (UK, Canada, Australia, SA). Extraction focus: English-medium qualifications, international curriculum experience, teaching certifications

International

Parsing Workflow

Upload CV .PDF/.DOC/.DOCX Detect Format GCC/USA/Global Extract Data Experience, Skills, Education Validate & Flag Issues Risk detection AI Summary Generate executive summary Airtable Update Extracted Fields: Full Name, Email, Phone Teaching Experience (years), Skills (subjects) Degree, Certifications, Work History Visa Status, Nationality, Languages Risk Flags Detected: - Invalid teaching certs - Expired passport/visa - Gaps in work history

Extracted Fields (Minimum Set)

Field Data Type Usage Confidence Level
Full Name Text Candidate identification 95%+
Email Email Deduplication, communication 90%+
Phone Phone Direct contact 85%+
Teaching Experience (years) Number Qualification matching 85%+
Primary Subject Text Vacancy matching 80%+
Highest Qualification Single Select Compliance, client requirements 85%+
Degree/University Text Qualification verification 80%+
Work History Dates Dates Gap detection, timeline 90%+
Languages Spoken Text Client location matching 75%+
Certifications Text Teaching qualification 80%+

Approval Workflow

High Confidence (85%+)

Auto-populate fields and mark as "Parsed". Recruiter reviews but not required to approve.

Medium Confidence (70-84%)

Flag for manual review. Create task: "Review parsed CV fields". Recruiter corrects as needed before advancing candidate.

Low Confidence (<70%)

Alert recruiter. Require manual entry of critical fields before candidate can move to Screening stage.

Integration with Airtable

Trigger: File uploaded to "CV" field in Candidates table

Process: Make webhook calls resume parser API → receives JSON → auto-maps to Airtable fields

Automation: Create linked Candidate Experience records for each job listed

Output: Update Candidates.Resume Parsed = "Yes", populate extracted fields, generate Executive Summary AI field

🔌 Integration Map

API Layer

Integration Purpose Data Flow Frequency
Airtable API Core data layer. Read/write all records, create links, run scripts Bi-directional Real-time
Make.com Webhooks Workflow automation. Trigger actions on data changes. Inbound: Airtable → Make → External APIs Instant on trigger
Resume Parser API Extract CV data. Populate candidate fields automatically. Inbound: CV file → Parser → JSON → Airtable On CV upload
Email (SMTP/IMAP) Email capture, forwarding, auto-responses. All communications logged. Bi-directional Real-time
WhatsApp Business API Direct candidate messaging. Interview confirmations, offer sends. Outbound from Make On trigger
PDF Generation Create invoices, offer letters, submission packages Outbound from Make On demand
Google Calendar Interview scheduling, send calendar invites Outbound On interview creation
Slack/Teams Alert team to high-priority events (placements, risk flags, overdue tasks) Outbound notifications On trigger

Webhook Triggers (via Make)

Trigger Event When Actions
New Candidate Created Form submitted OR email added Send confirmation email, create task to review CV, send welcome SMS
CV Uploaded File added to Candidate.CV field Call resume parser, create background task, notify recruiter
Application Stage Changed User updates Applications.Stage field Update Communication Log, create corresponding tasks, trigger notifications
Interview Created New Interviews record Send calendar invite, create prep task, notify client, log communication
Application Placed Application.Stage = "Placed" Create Placement record, trigger Fees record, send confirmation emails, onboarding sequence
Document Expiring Document.Expiry < 30 days Create task, alert compliance, send notification to candidate
Task Due Tomorrow Daily check at 8 AM Send reminder email to task owner
Risk Flag Added Candidate.Risk Flag set to TRUE Alert compliance and director, log note, create follow-up task

Email Integration

Inbound Email Processing

Setup: Dedicated email addresses (careers@eduplace.com, applications@eduplace.com)

Processing: Emails auto-forwarded to Make. Parser extracts sender, subject, body, attachments.

Action: Create new Candidate OR find existing by email. Attach CV to record. Log communication. Create intake task.

Outbound Email Automation

Sends: Confirmation, CV review request, interview invite, offer letter, rejection, congratulations, payment reminder

Tracking: All sends logged to Communication Log with timestamp, recipient, status (sent/bounced/opened)

WhatsApp Integration

Candidate Notifications

Trigger messages at key milestones: Application received, Interview scheduled, Offer extended, Congratulations placed, Payment confirmation

Opt-in: Candidates must consent. Tracked in Candidates.WhatsApp consent field.

Data Security & Compliance

  • All API calls use encrypted HTTPS
  • API keys stored securely (never in scripts or logs)
  • Rate limits respected (Airtable: 5 req/sec, Resume Parser: 100/day)
  • Webhook payloads logged but sensitive fields masked (no SSN, passport numbers)
  • Airtable API tokens rotated quarterly
  • Make.com automations reviewed monthly for security

📅 Build Plan & Roadmap

Phase 1: Foundation (Weeks 1-3)

Deliverables

  • Complete Airtable schema (16 tables, all fields, links, views)
  • Recruiter Dashboard (basic candidate list, application queue, task list)
  • Form builder for website intake
  • Basic automations: New candidate email, Application tracking
  • Permission model implemented (6 roles)
  • Communication Log auto-logging

Success Criteria

Team can create candidates, link to vacancies, and progress applications from New Applicant to Interview stage. All data captured and linked.

Phase 2: Intelligence (Weeks 4-6)

Deliverables

  • Resume parser integration (3 format types)
  • AI fields: Executive Summary, Extracted Experience
  • Advanced automations: Interview invites, offer letters, document expiry alerts
  • Compliance Dashboard (document tracking, risk flags)
  • Task assignment & escalation workflows
  • Pipeline KPI reporting

Success Criteria

CVs automatically parsed and candidate experience populated. Automations reduce manual data entry by 70%. Risk items flagged before interview.

Phase 3: Client Experience (Weeks 7-10)

Deliverables

  • Client portal (dashboards, vacancy management, application tracking)
  • Finance Dashboard (invoicing, payment tracking, AR aging)
  • Executive Dashboard (KPIs, leaderboards, forecasting)
  • Branded PDF outputs (offer letters, invoices, reports)
  • WhatsApp integration for candidate notifications
  • Email auto-response & forwarding system
  • Training documentation for all 6 roles

Success Criteria

Clients can self-service track roles and candidates. Finance team processes invoices without manual data entry. Leadership has real-time visibility into pipeline and revenue.

Phase 4: Enterprise (Optional)

Deliverables

  • Custom frontend (React/Next.js) replacing Airtable interfaces
  • REST API for candidate data, applications, placements
  • Mobile app for recruiters (iOS/Android)
  • Multi-tenant SaaS architecture
  • Advanced reporting & business intelligence
  • Compliance automation (GDPR, data retention)

Timeline

Months 3-6 after Phase 3 completion. Consider only if need to scale beyond 50 concurrent users or 10,000 candidates.

Success Metrics by Phase

Phase Metric Target
Phase 1 Candidates in system 100+
Applications processed 50+
Team adoption 100% of team using daily
Phase 2 CVs parsed successfully 95%+ accuracy
Manual data entry reduction 70% less time
Time to placement Reduce by 30%
Phase 3 Client portal adoption 80%+ of clients using
Invoicing automation 100% of placements invoiced on day 1
Revenue visibility Real-time AR reporting

Team & Resources

Phase 1: 1 Airtable architect + 1 Make automation engineer. 3 weeks. Cost: $8K-12K

Phase 2: +1 API engineer (resume parser), +1 AI specialist. 3 weeks. Cost: $12K-18K

Phase 3: +1 frontend developer, +1 designer (UI/branding), +1 trainer. 4 weeks. Cost: $20K-30K

Total Phase 1-3 Investment: $40K-60K over 10 weeks. ROI: 6-9 month payback from reduced hiring cycle time and improved placement rates.

Document Version: 1.0 | Last Updated: April 2, 2026

This document is the single source of truth for the Eduplace Recruitment Operating System. All architecture, schema, and integration decisions reference this document.

For updates or corrections, contact the system architect.