Skip to main content
Recruitment & Manpower Agency Management — A staffing-agency ERP built on Odoo that runs candidate pipelines, client job orde — 1/1Illustrative preview

A staffing-agency ERP built on Odoo that runs candidate pipelines,

client job orders, placement contracts and placement-fee billing end to end.

ECOSIRE scopes, builds, installs and supports it for your agency — it is not an off-the-shelf download.

What is Recruitment & Manpower Agency Management?

A staffing-agency ERP built on Odoo that runs candidate pipelines, client job orders, placement contracts and placement-fee billing end to end. ECOSIRE scopes, builds, installs and supports it for your agency — it is not an off-the-shelf download. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Dedicated `ecosire.candidate` model with structured skill tags (`many2many`), certifications, languages, expected salary, notice period and availability-window fields — beyond native `hr.applicant`
Client job-order / requisition model (`ecosire.job.order`) linked to the client `res.partner`, carrying required headcount, rate card, seniority and hard deadline
Candidate-to-job matching pipeline as a drag-and-drop Kanban with configurable `stage_id` records (sourced → screened → shortlisted → client interview → offer → placed)
Placement record (`ecosire.placement`) binding candidate ↔ job order with contract terms, start date, guarantee period and the fee/margin it earns
Computed KPIs via `@api.depends` — fill rate per job order, days-to-fill, and gross margin per placement — stored for reporting and pivot views
Placement-fee and ongoing-margin billing wired into Odoo Accounting: confirming a placement generates the client `account.move` from the agreed fee model
Overseas-manpower workflow stages (visa, medical, embassy, deployment) modeled as first-class pipeline states with per-stage document checklists
Candidate document vault with expiry tracking (passport, visa, certifications) and automated-action reminders before documents lapse
Row-level security via `ir.model.access.csv` + record rules — recruiter sees own desk, team lead sees branch, admin sees all
QWeb reports: branded candidate CV pack, client shortlist sheet, and placement / commission statement
Duplicate-candidate guard using `@api.constrains` on phone/email/passport to keep the database clean at intake
XML-RPC / JSON-RPC endpoints so job boards, career sites or a WhatsApp intake bot can create candidates and job orders programmatically
Commission engine for recruiters — configurable percentage or flat fee per placement, rolled into a per-recruiter payout report
Pivot and graph views for desk analytics: placements by client, by recruiter, by skill and by month — no exports needed

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Recruitment and manpower agencies live and die by two numbers: time-to-fill and placement margin. Yet most agencies run those numbers across a spreadsheet of candidates, a separate CRM for clients, an email inbox for job orders, and an accountant who invoices placements weeks after the fact. Odoo's native Recruitment app was built for a company hiring its own staff — one hr.job maps to one internal vacancy, candidates become hr.applicant records funneled toward a single employee contract, and there is no concept of a paying client, a placement fee, a margin, or a candidate you place at multiple clients over a career. The moment you try to model "Client A ordered 12 welders, we sourced 40 candidates, placed 9, and now bill a 15% placement fee," native Odoo runs out of road.

This module reshapes Odoo into an agency operating system. We introduce first-class models for the agency's real objects: a candidate database (ecosire.candidate) with structured skills, certifications, availability windows, expected salary and document tracking; client job orders / requisitions (ecosire.job.order) linked to the client res.partner with required headcount, rate card and deadline; and a placement record (ecosire.placement) that binds one candidate to one job order with the contract terms, start date, and the fee or margin that placement earns. A Kanban matching pipeline sits between candidates and job orders — sourced, screened, shortlisted, client-interview, offer, placed — implemented as a state selection with a stage model so recruiters drag cards exactly like they do in native CRM. Computed fields (@api.depends) roll up fill rate per job order, days-to-fill, and gross margin per placement so managers see the health of the desk without exporting anything.

Technically it is a clean, upgrade-safe Odoo addon. Business rules live in the ORM (models.Model with validated fields, @api.constrains guards, and compute/store fields), not in fragile automations. Access is governed by ir.model.access.csv plus record rules so a recruiter sees only their own desk while a manager sees the branch, and overseas-manpower workflows (visa stage, medical, deployment) are modeled as extra pipeline stages rather than bolted-on notes. Placement billing is wired straight into Odoo Accounting: confirming a placement can generate the client invoice for the placement fee or the ongoing margin against the contract, so finance never re-keys anything. QWeb reports produce the candidate CV pack, the client shortlist sheet and the placement/commission statement on your letterhead. Everything is reachable over Odoo's XML-RPC / JSON-RPC API, so a job board or a WhatsApp intake bot can create candidates and job orders programmatically. Automated actions handle the tedious edges — flagging expiring candidate documents, nudging stalled job orders, and alerting when a placement's guarantee period is about to lapse.

Because every agency's desk, fee model and compliance rules differ, this is a build-to-order engagement, not a one-click install. We start from this proven blueprint, scope your exact stages, rate cards, fee structures and document requirements on a short call, then build, test and hand over a module tuned to how your agency actually works. Typical delivery is one working week from confirmed scope, targeting your Odoo version (17.0, 18.0 or 19.0) on Community or Enterprise. You receive the full source, a staging UAT, training, and a post-go-live support window — you own the code and the Git repository at the end.

What you get

  • Installable Odoo module source code targeting your version (17.0, 18.0 or 19.0), Community or Enterprise
  • Installation and configuration on your server or Odoo.sh, including stages, rate cards and fee models set to your agency
  • Technical documentation — data model, `ir.model.access` matrix, record rules and API endpoints
  • End-user guide plus a live training session for recruiters and finance
  • UAT on a staging database with a documented rollback plan before production go-live
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with full commit history so you own and can extend the code

Who this is for

Recruitment / staffing agency owner

Runs multiple desks and needs a single system where candidate pipelines, client job orders and placement revenue live together — with margin and fill-rate visible without chasing spreadsheets.

Overseas manpower agency operations manager

Places workers abroad and must track visa, medical, embassy and deployment stages plus expiring documents per candidate, with compliance-safe records and audit trails.

Agency finance / accounts lead

Wants placement fees and ongoing margins invoiced automatically against the right client and contract in Odoo Accounting, and clean recruiter-commission statements at period end.

Recruitment team lead / desk manager

Manages a team's pipeline day to day and needs record-rule-scoped views, KPI dashboards and stalled-job-order alerts to keep time-to-fill down.

How Recruitment & Manpower Agency Management Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Client job orders & placementsFirst-class job-order and placement models with fee/marginWhatever you spec and pay to buildOften candidate-only, weak on client sideNo concept of a paying client or placement
Candidate as reusable talent poolPersistent candidate DB, placed many times over a careerPossible but build-dependentUsually yesApplicants funnel to one internal hire
Placement-fee / margin billingAuto-generates client invoice in Odoo AccountingMust be designed and integratedRarely wired into accountingNone
Overseas manpower (visa/medical/deployment)Modeled as stages + document expiry trackingBuildable at costSeldom coveredNot supported
Fit to your agency's processScoped and tailored before buildFully bespokeFixed to vendor's assumptionsGeneric internal-HR flow
Delivery timeone working week from confirmed scopeMonths, spec-dependentInstant download, then heavy configAlready installed
Source code & ownershipFull source + Git repo handoverYou own what you paid forOften obfuscated or license-lockedOdoo core, not agency-specific
Support & upgradesPost-go-live window + optional retainerDepends on the developerVendor support tiers, variableCommunity/Enterprise general support

Frequently Asked Questions about Recruitment & Manpower Agency Management

How long until it is live?

This is build-to-order. After a short scoping call to confirm your stages, fee models, rate cards and document requirements, typical delivery is one working week from confirmed scope. Larger multi-branch or overseas-compliance builds can run longer; we give you a firm timeline once scope is fixed.

How is this different from Odoo's built-in Recruitment app?

Native Recruitment is for a company hiring its own employees — one vacancy, one applicant funnel, no paying client and no placement fee. This module adds first-class models for candidates as a reusable talent pool, client job orders, a placement record that carries the fee/margin, and billing wired into Accounting. It is an agency system, not an internal-HR one.

Which Odoo versions and editions are supported?

We build for Odoo 17.0, 18.0 or 19.0 on either Community or Enterprise. We target your exact version so the module upgrades cleanly. If you are on Community, everything here works without Enterprise-only apps; if you are on Enterprise, we integrate with the apps you already run.

How do you handle support and updates after go-live?

Every engagement includes a post-go-live support window for defect fixes and configuration tweaks. Because you receive the full source and Git repository, you can also extend it in-house or engage us for a version-upgrade or enhancement retainer later — you are never locked in.

Can it connect to our website, job boards or a WhatsApp intake bot?

Yes. All models are exposed over Odoo's XML-RPC / JSON-RPC API, so candidates and job orders can be created programmatically from a career site, a job-board feed, or a messaging bot. We scope the specific integrations you need during the build.

Does it support overseas manpower and deployment workflows?

Yes. Visa, medical, embassy and deployment steps are modeled as pipeline stages with per-stage document checklists, and the candidate document vault tracks expiries (passport, visa, certifications) with automated reminders before they lapse.

Do we own the code?

Yes. You receive the complete module source and a Git repository with full history at handover. There is no per-seat license lock-in on the module itself — it runs on your Odoo instance and you can maintain or extend it however you choose.

Request a quote

Recruitment & Manpower Agency Management

A staffing-agency ERP built on Odoo that runs candidate pipelines, client job orders, placement contracts and placement-fee billing end to end. ECOSIRE scopes, builds, installs and supports it for your agency — it is not an off-the-shelf download.

  • Dedicated `ecosire.candidate` model with structured skill tags (`many2many`), certifications, languages, expected salary, notice period and availability-window fields — beyond native `hr.applicant`
  • Client job-order / requisition model (`ecosire.job.order`) linked to the client `res.partner`, carrying required headcount, rate card, seniority and hard deadline
  • Candidate-to-job matching pipeline as a drag-and-drop Kanban with configurable `stage_id` records (sourced → screened → shortlisted → client interview → offer → placed)
  • Placement record (`ecosire.placement`) binding candidate ↔ job order with contract terms, start date, guarantee period and the fee/margin it earns

Request a Quotation

Tell us about your Recruitment & Manpower Agency Management requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.