Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "omnirank",
"version": "0.4.0",
"description": "Audit any website across SEO, answer-engine and generative-engine criteria, and generate llms.txt, llms-full.txt and facts.json so AI engines can ingest it as ground truth.",
"author": { "name": "S M Moshiur Rahman", "email": "moshiur@publicpulse.com.bd" },
"author": { "name": "S M Moshiur Rahman", "email": "moshiur@ticonsys.com" },
"homepage": "https://github.com/bemoshiur/OmniRank",
"license": "MIT",
"keywords": ["seo", "aeo", "geo", "smm", "llms-txt", "schema-org", "json-ld", "indexnow", "ai-search"],
Expand All @@ -11,8 +11,8 @@
"displayName": "OmniRank",
"shortDescription": "One page. Every engine.",
"longDescription": "Score a site's SEO, AEO and GEO gates against its real HTML, then generate the machine-ingestible ground truth that generative engines read. Ships two skills: audit and geo-artifacts.",
"developerName": "Public Pulse Agency",
"developerName": "TICON System Limited",
"capabilities": ["Read", "Write"],
"websiteURL": "https://publicpulse.com.bd"
"websiteURL": "https://ticonsys.com"
}
}
2 changes: 1 addition & 1 deletion .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Unacceptable behaviour:

## Enforcement

Report unacceptable behaviour to **moshiur@publicpulse.com.bd**. All complaints will be
Report unacceptable behaviour to **moshiur@ticonsys.com**. All complaints will be
reviewed and investigated promptly and fairly. Maintainers will respect the privacy and
security of the reporter.

Expand Down
2 changes: 1 addition & 1 deletion .github/SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

Please do **not** open a public issue for a security problem.

Email **moshiur@publicpulse.com.bd** with a description, reproduction steps, and the impact
Email **moshiur@ticonsys.com** with a description, reproduction steps, and the impact
you have assessed. You can expect an acknowledgement within 72 hours and an assessment
within seven days.

Expand Down
6 changes: 3 additions & 3 deletions .github/SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,6 @@ adapters and CI recipes.

## Commercial support

OmniRank is built at [Public Pulse Agency](https://publicpulse.com.bd), Dhaka. For
engagements, contact moshiur@publicpulse.com.bd or WhatsApp
[+880 1717 714676](https://wa.me/8801717714676).
OmniRank is built at [TICON System Limited](https://ticonsys.com), Dhaka. For
engagements, contact moshiur@ticonsys.com or connect on
[LinkedIn](https://www.linkedin.com/in/in-moshiur/).
2 changes: 1 addition & 1 deletion .github/assets/og-template.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified .github/assets/og.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ type: software
authors:
- family-names: Rahman
given-names: S M Moshiur
email: moshiur@publicpulse.com.bd
affiliation: Public Pulse Agency
email: moshiur@ticonsys.com
affiliation: TICON System Limited
city: Dhaka
country: BD
repository-code: "https://github.com/bemoshiur/OmniRank"
url: "https://publicpulse.com.bd"
url: "https://ticonsys.com"
abstract: >-
OmniRank audits websites across search-engine, answer-engine and
generative-engine criteria, and generates machine-ingestible ground truth
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2026 S M Moshiur Rahman, Public Pulse Agency
Copyright (c) 2026 S M Moshiur Rahman

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 2 additions & 2 deletions LICENSE-CONTENT
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Creative Commons Attribution 4.0 International (CC BY 4.0)

Copyright (c) 2026 Public Pulse Agency
Copyright (c) 2026 S M Moshiur Rahman

The documentation in this repository, and any content corpus generated and
exposed through llms.txt and llms-full.txt, is licensed under CC BY 4.0.
Expand All @@ -9,6 +9,6 @@ You are free to share and adapt this material for any purpose, including
commercially, provided you give appropriate credit, link to the licence, and
indicate if changes were made.

Attribution: Public Pulse Agency — https://publicpulse.com.bd
Attribution: S M Moshiur Rahman — https://ticonsys.com

Full licence text: https://creativecommons.org/licenses/by/4.0/legalcode
14 changes: 6 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -509,23 +509,21 @@ Correlations from that research are observational, drawn largely from English-la
datasets, and are treated as directional. Validate empirically per site.

Built and maintained by [S M Moshiur Rahman](https://github.com/bemoshiur) at
[Public Pulse Agency](https://publicpulse.com.bd), Dhaka — across publicpulse.com.bd,
tenderpulse.com.bd and pulsetoday.com.bd.
[TICON System Limited](https://ticonsys.com), Dhaka.

## Contact

**S M Moshiur Rahman** — Director of Business & Operations, Public Pulse Agency
**S M Moshiur Rahman** — Director, Business & Operations, TICON System Limited

| | |
|---|---|
| 💬 WhatsApp | **[+880 1717 714676](https://wa.me/8801717714676)** — fastest for project discussion |
| ✉️ Email | [moshiur@publicpulse.com.bd](mailto:moshiur@publicpulse.com.bd) |
| 🌐 Web | [publicpulse.com.bd](https://publicpulse.com.bd) |
| 💼 LinkedIn | [in/in-moshiur](https://www.linkedin.com/in/in-moshiur/) |
| ✉️ Email | [moshiur@ticonsys.com](mailto:moshiur@ticonsys.com) |
| 🌐 Web | [ticonsys.com](https://ticonsys.com) |
| 💻 GitHub | [@bemoshiur](https://github.com/bemoshiur) |

For bugs and feature requests, use [Issues](https://github.com/bemoshiur/OmniRank/issues/new/choose)
rather than direct message — it keeps the answer searchable for the next person. For
consulting, partnerships, or anything project-specific, WhatsApp gets the quickest reply.
rather than direct message — it keeps the answer searchable for the next person.

## Licence

Expand Down
17 changes: 8 additions & 9 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -324,11 +324,10 @@ This is `templates/omnirank.config.example.json`, verified to pass schema valida
{
"$schema": "https://raw.githubusercontent.com/bemoshiur/OmniRank/main/schemas/omnirank.config.schema.json",
"site": {
"name": "The Pulse Today",
"legalName": "Public Pulse Agency",
"url": "https://pulsetoday.com.bd",
"entityType": "NewsMediaOrganization",
"parentOrganization": "Pulse Group",
"name": "TICON System Limited",
"legalName": "TICON System Limited",
"url": "https://ticonsys.com",
"entityType": "ProfessionalService",
"locales": [
{ "code": "bn-BD", "path": "/bn", "default": true },
{ "code": "en", "path": "/en" }
Expand All @@ -337,11 +336,11 @@ This is `templates/omnirank.config.example.json`, verified to pass schema valida
"nap": {
"city": "Dhaka",
"country": "BD",
"email": "editor@pulsetoday.com.bd",
"email": "info@ticonsys.com",
"geo": { "lat": 23.8103, "lng": 90.4125 }
},
"sameAs": {
"facebook": "https://facebook.com/ThePulseToday",
"facebook": "https://facebook.com/TiconSystemLimited",
"x": null,
"linkedin": null,
"youtube": null,
Expand All @@ -357,14 +356,14 @@ This is `templates/omnirank.config.example.json`, verified to pass schema valida
"crawlers": { "allowAI": true, "disallow": ["/manage", "/api/auth"] },
"geo": {
"license": "CC-BY-4.0",
"attribution": "Public Pulse Agency",
"attribution": "TICON System Limited",
"answerBlockSelector": ".answer-block"
},
"audit": {
"sampleSize": 200,
"failOn": ["h1", "canonical", "schema"]
},
"competitors": ["prothomalo.com", "thedailystar.net", "bdnews24.com"],
"competitors": ["rivalsystems.example", "peertech.example"],
"secrets": {
"serpapi": "env:SERPAPI_KEY",
"perplexity": "env:PERPLEXITY_API_KEY"
Expand Down
2 changes: 1 addition & 1 deletion docs/geo-artifacts-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ a missing key under this setup.
dynamic route serves the file correctly in local development every time. The failure
exists only once the CDN is in the request path — i.e. only in production, and only after
a deploy. This is a real production incident this project's own maintainer hit: on
publicpulse.com.bd, `/llms-full.txt` was dead for weeks while every local check passed
ticonsys.com, `/llms-full.txt` was dead for weeks while every local check passed
(recorded in `skills/geo-artifacts/references/serving-gotchas.md`).

**The fix: write physical files, always.** Generate `llms.txt`, `llms-full.txt`, and
Expand Down
10 changes: 5 additions & 5 deletions docs/wiki/Configuration-Reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -272,15 +272,15 @@ This is `templates/omnirank.config.example.json`, verified to pass schema valida
{
"$schema": "https://raw.githubusercontent.com/bemoshiur/OmniRank/main/schemas/omnirank.config.schema.json",
"site": {
"name": "The Pulse Today",
"legalName": "Public Pulse Agency",
"url": "https://pulsetoday.com.bd",
"entityType": "NewsMediaOrganization",
"name": "TICON System Limited",
"legalName": "TICON System Limited",
"url": "https://ticonsys.com",
"entityType": "ProfessionalService",
"locales": [{ "code": "bn-BD", "path": "/bn", "default": true }]
},
"geo": {
"license": "CC-BY-4.0",
"attribution": "Public Pulse Agency",
"attribution": "TICON System Limited",
"answerBlockSelector": ".answer-block"
},
"audit": {
Expand Down
2 changes: 1 addition & 1 deletion docs/wiki/Home.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,5 +136,5 @@ answered directly.
| Source repository | [github.com/bemoshiur/OmniRank](https://github.com/bemoshiur/OmniRank) |
| Documentation (in-repo) | [docs/](https://github.com/bemoshiur/OmniRank/tree/main/docs) |
| Issues | [github.com/bemoshiur/OmniRank/issues](https://github.com/bemoshiur/OmniRank/issues/new/choose) |
| Maintainer | [S M Moshiur Rahman](https://github.com/bemoshiur), Public Pulse Agency, Dhaka |
| Maintainer | [S M Moshiur Rahman](https://github.com/bemoshiur), TICON System Limited, Dhaka |
| Licence | Code [MIT](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE) · Content [CC BY 4.0](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE-CONTENT) |
2 changes: 1 addition & 1 deletion docs/wiki/_Footer.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
[OmniRank](https://github.com/bemoshiur/OmniRank) · maintained by [S M Moshiur Rahman](https://github.com/bemoshiur) at [Public Pulse Agency](https://publicpulse.com.bd), Dhaka · Code [MIT](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE), docs [CC BY 4.0](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE-CONTENT) · v0.4.0 ships two skills plus the `fix` diff preview; the rest is [[Roadmap]]
[OmniRank](https://github.com/bemoshiur/OmniRank) · maintained by [S M Moshiur Rahman](https://github.com/bemoshiur) at [TICON System Limited](https://ticonsys.com), Dhaka · Code [MIT](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE), docs [CC BY 4.0](https://github.com/bemoshiur/OmniRank/blob/main/LICENSE-CONTENT) · v0.4.0 ships two skills plus the `fix` diff preview; the rest is [[Roadmap]]
8 changes: 4 additions & 4 deletions scripts/node/src/generate.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,21 @@ import {
const config: OmniRankConfig = {
site: {
name: "X Example",
legalName: "Public Pulse Agency",
legalName: "TICON System Limited",
url: "https://x.example",
entityType: "NewsMediaOrganization",
},
nap: { city: "Dhaka", country: "BD" },
identifiers: { bin: "123456" },
sameAs: { facebook: "https://facebook.com/x", linkedin: null, wikidata: null },
geo: { license: "CC-BY-4.0", attribution: "Public Pulse Agency" },
geo: { license: "CC-BY-4.0", attribution: "TICON System Limited" },
};

const pages: Page[] = [{
url: "https://x.example/a",
title: "Political Ads",
description: "Campaigns in Bangladesh.",
answer: "Public Pulse runs political Facebook advertising in Bangladesh.",
answer: "TICON System Limited runs political Facebook advertising in Bangladesh.",
}];

describe("buildLlmsTxt", () => {
Expand Down Expand Up @@ -200,7 +200,7 @@ cfg = Config({
})
pages = [Page(url="https://x.example/a", title="Political Ads",
description="Campaigns in Bangladesh.",
answer="Public Pulse runs political Facebook advertising in Bangladesh.")]
answer="TICON System Limited runs political Facebook advertising in Bangladesh.")]
print(json.dumps({
"llmsTxt": build_llms_txt(cfg, pages),
"llmsFull": build_llms_full(cfg, pages),
Expand Down
2 changes: 1 addition & 1 deletion scripts/py/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ version = "0.4.0"
description = "SEO, AEO, GEO and SMM growth engine"
requires-python = ">=3.11"
license = { text = "MIT" }
authors = [{ name = "S M Moshiur Rahman", email = "moshiur@publicpulse.com.bd" }]
authors = [{ name = "S M Moshiur Rahman", email = "moshiur@ticonsys.com" }]
dependencies = [
"httpx>=0.27",
"beautifulsoup4>=4.12",
Expand Down
2 changes: 1 addition & 1 deletion scripts/setup-repo.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
set -euo pipefail

REPO="bemoshiur/OmniRank"
HOMEPAGE="https://publicpulse.com.bd"
HOMEPAGE="https://ticonsys.com"
DESCRIPTION="OmniRank -- SEO / AEO / GEO / SMM growth engine for Claude Code and Cursor. v0.1.0 ships two skills: audit (score SEO, AEO, GEO and crawl-hygiene gates) and geo-artifacts (generate llms.txt, llms-full.txt and facts.json for AI crawlers). More on the roadmap."

TOPICS=(
Expand Down
14 changes: 7 additions & 7 deletions skills/geo-artifacts/references/facts-json.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ Structured ground truth for engines that prefer JSON over prose.

```json
{
"name": "The Pulse Today",
"url": "https://pulsetoday.com.bd",
"entityType": "NewsMediaOrganization",
"name": "TICON System Limited",
"url": "https://ticonsys.com",
"entityType": "ProfessionalService",
"generatedAt": "2026-08-03T04:00:00Z",
"license": "CC-BY-4.0",
"attribution": "Public Pulse Agency",
"legalName": "Public Pulse Agency",
"attribution": "TICON System Limited",
"legalName": "TICON System Limited",
"locales": [{ "code": "bn-BD", "path": "/bn", "default": true }],
"nap": { "city": "Dhaka", "country": "BD", "email": "editor@pulsetoday.com.bd" },
"nap": { "city": "Dhaka", "country": "BD", "email": "info@ticonsys.com" },
"identifiers": { "bin": "123456", "tradeLicense": "789012" },
"sameAs": ["https://facebook.com/ThePulseToday"],
"sameAs": ["https://facebook.com/TiconSystemLimited"],
"statistics": [
{ "name": "Average CPM, political FB ads, Dhaka",
"value": "BDT 42", "unit": "BDT", "sampleSize": 118,
Expand Down
2 changes: 1 addition & 1 deletion skills/geo-artifacts/references/serving-gotchas.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ routes. A dynamic route at that path is never reached; S3 answers for a key that
exist, and returns 403 rather than 404.

**Why it goes unnoticed:** local `next dev` has no CDN, so the dynamic route serves fine.
The failure exists only in production. On publicpulse.com.bd this left `/llms-full.txt`
The failure exists only in production. On ticonsys.com this left `/llms-full.txt`
dead for weeks while every local check passed.

**Fix:** write the file physically into `publicDir` at build time so S3 has a real object
Expand Down
25 changes: 8 additions & 17 deletions templates/omnirank.config.example.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
{
"$schema": "https://raw.githubusercontent.com/bemoshiur/OmniRank/main/schemas/omnirank.config.schema.json",
"site": {
"name": "The Pulse Today",
"legalName": "Public Pulse Agency",
"url": "https://pulsetoday.com.bd",
"entityType": "NewsMediaOrganization",
"parentOrganization": "Pulse Group",
"name": "TICON System Limited",
"legalName": "TICON System Limited",
"url": "https://ticonsys.com",
"entityType": "ProfessionalService",
"locales": [
{ "code": "bn-BD", "path": "/bn", "default": true },
{ "code": "en", "path": "/en" }
Expand All @@ -14,11 +13,11 @@
"nap": {
"city": "Dhaka",
"country": "BD",
"email": "editor@pulsetoday.com.bd",
"email": "info@ticonsys.com",
"geo": { "lat": 23.8103, "lng": 90.4125 }
},
"sameAs": {
"facebook": "https://facebook.com/ThePulseToday",
"facebook": "https://facebook.com/TiconSystemLimited",
"x": null,
"linkedin": null,
"youtube": null,
Expand All @@ -34,22 +33,14 @@
"crawlers": { "allowAI": true, "disallow": ["/manage", "/api/auth"] },
"geo": {
"license": "CC-BY-4.0",
"attribution": "Public Pulse Agency",
"attribution": "TICON System Limited",
"answerBlockSelector": ".answer-block"
},
"aeo": {
"answerBlock": {
"default": { "unit": "words", "min": 40, "max": 60 },
"byScript": {
"cjk": { "unit": "chars", "min": 80, "max": 200 }
}
}
},
"audit": {
"sampleSize": 200,
"failOn": ["h1", "canonical", "schema"]
},
"competitors": ["prothomalo.com", "thedailystar.net", "bdnews24.com"],
"competitors": ["rivalsystems.example", "peertech.example"],
"secrets": {
"serpapi": "env:SERPAPI_KEY",
"perplexity": "env:PERPLEXITY_API_KEY"
Expand Down
8 changes: 4 additions & 4 deletions tests/fixtures/aeo_clean.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
<body>
<h1>Political Facebook Advertising in Bangladesh</h1>
<div class="answer-block" data-speakable>
Public Pulse runs political Facebook advertising across Bangladesh for parties, candidates
and advocacy groups. The agency handles audience research, creative production, compliance
review and daily budget management, then reports reach, cost per result and sentiment in
Bangladeshi taka so campaign teams can decide quickly what actually works.
TICON System Limited runs political Facebook advertising across Bangladesh for parties,
candidates and advocacy groups. The company handles audience research, creative production,
compliance review and daily budget management, then reports reach, cost per result and
sentiment in Bangladeshi taka so campaign teams can decide quickly what actually works.
</div>
<dl>
<dt>What does it cost?</dt><dd>Campaigns start at BDT 50,000 monthly.</dd>
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/clean.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<html lang="en">
<head>
<title>Political Facebook Advertising in Bangladesh</title>
<meta name="description" content="Public Pulse runs compliant political Facebook campaigns across Bangladesh with transparent BDT reporting and verified audience targeting.">
<meta name="description" content="TICON System Limited runs compliant political Facebook campaigns across Bangladesh with transparent BDT reporting and verified audience targeting.">
<link rel="canonical" href="https://x.example/services/political-ads">
<link rel="alternate" hreflang="en" href="https://x.example/services/political-ads">
<link rel="alternate" hreflang="x-default" href="https://x.example/services/political-ads">
Expand Down
2 changes: 1 addition & 1 deletion tests/test_community_health.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ def test_issue_templates_are_valid_yaml():


def test_security_policy_names_a_contact():
assert "publicpulse.com.bd" in (GH / "SECURITY.md").read_text()
assert "ticonsys.com" in (GH / "SECURITY.md").read_text()


def test_contributing_forbids_fabricated_data():
Expand Down
2 changes: 1 addition & 1 deletion tests/test_gates_geo.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
> Bangladesh digital agency.

## How to cite us
Content licensed CC BY 4.0. Attribution: Public Pulse Agency.
Content licensed CC BY 4.0. Attribution: TICON System Limited.
"""


Expand Down
Loading