BJRC REBUILD

The rebuild,
in the open

Every page of the new site, what it is for, and where it stands. This address updates as we build. It is not indexed and it is not the client's homepage yet.

77pages standing
11pages to build
~150blog posts to redirect
Oct 1launch
The four that earn

Service pages

These four carry 86,000 impressions a year and return 315 clicks between them. Everything else on the site matters less than moving these off page two.

URLTarget search, and where it sits todayState
/services/executive-search/ executive recruiters toronto · position 34, 1 click a year Built
/services/finance-accounting-recruitment/ finance recruitment agencies toronto · position 15.5 Next
/services/legal-compliance-recruitment/ legal recruiters toronto · position 24.2, thinnest page on the site Next
/services/contract-solutions/ interim and contract hiring Next
The rest of the site

Core pages

URLJobState
/Home. Positioning: modern professional, the gap none of the four competitors can claimTo build
/team/Ranks 4.1 today and pulls 1,283 clicks. The best asset on the domainTo build
/employers/One exit of two on every service pageTo build
/candidates/The other exitTo build
/jobs/1,873 clicks today at /current-opportunities/. Now 65 real pages instead of one iframeBuilt
/salary-guide/The asset Korn Ferry will not give away free. Feeds the market block on every service pageTo build
/blog/150 posts, 4.7% of clicks. Merge the 67 that have never been clickedTo build
The part nobody told them about

Google Jobs

The current site loads every opening through a JavaScript widget inside an iframe, at /wp-content/plugins/bullhorn-oscp/#/. Jobs render into hash routes, so not one of the 65 has a URL, and there is no JobPosting markup anywhere on the domain. Google has nothing to index. The container page still earns 1,873 clicks at position 7.22, which is the whole argument: it ranks on one page, with nothing underneath it.

That is now fixed. build-jobs.mjs reads the same Bullhorn feed the widget reads and writes one real page per open role, plus the practice and city pages that keep ranking after a role is filled. It needs no credentials and no help from Bullhorn: the access token is published in the plugin's own app.json.

URLWhat it isState
/jobs/ All 65 open roles, filterable, every one linked to its own page Built
/jobs/legal-jobs-toronto/ 10 practice and city pages with ItemList markup. These are what rank Built
/jobs/<role>-<id>/ 65 pages, valid JobPosting schema on every one, self-correcting when a role is filled Built
Salary in the markup 19 roles carry a target salary in Bullhorn. Publishing it helps Google and exposes confidential comp. One switch, BJRC's call Decision
Not a page, and the thing most likely to hurt

The redirect map

Ismael's map moves nearly every URL: the four practice pages out of /about-us/ into /services/, about 150 dated blog URLs into /blog/<slug>/, and every /category/ archive retired. Twelve months of ranking rides on those 301s being in place the hour the site flips. It is the highest-value asset in this project and it already exists.

Blocked on BJRC

What only they can give us

Every bracket on the Executive Search page is one of these. They are marked in the page so nothing ships looking finished when it is not.

  • Brady's direct line and email, for the partner block.
  • Six to nine recent placements, title and sector, no employer names unless cleared.
  • One client sentence about a search, not about the firm.
  • Three salary medians from the 2026 Salary Guide: General Counsel, CFO, Chief Compliance Officer.
  • Fee structure, stated plainly, or what it depends on if we will not publish a number.
  • The guarantee period and what it covers.
  • Who works in French in Montreal, by name. It is the first question a Quebec client asks.
Before launch, not after

The list that blocks going live

  • favicon, apple-touch-icon 180, OG image 1200 x 630. A dedicated OG image, not the logo cropped.
  • GTM installed, GA4 through GTM, sitemap.xml, sitemap submitted to Search Console.
  • Every 301 from the map live the same hour the site flips.
  • hreflang and the French versions of the money pages. Montreal is not served today.
  • The plugin folder and the category archives de-indexed, which the replatform does on its own.
  • The noindex line removed from every page of this preview. It is the only line that has to go.