Route feed jobs to subsidiaries

Send jobs from a parent company's backfill feed to the right subsidiary with match conditions and location filters.

One backfill feed often carries jobs for several parts of an organization. A routing rule on the parent company sends the feed jobs that match it to one of its subsidiaries. Jobs that match no rule stay on the parent.

For example, a national organization's careers site lists jobs for every regional section. Its western section can get every job located in Western Australia, and its northern section every job whose application link contains its own hiring account.

Before you begin

The parent company needs jobs from backfill. Routing applies to feed jobs only. Jobs you post to a company yourself, from the dashboard or through the API, stay on that company.

A subsidiary on its parent's domain shares the parent's feed: its backfill moves to the parent when it joins the group. Route its jobs with rules on the parent.

Add a subsidiary with a rule

  1. Click Companies in the sidebar
  2. Click the parent company to open it
  3. In the Subsidiaries section, click Add subsidiary
  4. Pick the company. To create one, choose Create new company…
  5. Set the match conditions, the job filters, or both
  6. Check Matching jobs, and tick Also move these jobs now to move the matching jobs that are already live
  7. Click Add subsidiary

To add a rule to a company that is already a subsidiary, click the menu on its row in the Subsidiaries section and click Add rule.

Match conditions

Each condition checks one field of the job:

  • Application link contains a term. Use part of the hiring system's address that only this subsidiary uses, such as its account name or a careers page path like example.org/west/.
  • Job title contains a term.

Choose contains any to match one of the terms, or contains all to require every term. Above the conditions, choose whether a job must match any or all of them.

Job filters

Pick countries, and regions within a country, to limit the rule to jobs located there. A country with no regions picked covers the whole country.

A job matches a region when one of its locations is inside it. A remote job that lists only a country matches that country, not its regions. A job without a recognized location matches no location filter.

How conditions and filters combine

A job goes to the subsidiary when it matches the conditions and is inside the filters. Filters narrow the conditions. A rule needs at least one condition or one country.

The sentence under the filters reads the whole rule back, for example "Will match jobs located in Western Australia."

Rule order

The Subsidiaries section lists each subsidiary with its rule, in order. Each new feed job goes to the first subsidiary whose rule matches. Everything else, at the bottom, stays on the parent.

To change the order, click the menu on a subsidiary's row, then Move up or Move down.

Preview and move existing jobs

Matching jobs lists the parent's live jobs that the rule matches, with the reason for each. Jobs you moved by hand are listed as staying put, and jobs an earlier rule already matches show where they go instead.

Tick Also move these jobs now to move the matching jobs when you save. Leave it unticked to route new feed jobs only. Moving many jobs takes a few moments to finish.

When routing runs

Routing runs every time the feed writes a job's company: when a new job arrives, when an expired job comes back in the feed, and when a sponsored job is refreshed. If you fix a rule, each live job follows the fixed rule the next time the feed updates it. To move live jobs right away, edit the rule and tick Also move these jobs now.

A job you moved to another company by hand always stays there. See Moving a job to another company.

Edit or remove a rule

Open the parent and click Edit rule in the menu on the subsidiary's row. You can also open the subsidiary and click Edit on parent under Jobs from the parent's feed.

To stop routing jobs to a subsidiary, click Remove rule in the row menu. The company stays a subsidiary. Removing a company from its parent deletes its rule too. Its jobs stay on it until the feed next updates them, then they return to the parent.

Set up routing through the API or an agent

The Operator API covers every step, so an agent connected through the Cavuno MCP server can set up routing too. {id} is the parent company.

  • GET /v1/companies/{id}/routing-rules lists the rules in order.
  • POST /v1/companies/{id}/routing-rules/preview returns the jobs a draft rule matches, with companyLocked on jobs moved by hand.
  • POST /v1/companies/{id}/routing-rules creates a rule. Set moveExistingJobs to move matching live jobs, and the response includes movedJobCount.
  • PATCH and DELETE /v1/companies/{id}/routing-rules/{ruleId} edit and remove a rule.
  • PUT /v1/companies/{id}/routing-rules/order sets the order.

For example, an agent setting up a western section would:

  1. Find the parent and the section with GET /v1/companies?search=
  2. Make the section a subsidiary with PATCH /v1/companies/{sectionId} and { "parentCompanyId": "{parentId}" }
  3. Preview { "matchMode": "any", "conditions": [], "filters": { "countries": ["AU"], "subdivisions": ["AU-WA"] } }
  4. After you confirm, create the rule with the same body plus "targetCompanyId": "{sectionId}" and "moveExistingJobs": true
  5. List the rules to check the result

Verify the result

Open the parent: the Subsidiaries section shows the subsidiary with its rule. Open the subsidiary: Jobs from the parent's feed reads the rule back, and its jobs list shows the jobs you moved.

Frequently asked questions