How I Took Worksy HRMS from Ranking #23 to #4 (And Got Cited by AI)
Project: Worksy HRMS
Role: SEO and Content Strategy
Timeline: 12 Months
When I first looked at the SEO performance for Worksy HRMS, the main keyword was sitting at position 23. That is page 3 territory, which means hardly anyone visits it.
I dug into the existing content strategy and noticed a problem. The blog was being outsourced to a third-party agency. They were delivering one post a month, but there was no theme, no strategy, and honestly, a lot of fluff.
We had articles like:
- How to achieve inclusivity in the workplace
- Key HR management trends in 2024
- Boost employee mental health
They sounded nice, but they did not establish us as an authority on the actual software. The XML sitemap was a mess of inconsistent topics that were not going to get us anywhere.
I knew we needed a change. Here is how I brought the strategy in-house, overhauled the content architecture, and drove real business results.
The Strategy: Topical Clusters over Fluff
I pitched to management to stop the outsourcing and bring content in-house. My argument was simple: We need to dominate our domain, not write generic HR advice.
I used a Topical Cluster Model. Instead of random topics, we mapped content directly to Worksy's core modules.
| Core Module | Cluster Topics |
|---|---|
| Attendance Module | Maternity leave policies, Paternity leave guides, Annual leave rules, Prorated leave calculations in Malaysia |
| Leave Management | Public holiday entitlements, Emergency leave, Unpaid leave policies |
| Payroll | Overtime calculations, Bonus structures, EPF contributions |
This showed Google that we were not just an HR blog. We were a specialized resource on how to manage HR using our system.
Keyword Research: Data-Driven, Not Guesswork
I did not want to guess what users were searching for. I used a three-step process:
| Tool | Purpose |
|---|---|
| Google Search Console (GSC) | Exported all queries and filtered out branded keywords to find actual questions people were asking |
| Keyword Surfer | Used this extension to gauge monthly search volume quickly |
| People Also Ask (PAA) | Pulled questions directly from search results to ensure our headers matched user intent |
Execution: UX, Code, and Readability
I believe content should be easy for humans to read and easy for AI crawlers to read. I made several technical and structural changes to the blog layout:
Content Changes
- Cut lengthy introductions. Users want answers, not a story
- Converted paragraphs into tables and listicles whenever possible
- Added a soft self-promotion CTA in the middle of content and a hard CTA at the end
- Linked out to third-party government or industry sources (using nofollow) to back up our claims
- Wrote FAQ questions conversationally rather than formally to increase chances of picking up Rich Snippets
Technical Changes
- Wrote a code snippet that automatically targets H2 tags and generates a clickable Table of Contents before the first paragraph
- Coded a custom FAQ accordion for the bottom of posts
The Results (12 Months Later)
The shift from generic content to specialized, technically optimized clusters paid off.
| Metric | Before | After |
|---|---|---|
| Ranking | Position 23 | Position 4 |
| Impressions | ~250k | 500k (December 2025) |
| AI Citations | None | Cited by Google Gemini, ChatGPT, and Perplexity |
| Leads | Baseline | Increased demo requests and qualified leads |
Note: CTR was slightly lower than expected due to the rise of AI Overviews stealing clicks, but brand visibility was at an all-time high.
What This Says About My Work
This project was not just about writing blogs. It was about aligning three key areas:
- Technical SEO (schema, code snippets, internal linking)
- Content Strategy (topical authority)
- Business Goals (leads)
I do not just chase rankings. I build systems that make the brand an authority in its space.