diff --git a/arkitect/core/client/__init__.py b/arkitect/core/client/__init__.py
index f683b8fc..e384b757 100644
--- a/arkitect/core/client/__init__.py
+++ b/arkitect/core/client/__init__.py
@@ -14,6 +14,7 @@
from .base import Client, ClientPool, get_client_pool
from .http import default_ark_client, load_request
+from .redis import RedisClient
from .sse import AsyncSSEDecoder
__all__ = [
@@ -23,4 +24,5 @@
"default_ark_client",
"load_request",
"get_client_pool",
+ "RedisClient",
]
diff --git a/arkitect/core/client/redis.py b/arkitect/core/client/redis.py
new file mode 100644
index 00000000..99a6c799
--- /dev/null
+++ b/arkitect/core/client/redis.py
@@ -0,0 +1,121 @@
+# Copyright 2025 Bytedance Ltd. and/or its affiliates
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import redis.asyncio as redis
+from redis.asyncio.retry import Retry
+from redis.backoff import ExponentialBackoff
+from redis.exceptions import BusyLoadingError, ConnectionError, TimeoutError
+
+from arkitect.core.client.base import Client
+
+
+class RedisClient(Client):
+ """
+ Initialize a new Redis client object.
+
+ Parameters:
+ host (str): The hostname of the Redis server.
+ username (str): The username for the Redis server.
+ password (str): The password for the Redis server.
+
+ Returns:
+ None.
+
+ """
+
+ def __init__(self, host: str, username: str, password: str):
+ self.client = redis.Redis(
+ host=host,
+ username=username,
+ password=password,
+ retry=Retry(ExponentialBackoff(), 3),
+ retry_on_error=[BusyLoadingError, ConnectionError, TimeoutError],
+ )
+
+ async def get(self, key: str) -> str:
+ """
+ Get the value of a key from the Redis database.
+
+ Args:
+ key (str): The key to retrieve from the Redis database.
+
+ Returns:
+ str: The value of the key, or None if the key does not exist.
+
+ """
+ return await self.client.get(key)
+
+ async def set(self, key: str, value: str) -> None:
+ """
+ Set the value of a key in the Redis database.
+ Args:
+ key (str): The key to set in the Redis database.
+ value (str): The value to set for the key.
+ Returns:
+ None.
+ """
+ await self.client.set(key, value)
+
+ async def get_with_prefix(self, prefix: str) -> tuple[list[str], list[str]]:
+ """
+ Asynchronous method to obtain all keys and values from the
+ Redis database that match the specified prefix
+
+ :param prefix: The specified prefix
+
+ :return: A list of tuples containing matching keys
+ and their corresponding values
+ """
+
+ cursor = 0
+ keys = []
+
+ while True:
+ # 使用 SCAN 命令进行迭代查询
+ cursor, key_data = await self.client.scan(cursor, match=prefix, count=1000)
+
+ # 将匹配到的 key 添加到列表中
+ keys.extend(key_data)
+
+ # 如果游标值为 0,则表示遍历完成
+ if cursor == 0 or len(key_data) == 0:
+ break
+
+ # 使用 MGET 命令获取所有匹配到的 key 的对应 value
+ values = await self.client.mget(keys)
+
+ return keys, values
+
+ async def mget(self, keys: list[str]) -> list[str]:
+ """
+ Get the values of multiple keys from the Redis database.
+
+ Args:
+ keys (list): A list of keys to retrieve from the Redis database.
+
+ Returns:
+ list: A list of values corresponding to the given keys.
+
+ """
+ return await self.client.mget(keys)
+
+ async def delete(self, key: str) -> None:
+ """
+ Delete a key from the Redis database.
+ Args:
+ key (str): The key to delete from the Redis database.
+ Returns:
+ None.
+ """
+ await self.client.delete(key)
diff --git a/arkitect/core/component/asr/asr_client.py b/arkitect/core/component/asr/asr_client.py
index cdaf48e0..11eb89d9 100644
--- a/arkitect/core/component/asr/asr_client.py
+++ b/arkitect/core/component/asr/asr_client.py
@@ -105,7 +105,7 @@ async def init(self) -> None:
"X-Api-Request-Id": self.log_id,
}
- self.conn = await websockets.connect(self.base_url, extra_headers=headers)
+ self.conn = await websockets.connect(self.base_url, additional_headers=headers)
INFO(f"Connected to {self.base_url}, log_id: {self.log_id}")
# send init response
diff --git a/arkitect/core/component/context/context.py b/arkitect/core/component/context/context.py
index 286bf603..5a7b02df 100644
--- a/arkitect/core/component/context/context.py
+++ b/arkitect/core/component/context/context.py
@@ -43,15 +43,19 @@
)
from arkitect.core.component.tool.mcp_client import MCPClient
from arkitect.core.component.tool.tool_pool import ToolPool, build_tool_pool
-from arkitect.telemetry.trace import task
+from arkitect.core.component.tool.utils import (
+ convert_to_chat_completion_content_part_param,
+)
+from arkitect.telemetry.trace.wrapper import task
from arkitect.types.llm.model import (
ArkChatParameters,
ArkContextParameters,
)
+from arkitect.types.responses.event import ToolChunk
from .chat_completion import _AsyncChat
from .context_completion import _AsyncContext
-from .model import ContextInterruption, State, ToolChunk
+from .model import ContextInterruption, State
class _AsyncCompletions:
@@ -63,7 +67,7 @@ def __init__(self, ctx: "Context"):
async def handle_tool_call(self) -> bool:
last_message = self._ctx.get_latest_message()
if last_message is None or not last_message.get("tool_calls"):
- return True
+ return False
if self._ctx.tool_pool is None:
return False
for tool_call in last_message.get("tool_calls"):
@@ -86,6 +90,7 @@ async def handle_tool_call(self) -> bool:
tool_resp = await self._ctx.tool_pool.execute_tool(
tool_name=tool_name, parameters=json.loads(parameters)
)
+ tool_resp = convert_to_chat_completion_content_part_param(tool_resp)
except Exception as e:
tool_exception = e
@@ -170,7 +175,7 @@ async def create(
)
try:
- if await self.handle_tool_call():
+ if not await self.handle_tool_call():
break
except HookInterruptException as he:
return ContextInterruption(
@@ -279,6 +284,7 @@ async def execute_tool(
tool_resp = await self._ctx.tool_pool.execute_tool( # type: ignore
tool_name=tool_name, parameters=json.loads(parameters)
)
+ tool_resp = convert_to_chat_completion_content_part_param(tool_resp)
except Exception as e:
tool_exception = e
return tool_resp, tool_exception
diff --git a/arkitect/core/component/context/hooks.py b/arkitect/core/component/context/hooks.py
index fd062ead..5941b051 100644
--- a/arkitect/core/component/context/hooks.py
+++ b/arkitect/core/component/context/hooks.py
@@ -88,13 +88,13 @@ async def pre_tool_call(
if len(state.messages) == 0:
return state
last_message = state.messages[-1]
- if not last_message.get("tool_calls"):
+ if not last_message.tool_calls:
return state
formated_output = []
- for tool_call in last_message.get("tool_calls"):
- tool_name = tool_call.get("function", {}).get("name")
- tool_call_param = tool_call.get("function", {}).get("arguments", "{}")
+ for tool_call in last_message.tool_calls:
+ tool_name = tool_call.function.name
+ tool_call_param = tool_call.function.arguments
formated_output.append(
f"tool_name: {tool_name}\ntool_call_param: {tool_call_param}\n"
)
diff --git a/arkitect/core/component/context/model.py b/arkitect/core/component/context/model.py
index c2fabd2f..109b7a0b 100644
--- a/arkitect/core/component/context/model.py
+++ b/arkitect/core/component/context/model.py
@@ -15,30 +15,20 @@
from typing import Any, List, Literal, Optional
from pydantic import BaseModel, Field
-from volcenginesdkarkruntime.types.chat import ChatCompletionMessageParam
-from arkitect.types.llm.model import ArkChatParameters, ArkContextParameters
-
-
-class ToolChunk(BaseModel):
- tool_call_id: str
- tool_name: str
- tool_arguments: str
- tool_exception: Optional[Exception] = None
- tool_response: Any | None = None
-
- class Config:
- """Configuration for this pydantic object."""
-
- arbitrary_types_allowed = True
+from arkitect.types.llm.model import ArkChatParameters, ArkContextParameters, Message
+from arkitect.types.responses.event import StateUpdateEvent
class State(BaseModel):
+ checkpoint_id: str = ""
+
context_id: Optional[str] = Field(default=None)
- messages: List[ChatCompletionMessageParam] = Field(default_factory=list)
+ messages: List[Message] = Field(default_factory=list)
parameters: Optional[ArkChatParameters] = Field(default=None)
context_parameters: Optional[ArkContextParameters] = Field(default=None)
- details: Optional[Any] = None
+ details: dict = {}
+ events: List[StateUpdateEvent] = Field(default_factory=list)
class ContextInterruption(BaseModel):
diff --git a/arkitect/core/component/context/utils.py b/arkitect/core/component/context/utils.py
index eea22409..c37e7394 100644
--- a/arkitect/core/component/context/utils.py
+++ b/arkitect/core/component/context/utils.py
@@ -16,7 +16,6 @@
from volcenginesdkarkruntime.types.chat import ChatCompletion, ChatCompletionChunk
-from arkitect.core.component.context.model import ToolChunk
from arkitect.telemetry import logger
from arkitect.types.llm.model import (
ActionDetail,
@@ -25,6 +24,7 @@
BotUsage,
ToolDetail,
)
+from arkitect.types.responses.event import ToolChunk
def convert_chunk(
diff --git a/arkitect/core/component/llm/function_call.py b/arkitect/core/component/llm/function_call.py
index 9d98e486..b90d8463 100644
--- a/arkitect/core/component/llm/function_call.py
+++ b/arkitect/core/component/llm/function_call.py
@@ -22,6 +22,9 @@
)
from arkitect.core.component.tool.tool_pool import ToolPool
+from arkitect.core.component.tool.utils import (
+ convert_to_chat_completion_content_part_param,
+)
from arkitect.telemetry.logger import INFO, WARN
from arkitect.telemetry.trace import task
from arkitect.utils import dump_json_str
@@ -88,6 +91,7 @@ async def handle_function_call(
tool_name=tool_name,
parameters=parameters,
)
+ resp = convert_to_chat_completion_content_part_param(resp)
INFO(
f"Function {tool_name} called with parameters:"
+ dump_json_str(parameters)
diff --git a/arkitect/core/component/memory/__init__.py b/arkitect/core/component/memory/__init__.py
new file mode 100644
index 00000000..2e3beabb
--- /dev/null
+++ b/arkitect/core/component/memory/__init__.py
@@ -0,0 +1,26 @@
+# Copyright 2025 Bytedance Ltd. and/or its affiliates
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from .base_memory_service import BaseMemoryService
+from .in_memory_memory_service import (
+ InMemoryMemoryService,
+ InMemoryMemoryServiceSingleton,
+)
+
+
+__all__ = [
+ "BaseMemoryService",
+ "InMemoryMemoryService",
+ "InMemoryMemoryServiceSingleton",
+]
diff --git a/arkitect/core/component/memory/base_memory_service.py b/arkitect/core/component/memory/base_memory_service.py
new file mode 100644
index 00000000..71b910b4
--- /dev/null
+++ b/arkitect/core/component/memory/base_memory_service.py
@@ -0,0 +1,58 @@
+# Copyright 2025 Bytedance Ltd. and/or its affiliates
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from abc import ABC, abstractmethod
+from typing import Any
+
+from openai.types.responses import Response
+from pydantic import BaseModel
+from volcenginesdkarkruntime.types.chat.chat_completion_message import (
+ ChatCompletionMessage,
+)
+
+from arkitect.types.llm.model import Message
+
+
+class Memory(BaseModel):
+ memory_content: str
+ reference: Any | None = None
+ metadata: Any | None = None
+
+
+class SearchMemoryResponse(BaseModel):
+ memories: list[Memory]
+
+ @property
+ def content(self) -> str:
+ return "\n".join([m.memory_content for m in self.memories])
+
+
+class BaseMemoryService(ABC):
+ @abstractmethod
+ async def update_memory(
+ self,
+ user_id: str,
+ new_messages: list[Message | dict | Response | ChatCompletionMessage],
+ **kwargs: Any,
+ ) -> None:
+ pass
+
+ @abstractmethod
+ async def search_memory(
+ self,
+ user_id: str,
+ query: str,
+ **kwargs: Any,
+ ) -> SearchMemoryResponse:
+ pass
diff --git a/arkitect/core/component/memory/in_memory_memory_service.py b/arkitect/core/component/memory/in_memory_memory_service.py
new file mode 100644
index 00000000..f83ae9c2
--- /dev/null
+++ b/arkitect/core/component/memory/in_memory_memory_service.py
@@ -0,0 +1,125 @@
+# Copyright 2025 Bytedance Ltd. and/or its affiliates
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from typing import Any
+
+from openai.types.responses import Response
+from typing_extensions import override
+from volcenginesdkarkruntime import AsyncArk
+from volcenginesdkarkruntime.types.chat.chat_completion_message import (
+ ChatCompletionMessage,
+)
+
+from arkitect.core.component.memory.base_memory_service import (
+ BaseMemoryService,
+ Memory,
+ SearchMemoryResponse,
+)
+from arkitect.core.component.memory.utils import format_message_as_string
+from arkitect.types.llm.model import Message
+from arkitect.utils.common import Singleton
+
+DEFAULT_SEARCH_MEM_PROMPT = """
+You have obtained a series of interactions between a user and an AI assistant.
+Please identify the user’s profile and other key information from
+past interactions to help answer the user’s new question.
+"""
+
+DEFAULT_SEARCH_LLM_MODEL = "doubao-1-5-pro-32k-250115"
+
+
+class InMemoryMemoryService(BaseMemoryService):
+ def __init__(
+ self,
+ default_search_model: str = DEFAULT_SEARCH_LLM_MODEL,
+ default_search_prompt: str = DEFAULT_SEARCH_MEM_PROMPT,
+ ) -> None:
+ self.default_search_model = default_search_model
+ self.default_search_prompt = default_search_prompt
+
+ self.memory: dict = {}
+ self._cached_query: dict = {}
+ self._llm = AsyncArk()
+
+ @override
+ async def update_memory(
+ self,
+ user_id: str,
+ new_messages: list[Message | dict | Response | ChatCompletionMessage],
+ **kwargs: Any,
+ ) -> None:
+ if user_id not in self.memory:
+ self.memory[user_id] = []
+ self.memory[user_id].extend(new_messages)
+ # invalidate cache
+ self._cached_query[user_id] = {}
+
+ @override
+ async def search_memory(
+ self,
+ user_id: str,
+ query: str,
+ **kwargs: Any,
+ ) -> SearchMemoryResponse:
+ if user_id not in self.memory:
+ return SearchMemoryResponse(
+ memories=[
+ Memory(
+ memory_content="no memory found for this user",
+ reference=None,
+ )
+ ]
+ )
+ if self._cached_query.get(user_id, {}).get(query, None) is not None:
+ return self._cached_query[user_id][query]
+ memories = self.memory[user_id]
+ results = "用户过去的交互记录\n\n"
+ for memory in memories:
+ content = format_message_as_string(memory)
+ results += content
+ summary = await self._llm.chat.completions.create(
+ model=self.default_search_model,
+ messages=[
+ {
+ "role": "system",
+ "content": self.default_search_prompt,
+ },
+ {
+ "role": "user",
+ "content": results,
+ },
+ ],
+ stream=False,
+ )
+ memory_response = SearchMemoryResponse(
+ memories=[
+ Memory(
+ memory_content=summary.choices[0].message.content,
+ reference=None,
+ )
+ ]
+ )
+ if user_id not in self._cached_query:
+ self._cached_query[user_id] = {}
+ self._cached_query[user_id][query] = memory_response
+ return memory_response
+
+ @override
+ async def delete_user(self, user_id: str) -> None:
+ if user_id in self.memory:
+ del self.memory[user_id]
+
+
+class InMemoryMemoryServiceSingleton(InMemoryMemoryService, Singleton):
+ pass
diff --git a/arkitect/core/component/memory/mem0_memory_service.py b/arkitect/core/component/memory/mem0_memory_service.py
new file mode 100644
index 00000000..e54558b9
--- /dev/null
+++ b/arkitect/core/component/memory/mem0_memory_service.py
@@ -0,0 +1,146 @@
+# Copyright 2025 Bytedance Ltd. and/or its affiliates
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import asyncio
+import os
+from typing import Any
+
+try:
+ import mem0
+except ImportError:
+ raise ImportError(
+ "Could not import mem0 python package. "
+ "Please install it with `pip install mem0`."
+ )
+from mem0 import AsyncMemory as Mem0Memory
+from mem0.configs.base import MemoryConfig as Mem0Config
+from mem0.embeddings.configs import EmbedderConfig
+from mem0.llms.configs import LlmConfig
+from mem0.vector_stores.configs import VectorStoreConfig
+from openai.types.responses import Response
+from typing_extensions import override
+from volcenginesdkarkruntime import AsyncArk
+from volcenginesdkarkruntime.types.chat.chat_completion_message import (
+ ChatCompletionMessage,
+)
+
+from arkitect.core.component.memory.base_memory_service import (
+ BaseMemoryService,
+ Memory,
+ SearchMemoryResponse,
+)
+from arkitect.core.component.memory.utils import format_message_as_dict
+from arkitect.telemetry.logger import ERROR, INFO
+from arkitect.types.llm.model import Message
+from arkitect.utils.common import Singleton
+
+DEFAULT_EMBEDDING_MODEL = "doubao-embedding-text-240715"
+DEFAULT_LLM_MODEL = "doubao-1-5-vision-pro-32k-250115"
+DEFAULT_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3"
+
+
+default_ark_config = Mem0Config(
+ embedder=EmbedderConfig(
+ provider="openai",
+ config={
+ "model": DEFAULT_EMBEDDING_MODEL,
+ "openai_base_url": DEFAULT_BASE_URL,
+ "api_key": os.getenv("ARK_API_KEY"),
+ "embedding_dims": 2560,
+ },
+ ),
+ llm=LlmConfig(
+ provider="openai",
+ config={
+ "model": DEFAULT_LLM_MODEL,
+ "openai_base_url": DEFAULT_BASE_URL,
+ "api_key": os.getenv("ARK_API_KEY"),
+ "enable_vision": True,
+ },
+ ),
+ vector_store=VectorStoreConfig(config={"embedding_model_dims": 2560}),
+)
+
+
+class Mem0MemoryService(BaseMemoryService):
+
+ def __init__(self, config: Mem0Config = default_ark_config) -> None:
+ self.mem0_config = config if config else Mem0Config()
+ self._llm = AsyncArk()
+ self.memory = Mem0Memory(config=self.mem0_config)
+ self._task_queue: asyncio.Queue = asyncio.Queue()
+
+ @override
+ async def update_memory(
+ self,
+ user_id: str,
+ new_messages: list[Message | dict | Response | ChatCompletionMessage],
+ blocking: bool = False,
+ **kwargs: Any,
+ ) -> None:
+ conversation = []
+ for item in new_messages:
+ conversation.append(format_message_as_dict(item))
+ if blocking:
+ await self._add_memory(conversation, user_id)
+ else:
+ await self._task_queue.put(
+ asyncio.create_task(self._add_memory(conversation, user_id))
+ )
+ INFO("Memory update submitted")
+
+ async def _add_memory(self, conversation, user_id):
+ await self.memory.add(conversation, user_id=user_id)
+ INFO("Memory update completed")
+
+ async def _background_processor(self) -> None:
+ while True:
+ task = await self._task_queue.get()
+ try:
+ await task
+ except Exception as e:
+ ERROR(f"Memory update failed: {e}")
+ self._task_queue.task_done()
+
+ @override
+ async def search_memory(
+ self,
+ user_id: str,
+ query: str,
+ limit: int = 3,
+ **kwargs: Any,
+ ) -> SearchMemoryResponse:
+ relevant_memories = await self.memory.search(
+ query=query, user_id=user_id, limit=limit
+ )
+ fetched_results = relevant_memories.get("results", [])
+ memeory_string = ""
+ for element in fetched_results:
+ memeory_string += element.get("memory", "") + "\n"
+ return SearchMemoryResponse(
+ memories=[
+ Memory(
+ memory_content=memeory_string,
+ reference=None,
+ metadata=relevant_memories,
+ )
+ ]
+ )
+
+ async def delete_user(self, user_id: str) -> None:
+ await self.memory.delete_all(user_id=user_id)
+
+
+class Mem0MemoryServiceSingleton(Mem0MemoryService, Singleton):
+ pass
diff --git a/arkitect/core/component/memory/utils.py b/arkitect/core/component/memory/utils.py
new file mode 100644
index 00000000..e0be519e
--- /dev/null
+++ b/arkitect/core/component/memory/utils.py
@@ -0,0 +1,50 @@
+# Copyright 2025 Bytedance Ltd. and/or its affiliates
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from openai.types.responses import Response
+from volcenginesdkarkruntime.types.chat.chat_completion_message import (
+ ChatCompletionMessage,
+)
+
+from arkitect.types.llm.model import Message
+
+
+def format_message_as_string(
+ message: Message | dict | Response | ChatCompletionMessage,
+) -> str:
+ if isinstance(message, Message):
+ return f"{message.role}: {message.content}\n"
+ elif isinstance(message, dict):
+ return f"{message['role']}: {message['content']}\n"
+ elif isinstance(message, Response):
+ return f"assistant: {message.output_text}"
+ elif isinstance(message, ChatCompletionMessage):
+ return f"assistant: {message.content}"
+ else:
+ raise ValueError("Invalid message type")
+
+
+def format_message_as_dict(
+ message: Message | dict | Response | ChatCompletionMessage,
+) -> dict:
+ if isinstance(message, Message):
+ return message.model_dump()
+ elif isinstance(message, dict):
+ return message
+ elif isinstance(message, Response):
+ return {"role": "assistant", "content": message.output_text}
+ elif isinstance(message, ChatCompletionMessage):
+ return {"role": "assistant", "content": message.content}
+ else:
+ raise ValueError("Invalid message type")
diff --git a/arkitect/core/component/tool/builder.py b/arkitect/core/component/tool/builder.py
index a7effd04..9412044b 100644
--- a/arkitect/core/component/tool/builder.py
+++ b/arkitect/core/component/tool/builder.py
@@ -47,6 +47,8 @@ def build_mcp_clients_from_config( # type: ignore
env = mcp_servers_config[server_name].get("env", None)
server_url = mcp_servers_config[server_name].get("url", None)
port = mcp_servers_config[server_name].get("port", None)
+ headers = mcp_servers_config[server_name].get("headers", None)
+ transport = mcp_servers_config[server_name].get("type", None)
if port is not None:
logger.info("Starting local SSE MCP server")
client = MCPClient(
@@ -60,9 +62,12 @@ def build_mcp_clients_from_config( # type: ignore
client = MCPClient(
name=server_name,
server_url=server_url,
+ exit_stack=exit_stack,
command=command,
arguments=args,
env=env,
+ headers=headers,
+ transport=transport,
**kwargs,
)
mcp_clients[server_name] = client
diff --git a/arkitect/core/component/tool/mcp_client.py b/arkitect/core/component/tool/mcp_client.py
index 1905142f..a53735de 100644
--- a/arkitect/core/component/tool/mcp_client.py
+++ b/arkitect/core/component/tool/mcp_client.py
@@ -11,17 +11,16 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-
+import sys
import asyncio
import datetime
+from datetime import timedelta
import logging
from contextlib import AsyncExitStack
-from typing import Any, Dict
+from typing import Any, Dict, TextIO
-from volcenginesdkarkruntime.types.chat import ChatCompletionContentPartParam
from arkitect.core.component.tool.utils import (
- convert_to_chat_completion_content_part_param,
mcp_to_chat_completion_tool,
)
from arkitect.telemetry.trace import task
@@ -34,6 +33,9 @@
)
from mcp.client.sse import sse_client
from mcp.client.stdio import get_default_environment
+from mcp.client.streamable_http import streamablehttp_client
+from mcp.types import CallToolResult
+
logger = logging.getLogger(__name__)
@@ -50,6 +52,8 @@ def __init__(
timeout: float = 30,
sse_read_timeout: float = 60 * 5,
exit_stack: AsyncExitStack | None = None,
+ transport: str | None = None,
+ errlog: TextIO | None = sys.stderr,
) -> None:
self.command = command
self.arguments = arguments
@@ -58,6 +62,8 @@ def __init__(
self.headers = headers
self.timeout: float = timeout
self.sse_read_timeout = sse_read_timeout
+ self.transport = transport
+ self.errlog = errlog
# Initialize session and client objects
self.session: ClientSession = None # type: ignore
@@ -78,7 +84,10 @@ async def connect_to_server(
if self.command is not None and self.server_url is not None:
raise ValueError("You should set either command or server_url")
if self.server_url is not None:
- await self._connect_to_sse_server()
+ if self.transport == "streamable-http":
+ await self._connect_to_streamablehttp_server()
+ else:
+ await self._connect_to_sse_server()
elif self.command is not None:
await self._connect_to_stdio_server()
else:
@@ -105,7 +114,7 @@ async def _connect_to_stdio_server(self) -> None:
)
stdio_transport = await self.exit_stack.enter_async_context(
- stdio_client(server_params)
+ stdio_client(server_params, self.errlog)
)
stdio_read, stdio_write = stdio_transport
self.session = await self.exit_stack.enter_async_context(
@@ -134,6 +143,25 @@ async def _connect_to_sse_server(
ClientSession(*streams)
)
+ async def _connect_to_streamablehttp_server(
+ self,
+ ) -> None:
+ """Connect to an MCP server running with streamable http transport"""
+ streams = await self.exit_stack.enter_async_context(
+ streamablehttp_client(
+ url=self.server_url, # type: ignore
+ headers=self.headers,
+ timeout=timedelta(seconds=self.timeout),
+ sse_read_timeout=timedelta(seconds=self.sse_read_timeout),
+ )
+ )
+
+ read, write, _ = streams
+
+ self.session = await self.exit_stack.enter_async_context(
+ ClientSession(read, write)
+ )
+
async def _init(self) -> None:
# Initialize
logger.info("Initialized mcp client...")
@@ -202,7 +230,7 @@ async def execute_tool(
self,
tool_name: str,
parameters: dict[str, Any],
- ) -> str | list[ChatCompletionContentPartParam]:
+ ) -> CallToolResult:
async with self._lock:
if self.session is None:
logger.warning(
@@ -210,7 +238,7 @@ async def execute_tool(
)
await self.connect_to_server()
result = await self.session.call_tool(tool_name, parameters)
- return convert_to_chat_completion_content_part_param(result)
+ return result
@task()
async def get_tool(self, tool_name: str, use_cache: bool = True) -> Tool | None:
diff --git a/arkitect/core/component/tool/mcp_server.py b/arkitect/core/component/tool/mcp_server.py
index 8409ae59..42b1633d 100644
--- a/arkitect/core/component/tool/mcp_server.py
+++ b/arkitect/core/component/tool/mcp_server.py
@@ -30,9 +30,9 @@ class ArkFastMCP(FastMCP):
def __init__(self, *args, **kwargs): # type: ignore
super().__init__(*args, **kwargs)
- def run(
+ def run( # type: ignore
self,
- transport: Literal["stdio", "sse"] = "stdio",
+ transport: Literal["stdio", "sse", "streamable-http"] = "stdio",
trace_on: bool = True,
log_dir: str | None = None,
) -> None:
diff --git a/arkitect/core/component/tool/tool_pool.py b/arkitect/core/component/tool/tool_pool.py
index d5ffd6ed..138e0ba7 100644
--- a/arkitect/core/component/tool/tool_pool.py
+++ b/arkitect/core/component/tool/tool_pool.py
@@ -14,11 +14,9 @@
from typing import Any, Callable, Dict
-from volcenginesdkarkruntime.types.chat import ChatCompletionContentPartParam
from arkitect.core.component.tool.mcp_client import MCPClient
from arkitect.core.component.tool.utils import (
- convert_to_chat_completion_content_part_param,
find_duplicate_tools,
mcp_to_chat_completion_tool,
)
@@ -89,13 +87,11 @@ async def execute_tool(
self,
tool_name: str,
parameters: dict[str, Any],
- ) -> str | list[ChatCompletionContentPartParam]:
+ ) -> CallToolResult:
available_tool_names = [t.name for t in await self.session.list_tools()]
if tool_name in available_tool_names:
result = await self.session.call_tool(tool_name, parameters)
- return convert_to_chat_completion_content_part_param(
- CallToolResult(content=list(result), isError=False)
- )
+ return CallToolResult(content=list(result), isError=False)
else:
for client in self.mcp_clients.values():
if await client.get_tool(tool_name):
diff --git a/arkitect/core/component/tts/tts_client.py b/arkitect/core/component/tts/tts_client.py
index da78c20d..35d831dd 100644
--- a/arkitect/core/component/tts/tts_client.py
+++ b/arkitect/core/component/tts/tts_client.py
@@ -72,7 +72,7 @@ async def init(
) -> None:
headers = self._build_http_header()
INFO("with logID: %s , header: %s", self.log_id, headers)
- self.conn = await websockets.connect(self.base_url, extra_headers=headers)
+ self.conn = await websockets.connect(self.base_url, additional_headers=headers)
INFO("Dial server with LogID: %s", self.log_id)
# Create a new message with type MsgTypeFullClient and flag MsgTypeFlagWithEvent
msg = Message(event=EventStartConnection)
diff --git a/arkitect/types/llm/model.py b/arkitect/types/llm/model.py
index b0418335..9dbd38f4 100644
--- a/arkitect/types/llm/model.py
+++ b/arkitect/types/llm/model.py
@@ -278,6 +278,10 @@ def validate_content(cls, v: Dict[str, Any]) -> Dict[str, Any]:
return v
+# Alias
+Message = ArkMessage
+
+
class ArkChatRequest(Request):
messages: List[ArkMessage]
"""
@@ -590,6 +594,27 @@ def merge_usages(
self.usage = total_usage
return total_usage
+ def merge_bot_usages(self, others: Union[BotUsage, List[BotUsage]]) -> BotUsage:
+ if not others:
+ return self.bot_usage
+ if not isinstance(others, list):
+ others = [others]
+ total_bot_usage = BotUsage(
+ model_usage=self.bot_usage.model_usage if self.bot_usage else [],
+ action_usage=self.bot_usage.action_usage if self.bot_usage else [],
+ action_details=self.bot_usage.action_details if self.bot_usage else [],
+ )
+ for bot_usage in others:
+ if bot_usage.model_usage:
+ total_bot_usage.model_usage.extend(bot_usage.model_usage)
+ if bot_usage.action_usage:
+ total_bot_usage.action_usage.extend(bot_usage.action_usage)
+ if bot_usage.action_details:
+ total_bot_usage.action_details.extend(bot_usage.action_details)
+
+ self.bot_usage = total_bot_usage
+ return total_bot_usage
+
class ArkChatCompletionChunk(Response):
id: str
diff --git a/arkitect/types/responses/event.py b/arkitect/types/responses/event.py
new file mode 100644
index 00000000..f0f034ba
--- /dev/null
+++ b/arkitect/types/responses/event.py
@@ -0,0 +1,179 @@
+# Copyright 2025 Bytedance Ltd. and/or its affiliates
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
+# Licensed under the 【火山方舟】原型应用软件自用许可协议
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# https://www.volcengine.com/docs/82379/1433703
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+from typing import Any, Optional
+import time
+from pydantic import BaseModel, Field
+
+from arkitect.core.errors.exceptions import APIException
+from arkitect.types.llm.model import (
+ ActionDetail,
+ ArkChatCompletionChunk,
+ Message,
+ BotUsage,
+ ToolDetail,
+)
+
+
+class ToolChunk(BaseModel):
+ tool_call_id: str
+ tool_name: str
+ tool_arguments: str
+ tool_exception: Optional[Exception] = None
+ tool_response: Any | None = None
+
+ class Config:
+ """Configuration for this pydantic object."""
+
+ arbitrary_types_allowed = True
+
+
+class BaseEvent(BaseModel):
+ id: str = ""
+
+ author: str = ""
+ session_id: Optional[str] = ""
+ created: int = Field(default_factory=lambda: int(time.time()))
+
+ class Config:
+ """Configuration for this pydantic object."""
+
+ arbitrary_types_allowed = True
+
+ def to_chunk(self) -> ArkChatCompletionChunk:
+ raise NotImplementedError()
+
+
+"""
+Errors
+"""
+
+
+class ErrorEvent(BaseEvent):
+ exception: BaseException | None = None
+ error_code: str = ""
+ error_msg: str = ""
+
+ def to_chunk(self) -> ArkChatCompletionChunk:
+ if self.exception is not None:
+ raise self.exception
+ else:
+ raise APIException(message=self.error_msg, code=self.error_code)
+
+
+class InvalidParameter(ErrorEvent):
+ parameter: str = ""
+ error_code: str = "InvalidParameter"
+ error_msg: str = "the specific parameter is invalid"
+
+
+class InternalServiceError(ErrorEvent):
+ error_code: str = "InternalServiceError"
+
+
+"""
+Messages
+"""
+
+
+class MessageEvent(BaseEvent, ArkChatCompletionChunk):
+
+ def to_chunk(self) -> ArkChatCompletionChunk:
+ return self
+
+
+"""
+Tool-Using
+"""
+
+
+class ToolCallEvent(BaseEvent):
+ tool_call_id: str = ""
+ tool_name: str = ""
+ tool_arguments: str
+
+ def to_chunk(self) -> ArkChatCompletionChunk:
+ return ArkChatCompletionChunk(
+ id=self.id,
+ choices=[],
+ created=self.created,
+ model="default",
+ object="chat.completion.chunk",
+ bot_usage=BotUsage(
+ action_details=[
+ ActionDetail(
+ name=self.tool_name,
+ tool_details=[
+ ToolDetail(
+ name=self.tool_name,
+ input=self.tool_arguments,
+ output=None,
+ )
+ ],
+ )
+ ]
+ ),
+ )
+
+
+class ToolCompletedEvent(ToolCallEvent):
+ tool_exception: Optional[Exception] = None
+ tool_response: Any | None = None
+
+ def to_chunk(self) -> ArkChatCompletionChunk:
+ return ArkChatCompletionChunk(
+ id=self.id,
+ choices=[],
+ created=self.created,
+ model="default",
+ object="chat.completion.chunk",
+ bot_usage=BotUsage(
+ action_details=[
+ ActionDetail(
+ name=self.tool_name,
+ tool_details=[
+ ToolDetail(
+ name=self.tool_name,
+ input=self.tool_arguments,
+ output=self.tool_response,
+ )
+ ],
+ )
+ ]
+ ),
+ )
+
+
+"""
+Control event
+"""
+
+
+class EOFEvent(BaseEvent):
+ pass
+
+
+class StateUpdateEvent(BaseEvent):
+ details_delta: dict | None = None
+ message_delta: list[Message] | None = None
diff --git a/arkitect/types/responses/utils.py b/arkitect/types/responses/utils.py
new file mode 100644
index 00000000..3874db14
--- /dev/null
+++ b/arkitect/types/responses/utils.py
@@ -0,0 +1,57 @@
+# Copyright 2025 Bytedance Ltd. and/or its affiliates
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
+# Licensed under the 【火山方舟】原型应用软件自用许可协议
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# https://www.volcengine.com/docs/82379/1433703
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import volcenginesdkarkruntime.types.chat.chat_completion_chunk as completion_chunk
+
+from arkitect.core.errors.exceptions import APIException
+from arkitect.types.llm.model import (
+ ActionDetail,
+ ArkChatCompletionChunk,
+ BotUsage,
+ ToolDetail,
+)
+from arkitect.types.responses.event import (
+ BaseEvent,
+ ErrorEvent,
+ MessageEvent,
+ ToolCallEvent,
+ ToolChunk,
+ ToolCompletedEvent,
+)
+
+
+def convert_tool_chunk_to_event(chunk: ToolChunk) -> BaseEvent:
+ if chunk.tool_response:
+ return ToolCompletedEvent(
+ tool_call_id=chunk.tool_call_id,
+ tool_name=chunk.tool_name,
+ tool_arguments=chunk.tool_arguments,
+ tool_response=chunk.tool_response,
+ )
+ return ToolCallEvent(
+ tool_call_id=chunk.tool_call_id,
+ tool_name=chunk.tool_name,
+ tool_arguments=chunk.tool_arguments,
+ )
diff --git a/arkitect/utils/common.py b/arkitect/utils/common.py
index 1bb37171..90249b99 100644
--- a/arkitect/utils/common.py
+++ b/arkitect/utils/common.py
@@ -33,9 +33,9 @@ async def get_instance_async(cls, *args: Any, **kwargs: Any) -> T:
async with cls._lock:
if not cls._instance:
self = cls(*args, **kwargs)
- assert hasattr(self, "async_init"), (
- "async singletons must define async_init function"
- )
+ assert hasattr(
+ self, "async_init"
+ ), "async singletons must define async_init function"
await self.async_init()
cls._instance = self
logger.debug("singleton class initialized", name=cls.__name__)
@@ -45,9 +45,9 @@ async def get_instance_async(cls, *args: Any, **kwargs: Any) -> T:
def get_instance_sync(cls, *args: Any, **kwargs: Any) -> T:
if not cls._instance:
self = cls(*args, **kwargs)
- assert not hasattr(self, "async_init"), (
- f"class {cls.__name__} init with get_instance_async."
- )
+ assert not hasattr(
+ self, "async_init"
+ ), f"class {cls.__name__} init with get_instance_async."
cls._instance = self
logger.debug("singleton class initialized", name=cls.__name__)
return cls._instance
@@ -68,9 +68,9 @@ async def get_instance_async(cls, *args: Any, **kwargs: Any) -> T:
if not cls._instance or cls.is_outdated():
async with cls._lock:
if (not cls._instance) or cls.is_outdated():
- assert hasattr(cls, "async_init"), (
- "async singletons must define async_init function"
- )
+ assert hasattr(
+ cls, "async_init"
+ ), "async singletons must define async_init function"
cls._instance = await cls.async_init(*args, **kwargs)
cls._refresh_time = time.time()
logger.debug("singleton class initialized", name=cls.__name__)
diff --git a/examples/memory_service/agent_with_memory/.python-version b/examples/memory_service/agent_with_memory/.python-version
new file mode 100644
index 00000000..c8cfe395
--- /dev/null
+++ b/examples/memory_service/agent_with_memory/.python-version
@@ -0,0 +1 @@
+3.10
diff --git a/examples/memory_service/agent_with_memory/README.md b/examples/memory_service/agent_with_memory/README.md
new file mode 100644
index 00000000..e69de29b
diff --git a/examples/memory_service/agent_with_memory/arkitect-0.2.1-py3-none-any.whl b/examples/memory_service/agent_with_memory/arkitect-0.2.1-py3-none-any.whl
new file mode 100644
index 00000000..6e04756f
Binary files /dev/null and b/examples/memory_service/agent_with_memory/arkitect-0.2.1-py3-none-any.whl differ
diff --git a/examples/memory_service/agent_with_memory/main.py b/examples/memory_service/agent_with_memory/main.py
new file mode 100644
index 00000000..fbba920a
--- /dev/null
+++ b/examples/memory_service/agent_with_memory/main.py
@@ -0,0 +1,168 @@
+# Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
+# Licensed under the 【火山方舟】原型应用软件自用许可协议
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# https://www.volcengine.com/docs/82379/1433703
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import logging
+import os
+import re
+from typing import AsyncIterable
+from mem0.configs.base import MemoryConfig as Mem0Config
+from mem0.embeddings.configs import EmbedderConfig
+from mem0.llms.configs import LlmConfig
+from mem0.vector_stores.configs import VectorStoreConfig
+from arkitect.core.component.runner.config import RunnerConfig, MemoryUpdateSetting
+from tools import get_commute_duration, get_instructions, web_search
+
+from arkitect.core.component.agent import DefaultAgent
+from arkitect.core.component.memory.mem0_memory_service import (
+ Mem0MemoryService as MemoryService,
+)
+from arkitect.core.component.memory.mem0_memory_service import (
+ Mem0MemoryServiceSingleton,
+)
+from arkitect.core.component.runner import Runner
+from arkitect.launcher.local.serve import launch_serve
+from arkitect.telemetry.trace import task
+from arkitect.types.llm.model import ArkChatCompletionChunk, ArkChatRequest, ArkMessage
+
+MODELS = {
+ # "default": "doubao-1-5-vision-pro-32k-250115",
+ "default": "doubao-1-5-vision-pro-32k-250115",
+ "reasoning": "deepseek-r1-250120",
+ "vision": "doubao-1-5-vision-pro-32k-250115",
+}
+
+DEFAULT_EMBEDDING_MODEL = "doubao-embedding-text-240715"
+DEFAULT_LLM_MODEL = "doubao-1-5-vision-pro-32k-250115"
+DEFAULT_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3"
+LONG_TERM_MEMORY_VDB = "mem0_test"
+MILVUS_URL = os.getenv("MILVUS_URL")
+MILVUS_TOKEN = os.getenv("MILVUS_TOKEN")
+
+APP_NAME = "property_agent"
+
+
+def preprocess_reqeusts(messages: list[ArkMessage]) -> list[ArkMessage]:
+ refined_messages = []
+ front_part = messages[-1].content.split("Show all media")[0]
+ pattern = r"!\[[^\]]*\]\((https?://[^\s)]+?\.(?:jpg|jpeg|png|gif))\)"
+ image_urls = re.findall(pattern, front_part, re.IGNORECASE)
+ for image_url in image_urls:
+ if "youtube" in image_url:
+ continue
+ refined_messages.append(
+ {
+ "type": "image_url",
+ "image_url": {
+ "url": image_url,
+ "detail": "auto",
+ },
+ }
+ )
+ refined_messages.append(
+ {
+ "type": "text",
+ "text": messages[-1].content,
+ }
+ )
+ return messages
+ # return [ArkMessage(role="user", content=refined_messages)]
+
+
+async def update_memory(
+ user_id: str,
+ messages: list[ArkMessage],
+ mem_service: MemoryService,
+) -> None:
+ return await mem_service.update_memory(
+ user_id=user_id,
+ new_messages=messages,
+ )
+
+
+@task(distributed=False)
+async def main(request: ArkChatRequest) -> AsyncIterable[ArkChatCompletionChunk]:
+ user_id = request.metadata.get("user_id")
+ is_update_memory = request.metadata.get("update_memory", False)
+ logging.basicConfig(
+ level=logging.DEBUG,
+ )
+
+ default_ark_config = Mem0Config(
+ embedder=EmbedderConfig(
+ provider="openai",
+ config={
+ "model": DEFAULT_EMBEDDING_MODEL,
+ "openai_base_url": DEFAULT_BASE_URL,
+ "api_key": os.getenv("ARK_API_KEY"),
+ "embedding_dims": 2560,
+ },
+ ),
+ llm=LlmConfig(
+ provider="openai",
+ config={
+ "model": DEFAULT_LLM_MODEL,
+ "openai_base_url": DEFAULT_BASE_URL,
+ "api_key": os.getenv("ARK_API_KEY"),
+ "enable_vision": True,
+ },
+ ),
+ vector_store=VectorStoreConfig(
+ provider="milvus",
+ config={
+ "url": MILVUS_URL,
+ "token": MILVUS_TOKEN,
+ "collection_name": LONG_TERM_MEMORY_VDB,
+ "embedding_model_dims": 2560,
+ "metric_type": "IP",
+ },
+ ),
+ )
+
+ mem_service: MemoryService = Mem0MemoryServiceSingleton.get_instance_sync(
+ default_ark_config
+ )
+
+ if is_update_memory:
+ await update_memory(
+ user_id=user_id, messages=request.messages, mem_service=mem_service
+ )
+ return
+ yield
+ house_agent = DefaultAgent(
+ model=MODELS["default"],
+ name="Housing Agent",
+ tools=[get_commute_duration, web_search],
+ instruction=await get_instructions(user_id=user_id, memory_service=mem_service),
+ )
+ runner = Runner(
+ app_name=APP_NAME,
+ agent=house_agent,
+ memory_service=mem_service,
+ config=RunnerConfig(
+ memory_update_behavior=MemoryUpdateSetting.NO_AUTO_UPDATE,
+ ),
+ )
+ messages = preprocess_reqeusts(request.messages)
+ async for resp in runner.run(messages=messages, user_id=user_id):
+ yield resp.to_chunk()
+
+
+if __name__ == "__main__":
+ port = os.getenv("_BYTEFAAS_RUNTIME_PORT")
+ # setup_tracing()
+ launch_serve(
+ package_path="main",
+ clients={},
+ port=int(port) if port else 8888,
+ host=None,
+ health_check_path="/v1/ping",
+ endpoint_path="/api/v3/bots/chat/completions",
+ )
diff --git a/examples/memory_service/agent_with_memory/pyproject.toml b/examples/memory_service/agent_with_memory/pyproject.toml
new file mode 100644
index 00000000..ef0373b5
--- /dev/null
+++ b/examples/memory_service/agent_with_memory/pyproject.toml
@@ -0,0 +1,12 @@
+[project]
+name = "memory-service"
+version = "0.1.0"
+description = "Add your description here"
+readme = "README.md"
+requires-python = ">=3.10, <4.0"
+dependencies = [
+ "arkitect",
+]
+
+[tool.uv.sources]
+arkitect = { workspace = true }
diff --git a/examples/memory_service/agent_with_memory/requirements.txt b/examples/memory_service/agent_with_memory/requirements.txt
new file mode 100644
index 00000000..20f5ade7
--- /dev/null
+++ b/examples/memory_service/agent_with_memory/requirements.txt
@@ -0,0 +1,3 @@
+mem0ai>=0.1.101
+arkitect-0.2.1-py3-none-any.whl
+pymilvus>=2.5.9
\ No newline at end of file
diff --git a/examples/memory_service/agent_with_memory/run.sh b/examples/memory_service/agent_with_memory/run.sh
new file mode 100644
index 00000000..8f22ee5a
--- /dev/null
+++ b/examples/memory_service/agent_with_memory/run.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+set -ex
+# shellcheck disable=SC2046
+cd `dirname $0`
+export PYTHONPATH=$PYTHONPATH:./site-packages
+
+exec python3 main.py
\ No newline at end of file
diff --git a/examples/memory_service/agent_with_memory/tools.py b/examples/memory_service/agent_with_memory/tools.py
new file mode 100644
index 00000000..bd739e49
--- /dev/null
+++ b/examples/memory_service/agent_with_memory/tools.py
@@ -0,0 +1,75 @@
+from typing import Any
+
+from arkitect.core.component.memory.base_memory_service import BaseMemoryService
+
+MODELS = {
+ "default": "doubao-1-5-thinking-vision-pro-250428",
+ "reasoning": "deepseek-r1-250120",
+ "vision": "doubao-1-5-vision-pro-32k-250115",
+}
+
+APP_NAME = "property_agent"
+
+# --- Configuration ---
+# CONFIG_FILE_PATH = "./mcp_config.json" # For MCP tools, if any
+
+
+# --- Placeholder Tools ---
+def get_commute_duration(
+ start_address: str,
+ end_address: str,
+) -> dict[str, str]:
+ """
+ Google Maps API to find commute duration.
+ Args:
+ start_address (str): The starting address.
+ end_address (str): The destination address.
+ Returns:
+ dict: A dictionary containing commute duration and distance.
+ """
+ print(f"Tool: get_commute_duration called for {start_address} to {end_address}")
+ # Simulate API call
+ if "tanjong pagar" in end_address.lower():
+ return {"duration": "30 mins", "distance": "15 km"}
+ return {"duration": "unknown", "distance": "unknown"}
+
+
+def web_search(key_words: str) -> dict[str, Any]:
+ """
+ Web search to find property comments or reviews.
+ Args:
+ property_name (str): Name of the property.
+ address (str): Address of the property.
+ Returns:
+ dict: A dictionary containing found comments or a summary.
+ """
+ print(f"Tool: search_property_comments called for {key_words}")
+ # Simulate web search
+ if "Starville" in key_words:
+ return {"summary": "Generally positive reviews"}
+ return {"summary": "No specific comments found."}
+
+
+async def get_instructions(user_id: str, memory_service: BaseMemoryService) -> str:
+ memory = await memory_service.search_memory(
+ user_id, query="Details of room preferences for this user."
+ )
+ user_preference = memory.content
+ if len(memory.memories) == 0:
+ user_preference = "No user preferences found."
+ base_instruction = f"""
+You are a helpful assistant that helps evaluate housing rentals for users based on their preferences.
+
+User's preferences:
+{user_preference}
+
+Below is a new housing rental listing. Determine whether it matches the user's preferences. If you think there is insufficient information,
+You can use tools like web_search and get_commute_duration to find our more information.
+
+If it does, explain briefly why. If it doesn't, explain what does not match.
+
+Your response should be structured as:
+Match: Yes/No
+Explanation: [Brief explanation here]
+"""
+ return base_instruction
diff --git a/examples/memory_service/agent_with_memory/zip.sh b/examples/memory_service/agent_with_memory/zip.sh
new file mode 100644
index 00000000..06ee2932
--- /dev/null
+++ b/examples/memory_service/agent_with_memory/zip.sh
@@ -0,0 +1 @@
+zip -r code.zip main.py tools.py run.sh requirements.txt mem0ai-0.1.99-py3-none-any.whl arkitect-0.2.1-py3-none-any.whl
diff --git a/examples/memory_service/client/data/crawl_listings.py b/examples/memory_service/client/data/crawl_listings.py
new file mode 100644
index 00000000..81ab90dc
--- /dev/null
+++ b/examples/memory_service/client/data/crawl_listings.py
@@ -0,0 +1,99 @@
+import json
+import os
+import re
+import time
+
+from dotenv import load_dotenv
+from firecrawl import FirecrawlApp
+
+
+def extract_listing_id(url):
+ """Extracts the listing ID from a PropertyGuru URL."""
+ match = re.search(r"-(\d+)$", url)
+ if match:
+ return match.group(1)
+ return None
+
+
+def crawl_and_save_listings(
+ json_filepath="listings.json", output_folder="crawled_listings"
+):
+ """
+ Reads listing URLs from a JSON file, crawls them using Firecrawl,
+ and saves the content as markdown files.
+ """
+ load_dotenv() # Load environment variables from .env file, if present
+ api_key = os.getenv("FIRECRAWL_API_KEY")
+
+ if not api_key:
+ print("Error: FIRECRAWL_API_KEY environment variable not set.")
+ return
+
+ try:
+ print(f"Reading listings from {json_filepath}...")
+ with open(json_filepath, "r", encoding="utf-8") as f:
+ listings = json.load(f)
+ except FileNotFoundError:
+ print(f"Error: {json_filepath} not found.")
+ return
+ except json.JSONDecodeError:
+ print(f"Error: Could not decode JSON from {json_filepath}.")
+ return
+
+ if not os.path.exists(output_folder):
+ print(f"Creating output folder: {output_folder}...")
+ os.makedirs(output_folder)
+
+ app = FirecrawlApp(api_key=api_key)
+ print(f"Found {len(listings)} listings to crawl.")
+
+ for i, listing in enumerate(listings):
+ url = listing.get("url")
+ if not url:
+ print(f"Skipping listing {i+1} due to missing URL.")
+ continue
+
+ listing_id = extract_listing_id(url)
+ if not listing_id:
+ print(f"Skipping URL (could not extract ID): {url}")
+ continue
+
+ output_md_filepath = os.path.join(output_folder, f"{listing_id}.md")
+ print(f"Crawling ({i+1}/{len(listings)}): {url} (ID: {listing_id})")
+
+ try:
+ crawl_result = app.scrape_url(
+ url,
+ formats=["markdown"],
+ only_main_content=True,
+ )
+
+ if crawl_result and crawl_result.markdown:
+ with open(output_md_filepath, "w", encoding="utf-8") as md_file:
+ md_file.write(crawl_result.markdown)
+ print(f"Successfully saved: {output_md_filepath}")
+ else:
+ print(
+ f"Failed to get markdown content for {url}. Response: {crawl_result}"
+ )
+ # Save an empty file or error message if preferred
+ with open(output_md_filepath, "w", encoding="utf-8") as md_file:
+ md_file.write(
+ f"# Error crawling URL: {url}\n\nFirecrawl response did not contain markdown."
+ )
+
+ except Exception as e:
+ print(f"Error crawling {url}: {e}")
+ # Optionally, save an error message to the file
+ with open(output_md_filepath, "w", encoding="utf-8") as md_file:
+ md_file.write(f"# Error crawling URL: {url}\n\nException: {e}")
+
+ # Add a small delay to be respectful to the server and API rate limits
+ if i < len(listings) - 1: # Don't sleep after the last item
+ time.sleep(1) # 1-second delay
+
+ print("Crawling process completed.")
+
+
+if __name__ == "__main__":
+ crawl_and_save_listings()
diff --git a/examples/memory_service/client/data/crawled_listings/12924756.md b/examples/memory_service/client/data/crawled_listings/12924756.md
new file mode 100644
index 00000000..e3b052a9
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/12924756.md
@@ -0,0 +1,632 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/15
+
+Show all media
+
+# 11 Cantonment Close
+
+11 Cantonment Close
+
+# S$ 3,999 /mo
+
+Starting From
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+807
+
+sqft
+
+* * *
+
+440 m (5 mins) from CC31 Cantonment MRT
+
+
+
+Ready to move in HDB Flat
+
+* * *
+
+
+
+Photos
+
+
+
+Video
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  4S (Simplified) HDB for rent |  Fully furnished |
+|  TOP in 2000 |  Flexible lease |
+|  Listed on 10 May 2025 |  Welcome all races, religions, genders, and sexual orientations. |
+
+See all details
+
+## About this property
+
+### C.H.E.A.P Renovated unit. Move in conditon call Daniel now
+
+Cheap unit
+
+avail immediately
+
+many amenities nearby
+
+Walking dist to mrt and tanjong Pagar
+
+High floor unblock view
+
+High Floor Panoramic View
+
+Bright And Windy Unit
+
+3 bedroom unit
+
+\- High Floor 3 bedroom unit for rent
+
+\- Panoramic and unblocked view of the sea and port
+
+\- Privacy unit, no door to door facing
+
+\- Bright and windy unit
+
+\- Full height window in the master bedroom
+
+\- Spacious unit, efficient space usage
+
+\- Central location, walk 2 mins to Outram MRT and Tanjong Pagar MRT
+
+\- Partial/ Fully Furnished
+
+\- Supermarket directly below the block
+
+\- Child care centre and many other amenities within the vicinity
+
+\- Tanjong Pagar Plaza
+
+\- 24 hour NTUC supermarket
+
+\- Cafe and eateries nearby
+
+Kindly advise your profile for landlord's consideration:
+
+Nationality
+
+Profession
+
+Number of occupiers
+
+Relation amongst occupiers
+
+Move in date
+
+Length of lease
+
+Budget /month
+
+Call Daniel at
+9\*\*\*\*\*
+to view
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cantonment MRT
+
+CC31
+
+
+
+5 mins
+
+440 m
+
+Outram Park MRT
+
+EW16
+
+NE3
+
+TE17
+
+
+
+9 mins
+
+750 m
+
+Prince Edward Road MRT
+
+CC32
+
+
+
+10 mins
+
+860 m
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Bed
+
+
+
+Cooker hob/hood
+
+
+
+Corner unit
+
+See all 12 amenities
+
+##### Common facilities
+
+
+
+Car park
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#)
+
+[Rent](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#)
+
+Filters
+
+4 Room Flat [](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## 11 Cantonment Close
+
+
+
+11 Cantonment Close
+
+[View project details](https://www.propertyguru.com.sg/project/11-cantonment-close-4691)
+
+[4/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/11-cantonment-close-4691#greenscore)
+
+## More listings in this HDB
+
+[\\
+\\
+**11 Cantonment Close** \\
+\\
+11 Cantonment Close\\
+\\
+S$ 3,680 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-25608834)
+
+[\\
+\\
+**11 Cantonment Close** \\
+\\
+11 Cantonment Close\\
+\\
+S$ 3,800 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-25521440)
+
+[\\
+\\
+**11 Cantonment Close** \\
+\\
+11 Cantonment Close\\
+\\
+S$ 4,700 /mo\\
+\\
+ 4Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-25542479)
+
+[\\
+\\
+**11 Cantonment Close** \\
+\\
+11 Cantonment Close\\
+\\
+S$ 1,200 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-21877485)
+
+[\\
+\\
+**11 Cantonment Close** \\
+\\
+11 Cantonment Close\\
+\\
+S$ 1,200 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-21877485)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#) [\\
+Next](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#)
+
+[\\
+\\
+Daniel Liew\\
+\\
+5.0(4 Reviews)\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R003494D / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/daniel-liew-53081#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**16 Cantonment Close** \\
+\\
+16 Cantonment Close\\
+\\
+S$ 3,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-16-cantonment-close-24782307)
+
+[\\
+\\
+**19 Cantonment Close** \\
+\\
+19 Cantonment Close\\
+\\
+S$ 4,300 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-19-cantonment-close-24409385)
+
+[\\
+\\
+**8 Tanjong Pagar Plaza** \\
+\\
+8 Tanjong Pagar Plaza\\
+\\
+S$ 4,050 /mo\\
+\\
+ 3Bedrooms 1Bathroom\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-8-tanjong-pagar-plaza-25539067)
+
+[\\
+\\
+**26 Jalan Membina** \\
+\\
+26 Jalan Membina\\
+\\
+S$ 4,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-26-jalan-membina-25577938)
+
+[\\
+\\
+**26 Jalan Membina** \\
+\\
+26 Jalan Membina\\
+\\
+S$ 4,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-26-jalan-membina-25577938)
+
+[\\
+\\
+**26C Jalan Membina** \\
+\\
+26C Jalan Membina\\
+\\
+S$ 4,550 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-26c-jalan-membina-25566084)
+
+[\\
+\\
+**130 Clarence Lane** \\
+\\
+130 Clarence Lane\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-130-clarence-lane-17789448)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,500 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21780371)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,500 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21780371)
+
+[\\
+\\
+**52 Strathmore Avenue** \\
+\\
+52 Strathmore Avenue\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-52-strathmore-avenue-24027463)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#) [\\
+Next](https://www.propertyguru.com.sg/listing/hdb-for-rent-11-cantonment-close-12924756#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in 11 Cantonment Close?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at 11 Cantonment Close?
+
+The rent of this unit at 11 Cantonment Close is about S$ 3,999 /mo.
+
+##### What is the current rental PSF at 11 Cantonment Close?
+
+The current rental PSF at 11 Cantonment Close is about S$ 4.96 psf.
+
+##### What is the address of 11 Cantonment Close?
+
+11 Cantonment Close is located at 11 Cantonment Close Chinatown / Tanjong Pagar City & South West (D01-08).
+
+##### What is the floor size of this unit at 11 Cantonment Close?
+
+Floor size of this unit at 11 Cantonment Close is 807 sqft.
+
+Explore other options in and around Chinatown / Tanjong Pagar
+
+Based on the property criteria, you might be interested on the following
+
+HDB Flat For Rent
+
+[At 11 Cantonment Close](https://www.propertyguru.com.sg/property-for-rent/at-11-cantonment-close-4691)
+
+[In Cantonment Close](https://www.propertyguru.com.sg/singapore-property-listing/hdb/bukit-merah/cantonment-close_103785)
+
+[In Bukit Merah](https://www.propertyguru.com.sg/hdb-for-rent/in-bukit-merah)
+
+[Under 4K S$](https://www.propertyguru.com.sg/hdb-for-rent/in-bukit-merah/priced-under-4k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/hdb-for-rent/in-bukit-merah/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[CC31 Cantonment MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-cc31-cantonment-mrt-station-8266)
+
+[EW16 Outram Park MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew16-outram-park-mrt-station-53)
+
+[NE3 Outram Park MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ne3-outram-park-mrt-station-8099)
+
+Nearest Schools
+
+[K¹² International Academy Singapore](https://www.propertyguru.com.sg/hdb-for-rent/near-k-international-academy-singapore-8088)
+
+[Inspiration Design School](https://www.propertyguru.com.sg/hdb-for-rent/near-inspiration-design-school-2747)
+
+[AusEd-UniEd Singapore Pte. Ltd.](https://www.propertyguru.com.sg/hdb-for-rent/near-aused-unied-singapore-pte-ltd-2957)
+
+[\\
+\\
+Daniel Liew\\
+\\
+5.0(4 Reviews)\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R003494D / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/daniel-liew-53081#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/daniel-liew-53081)
+
+[Daniel Liew](https://www.propertyguru.com.sg/agent/daniel-liew-53081)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/13539291.md b/examples/memory_service/client/data/crawled_listings/13539291.md
new file mode 100644
index 00000000..8730ee33
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/13539291.md
@@ -0,0 +1,682 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/22
+
+Show all media
+
+# Neptune Court
+
+9 Marine Vista
+
+# S$ 4,600 /mo
+
+Negotiable
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,270
+
+sqft
+
+* * *
+
+850 m (10 mins) from TE27 Marine Terrace MRT
+
+
+
+Available from 20 Jun 2025
+
+* * *
+
+
+
+Photos
+
+
+
+Floor Plan
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Apartment for rent |  Partially furnished |
+|  TOP in Dec 1975 |  2 years lease |
+|  Listed on 11 May 2025 |  Listing ID - 13539291 |
+
+See all details
+
+## About this property
+
+### Renovated mid floor. No Ecp road noise.
+
+Walk to East Coast beach, near Marine Parade, convenient.
+
+\\* Mid floor;
+
+\\* Renovated good condition;
+
+\\* 3 spacious rooms + store room in the kitchen;
+
+\\* Fully air-conditioned and ceiling fans;
+
+\\* Spacious build-in wardrobes;
+
+\\* Bright and windy;
+
+\\* Away from highway road noise;
+
+\\* Functional squarish layout;
+
+\\* Partial furnished;
+
+^ Rent $4,600;
+
+\\* 2 years Lease;
+
+\\* Available from 20th June 2025
+
+Call exclusive agent Gina
+9\*\*\*\*\*
+for viewing appointments.
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)
+
+
+
+
+
+
+
+
+
+Marine Terrace MRT
+
+TE27
+
+
+
+10 mins
+
+850 m
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Balcony
+
+
+
+Cooker hob/hood
+
+
+
+Corner unit
+
+See all 6 amenities
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Multi-purpose hall
+
+
+
+Open car park
+
+
+
+Playground
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Neptune Court
+
+
+
+Neptune Court is a leasehold condominium development that is located at Marine Vista in District 15. It is a condominium project that was completed a while back. The project was completed in 1975 with a total of 752 units available for sale or rent. The condominium development is located close to public transportation that allows residents to move easily from one place to another from the condominium. There are many shops and amenities close to the condominium development which would ease the process for residents and they do not need to go far to find what they need. It was a pilot project for housing civil servants. - Neptune Court is a beautiful condominium development that has many charms to it. There are various facilities that residents can enjoy while living in Neptune Court. Residents of Neptune Court would not have to travel far to get their basic necessities as everything is close within their reach. Residents can enjoy making use of the multi-purpose hall and playground. The condominium comes equipped with open car parks and 24 hours security system that ensures the safety of residents is well taken care of. There is a number of public transportation close to Neptune Court that residents can make use of. The closest bus stops are located at Neptune Court, CHIJ Katong Convent, Mandarin Gardens, St Patrick’s Secondary School, Marine Terrace and Raintree Cove. For those with vehicles, the shopping district located at Orchard Road can be easily accessed via the Central Expressway, Marine Parade and Stamford Road in 15 to 20 minutes. Thai Pan RestaurantIndian Wok132 Mee Pok Kway TeowRong Kee Roasted Delights – Marine TerraceGeorges Beach Club My Prep School @ Mandarin GardensNgee Ann Primary SchoolRosemount International SchoolSt Patrick's Secondary SchoolVictoria School Liang ClinicFrankel ClinicBurlinson Dental SurgeryNuffield Medical SiglapLeong & Tan Clinic & Surgery Giant Express – Marine TerraceCold Storage Siglap VFairPrice Siglap New Market Neptune Court is a condominium development that is made up of a total of 752 units. There is only 1 type of unit available with various layouts that residents can browse through. The size for the unit ranges between 1,270 square feet to 1,636 square feet. The layouts for the units in Neptune Court aim to provide residents with homes that is comfortable for working adults, couples or families looking to own a spacious and manageable condominium unit. The sale price for the units ranges between S$ 950,000 to S$ 1,800,000. The rental price for the units ranges between S$ 850 to S$ 3,300. Project Name: Neptune CourtType: CondominiumDistrict: 15Configuration: 752 residential units Unit Types:3 bedrooms (1,270 sqft - 1,636 sqft) The following developments are in the same neighborhood as Neptune Court:Amber ParkMeyer MansionSeaside ResidencesSilverseaAmber 45Frankel Estate
+
+[View project details](https://www.propertyguru.com.sg/project/neptune-court-307)
+
+[2.4\\
+\\
+\\
+\\
+11 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/neptune-court-307) [3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/neptune-court-307#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**Neptune Court** \\
+\\
+1 Marine Vista\\
+\\
+S$ 4,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-21883783)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+1 Marine Vista\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+1 Marine Vista\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25530455)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+4 Marine Vista\\
+\\
+S$ 5,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-21301913)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+4 Marine Vista\\
+\\
+S$ 5,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-21301913)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+8 Marine Vista\\
+\\
+S$ 4,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-21879551)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+2 Marine Vista\\
+\\
+S$ 5,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-24116059)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+1 Marine Vista\\
+\\
+S$ 6,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-24437059)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+1 Marine Vista\\
+\\
+S$ 6,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-24437059)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+6 Marine Vista\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-19383782)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)
+
+See all listings
+
+[\\
+\\
+Gina Chan\\
+\\
+5.0(2 Reviews)\\
+\\
+ORANGETEE & TIE PTE. LTD.\\
+\\
+CEA: R019607C / L3009250K\\
+\\
+](https://www.propertyguru.com.sg/agent/gina-chan-5123#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**Urban Vista** \\
+\\
+16 Tanah Merah Kechil Link\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-urban-vista-25515255)
+
+[\\
+\\
+**Paya Lebar Residences** \\
+\\
+Paya Lebar Road\\
+\\
+S$ 5,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-paya-lebar-residences-25605990)
+
+[\\
+\\
+**Sunny Palms** \\
+\\
+65 Lorong G Telok Kurau\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587)
+
+[\\
+\\
+**Tropical Spring** \\
+\\
+29 Simei Street 4\\
+\\
+S$ 5,498 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-tropical-spring-25608303)
+
+[\\
+\\
+**Tropical Spring** \\
+\\
+29 Simei Street 4\\
+\\
+S$ 5,498 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-tropical-spring-25608303)
+
+[\\
+\\
+**Casa Merah** \\
+\\
+50 Tanah Merah Kechil Avenue\\
+\\
+S$ 5,300 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-casa-merah-25544350)
+
+[\\
+\\
+**Starville** \\
+\\
+60 Lengkong Tiga\\
+\\
+S$ 4,700 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789)
+
+[\\
+\\
+**Urban Vista** \\
+\\
+16 Tanah Merah Kechil Link\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-urban-vista-25533506)
+
+[\\
+\\
+**Urban Vista** \\
+\\
+16 Tanah Merah Kechil Link\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-urban-vista-25533506)
+
+[\\
+\\
+**Le Merritt** \\
+\\
+64 Lorong M Telok Kurau\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-le-merritt-21704571)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Neptune Court?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at Neptune Court?
+
+The rent of this unit at Neptune Court is about S$ 4,600 /mo.
+
+##### What is the current rental PSF at Neptune Court?
+
+The current rental PSF at Neptune Court is about S$ 3.62 psf.
+
+##### What is the address of Neptune Court?
+
+Neptune Court is located at 9 Marine Vista East Coast / Marine Parade East Coast (D15-16).
+
+##### What is the floor size of this unit at Neptune Court?
+
+Floor size of this unit at Neptune Court is 1270 sqft.
+
+Explore other options in and around East Coast / Marine Parade
+
+Based on the property criteria, you might be interested on the following
+
+Apartment For Rent
+
+[At Neptune Court](https://www.propertyguru.com.sg/project-listings/neptune-court-307/rent/1)
+
+[In East Coast / Marine Parade](https://www.propertyguru.com.sg/apartment/east-coast-marine-parade/property-for-rent)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=APT&hdb_estate%5B0%5D=0)
+
+[Under 5K S$](https://www.propertyguru.com.sg/apartment-for-rent/in-east-coast-marine-parade-d15/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/apartment-for-rent/in-east-coast-marine-parade-d15/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[TE27 Marine Terrace MRT Station](https://www.propertyguru.com.sg/apartment-for-rent/near-te27-marine-terrace-mrt-station-8323)
+
+[TE28 Siglap MRT Station](https://www.propertyguru.com.sg/apartment-for-rent/near-te28-siglap-mrt-station-8324)
+
+[TE26 Marine Parade MRT Station](https://www.propertyguru.com.sg/apartment-for-rent/near-te26-marine-parade-mrt-station-8322)
+
+Nearest Schools
+
+[Ngee Ann Primary School](https://www.propertyguru.com.sg/apartment-for-rent/near-ngee-ann-primary-school-677)
+
+[CHIJ Katong Convent](https://www.propertyguru.com.sg/apartment-for-rent/near-chij-katong-convent-1103)
+
+[St Patrick's School](https://www.propertyguru.com.sg/apartment-for-rent/near-st-patrick-s-school-1175)
+
+[\\
+\\
+Gina Chan\\
+\\
+5.0(2 Reviews)\\
+\\
+ORANGETEE & TIE PTE. LTD.\\
+\\
+CEA: R019607C / L3009250K\\
+\\
+](https://www.propertyguru.com.sg/agent/gina-chan-5123#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/gina-chan-5123)
+
+[Gina Chan](https://www.propertyguru.com.sg/agent/gina-chan-5123)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/21583485.md b/examples/memory_service/client/data/crawled_listings/21583485.md
new file mode 100644
index 00000000..b85f65eb
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/21583485.md
@@ -0,0 +1,662 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/15
+
+Show all media
+
+# Pinnacle @ Duxton
+
+1B Cantonment Road
+
+# S$ 5,000 /mo
+
+View to Offer
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,000
+
+sqft
+
+* * *
+
+570 m (7 mins) from EW16/NE3/TE17 Outram Park MRT
+
+
+
+Ready to move in HDB Flat
+
+* * *
+
+
+
+Photos
+
+
+
+Floor Plan
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  4A HDB for rent |  Fully furnished |
+|  TOP in 2009 |  2 years lease |
+|  Listed on 10 May 2025 |  Listing ID - 21583485 |
+
+See all details
+
+## About this property
+
+### Beautiful 3 bedroom on high floor
+
+High Floor 3Bedroom for Rent
+
+Beautiful View
+
+Corner unit (Privacy)
+
+Fully furnished
+
+Family Profiles
+
+Call to View Now!
+
+Esther Goh
+
+9\*\*\*\*\*
+
+Close proximity to Outram Park and Tanjong Pagar MRT
+
+Amenities like Supermarket, Wet Market, Food Centre, shopping malls located just a stone throw away
+
+Popular Brunch and Restaurants beside (Tras Street, Neil Road, Craig Road)
+
+Located right beside Singapore’s largest employment hub
+
+Call to View Now!
+
+Esther Goh
+
+9\*\*\*\*\*
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Google Maps is loading
+
+
+
+
+
+
+
+
+
+Outram Park MRT
+
+EW16
+
+NE3
+
+TE17
+
+
+
+7 mins
+
+570 m
+
+Cantonment MRT
+
+CC31
+
+
+
+8 mins
+
+650 m
+
+Tanjong Pagar MRT
+
+EW15
+
+
+
+10 mins
+
+830 m
+
+
+
+##### Amenities
+
+
+
+Corner unit
+
+
+
+High floor
+
+
+
+Park / greenery view
+
+##### Common facilities
+
+
+
+Car park
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#)
+
+[Rent](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#)
+
+Filters
+
+4 Room Flat [](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Pinnacle @ Duxton
+
+
+
+The Pinnacle @ Duxton is a 99-year leasehold HDB development located at Cantonment Road in District 2 (D2).Having fulfilled its Minimum Occupation Period (MOP) in 2016, The Pinnacle @ Duxton is Singapore’s first 50-storey public housing project that features two sky bridges offering residents a panoramic view of the city.On top of being known for its million-dollar HDB flats, The Pinnacle @ Duxton is also touted for its highly central location. More specifically, The Pinnacle @ Duxton can be said to be the most central HDB in Singapore given its proximity to the Central Business District (CBD).The Pinnacle @ Duxton is within walking distance to Outram Park MRT Interchange (EW16/NE3/TE17), Tanjong Pagar MRT station (EW15) on the East-West Line (EWL), and Maxwell MRT (TE18) on the Thomson-East Coast Line (TEL). This gives residents convenient access to other areas of Singapore such as Dhoby Ghaut, Marina Bay, the CBD at Raffles Place and Shenton Way as well as key employment hubs in Paya Lebar, Tampines, and Changi.Needless to say, residents at The Pinnacle@Duxton are spoilt for choice when it comes to food options. One popular establishment is Potato Head which resides in a corner shophouse along Keong Saik Road.The Pinnacle @ Duxton is under a 10-minute walk away from Outram Park MRT Station (EW16/NE3/TE17). Outram Park MRT station is an interchange serviced by three lines – the EWL, TEL, and North-East Line (NEL). This gives residents at The Pinnacle@Duxton enhanced connectivity to both the north and east regions of Singapore.Harbourfont MRT station (NE1/ CC29) is just one station away from Outram Park MRT station. Residents can easily switch over to the Circle Line (CCL) where they can travel to places such as the Botanic Gardens.Tanjong Pagar MRT and Maxwell MRT stations are both also a short walk away from The Pinnacle @ Duxton.The Pinnacle@Duxton’s highly central location is served by a number of bus services. Those who prefer taking a short bus ride instead of walking to the MRT station can hop on to bus 75 just opposite their home for a direct ride to the train station.For quick grocery runs, residents can conveniently head down to the minimart downstairs or take a short walk to the NTUC Fairprice supermarket at either Tanjong Pagar Plaza or Tras Street.Residents with children can spend quality leisure time at the library@chinatown. Located inside Chinatown Point just 1km away from The Pinnacle @ Duxton, library@chinatwon offers not just plenty of reading options but also a wide range of cultural, heritage, and literary programmes for visitors.Sky Gardens on 26th and 50th floorViewing DeckSky GymFood CourtChildcare CentreBasketball CourtJogging TrackHistorical ParkPlaygroundResidents’ Committee CentreCantonment Primary SchoolRadin Mas Primary SchoolZhangde Primary SchoolOutram Secondary SchoolCHIJ St. Theresa’s ConventGan Eng Seng SchoolFor families with younger children, PCF Sparkletots and Modern Montessori International are both located conveniently within the development. Other pre-schools nearby include Kidspace Learning Place Cantonment, Mulberry Learning Centre @ Tanjong Pagar, and Superland Pre-School which are all less than a 10-minutes walk away.Tertiary educational institutions near the area include School of The Arts (SOTA), Anglo Chinese Junior College, Singapore Polytechnic, and Singapore Management University which are all under a 10-minute drive away.Nearby healthcare facilities include:Outram Medical Campus (houses Singapore General Hospital, Outram Polyclinic, and Singapore National Eye Centre)Parkway Shenton Family Medical ClinicMHC Medical Centre (Amara)Everton ClinicA Medical ClinicW Koh ClinicResidents have quite a few options when it comes to shops and malls in the area. Tanjong Pagar Plaza is just a short walk away from home. Residents can find a wide variety of goods and services ranging from essential household items to electronics, cosmetics, and clothes in this mall. Alternatively, residents can head to 100 AM mall for a wider range of retail, lifestyle, and dining options.Located near the CBD, the area surrounding The Pinnacle @ Duxton is a go-to lunch place for office workers in the CBD with the many delectable yet wallet-friendly food options in the area.Popular food centres in the area include:Amoy Street Food CentreChinatown Complex Food CentreHong Lim Market & Food CentreMaxwell Food CentrePeople's Park Food CentreTanjong Pagar Plaza Market & Food CentreSitting on the 2.5-hectare (ha) Duxton Plain on Cantonment Road where the first HDB rental flats commissioned by the government in 1963 used to stand, The Pinnacle @ Duxton comprises seven 50-storey blocks housing 1,848 residential units.The property’s unique question mark shape, units in the respective residential blocks will either have East-west facing or North-south facing orientations.Adding on to the aesthetic factor of units at The Pinnacle @ Duxton, residents are given the option to choose exterior facade treatments such as planter boxes, bay windows, as well as windows and balconies for their units.Located in D2, The Pinnacle @ Duxton falls under URA’s Great Southern Waterfront Master Plan which is slated to undergo massive transformations.The relocation of the City Terminals and Pasir Panjang Terminal to Tuas by 2030 will free up approximately 1,000-ha of waterfront land in Tanjong Pagar. This newly released 1,000-ha of land will collectively be known as the Greater Southern Waterfront.According to the URA Masterplan, Seafront districts in Tanjong Pagar and Pasir Panjang will be converted into waterfront districts. The waterfront location of these spots will be turned into unique lifestyle concepts and/or residential and commercial developments with cultural, leisure, and entertainment offerings.To reinforce Singapore’s garden city reputation, plans have been put in place to create more green spaces such as parks and gardens in the Greater Southern Waterfront. A 30-km waterfront corridor linking existing green spaces in Labrador, Harbourfront, and The Central Linear Park in Marina Bay will be created. The waterfront corridor could also potentially be further extended to Pulau Brani’s existing hillrock to create a continuous green corridor linking Gardens by the Bay to the islandwide green network.There are also plans to expand the current CBD, Marina Bay, and areas surrounding it into the Greater Southern Waterfront. With Marina South already developing into an extension of the Raffles Place financial centre, more work places could possibly be brought closer to home in the future. As a result, properties near these key nodes of employment such as The Pinnacle @ Duxton could see increased rental yields with increased rental demands as workers seek homes closer to their workplaces.As part of Singapore’s plans to achieve self-sustaining water resources, a new reservoir may be created between Tanjong Pagar and Pulau Brani to retain water in the Greater Southern Waterfront and store excess water from the Marina Reservoir. A network thoughtfully designed canals will also be incorporated into the cityscape.Tanjong Pagar’s eclectic mix of both old and new in the historically rich neighbourhood makes it a hot choice amongst property buyers and renters who appreciate both the area’s charm and its closeness to the CBD especially since there are not many new HDB projects in Tanjong Pagar.The Pinnacle @ Duxton is widely perceived as a hallmark project that has changed preconceived notions of public housing. As an HDB project, The Pinnacle @ Duxton offers residents facilities that provide high-quality living comparable to private developments in the CBD.With a wide range of dining and retail options, a highly connected transport network, and an exclusive in-house Sky Garden with stunning views, an HDB like The Pinnacle @ Duxton spoils residents with the best of facilities, amenities, and convenience.All in all, The Pinnacle @ Duxton is a project to be considered as its highly central location would remain highly sought after in both the rental and resale market.Check out Pinnacle @ Duxton listings for sale and units for rent on PropertyGuru Singapore.
+
+[View project details](https://www.propertyguru.com.sg/project/pinnacle-duxton-20538)
+
+[3.3\\
+\\
+\\
+\\
+2 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/pinnacle-duxton-20538) [4/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/pinnacle-duxton-20538#greenscore)
+
+## More listings in this HDB
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,400 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-25605654)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24428244)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1B Cantonment Road\\
+\\
+S$ 5,400 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24298224)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-25586807)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-25586807)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1F Cantonment Road\\
+\\
+S$ 5,100 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24866053)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1B Cantonment Road\\
+\\
+S$ 5,288 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24341735)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1G Cantonment Road\\
+\\
+S$ 5,499 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-20847422)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1G Cantonment Road\\
+\\
+S$ 5,499 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-20847422)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1 Cantonment Road\\
+\\
+S$ 5,199 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21810575)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#) [\\
+Next](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#)
+
+See all listings
+
+[\\
+\\
+Esther Goh\\
+\\
+5.0(2 Reviews)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R057123J / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/esther-goh-450303#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-25586807)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1B Cantonment Road\\
+\\
+S$ 5,400 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24298224)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24428244)
+
+[\\
+\\
+**19 Cantonment Close** \\
+\\
+19 Cantonment Close\\
+\\
+S$ 4,300 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-19-cantonment-close-24409385)
+
+[\\
+\\
+**19 Cantonment Close** \\
+\\
+19 Cantonment Close\\
+\\
+S$ 4,300 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-19-cantonment-close-24409385)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1G Cantonment Road\\
+\\
+S$ 5,499 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-20847422)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1F Cantonment Road\\
+\\
+S$ 5,100 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24866053)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1B Cantonment Road\\
+\\
+S$ 5,288 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24341735)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1B Cantonment Road\\
+\\
+S$ 5,288 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24341735)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,400 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-25605654)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#) [\\
+Next](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-21583485#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Pinnacle @ Duxton?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at Pinnacle @ Duxton?
+
+The rent of this unit at Pinnacle @ Duxton is about S$ 5,000 /mo.
+
+##### What is the current rental PSF at Pinnacle @ Duxton?
+
+The current rental PSF at Pinnacle @ Duxton is about S$ 5.00 psf.
+
+##### What is the address of Pinnacle @ Duxton?
+
+Pinnacle @ Duxton is located at 1B Cantonment Road Chinatown / Tanjong Pagar City & South West (D01-08).
+
+##### What is the floor size of this unit at Pinnacle @ Duxton?
+
+Floor size of this unit at Pinnacle @ Duxton is 1000 sqft.
+
+Explore other options in and around Chinatown / Tanjong Pagar
+
+Based on the property criteria, you might be interested on the following
+
+HDB Flat For Rent
+
+[At Pinnacle @ Duxton](https://www.propertyguru.com.sg/property-for-rent/at-pinnacle-duxton-20538)
+
+[In Cantonment Road](https://www.propertyguru.com.sg/singapore-property-listing/hdb/central-area/cantonment-road_135665)
+
+[In Central Area](https://www.propertyguru.com.sg/hdb-for-rent/in-central-area)
+
+[Over 5K S$](https://www.propertyguru.com.sg/hdb-for-rent/in-central-area/priced-over-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/hdb-for-rent/in-central-area/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[CC31 Cantonment MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-cc31-cantonment-mrt-station-8266)
+
+[EW16 Outram Park MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew16-outram-park-mrt-station-53)
+
+[NE3 Outram Park MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ne3-outram-park-mrt-station-8099)
+
+Nearest Schools
+
+[Inspiration Design School](https://www.propertyguru.com.sg/hdb-for-rent/near-inspiration-design-school-2747)
+
+[K¹² International Academy Singapore](https://www.propertyguru.com.sg/hdb-for-rent/near-k-international-academy-singapore-8088)
+
+[AusEd-UniEd Singapore Pte. Ltd.](https://www.propertyguru.com.sg/hdb-for-rent/near-aused-unied-singapore-pte-ltd-2957)
+
+[\\
+\\
+Esther Goh\\
+\\
+5.0(2 Reviews)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R057123J / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/esther-goh-450303#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/esther-goh-450303)
+
+[Esther Goh](https://www.propertyguru.com.sg/agent/esther-goh-450303)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/21826587.md b/examples/memory_service/client/data/crawled_listings/21826587.md
new file mode 100644
index 00000000..65ae1549
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/21826587.md
@@ -0,0 +1,554 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)[](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)[](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)[](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)[](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/12
+
+Show all media
+
+# Sunny Palms
+
+65 Lorong G Telok Kurau
+
+# S$ 4,500 /mo
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,033
+
+sqft
+
+* * *
+
+620 m (7 mins) from EW6 Kembangan MRT
+
+
+
+Available from 1 Jul 2025
+
+* * *
+
+
+
+Photos
+
+
+
+Floor Plan
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Condominium for rent |  Fully furnished |
+|  TOP in Dec 2004 |  2 years lease |
+|  Listed on 11 May 2025 |  Welcome all races, religions, genders, and sexual orientations. |
+
+See all details
+
+## About this property
+
+### Fantastic Location Walk to Kembangan MRT Renovated 3bedrm plus utility
+
+\\*\\*\\* Fantastic Location Walk to Kembangan MRT! Renovated 3+1 Rooms Condo \*\*\*
+
+\\* 6-8min Walk to Kembangan MRT
+
+\\* Fully Furnished & Aircon
+
+\\* Well Maintained Corner Unit
+
+\\* Nice & Cosy, Peaceful Environment
+
+\\* Park Connector Leads Directly to East Coast Park & Beach
+
+\\* Parkway Parade, Bedok Mall, Paya Lebar Square, Kinex, Katong I12
+
+\\* 24hr NTUC Supermarket near Kembangan MRT
+
+\\* Bus Services: 2, 7, 25, 26, 28, 30, 32, 33, 34, 67, 854
+
+\\* Perfect for Professionals at Chai Chee Viva Park, Marine Parade, Kaki Bukit, Ubi, Macpherson, Paya Lebar, Changi Business Park, Simei
+
+Kindly Contact Frederick @
+8\*\*\*\*\*
+Now!
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)
+
+
+
+
+
+
+
+
+
+Kembangan MRT
+
+EW6
+
+
+
+7 mins
+
+620 m
+
+Eunos MRT
+
+EW7
+
+
+
+14 mins
+
+1.2 km
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Bathtub
+
+
+
+Cooker hob/hood
+
+
+
+Corner unit
+
+See all 15 amenities
+
+##### Common facilities
+
+
+
+Playground
+
+
+
+Swimming pool
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Sunny Palms
+
+
+
+Sunny Palms is a freehold condominium project located at 65 Lorong G Telok Kurau in District 15. The project was completed by Deeptro Pte Ltd in the year 2004. Sunny Palms consists of multiple 5-storey buildings containing 56 total units. Beautifully constructed with contemporary model and standards, Sunny Palms grabs the attention of people seeking affordable luxury with all amenities in adjacent areas. A wide area is allocated for a spacious playground to help residents and especially kids of Sunny Palms spend their leisure time in a clean and healthy environment. A well maintained and quintessential swimming pool and wading pool is also there for all age groups to have fun and get relaxed after a wearisome day. Sunny Palms is located within an independent suburb with all essential amenities and facilities in the vicinity. The East Shore Hospital and East Coast Park are within close range to Sunny Palms. Residents can take advantage of various feeder bus services available at close quarters to various schools nearby. The Eunos Crescent Market and Food Centre is also just a few kilometers away from Sunny Palms for daily necessities. A few miles drive will take you to the Parkway Parade shopping center for a detailed shopping experience and enhanced facilities. It is equipped with supermarkets, restaurants, grand boutiques and shops. A stretch of restaurants to meet all tastes can be found along Changi Road, just a few minutes’ walk away. The project serves a good purpose for anybody searching for a comfortable abode with standardized facilities. Sunny Palms offers a wide playground area for kids. Also, there is a contemporary- built swimming pool. With a well-maintained property, great architecture, and a highly engineered and secure community, one has all that one wants at the end of the day and at affordable rates as offered by Sunny Palms. Kembangan MRT is the closest station to Sunny Palms, located approximately a 7-minute walk away. Several bus stops can also be found just along the street that can take you straight into the city. For private vehicle owners, driving to the business district will take around 25 – 30 minutes via the Pan Island Expressway (PIE). Alternatively, those heading to the Orchard Road shopping district can take the PIE and expect to reach within 15 minutes. Kafa SteamboatOld Chang KeeBruno’s Bistro Telok Kurau Secondary SchoolStephen’s SchoolEunos Primary School Kembangan CourtJoo Chiat ComplexSiglap Centre Parkway East HospitalEC Family Clinic24 Hour Walk-In Clinic (Joo Chiat) Sunny Palms comprises 56 units spread over a collection of five-storey buildings, including the penthouse suites. About 80 to 90 percent of all the units contain 3 bedrooms with 2 or 3 bathrooms depending on the area and unit price. Similarly, the sales price of individual units ranges between S$1,999,999 ~ S$2,650,000 with a S$673 - S$818 PSF value. The rental price range falls somewhere between S$1,200 ~ S$ 2,990. There are differently furnished, partially furnished and unfurnished units available for both sale and rent. The developer has efficiently fashioned the interiors of all units. Maintenance of units are conducted occasionally for a smooth and secure living of residents. Project Name: Sunny PalmsType: Freehold CondominiumDistrict: 15 Unit Types:3-bedroom (1,012 – 3,240 sqft) The following developments are in the same neighbourhood as Sunny Palms:11 Amber Road123 Langsat Road16 @ Amber
+
+[View project details](https://www.propertyguru.com.sg/project/sunny-palms-983)
+
+[4.0\\
+\\
+\\
+\\
+8 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/sunny-palms-983) [3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/sunny-palms-983#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**Sunny Palms** \\
+\\
+65 Lorong G Telok Kurau\\
+\\
+S$ 4,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-23209793)
+
+[\\
+\\
+**Sunny Palms** \\
+\\
+65 Lorong G Telok Kurau\\
+\\
+S$ 1,050 /mo\\
+\\
+Common Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-25602678)
+
+[\\
+\\
+Frederick Foo\\
+\\
+5.0(3 Reviews)\\
+\\
+MINDLINK GROUPS PTE. LTD.\\
+\\
+CEA: R030368F / L3009186E\\
+\\
+](https://www.propertyguru.com.sg/agent/frederick-foo-156461#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**The Summit**\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-summit-24087118)
+
+[\\
+\\
+**Emerald East** \\
+\\
+8D Tanjong Rhu Road\\
+\\
+S$ 5,100 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-emerald-east-24461240)
+
+[\\
+\\
+**The Sunnidora** \\
+\\
+46 Lor G Telok Kurau\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089)
+
+[\\
+\\
+**Mandarin Gardens** \\
+\\
+1 Siglap Road\\
+\\
+S$ 4,300 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-mandarin-gardens-22988023)
+
+[\\
+\\
+**Mandarin Gardens** \\
+\\
+1 Siglap Road\\
+\\
+S$ 4,300 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-mandarin-gardens-22988023)
+
+[\\
+\\
+**The Verte** \\
+\\
+118 Lorong H Telok Kurau\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-verte-19753195)
+
+[\\
+\\
+**Urban Vista** \\
+\\
+16 Tanah Merah Kechil Link\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-urban-vista-25515255)
+
+[\\
+\\
+**Urban Vista** \\
+\\
+16 Tanah Merah Kechil Link\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-urban-vista-25533506)
+
+[\\
+\\
+**Urban Vista** \\
+\\
+16 Tanah Merah Kechil Link\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-urban-vista-25533506)
+
+[\\
+\\
+**The Verte** \\
+\\
+118 Lorong H Telok Kurau\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-verte-23895630)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Sunny Palms?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at Sunny Palms?
+
+The rent of this unit at Sunny Palms is about S$ 4,500 /mo.
+
+##### What is the current rental PSF at Sunny Palms?
+
+The current rental PSF at Sunny Palms is about S$ 4.36 psf.
+
+##### What is the address of Sunny Palms?
+
+Sunny Palms is located at 65 Lorong G Telok Kurau East Coast / Marine Parade East Coast (D15-16).
+
+##### What is the floor size of this unit at Sunny Palms?
+
+Floor size of this unit at Sunny Palms is 1033 sqft.
+
+Explore other options in and around East Coast / Marine Parade
+
+Based on the property criteria, you might be interested on the following
+
+Condominium For Rent
+
+[At Sunny Palms](https://www.propertyguru.com.sg/project-listings/sunny-palms-983/rent/1)
+
+[In East Coast / Marine Parade](https://www.propertyguru.com.sg/condos/east-coast-marine-parade)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=CONDO&hdb_estate%5B0%5D=0)
+
+[Under 5K S$](https://www.propertyguru.com.sg/condo-for-rent/in-east-coast-marine-parade-d15/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/condo-for-rent/in-east-coast-marine-parade-d15/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[EW6 Kembangan MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew6-kembangan-mrt-station-23)
+
+[EW7 Eunos MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew7-eunos-mrt-station-26)
+
+[TE27 Marine Terrace MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-te27-marine-terrace-mrt-station-8323)
+
+Nearest Schools
+
+[Telok Kurau Secondary School](https://www.propertyguru.com.sg/condo-for-rent/near-telok-kurau-secondary-school-1034)
+
+[St Stephen's School](https://www.propertyguru.com.sg/condo-for-rent/near-st-stephen-s-school-719)
+
+[Eunos Primary School](https://www.propertyguru.com.sg/condo-for-rent/near-eunos-primary-school-302)
+
+[\\
+\\
+Frederick Foo\\
+\\
+5.0(3 Reviews)\\
+\\
+MINDLINK GROUPS PTE. LTD.\\
+\\
+CEA: R030368F / L3009186E\\
+\\
+](https://www.propertyguru.com.sg/agent/frederick-foo-156461#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/frederick-foo-156461)
+
+[Frederick Foo](https://www.propertyguru.com.sg/agent/frederick-foo-156461)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/24027463.md b/examples/memory_service/client/data/crawled_listings/24027463.md
new file mode 100644
index 00000000..fc327f32
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/24027463.md
@@ -0,0 +1,288 @@
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-52-strathmore-avenue-24027463#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-52-strathmore-avenue-24027463#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-52-strathmore-avenue-24027463#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-52-strathmore-avenue-24027463#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-52-strathmore-avenue-24027463#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/17
+
+Show all media
+
+# 52 Strathmore Avenue
+
+52 Strathmore Avenue
+
+# S$ 4,500 /mo
+
+Negotiable
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+969
+
+sqft
+
+* * *
+
+480 m (6 mins) from EW19 Queenstown MRT
+
+
+
+Available from 22 May 2025
+
+* * *
+
+
+
+Photos
+
+
+
+Video
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/hdb-for-rent-52-strathmore-avenue-24027463#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  4A HDB for rent |  Fully furnished |
+|  TOP in 2006 |  Listed on 10 May 2025 |
+|  Listing ID - 24027463 |  969 sqft floor area |
+
+See all details
+
+## About this property
+
+### 3 Bedrooms for rent
+
+4 Room HDB in Strathmore for rent, less than 10 minutes to Queenstown MRT station
+
+---About the unit---
+
+\- Fully furnished
+
+\- Air conditioning, Beds with Mattresses, sofa, coffee table, dining table, Tv, Tv console, cooking utensils, washer, dryer, fridge and etc
+
+\- Less than 10 minutes walk to Queenstown Mrt station
+
+\-\-\- Near Amenities---
+
+\- Minutes walk to NTUC, sheng shiong, Koufu, coffee shop and etc
+
+\- Minutes walk to Ikea
+
+\-\-\- Schools---
+
+\- Near Queensway primary school and Queenstown secondary school
+
+\-\-\- Convienience---
+
+\- Minutes drive to Orchard
+
+\- Near park connector
+
+Contact jeff @
+9\*\*\*\*\*
+for viewing.
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Bed
+
+
+
+City view
+
+
+
+Dining room furniture
+
+See all 13 amenities
+
+##### Common facilities
+
+
+
+Car park
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## 52 Strathmore Avenue
+
+[View project details](https://www.propertyguru.com.sg/project/52-strathmore-avenue-21296)
+
+[4/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/52-strathmore-avenue-21296#greenscore)
+
+[\\
+\\
+Jeff Lim\\
+\\
+5.0(2 Reviews)\\
+\\
+HUTTONS ASIA PTE LTD\\
+\\
+CEA: R065923I / L3008899K\\
+\\
+](https://www.propertyguru.com.sg/agent/jeff-lim-13525353#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in 52 Strathmore Avenue?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at 52 Strathmore Avenue?
+
+The rent of this unit at 52 Strathmore Avenue is about S$ 4,500 /mo.
+
+##### What is the current rental PSF at 52 Strathmore Avenue?
+
+The current rental PSF at 52 Strathmore Avenue is about S$ 4.64 psf.
+
+##### What is the address of 52 Strathmore Avenue?
+
+52 Strathmore Avenue is located at 52 Strathmore Avenue Alexandra / Commonwealth City & South West (D01-08).
+
+##### What is the floor size of this unit at 52 Strathmore Avenue?
+
+Floor size of this unit at 52 Strathmore Avenue is 969 sqft.
+
+Explore other options in and around Alexandra / Commonwealth
+
+Based on the property criteria, you might be interested on the following
+
+HDB Flat For Rent
+
+[At 52 Strathmore Avenue](https://www.propertyguru.com.sg/property-for-rent/at-52-strathmore-avenue-21296)
+
+[In Strathmore Avenue](https://www.propertyguru.com.sg/singapore-property-listing/hdb/queenstown/strathmore-avenue_137192)
+
+[In Queenstown](https://www.propertyguru.com.sg/hdb-for-rent/in-queenstown)
+
+[Under 5K S$](https://www.propertyguru.com.sg/hdb-for-rent/in-queenstown/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/hdb-for-rent/in-queenstown/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[EW19 Queenstown MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew19-queenstown-mrt-station-62)
+
+[EW18 Redhill MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew18-redhill-mrt-station-59)
+
+[EW20 Commonwealth MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew20-commonwealth-mrt-station-65)
+
+Nearest Schools
+
+[Queenstown Primary School](https://www.propertyguru.com.sg/hdb-for-rent/near-queenstown-primary-school-467)
+
+[Queenstown Secondary School](https://www.propertyguru.com.sg/hdb-for-rent/near-queenstown-secondary-school-977)
+
+[Avondale Grammar School (Phoenix Park Office Campus)](https://www.propertyguru.com.sg/hdb-for-rent/near-avondale-grammar-school-phoenix-park-office-campus-8074)
+
+[\\
+\\
+Jeff Lim\\
+\\
+5.0(2 Reviews)\\
+\\
+HUTTONS ASIA PTE LTD\\
+\\
+CEA: R065923I / L3008899K\\
+\\
+](https://www.propertyguru.com.sg/agent/jeff-lim-13525353#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/24945398.md b/examples/memory_service/client/data/crawled_listings/24945398.md
new file mode 100644
index 00000000..ef89c343
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/24945398.md
@@ -0,0 +1,548 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)[](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)[](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)[](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)[](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/9
+
+Show all media
+
+# Evergreen View
+
+15 Lorong 36 Geylang
+
+# S$ 4,800 /mo
+
+Negotiable
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,281
+
+sqft
+
+* * *
+
+710 m (8 mins) from CC8 Dakota MRT
+
+
+
+Ready to move in Condominium
+
+* * *
+
+
+
+Photos
+
+
+
+Floor Plan
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Condominium for rent |  Fully furnished |
+|  TOP in Jan 2011 |  1 year lease |
+|  Listed on 11 May 2025 |  Listing ID - 24945398 |
+
+See all details
+
+## About this property
+
+### Huge 3 bed, 2 bath with balcony & enclosed kitchen
+
+1281sqft
+
+Mid floor with unblock view
+
+Fully furnished, all bedrooms come with Queen sized bed
+
+Available from 15 apr
+
+Located at Lorong 36, quiet environment
+
+Stone throw to NTUC and eateries
+
+8-10min walk to Paya Lebar / Dakota mrt
+
+Interested party, pls whatsapp your profile to
+9\*\*\*\*\*
+. Thank you.
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)
+
+
+
+
+
+
+
+
+
+Dakota MRT
+
+CC8
+
+
+
+8 mins
+
+710 m
+
+Paya Lebar MRT
+
+EW8
+
+CC9
+
+
+
+11 mins
+
+950 m
+
+Aljunied MRT
+
+EW9
+
+
+
+12 mins
+
+970 m
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Balcony
+
+
+
+Bed
+
+
+
+Cooker hob/hood
+
+See all 12 amenities
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Covered car park
+
+
+
+Swimming pool
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Evergreen View
+
+Evergreen View is a condominium project which is built on Lorong 36 Geylang, Balestier / Geylang in District 12 near the Aljunied MRT station. The building was built in 2011. In addition, the area is surrounded by several medical centers, schools, shopping centers, and other recreational facilities. The building has in total 26 units. The Evergreen View is built in an updated architectural design and Highland Developments Pte Ltd constructed this project. The company is known to be a highly regarded building developers of Singapore. Evergreen View is located within a well-established and safe district making it one of the most accessible and desired condominium in Singapore Th design of Evergreen View is exquisite and have architectural intellect and structure for the affluence, luxury, and desirability of its buyers. Evergreen View is constructed in a hospitable and secure environment in order to ease the minds of its customers. The neighborhood of Evergreen View is warm and welcome towards anyone seeking a home; bachelors, couples, or even a small family. The building is well-equipped with several attractive facilities that include swimming pool, carparking and 24-hr security. The location is easily accessible as it is close-by to several MRT stations so commute is easy for the residents. This condominium project is built with ultimate planning and its accessibility is highly considered. The building is near to several MRT stations that ease the people who travel by public transports. The closest among them is CC8 Dakota MRT Station which is merely 7 minutes of walk away, at a distance of 0.58 km. Another station is Dakota MRT Station which is only 9 minutes of walk away at a distance of 0.68 km. In addition, CC9 Paya Lebar MRT Station and EW9 Aljunied MRT Station are also quite closer, at a distance of 0.7 km and 0.7 km which makes a walk of 7 minutes respectively. For the vehicle owners, Evergreen View is also not far and the residents can take up to 10 minutes of drive to reach Geyland Road and hence they do not have to travel too much in order to reach their business hubs. The Evergreen View is well-established and equipped with such features and amenities which are market competitive. The building provides an ultimate luxurious experience to its inhabitants. Evergreen View is situated fairly at minutes-drive away from Shopping Centre such as Parkway Parade, which is a host of amenities are readily available, such as banks, supermarkets, retail outlets, restaurants and eatery establishments, and other entertainment facilities Kong Hwa School (330 meters)Peter Ng Training Consultancy (330 meters)Theosophical Society Singapore Lodge The (370 meters)Trainwell Computer Training Centre (390 meters) Singapore Badminton HallSingapore Adventurer’s Club Evergreen View is a freehold condominium project and it has seventy-six units available for sale and rent. Project Name: Evergreen ViewType: CondominiumYear of Completion: 2011District: 12Developers: Highland Developments Pte LtdTotal Units: 26 The ArteThe Marque at IrrawandyTrevistaDomusVista Residences
+
+[View project details](https://www.propertyguru.com.sg/project/evergreen-view-1919)
+
+[5.0\\
+\\
+1 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/evergreen-view-1919) [3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/evergreen-view-1919#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**Evergreen View** \\
+\\
+15 Lorong 36 Geylang\\
+\\
+S$ 5,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24272831)
+
+[\\
+\\
+Chloe Yap\\
+\\
+5.0(11 Reviews)\\
+\\
+HUTTONS ASIA PTE LTD\\
+\\
+CEA: R055291J / L3008899K\\
+\\
+](https://www.propertyguru.com.sg/agent/chloe-yap-243667#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**Cheap 3 bedroom apt opp Aljunied mrt, no facilities** \\
+\\
+lor 25A geylang\\
+\\
+S$ 4,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-cheap-3-bedroom-apt-opp-aljunied-mrt-no-facilities-25570185)
+
+[\\
+\\
+**Glamour Ville** \\
+\\
+1 Lorong N Telok Kurau\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-glamour-ville-25596377)
+
+[\\
+\\
+**Eunos Park** \\
+\\
+5 Kampong Eunos\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-eunos-park-21317211)
+
+[\\
+\\
+**East Shine** \\
+\\
+57 Lorong Melayu\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-east-shine-25560591)
+
+[\\
+\\
+**East Shine** \\
+\\
+57 Lorong Melayu\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-east-shine-25560591)
+
+[\\
+\\
+**Tre Residences** \\
+\\
+7 Geylang East Avenue 1\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-tre-residences-21584773)
+
+[\\
+\\
+**East Elegance** \\
+\\
+190 Joo Chiat Terrace\\
+\\
+S$ 4,388 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-east-elegance-25587037)
+
+[\\
+\\
+**Sea Pavilion Residences** \\
+\\
+494 Upper East Coast Road\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-sea-pavilion-residences-25525146)
+
+[\\
+\\
+**Sea Pavilion Residences** \\
+\\
+494 Upper East Coast Road\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-sea-pavilion-residences-25525146)
+
+[\\
+\\
+**The Verte** \\
+\\
+118 Lorong H Telok Kurau\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-verte-19753195)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-evergreen-view-24945398#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Evergreen View?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at Evergreen View?
+
+The rent of this unit at Evergreen View is about S$ 4,800 /mo.
+
+##### What is the current rental PSF at Evergreen View?
+
+The current rental PSF at Evergreen View is about S$ 3.75 psf.
+
+##### What is the address of Evergreen View?
+
+Evergreen View is located at 15 Lorong 36 Geylang Eunos / Geylang / Paya Lebar Balestier / Geylang (D12-14).
+
+##### What is the floor size of this unit at Evergreen View?
+
+Floor size of this unit at Evergreen View is 1281 sqft.
+
+Explore other options in and around Eunos / Geylang / Paya Lebar
+
+Based on the property criteria, you might be interested on the following
+
+Condominium For Rent
+
+[At Evergreen View](https://www.propertyguru.com.sg/project-listings/evergreen-view-1919/rent/1)
+
+[In Eunos / Geylang / Paya Lebar](https://www.propertyguru.com.sg/condos/eunos-geylang-paya-lebar)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=CONDO&hdb_estate%5B0%5D=0)
+
+[Under 5K S$](https://www.propertyguru.com.sg/condo-for-rent/in-eunos-geylang-paya-lebar-d14/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/condo-for-rent/in-eunos-geylang-paya-lebar-d14/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[CC8 Dakota MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-cc8-dakota-mrt-station-1625)
+
+[EW9 Aljunied MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew9-aljunied-mrt-station-32)
+
+[EW8 Paya Lebar MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew8-paya-lebar-mrt-station-29)
+
+Nearest Schools
+
+[Kong Hwa School](https://www.propertyguru.com.sg/condo-for-rent/near-kong-hwa-school-650)
+
+[Northlight School](https://www.propertyguru.com.sg/condo-for-rent/near-northlight-school-1190)
+
+[Geylang Methodist School](https://www.propertyguru.com.sg/condo-for-rent/near-geylang-methodist-school-638)
+
+[\\
+\\
+Chloe Yap\\
+\\
+5.0(11 Reviews)\\
+\\
+HUTTONS ASIA PTE LTD\\
+\\
+CEA: R055291J / L3008899K\\
+\\
+](https://www.propertyguru.com.sg/agent/chloe-yap-243667#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/chloe-yap-243667)
+
+[Chloe Yap](https://www.propertyguru.com.sg/agent/chloe-yap-243667)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25218214.md b/examples/memory_service/client/data/crawled_listings/25218214.md
new file mode 100644
index 00000000..d0ba9e3c
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25218214.md
@@ -0,0 +1,672 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/11
+
+Show all media
+
+# Spottiswoode Suites
+
+16 Spottiswoode Park Road
+
+# S$ 4,900 /mo
+
+Negotiable
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+743
+
+sqft
+
+* * *
+
+510 m (6 mins) from CC31 Cantonment MRT
+
+
+
+Ready to move in Condominium
+
+* * *
+
+
+
+Photos
+
+
+
+Floor Plan
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Condominium for rent |  Fully furnished |
+|  TOP in Dec 2017 |  Listed on 11 May 2025 |
+|  Listing ID - 25218214 |  743 sqft floor area |
+
+See all details
+
+## About this property
+
+### Prime area near to MRT, parks, schools & shops. Excellent facilities.
+
+\*New Listing!\*
+
+This stunning 3-bedroom unit in Spottiswoode Suites is available for rent at S$5,500. The well-designed interior boasts high-quality finishes and furniture, perfect for those who appreciate the finer things in life. The breezy balcony offers an unblocked view that will take your breath away.
+
+Take a look at the details:
+
+️\- 3 Bedrooms (1 Master, 1 small bedroom for a single bed, 1 walk-in wardrobe room) Therefore, only 2 rooms can put bed.
+
+\- 2 Bathrooms
+
+\- 1 store room
+
+\- 743 sqft
+
+\- Available: 15th July 2024
+
+Additional features:
+
+️\- Breezy unit
+
+\- Non-smoking in unit
+
+\- No pets allowed
+
+\- Looking for a 2-year lease
+
+\- If less than 2 years, 2 months security deposit required and rental may be higher.
+
+Located in a prime area, you'll have easy access to various schools, including Cantonment Primary School, First Media Design School, and Mirror D International College. You'll also have great access to various MRT/LRT stations such as Cantonment. Outram Park, Tanjong Pagar, and more.
+
+Don't miss out on this amazing opportunity! Contact Evon Chiang at
+8\*\*\*\*\*
+for more information.
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)
+
+
+
+
+
+
+
+
+
+Cantonment MRT
+
+CC31
+
+
+
+6 mins
+
+510 m
+
+Outram Park MRT
+
+EW16
+
+NE3
+
+TE17
+
+
+
+8 mins
+
+680 m
+
+Maxwell MRT
+
+TE18
+
+
+
+12 mins
+
+1 km
+
+
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Barbeque pits
+
+
+
+Basement car park
+
+
+
+Children's playground
+
+See all 13 facilities
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Spottiswoode Suites
+
+
+
+Spottiswoode SuitesLocated in a relatively exclusive part of District 2, Spottiswoode Suites offers residents both variety in terms of dining and entertainment options, while also benefitting from its peaceful location near a large wooded area. The attention to detail in the apartments themselves and in the facilities, as well as the duplex options for 2 and 3 bed units helps this development to stand out. Currently Spottiswoode Suites are a ten minute walk to Outram MRT Station, though this will be halved with the opening of Cantonment Station in 2025. One further thing to note is that Spottiswoode Suites are freehold, meaning they are a more attractive option for investors.Spottiswoode Development Pte Ltd was formed in 2011 as a joint venture between Centurion Properties Ltd and Lian Beng Group Ltd.Spottiswoode Suites– Unique Selling PointsOne of the features of the apartments in Spottiswoode Suites is their high ceilings, which gives the impression of them having more room than they actually do. This coupled with the designer fixtures and fittings, and the large number of communal amenities and facilities within the development, is a big advantage. The area it is located in is the major plus for Spottiswoode Suites however. Though it is a fairly exclusive area, there are plenty of options when it comes to wining and dining within a very short walk, no matter what your budget or preference.Spottiswoode Suites- AccessibilityOutram Park, on the East West and North South Lines is the nearest MRT station to Spottiswoode Suites, and is a ten minute walk away (approx. 650 metres). There is a bus stop near the development for those not wishing or able to walk. When completed, Cantonment MRT station will be located at the site of the old Tanjong Pagar Railway Station, which means residents of Spottiswoode Suites will have a walk of only 5 minutes to access the MRT network. Access to the MCE and CTE is straightforward and it is a short distance to Sentosa.Spottiswoode Suites- Amenities & AttractionsDining near Spottiswoode Suites:Majestic RestaurantNicolas Le RestaurantEtna Italian RestaurantTaratata BistrotMariner’s Corner RestaurantShopping near Spottiswoode Suites:100 AMAmara Shopping CentreTanjong Pagar PlazaIcon VillageSchools and Education near Spottiswoode Suites:Cantonment Primary SchoolRadin Mas Primary SchoolZhangde Primary SchoolSpottiswoode Suites- Project informationSpottiswoode Suites consist of a single 36 storey block. It has 183 units in total, and offers a wide choice of unit type. Ranging from 1 up to 3 bedrooms, the 2 and 3 bedroom units also come in either standard, duplex or penthouse options. As well as a tennis court, Spottiswoode Suites also has a swimming pool, children’s adventure and separate water play area, indoor and aqua gyms and 4 Jacuzzis.It is the location that will draw most people to the development however. Flanked by a park and wooded area, Spottiswoode Suites will give residents the feel that they have escaped the city, despite it only being a few minutes’ walk away.Project Name: Spottiswoode SuitesAddress: 16 Spottiswoode Park RoadType: CondominiumSite area: 40,259.18 sqftTenure: FreeholdDistrict: 2Configuration: 183 unitsUnit types:19 x 1 Bedroom: 452 – 463 sqft58 x 1 Bedroom + Study: 441 – 484 sqft45 x 2 Bedroom: 495 – 667 sqft28 x 3 Bedroom: 743 – 797 sqft12 x 2 Bedroom Duplex: 840 – 872 sqft12 x 3 Bedroom Duplex: 1012 – 1119 sqft7 x Penthouse 2 Bedroom: 1109 – 1259 sqft2 x Penthouse 3 bedroom: 1378 – 1410 sqftTOP: 21st June 2017(How many towers/ blocks/ storeys + how big is the land + how many units in total + howmany units per floor + how many lifts + what are the layouts available + how big are theunits + how many rooms, etc)Spottiswoode Suites - Historical DataSales for all units at the Spottiswoode Suites were brisk to start with, though they did slow. The vast majority of sales coming in the $1 to $1.5 million range. The median PSF of the transacted units up to August 2016 were:Bedroom Type$PSF1 Bedroom$2,3001 + 1 Bedroom$2,3122 Bedroom$2,2533 Bedroom$2,1772 Bedroom Duplex$2,3183 Bedroom Duplex$2,20302 Bedroom Penthouse$2,1093 Bedroom Penthouse$1,802Spottiswoode Suites - Related ProjectsThe following projects are by the same developer as Spottiswoode Suites:8 @ Mount SophiaGrand DuchessSixth Avenue ResidencesSpottiswoode Suites - Nearby ProjectsThe following developments are in the same neighbourhood as Spottiswoode Suites:Asia GardensIconCraig PlaceEON Shenton
+
+[View project details](https://www.propertyguru.com.sg/project/spottiswoode-suites-21364)
+
+[3.8\\
+\\
+\\
+\\
+2 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/spottiswoode-suites-21364) [3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/spottiswoode-suites-21364#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25608821)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-21944982)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25594515)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614154)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25258043)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25605046)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25605046)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25613030)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)
+
+See all listings
+
+[\\
+\\
+Evon Chiang\\
+\\
+5.0(6 Reviews)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R067568H / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/evon-chiang-14918592#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**Rent In Singapore Housing Condominium Apartment Hotel Accommodation For Expat Short Term Rental** \\
+\\
+Chinatown / Tanjong Pagar\\
+\\
+S$ 3,000 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-rent-in-singapore-housing-condominium-apartment-hotel-accommodation-for-expat-short-term-rental-25186959)
+
+[\\
+\\
+**Library House, Figment Boutique Homes. Move-in Ready, All-inclusive, Flexible Contract, Central SG** \\
+\\
+Emerald Hill Road\\
+\\
+S$ 2,999 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-library-house-figment-boutique-homes-move-in-ready-all-inclusive-flexible-contract-central-sg-25095566)
+
+[\\
+\\
+**49 Tras Street**\\
+\\
+S$ 2,700 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Walk-up Apartment](https://www.propertyguru.com.sg/listing/for-rent-49-tras-street-24243628)
+
+[\\
+\\
+**Peninsula House, Figment Boutique Homes. Move-in Ready, All-inclusive, Flexible Contract, Central SG** \\
+\\
+Jalan Besar / Petain Road / Farrer Park MRT\\
+\\
+S$ 3,000 /mo\\
+\\
+Studio\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-peninsula-house-figment-boutique-homes-move-in-ready-all-inclusive-flexible-contract-central-sg-25185336)
+
+[\\
+\\
+**Peninsula House, Figment Boutique Homes. Move-in Ready, All-inclusive, Flexible Contract, Central SG** \\
+\\
+Jalan Besar / Petain Road / Farrer Park MRT\\
+\\
+S$ 3,000 /mo\\
+\\
+Studio\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-peninsula-house-figment-boutique-homes-move-in-ready-all-inclusive-flexible-contract-central-sg-25185336)
+
+[\\
+\\
+**The Platinum** \\
+\\
+46 Upper Cross Street\\
+\\
+S$ 3,400 /mo\\
+\\
+Studio\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-the-platinum-20678502)
+
+[\\
+\\
+**Lumiere** \\
+\\
+2 Mistri Road\\
+\\
+S$ 4,850 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-lumiere-25591950)
+
+[\\
+\\
+**Icon** \\
+\\
+10 Gopeng Street\\
+\\
+S$ 6,200 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-icon-18664640)
+
+[\\
+\\
+**Icon** \\
+\\
+10 Gopeng Street\\
+\\
+S$ 6,200 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-icon-18664640)
+
+[\\
+\\
+**Icon** \\
+\\
+10 Gopeng Street\\
+\\
+S$ 4,000 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-icon-19778471)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Spottiswoode Suites?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at Spottiswoode Suites?
+
+The rent of this unit at Spottiswoode Suites is about S$ 4,900 /mo.
+
+##### What is the current rental PSF at Spottiswoode Suites?
+
+The current rental PSF at Spottiswoode Suites is about S$ 6.59 psf.
+
+##### What is the address of Spottiswoode Suites?
+
+Spottiswoode Suites is located at 16 Spottiswoode Park Road Chinatown / Tanjong Pagar City & South West (D01-08).
+
+##### What is the floor size of this unit at Spottiswoode Suites?
+
+Floor size of this unit at Spottiswoode Suites is 743 sqft.
+
+Explore other options in and around Chinatown / Tanjong Pagar
+
+Based on the property criteria, you might be interested on the following
+
+Condominium For Rent
+
+[At Spottiswoode Suites](https://www.propertyguru.com.sg/project-listings/spottiswoode-suites-21364/rent/1)
+
+[In Chinatown / Tanjong Pagar](https://www.propertyguru.com.sg/condos/chinatown-tanjong-pagar)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=CONDO&hdb_estate%5B0%5D=0)
+
+[Under 5K S$](https://www.propertyguru.com.sg/condo-for-rent/in-chinatown-tanjong-pagar-d02/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/condo-for-rent/in-chinatown-tanjong-pagar-d02/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[CC31 Cantonment MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-cc31-cantonment-mrt-station-8266)
+
+[EW16 Outram Park MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew16-outram-park-mrt-station-53)
+
+[NE3 Outram Park MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ne3-outram-park-mrt-station-8099)
+
+Nearest Schools
+
+[K¹² International Academy Singapore](https://www.propertyguru.com.sg/condo-for-rent/near-k-international-academy-singapore-8088)
+
+[Inspiration Design School](https://www.propertyguru.com.sg/condo-for-rent/near-inspiration-design-school-2747)
+
+[CHIJ (Kellock)](https://www.propertyguru.com.sg/condo-for-rent/near-chij-kellock-614)
+
+[\\
+\\
+Evon Chiang\\
+\\
+5.0(6 Reviews)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R067568H / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/evon-chiang-14918592#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/evon-chiang-14918592)
+
+[Evon Chiang](https://www.propertyguru.com.sg/agent/evon-chiang-14918592)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25336789.md b/examples/memory_service/client/data/crawled_listings/25336789.md
new file mode 100644
index 00000000..0055a823
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25336789.md
@@ -0,0 +1,670 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)[](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)[](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)[](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)[](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/11
+
+Show all media
+
+# Starville
+
+60 Lengkong Tiga
+
+# S$ 4,700 /mo
+
+Negotiable
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+3
+
+Baths
+
+
+
+1,270
+
+sqft
+
+* * *
+
+880 m (11 mins) from EW6 Kembangan MRT
+
+
+
+Available from 15 May 2025
+
+* * *
+
+
+
+Photos
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Condominium for rent |  Partially furnished |
+|  TOP in Dec 2006 |  2 years lease |
+|  Listed on 11 May 2025 |  Listing ID - 25336789 |
+
+See all details
+
+## About this property
+
+### High floor, unblocked view, quiet facing, available immediate
+
+Exclusively listed and marketed by #Hausatsg
+
+For Rent : Starville - 3 Bedrooms
+
+60 Lengkok Tiga S(417454)
+
+PROPERTY DETAILS:
+
+3-Bedrooms, 3-Bathrooms, 1270 sq ft
+
+High floor
+
+Renovated
+
+Fully Furnished
+
+Short walk to MRT, Shops
+
+Living Room faces South
+
+Prefer family
+
+For Enquiry and Viewing, please contact:
+
+Allyson Ong \|
+9\*\*\*\*\*
+
+ERA Senior Marketing Director
+
+FB @
+www.w\*\*\*\*\*
+
+Web @
+www.h\*\*\*\*\*
+
+Whatsapp @
+www.h\*\*\*\*\*
+
+Telegram @ allysonong
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)
+
+
+
+
+
+
+
+
+
+Kembangan MRT
+
+EW6
+
+
+
+11 mins
+
+880 m
+
+Kaki Bukit MRT
+
+DT28
+
+
+
+19 mins
+
+1.5 km
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Balcony
+
+
+
+Bombshelter
+
+
+
+Cooker hob/hood
+
+See all 10 amenities
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Barbeque pits
+
+
+
+Basement car park
+
+
+
+Clubhouse
+
+See all 12 facilities
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Starville
+
+
+
+Starville is a freehold condominium development that is located at Lengkong Tiga in District 14. It is a condominium project that was completed a while back. The project was completed in 2006 with a total of 250 units available for sale or rent. The condominium development is located close to public transportation that allows residents to move easily from one place to another from the condominium. There are many shops and amenities close to the condominium development which would ease the process for residents and they do not need to go far to find what they need. The project was developed by Koh Brothers Development Pte Ltd, a mid scale property development that has completed 4 other property projects in Singapore. - Starville is a beautiful condominium development that has many charms to it. There are various facilities that residents can enjoy while living in Starville. Residents of Starville would not have to travel far to get their basic necessities as everything is close within their reach. Residents can enjoy the barbeque area, clubhouse, gymnasium room, jogging track, reflexology path, swimming pool, fun pool, jacuzzi, playground and tennis courts. Residents can enjoy taking evening walks around the condominium development or take a dip in the pool on a hot day. The condominium comes equipped with basement car parks and 24 hours security system to ensure the safety of residents is well taken care of at all time. There is a number of public transportation close to Starville that residents can make use of. The closest MRT stations are Kembangan MRT and Kaki Bukit MRT. The closest bus stops are located at Grosvenor View, Hua Yu Mansions, Bedok Reservoir Road, Eunos Mansions and Kembangan Station. For those with vehicles, the shopping district located at Orchard Road can be easily accessed via the Central Expressway, Stevens Road and Pan Island Expressway in 15 to 20 minutes. Ding Ji Bedok ReservoirKampong Eating HouseIstanbul GourmetSeng Kee Black Chinese Herbal SoupAl Jasra East Coast Primary School (Ecps)Eunos Primary SchoolPing Yi Secondary SchoolTelok Kurau Primary SchoolWaldorf Steiner School Tan & Koh Clinic & SurgeryWong Family Clinic & Surgery Pte LtdBok Family Clinic Pte LtdTay ClinicB.K Lim Dental Surgery Giant ExpressEveryday MarketFairPriceLengkong TigaHALAL Supermarket 7mall.Shop Starville is a condominium development that is made up of a total of 250 units of 12-storey condominiums. There 4 types of units available with various layouts that residents can browse through. The size of the units ranges between 538 square feet to 2,303 square feet. The layouts for the units in Starville aim to provide residents with homes that is comfortable for working adults, couples or families looking to own a spacious and manageable condominium unit. The sale price for the units ranges between S$ 700,000 to S$ 1,930,000. The rental for the units ranges between S$ 3,200 to S$ 3,800. Project Name: StarvilleType: CondominiumDistrict: 14Configuration: 250 residential units Unit Types:1 bedroom (538 sqft – 603 sqft)2 bedrooms (936 sqft)3 bedrooms (1,216 sqft - 1,625 sqft)4 bedrooms (2,164 sqft – 2,303 sqft) The following developments are in the same neighborhood as Starville:The SierraThe MontanaFiorenza The following developments are in the same neighborhood as Starville:Parc EstaEuhabitatSims Urban OasisWaterbank at DakotaUrban TreasuresArena Residences
+
+[View project details](https://www.propertyguru.com.sg/project/starville-381)
+
+[3.1\\
+\\
+\\
+\\
+23 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/starville-381) [3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/starville-381#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**Starville** \\
+\\
+62 Lengkong Tiga\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-25612965)
+
+[\\
+\\
+**Starville** \\
+\\
+60 Lengkong Tiga\\
+\\
+S$ 1,500 /mo\\
+\\
+Common Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-25614334)
+
+[\\
+\\
+**Starville** \\
+\\
+60 Lengkong Tiga\\
+\\
+S$ 3,290 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-25074820)
+
+[\\
+\\
+**Starville** \\
+\\
+68 Lengkong Tiga\\
+\\
+S$ 3,500 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-19586339)
+
+[\\
+\\
+**Starville** \\
+\\
+68 Lengkong Tiga\\
+\\
+S$ 3,500 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-19586339)
+
+[\\
+\\
+**Starville** \\
+\\
+68 Lengkong Tiga\\
+\\
+S$ 2,850 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-24657389)
+
+[\\
+\\
+**Starville** \\
+\\
+64 Lengkong Tiga\\
+\\
+S$ 1,500 /mo\\
+\\
+Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-25477024)
+
+[\\
+\\
+**Starville** \\
+\\
+64 Lengkong Tiga\\
+\\
+S$ 1,500 /mo\\
+\\
+Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-25532756)
+
+[\\
+\\
+**Starville** \\
+\\
+64 Lengkong Tiga\\
+\\
+S$ 1,500 /mo\\
+\\
+Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-25532756)
+
+[\\
+\\
+**Starville** \\
+\\
+68 Lengkong Tiga\\
+\\
+S$ 1,900 /mo\\
+\\
+Master Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-starville-25600874)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)
+
+[\\
+\\
+Allyson Ong\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R026837F / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/allyson-ong-19403#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**The Summit**\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-summit-24087118)
+
+[\\
+\\
+**Sunny Palms** \\
+\\
+65 Lorong G Telok Kurau\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587)
+
+[\\
+\\
+**The Verte** \\
+\\
+118 Lorong H Telok Kurau\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-verte-19753195)
+
+[\\
+\\
+**Bliss Ville** \\
+\\
+69H Lorong Melayu\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-bliss-ville-25600859)
+
+[\\
+\\
+**Bliss Ville** \\
+\\
+69H Lorong Melayu\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-bliss-ville-25600859)
+
+[\\
+\\
+**The Sunniflora** \\
+\\
+48 Lor G Telok Kurau\\
+\\
+S$ 3,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-sunniflora-25612250)
+
+[\\
+\\
+**Fernwood Towers** \\
+\\
+28 Fernwood Terrace\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-fernwood-towers-24831848)
+
+[\\
+\\
+**Emerald East** \\
+\\
+8D Tanjong Rhu Road\\
+\\
+S$ 5,100 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-emerald-east-24461240)
+
+[\\
+\\
+**Emerald East** \\
+\\
+8D Tanjong Rhu Road\\
+\\
+S$ 5,100 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-emerald-east-24461240)
+
+[\\
+\\
+**Glamour Ville** \\
+\\
+1 Lorong N Telok Kurau\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-glamour-ville-25596377)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-starville-25336789#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Starville?
+
+There are 3 bedrooms with 3 bathrooms in this unit.
+
+##### What is the rental price of this unit at Starville?
+
+The rent of this unit at Starville is about S$ 4,700 /mo.
+
+##### What is the current rental PSF at Starville?
+
+The current rental PSF at Starville is about S$ 3.70 psf.
+
+##### What is the address of Starville?
+
+Starville is located at 60 Lengkong Tiga Eunos / Geylang / Paya Lebar Balestier / Geylang (D12-14).
+
+##### What is the floor size of this unit at Starville?
+
+Floor size of this unit at Starville is 1270 sqft.
+
+Explore other options in and around Eunos / Geylang / Paya Lebar
+
+Based on the property criteria, you might be interested on the following
+
+Condominium For Rent
+
+[At Starville](https://www.propertyguru.com.sg/project-listings/starville-381/rent/1)
+
+[In Eunos / Geylang / Paya Lebar](https://www.propertyguru.com.sg/condos/eunos-geylang-paya-lebar)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=CONDO&hdb_estate%5B0%5D=0)
+
+[Under 5K S$](https://www.propertyguru.com.sg/condo-for-rent/in-eunos-geylang-paya-lebar-d14/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/condo-for-rent/in-eunos-geylang-paya-lebar-d14/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[EW6 Kembangan MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew6-kembangan-mrt-station-23)
+
+[DT28 Kaki Bukit MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-dt28-kaki-bukit-mrt-station-8170)
+
+[DT29 Bedok North MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-dt29-bedok-north-mrt-station-8171)
+
+Nearest Schools
+
+[Telok Kurau Primary](https://www.propertyguru.com.sg/condo-for-rent/near-telok-kurau-primary-521)
+
+[Bedok North Secondary School](https://www.propertyguru.com.sg/condo-for-rent/near-bedok-north-secondary-school-749)
+
+[Eunos Primary School](https://www.propertyguru.com.sg/condo-for-rent/near-eunos-primary-school-302)
+
+[\\
+\\
+Allyson Ong\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R026837F / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/allyson-ong-19403#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/allyson-ong-19403)
+
+[Allyson Ong](https://www.propertyguru.com.sg/agent/allyson-ong-19403)
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25449089.md b/examples/memory_service/client/data/crawled_listings/25449089.md
new file mode 100644
index 00000000..97afc9cc
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25449089.md
@@ -0,0 +1,600 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)[](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)[](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)[](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)[](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/16
+
+Show all media
+
+Verified Listing
+
+# The Sunnidora
+
+46 Lor G Telok Kurau
+
+# S$ 4,200 /mo
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+872
+
+sqft
+
+* * *
+
+930 m (11 mins) from EW6 Kembangan MRT
+
+
+
+Ready to move in Condominium
+
+* * *
+
+
+
+Photos
+
+
+
+Video
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Condominium for rent |  TOP in Apr 2006 |
+|  2 years lease |  Listed on 11 May 2025 |
+|  Listing ID - 25449089 |  872 sqft floor area |
+
+See all details
+
+## About this property
+
+### 10mins walk to MRT, Mbr Ensuite with bathtub, bomb shether, Balcony
+
+Maindoor face south. Baloncy faces East
+
+\*\*Property Listing:\*\*
+
+THE SUNNIDORA
+
+Nestled in a prime location, this 3-bedroom gem offers modern living at S$4,500. With a spacious 872 sqft, it provides the perfect blend of comfort and convenience.
+
+\- Address: THE SUNNIDORA
+
+\- Bedrooms: 3
+
+\- Property Size: 872 sqft
+
+\*\*Schools Nearby:\*\*
+
+\- St. Stephen's School (Primary) (0.88KM)
+
+\- THE SONGWRITER MUSIC COLLEGE (0.26KM)
+
+\- WINDSOR MANAGEMENT COLLEGE (0.83KM)
+
+\- CITY METROPOLITAN COLLEGE (0.94KM)
+
+\*\*Nearby MRT/LRT Stations:\*\*
+
+\- EW6 Kembangan (0.60KM)
+
+\- EW7 Eunos (0.79KM)
+
+Contact MARTIN ONG at
+8\*\*\*\*\*
+for a viewing today and secure your ideal home in this sought-after location!
+
+ERA Million Dollar Club Award
+
+Earn designation of Singapore Accredited Mortgage Planner(SAMP)
+
+Transacted numerous units for sale and rent.
+
+Wide networks with huge databases to expedite sales and rental.
+
+Seller/Landlord/Tenant/buyer/agent welcome
+
+Fast and efficient service
+
+Call or Whatsapp martin at
+8\*\*\*\*\*
+for more details.
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)
+
+
+
+
+
+
+
+
+
+Kembangan MRT
+
+EW6
+
+
+
+11 mins
+
+930 m
+
+Eunos MRT
+
+EW7
+
+
+
+12 mins
+
+1 km
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Cooker hob/hood
+
+
+
+Water heater
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Barbeque pits
+
+
+
+Covered car park
+
+
+
+Playground
+
+See all 6 facilities
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## The Sunnidora
+
+The Sunnidora is a low-density freehold condominium which located at 46, Lorong G Telok Kurau , Singapore - 426223 in District 15 (East Coast, Marine Parade). This unique development consists of 12 residential units only and was completed in year 2006. The Sunnidora is a beautiful 5-storey freehold development and was developed by Sunshine Land Pte Ltd which had established since year 2003. District 15 offers a quiet and comfortable escape from the city's bustling centre, making it a perfect residential area for families to settle in. The Sunnidora is an exciting freehold development in a quiet residential enclave of the popular East Coast. This freehold condominium offers the perfect combination of essential living and convenience with its strategic location. With its breath-taking scenery and the lush greenery environment that will surely add spice to residents‚Äô daily living. It is indeed an ideal place for the residents who wish to have more laidback and relax neighbourhood yet surrounded with modern conveniences. Besides that, District 15 is suitable for those residents who has growing families as there are many landmark parks and green spaces around the area. Due to its proximity to the East Coast Park, that is packed with opportunities for exciting outdoor activities, entertainment, dining attractions and water sports. Furthermore, along the coast is a 20km stretch of white sandy beach where residents can often be seen sunbathing and cycling. For relaxation and swimming enthusiasts, a swimming pool is provided within the condominium. On top of that, the other facilities available in this freehold condominium includes barbeque area, covered car park, children playground and 24-hour security system. The Sunnidora is just approximately 10 minutes drive to Suntec City and Raffles Place (Singapore‚Äôs financial district). Orchard Road is within a 15 minutes drive away via the East Coast Parkway or the Pan Island Expressway (PIE). These expressways will also link to different parts of Singapore with ease. Furthermore, this freehold condominium is proximity to the Central Business District (CBD) and Changi Airport also makes The Sunnidora some of the most coveted on the island. Moreover, this unique development is close to Kembangan MRT (EW6), Eunos MRT (EW7) and Marine Terrace MRT (TE27 Thomson-East Coast Line due 2023) stations where the residents can zip around the city and travel to most of the Singapore‚Äôs key attractions which are within walking distance from the MRT station. Besides that, multitude of bus services meandering through the area help to connect the neighbourhood and the area around it. The residents of this development can easily travel in and out from the area without relying on private transportation. There are few recreational parks and good variety of kid-friendly spot around the area which including East Coast Park – Singapore largest outdoor recreational park where the residents can cycle, picnic, jogging and skating. Furthermore, other amenities and attractions such like Raintree Cove, Big Splash, Road Safety Community Park and the renowned Chinese Swimming Club. Besides that, there is also the Parkland Gold Driving range for golf enthusiasts. Travelling along East Coast Road will bring you to more dining options which offering multicultural cuisine, including the many Peranakan eateries, Katong laksa, chicken rice and bean curd buns. If that is not enough, residents can still find ample amenities situated around the area such like cafe, boutique shops, places of worship, convenient stores, banks, petrol stations and community centre which provide the utmost ease to the residences when it comes to attending to their daily affairs. The residents of this freehold development who loves to go out and dine have the privilege to taste the different cuisines that are offered by the wide array of dining establishments in the area. Satisfying the craving tummies with the neighbouring dining like:Mak's Place - The HawkerantJoo Chiat FoodcourtBagus LaMianEunos Crescent Market and Food CentreMany good and reputable schools are available in District 15 and they cater to students from across age groups.Ngee Ann Primary SchoolEunos Primary SchoolTao Nao SchoolHaig Girls' SchoolSt Stephen's SchoolParkway East HospitalHealth Line Family Clinic and SurgeryAccord Medical ClinicLee ClinicFamily Medicine ClinicBesides that, there are many shopping options around the area as well such like:Katong V112 KatongJoo Chiat ComplexKINEXKatong Shopping CentreProject Name: The SunnidoraType: CondominiumDistrict: 15Configuration: 12 residential unitsUnit Type for The Sunnidora :3 bedrooms + 2 bathrooms – (861 to 1,755 square feet)The following projects are by the same developer as The Sunnidora:The SunnifloraInova 100District 15 is indeed a good place to call home. There are some other great projects around the area that making the area attractive and charming. The following developments are in the same neighbourhood as The Sunnidora:Amber ParkMeyer MansionSeaside ResidencesSilverseaAmber 45Frankel Estate
+
+[View project details](https://www.propertyguru.com.sg/project/the-sunnidora-1314)
+
+[4/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/the-sunnidora-1314#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**The Sunnidora** \\
+\\
+46 Lor G Telok Kurau\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25448600)
+
+[\\
+\\
+**The Sunnidora** \\
+\\
+46 Lor G Telok Kurau\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-23291643)
+
+[\\
+\\
+**The Sunnidora** \\
+\\
+46 Lor G Telok Kurau\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25614320)
+
+[\\
+\\
+Martin Ong\\
+\\
+5.0(48 Reviews)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R005764B / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/martin-ong-82658#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**The Summit**\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-summit-24087118)
+
+[\\
+\\
+**Sunny Palms** \\
+\\
+65 Lorong G Telok Kurau\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587)
+
+[\\
+\\
+**The Verte** \\
+\\
+118 Lorong H Telok Kurau\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-verte-19753195)
+
+[\\
+\\
+**Emerald East** \\
+\\
+8D Tanjong Rhu Road\\
+\\
+S$ 5,100 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-emerald-east-24461240)
+
+[\\
+\\
+**Emerald East** \\
+\\
+8D Tanjong Rhu Road\\
+\\
+S$ 5,100 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-emerald-east-24461240)
+
+[\\
+\\
+**Glamour Ville** \\
+\\
+1 Lorong N Telok Kurau\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-glamour-ville-25596377)
+
+[\\
+\\
+**The Summit** \\
+\\
+461 Upper East Coast Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-summit-23762773)
+
+[\\
+\\
+**Stratford Court** \\
+\\
+41A Bedok Ria Crescent\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-stratford-court-25550056)
+
+[\\
+\\
+**Stratford Court** \\
+\\
+41A Bedok Ria Crescent\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-stratford-court-25550056)
+
+[\\
+\\
+**Mandarin Gardens** \\
+\\
+1 Siglap Road\\
+\\
+S$ 4,300 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-mandarin-gardens-22988023)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-the-sunnidora-25449089#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in The Sunnidora?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at The Sunnidora?
+
+The rent of this unit at The Sunnidora is about S$ 4,200 /mo.
+
+##### What is the current rental PSF at The Sunnidora?
+
+The current rental PSF at The Sunnidora is about S$ 4.82 psf.
+
+##### What is the address of The Sunnidora?
+
+The Sunnidora is located at 46 Lor G Telok Kurau East Coast / Marine Parade East Coast (D15-16).
+
+##### What is the floor size of this unit at The Sunnidora?
+
+Floor size of this unit at The Sunnidora is 872 sqft.
+
+Explore other options in and around East Coast / Marine Parade
+
+Based on the property criteria, you might be interested on the following
+
+Condominium For Rent
+
+[At The Sunnidora](https://www.propertyguru.com.sg/project-listings/the-sunnidora-1314/rent/1)
+
+[In East Coast / Marine Parade](https://www.propertyguru.com.sg/condos/east-coast-marine-parade)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=CONDO&hdb_estate%5B0%5D=0)
+
+[Under 5K S$](https://www.propertyguru.com.sg/condo-for-rent/in-east-coast-marine-parade-d15/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/condo-for-rent/in-east-coast-marine-parade-d15/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[EW6 Kembangan MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew6-kembangan-mrt-station-23)
+
+[EW7 Eunos MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew7-eunos-mrt-station-26)
+
+[TE27 Marine Terrace MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-te27-marine-terrace-mrt-station-8323)
+
+Nearest Schools
+
+[Telok Kurau Secondary School](https://www.propertyguru.com.sg/condo-for-rent/near-telok-kurau-secondary-school-1034)
+
+[Haig Girls' School](https://www.propertyguru.com.sg/condo-for-rent/near-haig-girls-school-350)
+
+[St Stephen's School](https://www.propertyguru.com.sg/condo-for-rent/near-st-stephen-s-school-719)
+
+[\\
+\\
+Martin Ong\\
+\\
+5.0(48 Reviews)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R005764B / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/martin-ong-82658#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/martin-ong-82658)
+
+[Martin Ong](https://www.propertyguru.com.sg/agent/martin-ong-82658)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25508992.md b/examples/memory_service/client/data/crawled_listings/25508992.md
new file mode 100644
index 00000000..2655cabf
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25508992.md
@@ -0,0 +1,615 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)[](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)[](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)[](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)[](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/28
+
+Show all media
+
+# 71 Seng Poh Road
+
+71 Seng Poh Road
+
+# S$ 5,000 /mo
+
+View to Offer
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+980
+
+sqft
+
+* * *
+
+520 m (6 mins) from TE16 Havelock MRT
+
+
+
+Available from 16 May 2025
+
+* * *
+
+
+
+Photos
+
+
+
+Floor Plan
+
+
+
+Video
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Walk-up Apartment for rent |  Unfurnished |
+|  TOP in 1938 |  2 years lease |
+|  Listed on 11 May 2025 |  Listing ID - 25508992 |
+
+See all details
+
+## About this property
+
+### Location! Lifestyle! Amenities! MRT!
+
+\*\*Available 16th May 2025
+
+Walk-up apartment on Level 2
+
+Very bright and Spacious
+
+3 BR + 1 Shower + 1 WC
+
+(no attached bath)
+
+Renovated
+
+MRT:
+
+\- 8 mins walk to Havelock MRT (TEL)
+
+\- 10 mins walk to Tiong Bahru MRT (EWL)
+
+Abundance of Amenities
+
+Food Courts, Groceries, Clinic, Dental
+
+Lifestyle Cafes
+
+Excellent Location
+
+Minutes to town by MRT or Car
+
+Prefer Single, Couple or Family profile.
+
+\*\*NOTE: Unit is without furniture. ID photos posted for reference.
+
+Call for viewing appointment.
+
+Heng Kee (PropNex)
+
+m
+9\*\*\*\*\*
+(
+www.w\*\*\*\*\*
+
+www.h\*\*\*\*\*
+
+Welcome Landlords, Sellers, Buyers, Tenants to call for a friendly discussion on your property plan.
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)
+
+
+
+
+
+
+
+
+
+Havelock MRT
+
+TE16
+
+
+
+6 mins
+
+520 m
+
+Tiong Bahru MRT
+
+EW17
+
+
+
+10 mins
+
+820 m
+
+Outram Park MRT
+
+EW16
+
+NE3
+
+TE17
+
+
+
+12 mins
+
+1 km
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Balcony
+
+
+
+Cooker hob/hood
+
+
+
+Park / greenery view
+
+See all 6 amenities
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Car park
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## 71 Seng Poh Road
+
+
+
+71 Seng Poh Road is a beautifully designed and a unique leasehold development located in 71 Seng Poh Road, District 3, Singapore. The construction of this development was done by the famous Housing & Development Boad (HDB), which is a very well reputed company in the field of construction. The development of this project was completed a few years ago. 71 Seng Poh Road offers limited facilities to its residents. The development does not offer facilities and features like many new developments offer to their residents. The 71 Seng Poh Road offers basic facilities and features to make sure that the residents do not have to face any kind of issue while settling in the development. The development offers open car parking facility for its residents. Most importantly, the development is equipped with latest security gadgets and provides 24 hour security to its residents to make sure that the residents are protected from any kind of external threats while they are in the development. 71 Seng Poh Road was developed strategically keeping in mind the importance of accessibility of the location. The residents do not have to worry about moving to and from the location even if they do not have their own vehicles. Public transportation is also available in the locality, making the area of the development even more attractive. The residents of the development can use the EW17 Tiong Bahru MRT Station, EW16 Outram Park MRT Station and NE3 Outram Park MRT Station to easily move to and from the location. The development is easily accessible and is connected via major roads and highways of the area from where the residents can reach any place in the city easily just by driving for a few minutes. The residents of the development can use the Central Expressway (CTE) and the Ayer Rajah Expressway (AYE) to move to and from the development. 71 Seng Poh Road is located in a great area and is surrounded by a variety of amenities. The residents do not have to worry about anything in the area because everything is easily accessible in the locality. There are many great educational institutions in the area providing top class education services to the residents of the area. The residents do not have to worry about the education of their children. Few of the famous educational institutions in the area are namelyOutram Secondary SchoolZhangde Primary SchoolK12 International Academy Singapore. It is considered to be a great place for those who love to do shopping because there are many great shopping spots in the area. Few of the famous shopping spots near the development are namelyConcorde Shopping CenterTiong Bahru PlazaNTUC Fairprice Many great food points are also available in the area where the residents can enjoy some fine quality dining facility with their family and friends. Few of the great food spots in the area are namelyLoo�s Hainanese Curry RiceBakalaki Greek TavernaOld Tiong Bahru Bak Kut Teh There are many medical clinics and hospitals as well in the area where the residents can go in case of any medical situation. 71 Seng Poh Road is a beautiful development and consists of a very limited number of units, making it a low density and a peaceful development. The buyers have the option to select from different designs of the units.Project Name: 71 Seng Poh RoadConfiguration: 15 units The buyers can select from the following designs: 2 bedrooms unit3 bedrooms unit4 bedrooms unit The owners also have the option to rent out the units, making the development attractive from investment point of view as well. The rent of the units in the development increases accordingly to the selection of the design of the unit. The development company of the 71 Seng Poh Road has developed many famous projects in the country and has always focused on giving value back to the stakeholders. The development company made sure that the 71 Seng Poh Road becomes a landmark for future developments and attracts people from all over the city. As discussed earlier, the 71 Seng Poh Road development is situated in a great area and is surrounded by many beautiful developments. Few of the famous developments in the area are: Pearl's Hill TerraceRiver PlaceTiong Poh ROadAlexisAlex REsidences
+
+[View project details](https://www.propertyguru.com.sg/project/71-seng-poh-road-9916)
+
+[3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/71-seng-poh-road-9916#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**71 Seng Poh Road** \\
+\\
+71 Seng Poh Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 1Bathroom\\
+\\
+Walk-up Apartment](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25598320)
+
+[\\
+\\
+Tan Heng Kee\\
+\\
+5.0(2 Reviews)\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R058295Z / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/tan-heng-kee-516526#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**75 Tiong Poh Road** \\
+\\
+75 Tiong Poh Road\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Walk-up Apartment](https://www.propertyguru.com.sg/listing/for-rent-75-tiong-poh-road-21295210)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-21944982)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25594515)
+
+[\\
+\\
+**Tiong Bahru Estate** \\
+\\
+12 Eng Hoon Street\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-tiong-bahru-estate-25611759)
+
+[\\
+\\
+**Tiong Bahru Estate** \\
+\\
+12 Eng Hoon Street\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-tiong-bahru-estate-25611759)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-25586807)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1G Cantonment Road\\
+\\
+S$ 5,499 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-20847422)
+
+[\\
+\\
+**56 Eng Hoon Street** \\
+\\
+56 Eng Hoon Street\\
+\\
+S$ 5,800 /mo\\
+\\
+ 3Bedrooms 1Bathroom\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-56-eng-hoon-street-24758519)
+
+[\\
+\\
+**56 Eng Hoon Street** \\
+\\
+56 Eng Hoon Street\\
+\\
+S$ 5,800 /mo\\
+\\
+ 3Bedrooms 1Bathroom\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-56-eng-hoon-street-24758519)
+
+[\\
+\\
+**Pinnacle @ Duxton** \\
+\\
+1A Cantonment Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-pinnacle-duxton-24428244)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-71-seng-poh-road-25508992#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in 71 Seng Poh Road?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at 71 Seng Poh Road?
+
+The rent of this unit at 71 Seng Poh Road is about S$ 5,000 /mo.
+
+##### What is the current rental PSF at 71 Seng Poh Road?
+
+The current rental PSF at 71 Seng Poh Road is about S$ 5.10 psf.
+
+##### What is the address of 71 Seng Poh Road?
+
+71 Seng Poh Road is located at 71 Seng Poh Road Alexandra / Commonwealth City & South West (D01-08).
+
+##### What is the floor size of this unit at 71 Seng Poh Road?
+
+Floor size of this unit at 71 Seng Poh Road is 980 sqft.
+
+Explore other options in and around Alexandra / Commonwealth
+
+Based on the property criteria, you might be interested on the following
+
+Walk-up Apartment For Rent
+
+[At 71 Seng Poh Road](https://www.propertyguru.com.sg/project-listings/71-seng-poh-road-9916/rent/1)
+
+[In Alexandra / Commonwealth](https://www.propertyguru.com.sg/walk-up-apartment/alexandra-commonwealth/property-for-rent)
+
+[In Bukit Merah](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=WALK&hdb_estate%5B0%5D=5)
+
+[Over 5K S$](https://www.propertyguru.com.sg/property-for-rent?property_type_code=WALK&hdb_estate%5B0%5D=5&property_type=N&minprice=5000)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/property-for-rent?property_type_code=WALK&property_type=N&beds%5B0%5D=3&district_code=D03&hdb_estate=5)
+
+Show More
+
+Nearest MRT Stations
+
+[TE16 Havelock MRT Station](https://www.propertyguru.com.sg/walk-up-apartment-for-rent/near-te16-havelock-mrt-station-8186)
+
+[EW17 Tiong Bahru MRT Station](https://www.propertyguru.com.sg/walk-up-apartment-for-rent/near-ew17-tiong-bahru-mrt-station-56)
+
+[EW16 Outram Park MRT Station](https://www.propertyguru.com.sg/walk-up-apartment-for-rent/near-ew16-outram-park-mrt-station-53)
+
+Nearest Schools
+
+[Outram Secondary School](https://www.propertyguru.com.sg/walk-up-apartment-for-rent/near-outram-secondary-school-950)
+
+[Zhangde Primary School](https://www.propertyguru.com.sg/walk-up-apartment-for-rent/near-zhangde-primary-school-587)
+
+[K¹² International Academy Singapore](https://www.propertyguru.com.sg/walk-up-apartment-for-rent/near-k-international-academy-singapore-8088)
+
+[\\
+\\
+Tan Heng Kee\\
+\\
+5.0(2 Reviews)\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R058295Z / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/tan-heng-kee-516526#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/tan-heng-kee-516526)
+
+[Tan Heng Kee](https://www.propertyguru.com.sg/agent/tan-heng-kee-516526)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25520919.md b/examples/memory_service/client/data/crawled_listings/25520919.md
new file mode 100644
index 00000000..ac4e8918
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25520919.md
@@ -0,0 +1,507 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)[](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)[](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)[](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)[](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/8
+
+Show all media
+
+# Pearl'S Centre
+
+100A Eu Tong Sen Street
+
+# S$ 5,000 /mo
+
+Negotiable
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,000
+
+sqft
+
+* * *
+
+200 m (2 mins) from NE3/EW16/TE17 Outram Park MRT
+
+
+
+Ready to move in Apartment
+
+* * *
+
+
+
+Photos
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Apartment for rent |  Listed on 10 May 2025 |
+|  Welcome all races, religions, genders, and sexual orientations. |  Listing ID - 25520919 |
+|  1000 sqft floor area |  S$ 5.00 psf |
+
+See all details
+
+## About this property
+
+### Suitable for company lease
+
+Heart of the city central locatiin
+
+Best for Bachelors
+
+Suitable for workers under company lease
+
+Tenants have to pay commission
+
+Photos are for illustration purpose only not the actual one
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)
+
+
+
+
+
+
+
+
+
+Outram Park MRT
+
+NE3
+
+EW16
+
+TE17
+
+
+
+2 mins
+
+200 m
+
+Maxwell MRT
+
+TE18
+
+
+
+10 mins
+
+800 m
+
+Chinatown MRT
+
+NE4
+
+DT19
+
+
+
+10 mins
+
+830 m
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Cooker hob/hood
+
+
+
+Corner unit
+
+
+
+Renovated
+
+See all 5 amenities
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Pearl'S Centre
+
+
+
+Pearl'S Centre is a commercial property located at 100 Eu Tong Sen Street, Singapore 059812 in District 01. This commercial space is primarily used for Office rental and sale. Pearl'S Centre is close to Outram Park MRT Station, Chinatown MRT Station and Tanjong Pagar MRT Station. It is near several bus stops located Bus Stop Outram Park Station - 06029, Bus Stop Pearl's Centre - 05012 and Bus Stop Opp Pearl's Centre - 05019. You can also see from the map above how to get there via other means of transport. Amenities near Pearl'S Centre Pearl'S Centre is near to Coleurs Pte Ltd and Cold Storage Vivocity. It is close to Teo Hong Road and Outram Park Shopping Complex for an array of amenities such as grocery and retail shopping, banks and more. Pearl'S Centre is also close to several eateries such as, Food Republic - VivoCity, Morning Star Food Court and Kopitiam (Singapore General Hospital).
+
+[View project details](https://www.propertyguru.com.sg/project/pearl-s-centre-19977)
+
+[\\
+\\
+Eliyas Mohamed Ebrahim\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R051425C / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/eliyas-mohamed-ebrahim-75628#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**Banda House, Figment Boutique Homes. Move-in Ready, All-inclusive, Flexible Contract, Central SG** \\
+\\
+Emerald Hill Road\\
+\\
+S$ 2,999 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-banda-house-figment-boutique-homes-move-in-ready-all-inclusive-flexible-contract-central-sg-25095549)
+
+[\\
+\\
+**V on Shenton** \\
+\\
+5 Shenton Way\\
+\\
+S$ 8,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-v-on-shenton-23984439)
+
+[\\
+\\
+**The Sail @ Marina Bay** \\
+\\
+2 Marina Boulevard\\
+\\
+S$ 6,500 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-the-sail-marina-bay-22947622)
+
+[\\
+\\
+**The Sail @ Marina Bay** \\
+\\
+6 Marina Boulevard\\
+\\
+S$ 14,000 /mo\\
+\\
+ 4Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-sail-marina-bay-24878611)
+
+[\\
+\\
+**The Sail @ Marina Bay** \\
+\\
+6 Marina Boulevard\\
+\\
+S$ 14,000 /mo\\
+\\
+ 4Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-sail-marina-bay-24878611)
+
+[\\
+\\
+**The Sail @ Marina Bay** \\
+\\
+2 Marina Boulevard\\
+\\
+S$ 1,800 /mo\\
+\\
+Room\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-the-sail-marina-bay-23778918)
+
+[\\
+\\
+**One Shenton** \\
+\\
+1 Shenton Way\\
+\\
+S$ 6,000 /mo\\
+\\
+ 2Bedrooms 1Bathroom\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-one-shenton-19445018)
+
+[\\
+\\
+**Marina Bay Suites** \\
+\\
+3 Central Boulevard\\
+\\
+S$ 9,500 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-marina-bay-suites-25502356)
+
+[\\
+\\
+**Marina Bay Suites** \\
+\\
+3 Central Boulevard\\
+\\
+S$ 9,500 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-marina-bay-suites-25502356)
+
+[\\
+\\
+**The Sail @ Marina Bay** \\
+\\
+2 Marina Boulevard\\
+\\
+S$ 8,150 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-the-sail-marina-bay-21267486)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-pearl-s-centre-25520919#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Pearl'S Centre?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at Pearl'S Centre?
+
+The rent of this unit at Pearl'S Centre is about S$ 5,000 /mo.
+
+##### What is the current rental PSF at Pearl'S Centre?
+
+The current rental PSF at Pearl'S Centre is about S$ 5.00 psf.
+
+##### What is the address of Pearl'S Centre?
+
+Pearl'S Centre is located at 100A Eu Tong Sen Street Boat Quay / Raffles Place / Marina City & South West (D01-08).
+
+##### What is the floor size of this unit at Pearl'S Centre?
+
+Floor size of this unit at Pearl'S Centre is 1000 sqft.
+
+Explore other options in and around Boat Quay / Raffles Place / Marina
+
+Based on the property criteria, you might be interested on the following
+
+Apartment For Rent
+
+[At Pearl'S Centre](https://www.propertyguru.com.sg/project-listings/pearl-s-centre-19977/rent/1)
+
+[In Boat Quay / Raffles Place / Marina](https://www.propertyguru.com.sg/apartment/boat-quay-raffles-place-marina/property-for-rent)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=APT&hdb_estate%5B0%5D=0)
+
+[Over 5K S$](https://www.propertyguru.com.sg/apartment-for-rent/in-boat-quay-raffles-place-marina-d01/priced-over-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/apartment-for-rent/in-boat-quay-raffles-place-marina-d01/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[NE3 Outram Park MRT Station](https://www.propertyguru.com.sg/apartment-for-rent/near-ne3-outram-park-mrt-station-8099)
+
+[TE17 Outram Park MRT Station](https://www.propertyguru.com.sg/apartment-for-rent/near-te17-outram-park-mrt-station-8198)
+
+[EW16 Outram Park MRT Station](https://www.propertyguru.com.sg/apartment-for-rent/near-ew16-outram-park-mrt-station-53)
+
+Nearest Schools
+
+[Inspiration Design School](https://www.propertyguru.com.sg/apartment-for-rent/near-inspiration-design-school-2747)
+
+[Outram Secondary School](https://www.propertyguru.com.sg/apartment-for-rent/near-outram-secondary-school-950)
+
+[K¹² International Academy Singapore](https://www.propertyguru.com.sg/apartment-for-rent/near-k-international-academy-singapore-8088)
+
+[\\
+\\
+Eliyas Mohamed Ebrahim\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R051425C / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/eliyas-mohamed-ebrahim-75628#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/eliyas-mohamed-ebrahim-75628)
+
+[Eliyas Mohamed Ebrahim](https://www.propertyguru.com.sg/agent/eliyas-mohamed-ebrahim-75628)
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25586065.md b/examples/memory_service/client/data/crawled_listings/25586065.md
new file mode 100644
index 00000000..94c8c9f6
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25586065.md
@@ -0,0 +1,636 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)[](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)[](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)[](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)[](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/26
+
+Show all media
+
+# Alexis
+
+356 Alexandra Road
+
+# S$ 5,000 /mo
+
+Starting From
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,076
+
+sqft
+
+* * *
+
+540 m (7 mins) from EW19 Queenstown MRT
+
+
+
+Ready to move in Condominium
+
+* * *
+
+
+
+Photos
+
+
+
+Floor Plan
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Condominium for rent |  Partially furnished |
+|  TOP in Dec 2014 |  2 years lease |
+|  Listed on 10 May 2025 |  Welcome all races, religions, genders, and sexual orientations. |
+
+See all details
+
+## About this property
+
+### Charming 3 Bedroom Condominium For Rent at Alexis
+
+Welcome to your dream home! This stunning 3 bedroom, 2-bathroom condominium, with a generous floor area of 1,076 sqft, is now available for rental at 356 Alexandra Road, Singapore. Perfectly situated, this residence offers both comfort and convenience, making it an ideal choice for families and professionals alike.
+
+Just a short walk away, you’ll find Queenstown MRT station (0.6 km), providing easy access to the rest of the city. Families will appreciate the proximity to educational institutions like Rainbow Centre (0.5 km) and Blue House International (0.6 km), ensuring your children have quality schooling options nearby. For your shopping needs, newEcon - Lin Da Mini Supermart (MeiLing Street) is just 1 km away, while Cold Storage at Anchorpoint is only 1.2 km from your doorstep, making grocery shopping a breeze.
+
+Indulge in retail therapy at the nearby Anchorpoint shopping mall (1.2 km) or explore Alexandra Central (1.5 km) for a variety of dining and entertainment options. Everyone Welcome here, as this home is designed for comfort and convenience, providing a perfect backdrop for your lifestyle.
+
+With its spacious layout and strategic location, this condominium seamlessly blends urban living with the comforts of home. Don’t miss out on this fantastic opportunity to make this vibrant community your own. Contact us today to schedule a viewing and secure your new home!
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)
+
+
+
+
+
+
+
+
+
+Queenstown MRT
+
+EW19
+
+
+
+7 mins
+
+540 m
+
+
+
+##### Common facilities
+
+
+
+Car park
+
+
+
+Swimming pool
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Alexis
+
+
+
+Alexis is a condominium located 356 Alexandra Road in District 03 (Queenstown, Tiong Bahru) of Singapore. The development of Alexis was completed in 2012. EC Prime Pte Ltd was the real estate company that developed Alexis. The condominium was designed for urban lifestyle and has 293 residential units to accommodate home seekers. Alexis is a short distance from local MRT stations, and residents have access to feeder buses and expressways for easy transportation. Amenities like food centres, banks, convenience stores and healthcare facilities are also in the neighbourhood of Alexis.Alexis was well designed by the developers to provide entertainment, fun, and leisure to residents. The condominium offers a one-of-a-kind 75-metre sky pool surrounded by a sky barbeque area, large sun deck and open sky spa pods (jacuzzi) that are good for relaxing in the evenings. Others facilities for recreation are a hydro jet pool, children's pool, and steam room. A gymnasium for fitness is also available to residents of Alexis. All the facilities in Alexis are on the rooftop facing the city skyline and the pool. Alexis is accessible through a single lobby well-guarded by a security officer to keep residents safe within the condominium. Car owners have a basement car parking facility for their vehicles in Alexis.Alexis condominium has access to several local transportation routes for residents to commute from their homes to workplaces and other destinations. The nearest MRT station is EW19 Queenstown MRT Station which is just 0.39 km from the condo. Other MRT stations short distances from Alexis are EW18 Redhill MRT Station and EW20 Commonwealth MRT Station. Several bus stops for many feeder bus services are also around the condominium. Alexis is about a 10-minute drive from shopping districts and business centres. Owners of private vehicles can access the nearby locations through Tanglin road and Jalan Bukit Merah.Residents of Alexis have many locations to choose from when seeking restaurants, food centres, supermarkets, banks, and others. Shopping centres that are suitable locations for residents to meet most of their retail needs.QueenswayAnchorpoint Food centreNTUC,IKEACold storage and wet markets are just a short walk away. Alexis is close to Hortpark.Educational institutes are also very close to Alexis. Some of the available choices areNew Town Primary SchoolQueenstown Primary SchoolGan Eng Seng Primary SchoolQueenstown Secondary School, A few numbers of international schools such asGlobal Indian International School Singapore (GIIS)Queenstown Campus,ISS International School,Crescent Girls' SchoolManasseh Meyer SchoolSri Manasseh Meyer International SchoolThese international school are merely a short drive from the condominium. Alexis residents have access to healthcare services in Alexandra Hospital which is not too far from the apartment.Alexis is a freehold housing apartment in Queenstown area of Singapore. The condo is a low-rise development completed in 2012. Alexis has 293 units which consist mainly 1 bedroom and 2 bedrooms apartments. Alexis also offers penthouses. Alexis condominium is made of one single long block bordered by private bungalows and Alexandra Road. The residential units in Alexis have modern designs with large windows. The built-up area in the condominium was also well optimized by the development company.Project Name: AlexisDistrict: 03Configuration: 293 residential unitsThe residential units in Alex have a different design for home seekers to choose from, and they are:One Bedroom (366 - 527 sq ft)One Bedroom + Study (474 - 764 sq ft)Two Bedrooms (527 - 1,033 sq ft)Two Bedrooms + Study (657 - 1,055 sq ft)Penthouse (764 - 1,518 sq ft)The cost of renting a residential unit in Alexis per month starts from S$2, 500 and increases with the specific configuration of the unit. On the other hand, the average selling price for a residential unit starts from about S$750, 0000 depending on the design of the unit. EC Prime Pte Ltd, the developer of Alexis, is known for establishing good projects all over Singapore. Alexis was developed with modern architecture which makes it attractive to potential home seekers of different backgrounds from all over Singapore.Alexis is located near other condominiums such asThe AnchorageCommonwealth TowersThe Metropolitan CondominiumQueensAlexandra Centre.
+
+[View project details](https://www.propertyguru.com.sg/project/alexis-1403)
+
+[2.5\\
+\\
+\\
+\\
+28 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/alexis-1403) [4/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/alexis-1403#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-25604127)
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586042)
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-20889948)
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 5,390 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-19893875)
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 5,390 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-19893875)
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 3,000 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-25610379)
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 3,500 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-24532614)
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 3,800 /mo\\
+\\
+ 2Bedrooms 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-25430349)
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 3,800 /mo\\
+\\
+ 2Bedrooms 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-25430349)
+
+[\\
+\\
+**Alexis** \\
+\\
+356 Alexandra Road\\
+\\
+S$ 3,500 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-alexis-24298708)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)
+
+See all listings
+
+[\\
+\\
+Justin Yap\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R071181D / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/justin-yap-17871980#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**The Asana** \\
+\\
+17 Queen's Road\\
+\\
+S$ 4,000 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-asana-25602230)
+
+[\\
+\\
+**Harbourlights** \\
+\\
+66 Telok Blangah Road\\
+\\
+S$ 4,000 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-harbourlights-25142289)
+
+[\\
+\\
+**663 Buffalo Road** \\
+\\
+663 Buffalo Road\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-663-buffalo-road-25610919)
+
+[\\
+\\
+**Kent Ridge Hill Residences** \\
+\\
+58 South Buona Vista Road\\
+\\
+S$ 4,500 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-kent-ridge-hill-residences-24388154)
+
+[\\
+\\
+**Kent Ridge Hill Residences** \\
+\\
+58 South Buona Vista Road\\
+\\
+S$ 4,500 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-kent-ridge-hill-residences-24388154)
+
+[\\
+\\
+**Highline Residences** \\
+\\
+9 Kim Tian Road\\
+\\
+S$ 4,900 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-highline-residences-21369035)
+
+[\\
+\\
+**Spottiswoode Residences** \\
+\\
+48 Spottiswoode Park Road\\
+\\
+S$ 4,100 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-residences-25612079)
+
+[\\
+\\
+**Viz at Holland** \\
+\\
+221 Queensway\\
+\\
+S$ 4,400 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-viz-at-holland-25529288)
+
+[\\
+\\
+**Viz at Holland** \\
+\\
+221 Queensway\\
+\\
+S$ 4,400 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-viz-at-holland-25529288)
+
+[\\
+\\
+**Nathan Residences** \\
+\\
+25 Nathan Road\\
+\\
+S$ 3,600 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-nathan-residences-24391384)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-alexis-25586065#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Alexis?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at Alexis?
+
+The rent of this unit at Alexis is about S$ 5,000 /mo.
+
+##### What is the current rental PSF at Alexis?
+
+The current rental PSF at Alexis is about S$ 4.65 psf.
+
+##### What is the address of Alexis?
+
+Alexis is located at 356 Alexandra Road Alexandra / Commonwealth City & South West (D01-08).
+
+##### What is the floor size of this unit at Alexis?
+
+Floor size of this unit at Alexis is 1076 sqft.
+
+Explore other options in and around Alexandra / Commonwealth
+
+Based on the property criteria, you might be interested on the following
+
+Condominium For Rent
+
+[At Alexis](https://www.propertyguru.com.sg/project-listings/alexis-1403/rent/1)
+
+[In Alexandra / Commonwealth](https://www.propertyguru.com.sg/condos/alexandra-commonwealth)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=CONDO&hdb_estate%5B0%5D=0)
+
+[Over 5K S$](https://www.propertyguru.com.sg/condo-for-rent/in-alexandra-commonwealth-d03/priced-over-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/condo-for-rent/in-alexandra-commonwealth-d03/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[EW19 Queenstown MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew19-queenstown-mrt-station-62)
+
+[EW18 Redhill MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew18-redhill-mrt-station-59)
+
+[EW20 Commonwealth MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew20-commonwealth-mrt-station-65)
+
+Nearest Schools
+
+[Queenstown Primary School](https://www.propertyguru.com.sg/condo-for-rent/near-queenstown-primary-school-467)
+
+[Queenstown Secondary School](https://www.propertyguru.com.sg/condo-for-rent/near-queenstown-secondary-school-977)
+
+[Bukit Merah Secondary School](https://www.propertyguru.com.sg/condo-for-rent/near-bukit-merah-secondary-school-779)
+
+[\\
+\\
+Justin Yap\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R071181D / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/justin-yap-17871980#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/justin-yap-17871980)
+
+[Justin Yap](https://www.propertyguru.com.sg/agent/justin-yap-17871980)
+
+Contact Agent
+
+BESbswy
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25591120.md b/examples/memory_service/client/data/crawled_listings/25591120.md
new file mode 100644
index 00000000..e7a80451
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25591120.md
@@ -0,0 +1,650 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#)[](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#)[](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#)[](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#)[](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/18
+
+Show all media
+
+# Escada View
+
+53 Lengkong Empat
+
+# S$ 4,400 /mo
+
+Negotiable
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+3
+
+Baths
+
+
+
+1,227
+
+sqft
+
+* * *
+
+980 m (12 mins) from EW6 Kembangan MRT
+
+
+
+Ready to move in Condominium
+
+* * *
+
+
+
+Photos
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Condominium for rent |  Partially furnished |
+|  TOP in Dec 1997 |  Listed on 10 May 2025 |
+|  Welcome all races, religions, genders, and sexual orientations. |  Listing ID - 25591120 |
+
+See all details
+
+## About this property
+
+### Spacious Dual Key 3 Bedroom Unit at Escada View for Rent
+
+\- \*\*Property Type:\*\* Spacious 3-bedroom, 3-bathroom condominium
+
+\- \*\*Size:\*\* 1,227 sqft
+
+\- \*\*Location:\*\* 53 Lengkong Empat, Singapore
+
+Video available after full profile given thanks
+
+\- \*\*MRT Station:\*\*
+
+\- Nearest MRT: \*\*Kembangan MRT Station\*\* (approximately 1.1 km)
+
+\- Convenient access to the East-West Line for quick travel around Singapore
+
+\- \*\*Schools:\*\*
+
+\- \*\*Telok Kurau Primary School\*\* (approx. 1.1 km)
+
+\- \*\*St. Stephen's School\*\* (approx. 1.2 km)
+
+\- \*\*Eunos Primary School\*\* (approx. 1.4 km)
+
+\- Ideal for families with school-going children
+
+\- \*\*Supermarkets:\*\*
+
+\- \*\*Giant Express\*\* (approx. 600 m)
+
+\- \*\*NTUC FairPrice\*\* (approx. 1.3 km)
+
+\- Easy access to daily necessities and groceries
+
+\- \*\*Shopping Malls:\*\*
+
+\- \*\*Bedok Mall\*\* (approx. 2.3 km) - a variety of retail, dining, and entertainment options
+
+\- \*\*Kembangan Court\*\* (approx. 1.5 km) - local shops and eateries
+
+\- \*\*Amenities:\*\*
+
+\- Near parks and recreational areas for outdoor activities
+
+\- Family-friendly neighborhood with a vibrant community
+
+\- \*\*Rental Price:\*\* Contact for details.
+
+Ideal for families and professionals seeking a comfortable living space with convenient access to essential amenities.
+
+Call/Text Joseph Lee at 8\*\*\*\*\*\* to view today
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+
+
+
+
+
+
+
+
+Kembangan MRT
+
+EW6
+
+
+
+12 mins
+
+980 m
+
+Kaki Bukit MRT
+
+DT28
+
+
+
+22 mins
+
+1.8 km
+
+Bedok North MRT
+
+DT29
+
+
+
+27 mins
+
+2.2 km
+
+
+
+##### Amenities
+
+
+
+Covered car parking
+
+
+
+Fridge
+
+
+
+Marble floor
+
+
+
+Water heater
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Barbeque pits
+
+
+
+Covered car park
+
+
+
+Playground
+
+See all 7 facilities
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Escada View
+
+Escada View is a freehold condominium development located at 53 Lengkong Empat, Singapore 417657 in District 14. It was completed in the year 1997 and it is made up of 12 floors and 80 units in total. This condominium development offers residents a comfortable living experience, fit for the whole family as it comes with facilities such as a swimming pool, gymnasium and even a playground for children. Besides that, there are several schools situated not far from its vicinity. It is also convenient to travel using public transport from Escada View as there are MRT stations that are located within walking distance. In addition, an array of amenities such as supermarkets and eating establishments are also readily available and can be reached with just a short drive. Escada View is developed by Escada Development Pte Ltd. It is a real estate development company that was incorporated in the year 1991. Escada Development Pte Ltd is a Singapore based company. One of the unique selling points of Escada View is the fact that it comes complete with full condo facilities such as a covered car park, 24 hour security, a swimming pool and even a playground for the little ones. It also provides its residents with a gymnasium and a golf course where they will be able to get some good exercise. Besides that, a barbeque area is also provided which makes it easier for residents to entertain guests. Those who live here will be able to experience luxury by relaxing in the steam bath booths provided. These make it a secure and suitable place for the entire family. Besides that, there are several educational institutions nearby including Eunos Primary School, Bedok Town Secondary School and Manjusri Secondary School. The fact that it is situated close to the Kaki Bukit MRT Station, Bedok MRT Station and the Kembangan MRT Station is another plus point. Escada View is easily accessible via public transportation, making it a convenient choice for those who either do not own their own vehicle or simply prefer to travel via MRT or by bus. The Kaki Bukit MRT Station is only a 13 minute walk away while the Bedok North MRT station is only a 14 minute walk away from this condominium. Similarly, the Kembangan MRT station also requires a 14 minute walk. Besides that, there are also a number of bus stops nearby where residents will be able to access feeder bus services. As for residents who have their own vehicles, it only takes 15 to 20 minutes to drive from this condominium to the business hub or the Orchard Road shopping district using the Geylang Road and Pan Island Expressway. These make living in Escada View all the more ideal. Kampong Eating HouseKhan Saab RestaurantOld Chang Kee Eunos Primary SchoolBedok Town Secondary SchoolManjusri Secondary School Project Name: Escada ViewType: CondominiumDistrict: 14Site Area: Approx. 1,572 sqftConfiguration: 80 Residential Units Unit Types:2 bedroom condo units (753 sqft to 947 sqft)3 bedroom condo units (1,066 sqft to 1,572 sqft) The following developments are in the same neighbourhood as Escada View:Parc EstaEuhabitatSims Urban OasisWaterbank at DakotaUrban TreasuresArena Residences
+
+[View project details](https://www.propertyguru.com.sg/project/escada-view-882)
+
+[2.8\\
+\\
+\\
+\\
+4 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/escada-view-882) [3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/escada-view-882#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**Escada View** \\
+\\
+53 Lengkong Empat\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25611657)
+
+[\\
+\\
+**Escada View** \\
+\\
+53 Lengkong Empat\\
+\\
+S$ 4,400 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25590347)
+
+[\\
+\\
+**Escada View** \\
+\\
+53 Lengkong Empat\\
+\\
+S$ 4,400 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25600019)
+
+[\\
+\\
+**Escada View** \\
+\\
+53 Lengkong Empat\\
+\\
+S$ 1,199 /mo\\
+\\
+Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25541279)
+
+[\\
+\\
+**Escada View** \\
+\\
+53 Lengkong Empat\\
+\\
+S$ 1,199 /mo\\
+\\
+Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25541279)
+
+[\\
+\\
+**Escada View** \\
+\\
+53 Lengkong Empat\\
+\\
+S$ 3,200 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25474107)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#)
+
+[\\
+\\
+Joseph Lee\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R068087J / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/joseph-lee-12348783#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**The Summit**\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-summit-24087118)
+
+[\\
+\\
+**Sunny Palms** \\
+\\
+65 Lorong G Telok Kurau\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-sunny-palms-21826587)
+
+[\\
+\\
+**East Shine** \\
+\\
+57 Lorong Melayu\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-east-shine-25560591)
+
+[\\
+\\
+**Eunos Park** \\
+\\
+5 Kampong Eunos\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-eunos-park-21317211)
+
+[\\
+\\
+**Eunos Park** \\
+\\
+5 Kampong Eunos\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-eunos-park-21317211)
+
+[\\
+\\
+**Sea Pavilion Residences** \\
+\\
+494 Upper East Coast Road\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-sea-pavilion-residences-25525146)
+
+[\\
+\\
+**Glamour Ville** \\
+\\
+1 Lorong N Telok Kurau\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-glamour-ville-25596377)
+
+[\\
+\\
+**East Elegance** \\
+\\
+190 Joo Chiat Terrace\\
+\\
+S$ 4,388 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-east-elegance-25587037)
+
+[\\
+\\
+**East Elegance** \\
+\\
+190 Joo Chiat Terrace\\
+\\
+S$ 4,388 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-east-elegance-25587037)
+
+[\\
+\\
+**The Glades** \\
+\\
+4 Bedok Rise\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-glades-24116203)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-escada-view-25591120#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Escada View?
+
+There are 3 bedrooms with 3 bathrooms in this unit.
+
+##### What is the rental price of this unit at Escada View?
+
+The rent of this unit at Escada View is about S$ 4,400 /mo.
+
+##### What is the current rental PSF at Escada View?
+
+The current rental PSF at Escada View is about S$ 3.59 psf.
+
+##### What is the address of Escada View?
+
+Escada View is located at 53 Lengkong Empat Eunos / Geylang / Paya Lebar Balestier / Geylang (D12-14).
+
+##### What is the floor size of this unit at Escada View?
+
+Floor size of this unit at Escada View is 1227 sqft.
+
+Explore other options in and around Eunos / Geylang / Paya Lebar
+
+Based on the property criteria, you might be interested on the following
+
+Condominium For Rent
+
+[At Escada View](https://www.propertyguru.com.sg/project-listings/escada-view-882/rent/1)
+
+[In Eunos / Geylang / Paya Lebar](https://www.propertyguru.com.sg/condos/eunos-geylang-paya-lebar)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=CONDO&hdb_estate%5B0%5D=0)
+
+[Under 5K S$](https://www.propertyguru.com.sg/condo-for-rent/in-eunos-geylang-paya-lebar-d14/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/condo-for-rent/in-eunos-geylang-paya-lebar-d14/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[DT28 Kaki Bukit MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-dt28-kaki-bukit-mrt-station-8170)
+
+[DT29 Bedok North MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-dt29-bedok-north-mrt-station-8171)
+
+[EW6 Kembangan MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew6-kembangan-mrt-station-23)
+
+Nearest Schools
+
+[Telok Kurau Primary](https://www.propertyguru.com.sg/condo-for-rent/near-telok-kurau-primary-521)
+
+[East Coast Primary School](https://www.propertyguru.com.sg/condo-for-rent/near-east-coast-primary-school-284)
+
+[Bedok North Secondary School](https://www.propertyguru.com.sg/condo-for-rent/near-bedok-north-secondary-school-749)
+
+[\\
+\\
+Joseph Lee\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R068087J / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/joseph-lee-12348783#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/joseph-lee-12348783)
+
+[Joseph Lee](https://www.propertyguru.com.sg/agent/joseph-lee-12348783)
+
+Contact Agent
+
+BESbswy
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25614288.md b/examples/memory_service/client/data/crawled_listings/25614288.md
new file mode 100644
index 00000000..d51fbb09
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25614288.md
@@ -0,0 +1,556 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/13
+
+Show all media
+
+# 55 Pipit Road
+
+55 Pipit Road
+
+# S$ 4,000 /mo
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,000
+
+sqft
+
+* * *
+
+520 m (6 mins) from CC10/DT26 MacPherson MRT
+
+
+
+Ready to move in HDB Flat
+
+* * *
+
+
+
+Photos
+
+
+
+Video
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  4A HDB for rent |  Fully furnished |
+|  TOP in 1996 |  2 years lease |
+|  Listed on 11 May 2025 |  Listing ID - 25614288 |
+
+See all details
+
+## About this property
+
+### Walk to macpherson mrt
+
+Walk to MacPherson MRT
+
+The unit has 1 Master Bedroom with attached Bathroom, 2 Common Bedrooms, Kitchen, Yard Area, Living & Dining Hall.
+
+Very Convenient Location as MacPherson MRT has 2 MRT Lines.
+
+This flat is a 4 Rooms HDB for rent with 2 Baths in 55 Pipit Road, a stunning HDB Resale Flat in Singapore.
+
+Looking for a HDB for Rent in Singapore? Pipit Road is the perfect property in Geylang for you! Located in Geylang HDB Estate, this development is part of District 13. It has a total of 16 floors and is one of 8 HDB blocks on Pipit Road.
+
+Nearby amenities
+
+⭑ Nearby MRTs
+
+• MacPherson (371 m) - 6 mins walk
+
+• Macpherson (376 m) - 6 mins walk
+
+• 2 MRTs within 1 km
+
+⭑ Nearby Bus stops
+
+• Macpherson Institute of Technical Education Campus 1 (105 m) - 2 mins walk
+
+• Blk 90 (157 m) - 3 mins walk
+
+• After PIE (253 m) - 4 mins walk
+
+• 7 more walking distance bus stops within 500 m
+
+⭑ Nearby Grocery Stores
+
+• FairPrice Aljunied Ave 2 (281 m) - 4 mins walk
+
+• FairPrice - Geylang East (284 m) - 4 mins walk
+
+• Giant Super - Geylang East 118 (431 m) - 6 mins walk
+
+• 2 more walking distance grocery stores within 500 m
+
+⭑ Nearby Schools
+
+• eiMaths@Aljunied (429 m) - 6 mins walk
+
+• Taoist College (476 m) - 7 mins walk
+
+• Strongman International Sports Training Centre (579 m) - 7 mins drive
+
+• 6 more schools within 1 km
+
+⭑ Nearby Parks
+
+• Geylang East Park (250 m) - 4 mins walk
+
+• GEHA Garden (404 m) - 6 mins walk
+
+• Jenesis (408 m) - 6 mins walk
+
+• 6 more parks within 1 km
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+
+
+
+
+
+
+
+
+MacPherson MRT
+
+CC10
+
+DT26
+
+
+
+6 mins
+
+520 m
+
+Mattar MRT
+
+DT25
+
+
+
+11 mins
+
+940 m
+
+Paya Lebar MRT
+
+EW8
+
+CC9
+
+
+
+14 mins
+
+1.2 km
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Bed
+
+
+
+Fridge
+
+
+
+Washing machine
+
+See all 5 amenities
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#)
+
+[Rent](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#)
+
+Filters
+
+4 Room Flat [](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## 55 Pipit Road
+
+
+
+55 Pipit Road
+
+[View project details](https://www.propertyguru.com.sg/project/55-pipit-road-9288)
+
+[4/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/55-pipit-road-9288#greenscore)
+
+[\\
+\\
+Cindy Fu 付小姐\\
+\\
+5.0(1 Review)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R024156G / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/cindy-fu-%E4%BB%98%E5%B0%8F%E5%A7%90-26948#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**38 Circuit Road** \\
+\\
+38 Circuit Road\\
+\\
+S$ 1,700 /mo\\
+\\
+Studio\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-38-circuit-road-25100149)
+
+[\\
+\\
+**17 Joo Seng Road** \\
+\\
+17 Joo Seng Road\\
+\\
+S$ 490 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-17-joo-seng-road-22972515)
+
+[\\
+\\
+**115 Potong Pasir Avenue 1** \\
+\\
+115 Potong Pasir Avenue 1\\
+\\
+S$ 3,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-115-potong-pasir-avenue-1-25302622)
+
+[\\
+\\
+**206C Woodleigh Link** \\
+\\
+206C Woodleigh Link\\
+\\
+S$ 1,300 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-206c-woodleigh-link-24961991)
+
+[\\
+\\
+**206C Woodleigh Link** \\
+\\
+206C Woodleigh Link\\
+\\
+S$ 1,300 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-206c-woodleigh-link-24961991)
+
+[\\
+\\
+**38 Circuit Road** \\
+\\
+38 Circuit Road\\
+\\
+S$ 1,200 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-38-circuit-road-25112006)
+
+[\\
+\\
+**136 Potong Pasir Avenue 3** \\
+\\
+136 Potong Pasir Avenue 3\\
+\\
+S$ 1,200 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-136-potong-pasir-avenue-3-25558833)
+
+[\\
+\\
+**119A Alkaff Crescent** \\
+\\
+119A Alkaff Crescent\\
+\\
+S$ 1,100 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-119a-alkaff-crescent-25513192)
+
+[\\
+\\
+**119A Alkaff Crescent** \\
+\\
+119A Alkaff Crescent\\
+\\
+S$ 1,100 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-119a-alkaff-crescent-25513192)
+
+[\\
+\\
+**71 Circuit Road** \\
+\\
+71 Circuit Road\\
+\\
+S$ 2,380 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-71-circuit-road-18947659)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#) [\\
+Next](https://www.propertyguru.com.sg/listing/hdb-for-rent-55-pipit-road-25614288#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in 55 Pipit Road?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at 55 Pipit Road?
+
+The rent of this unit at 55 Pipit Road is about S$ 4,000 /mo.
+
+##### What is the current rental PSF at 55 Pipit Road?
+
+The current rental PSF at 55 Pipit Road is about S$ 4.00 psf.
+
+##### What is the address of 55 Pipit Road?
+
+55 Pipit Road is located at 55 Pipit Road Macpherson / Potong Pasir Balestier / Geylang (D12-14).
+
+##### What is the floor size of this unit at 55 Pipit Road?
+
+Floor size of this unit at 55 Pipit Road is 1000 sqft.
+
+Explore other options in and around Macpherson / Potong Pasir
+
+Based on the property criteria, you might be interested on the following
+
+HDB Flat For Rent
+
+[At 55 Pipit Road](https://www.propertyguru.com.sg/property-for-rent/at-55-pipit-road-9288)
+
+[In Pipit Road](https://www.propertyguru.com.sg/singapore-property-listing/hdb/geylang/pipit-road_108382)
+
+[In Geylang](https://www.propertyguru.com.sg/hdb-for-rent/in-geylang)
+
+[Over 4K S$](https://www.propertyguru.com.sg/hdb-for-rent/in-geylang/priced-over-4k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/hdb-for-rent/in-geylang/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[CC10 MacPherson MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-cc10-macpherson-mrt-station-1628)
+
+[DT26 MacPherson MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-dt26-macpherson-mrt-station-8168)
+
+[DT25 Mattar MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-dt25-mattar-mrt-station-8167)
+
+Nearest Schools
+
+[Eton House International Primary School and Preschool](https://www.propertyguru.com.sg/hdb-for-rent/near-eton-house-international-primary-school-and-preschool-8080)
+
+[Macpherson Secondary School](https://www.propertyguru.com.sg/hdb-for-rent/near-macpherson-secondary-school-917)
+
+[Macpherson Primary School](https://www.propertyguru.com.sg/hdb-for-rent/near-macpherson-primary-school-401)
+
+[\\
+\\
+Cindy Fu 付小姐\\
+\\
+5.0(1 Review)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R024156G / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/cindy-fu-%E4%BB%98%E5%B0%8F%E5%A7%90-26948#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/cindy-fu-%E4%BB%98%E5%B0%8F%E5%A7%90-26948)
+
+[Cindy Fu 付小姐](https://www.propertyguru.com.sg/agent/cindy-fu-%E4%BB%98%E5%B0%8F%E5%A7%90-26948)
+
+5.0
+
+Contact Agent
+
+BESbswy
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25614475.md b/examples/memory_service/client/data/crawled_listings/25614475.md
new file mode 100644
index 00000000..9302ecba
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25614475.md
@@ -0,0 +1,584 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)[](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)[](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)[](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)[](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/14
+
+Show all media
+
+# The Carpmaelina
+
+48 Carpmael Road
+
+# S$ 5,000 /mo
+
+View to Offer
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,195
+
+sqft
+
+* * *
+
+1 km (12 mins) from EW8/CC9 Paya Lebar MRT
+
+
+
+Available from 1 Jun 2025
+
+* * *
+
+
+
+Photos
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Condominium for rent |  Partially furnished |
+|  TOP in Dec 2005 |  2 years lease |
+|  Listed on 11 May 2025 |  Welcome all races, religions, genders, and sexual orientations. |
+
+See all details
+
+## About this property
+
+### Available on 1st June 2025
+
+The Carpmaelina
+
+Address: Carpmael Road
+
+Model: 3 Bedrooms + 2 Baths + 1 WC
+
+Size: 1195sqft
+
+Availability: 1st June 2025
+
+Enclosed kitchen
+
+Good squarish layout
+
+Spacious master bedroom
+
+Within a landed enclave - quiet and serene
+
+Close to amenities
+
+Minutes walk to Kinex Shopping Mall, PLQ mall, SingPost, Paya Lebar Square
+
+Minutes to Paya Lebar MRT
+
+Bus Services: 67, 2, 7, 13, 21, 24, 26, 28, 30, 51, 154, 76, 155
+
+For more enquiries or viewing:
+
+Haseenah @
+9\*\*\*\*\*
+
+Ayub @
+9\*\*\*\*\*
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)
+
+
+
+
+
+
+
+
+
+Paya Lebar MRT
+
+EW8
+
+CC9
+
+
+
+12 mins
+
+1 km
+
+Eunos MRT
+
+EW7
+
+
+
+17 mins
+
+1.4 km
+
+
+
+##### Amenities
+
+
+
+Air conditioner
+
+
+
+Balcony
+
+
+
+Basic lights
+
+
+
+Bed
+
+See all 14 amenities
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Barbeque pits
+
+
+
+Covered car park
+
+
+
+Jogging track
+
+See all 5 facilities
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## The Carpmaelina
+
+
+
+Developed by one of the iconic real estate developer in Singapore, The Carpmaelina is a freehold condominium development. It is located Carpmael Road, East Coast in District 15. It is a Peaceful and quiet, inhabitants can have a resort like feelings, away from the crowd It is a 5 torey building with 52 units only. It was completed in 2005. This Apartment is located near Paya Lebar MRT station and it is within the very close proximity of Geylang Serai Malay Village and Joo Chiat Complex. Hoi Hup Realty Pte Ltd is a well-known property developer, founded in Singapore in 1983. This real Estate Developer has successfully completed a diversified portfolio of property developments encompassing private condominiums, landed housing, cluster-strata housing, executive condominiums and mixed-use commercial developments. Till date Hoi Hup has developed and delivered more than 7,300 quality homes. With dedication to incomparable workmanship, commitment in the heightening the value and apparition of immaculate design Hoi Hup has set new standards of quality, value and innovation as they are growing into a leading real estate developer of Singapore and the rest of the world. The company was announced as the BCI Asia Top Ten Developers in 2018. A great number of reasons are there to make The Carpmaelina the ultimate residence. It is well connected with the expressways and highways. Supermarkets and shopping malls are in short and convenient distance. Countless number of amenities are easily available. Renowned schools are within walking distance. It is located close to MRT stations. The place is Peaceful and quiet, away from the crowd with beautiful greenery. This Apartment is well connected with MRTs, Expressways and Highways. Primarily, this Apartment is accessible through Paya Lebar MRT station. Other nearby MRTs are Eunos (EW7), and Dakota (CC8). Driving to the business hub from The Carpmaelina via Geylang Road takes just above 15 minutes. It is accessible from Changi Airport via East Coast Parkway, from Raffles Place via Nicoll Highway and from Orchard Road via Scotts Road. Quentin's Eurasian RestaurantQian Xi (Paya Lebar) RestaurantZiweitang Folk Soup Pot RestaurantHjh Maimunah Restaurant & Catering Pte LtdGuan Hoe Soon Restaurant Parkway Parade Shopping CentreJoo Chiat ComplexOne KMSheng Siong Hypermarkettanjong Katong Complex Tanjong Katong SecondaryHaig Girls SchoolTanjong Katong Girls' SchoolKong HwaChung Cheng High School (main) Parkway East HospitalTan Tock Seng HospitalChangi General HospitalSingapore General HospitalSGH Block 7 The Carpmaelina is a 5 storey freehold Apartment built upon 46,494 sqft of land area, comprises 52 units. The units are built with superb functional and spacious lay outs, the surroundings are very clean and well maintained. The layout of the units are squarish and with a balcony that looks out to greenery. Most of the units are 3 Bed 3 Bath unit and a few are 2 Bed 2 Bath Unit. Project Name :The CarpmaelinaProject type :CondominiumDeveloper :Hoi Hup GroupTenure :FreeholdPrice :S$ 1,500,000 - S$ 1,500,000PSF :S$ 1,234 - S$ 1,234Completion Year :2005No of Floors :5Total Units :52 Some of the renowned project by same developer are:Kovan RegencySophia HillsSea EstaDe RoyaleSuites @ Cairnhill Some of the similar projects near The Carpmaelina are:11 Amber Road123 Langsat Road16 @ Amber
+
+[View project details](https://www.propertyguru.com.sg/project/the-carpmaelina-779)
+
+[4.0\\
+\\
+\\
+\\
+9 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/the-carpmaelina-779) [3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/the-carpmaelina-779#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**The Carpmaelina** \\
+\\
+48 Carpmael Road\\
+\\
+S$ 1,800 /mo\\
+\\
+Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25486625)
+
+[\\
+\\
+**The Carpmaelina** \\
+\\
+48 Carpmael Road\\
+\\
+S$ 1,400 /mo\\
+\\
+Room\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25481318)
+
+[\\
+\\
+Muhammed Ayub\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R015749C / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/muhammed-ayub-19441#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**38 Amber** \\
+\\
+38 Amber Rd\\
+\\
+S$ 4,800 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-38-amber-22154306)
+
+[\\
+\\
+**Mandarin Gardens** \\
+\\
+5 Siglap Road\\
+\\
+S$ 6,000 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-mandarin-gardens-25472657)
+
+[\\
+\\
+**Amber Point** \\
+\\
+1 Amber Road\\
+\\
+S$ 6,600 /mo\\
+\\
+ 3Bedrooms 4Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-amber-point-25555905)
+
+[\\
+\\
+**Vertis** \\
+\\
+20 Amber Gardens\\
+\\
+S$ 4,900 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-vertis-20721150)
+
+[\\
+\\
+**Vertis** \\
+\\
+20 Amber Gardens\\
+\\
+S$ 4,900 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-vertis-20721150)
+
+[\\
+\\
+**Seaside Residences** \\
+\\
+10 Siglap Link\\
+\\
+S$ 5,500 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-seaside-residences-23386349)
+
+[\\
+\\
+**Mandarin Gardens** \\
+\\
+7 Siglap Road\\
+\\
+S$ 7,400 /mo\\
+\\
+ 3Bedrooms 3Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-mandarin-gardens-24361855)
+
+[\\
+\\
+**Seaside Residences** \\
+\\
+10 Siglap Link\\
+\\
+S$ 4,000 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-seaside-residences-25038520)
+
+[\\
+\\
+**Seaside Residences** \\
+\\
+10 Siglap Link\\
+\\
+S$ 4,000 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-seaside-residences-25038520)
+
+[\\
+\\
+**Gold Palm Mansions** \\
+\\
+139 Lorong K Telok Kurau\\
+\\
+S$ 3,900 /mo\\
+\\
+ 2Bedrooms 3Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-gold-palm-mansions-21346464)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-the-carpmaelina-25614475#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in The Carpmaelina?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at The Carpmaelina?
+
+The rent of this unit at The Carpmaelina is about S$ 5,000 /mo.
+
+##### What is the current rental PSF at The Carpmaelina?
+
+The current rental PSF at The Carpmaelina is about S$ 4.18 psf.
+
+##### What is the address of The Carpmaelina?
+
+The Carpmaelina is located at 48 Carpmael Road East Coast / Marine Parade East Coast (D15-16).
+
+##### What is the floor size of this unit at The Carpmaelina?
+
+Floor size of this unit at The Carpmaelina is 1195 sqft.
+
+Explore other options in and around East Coast / Marine Parade
+
+Based on the property criteria, you might be interested on the following
+
+Condominium For Rent
+
+[At The Carpmaelina](https://www.propertyguru.com.sg/project-listings/the-carpmaelina-779/rent/1)
+
+[In East Coast / Marine Parade](https://www.propertyguru.com.sg/condos/east-coast-marine-parade)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=CONDO&hdb_estate%5B0%5D=0)
+
+[Over 5K S$](https://www.propertyguru.com.sg/condo-for-rent/in-east-coast-marine-parade-d15/priced-over-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/condo-for-rent/in-east-coast-marine-parade-d15/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[EW8 Paya Lebar MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew8-paya-lebar-mrt-station-29)
+
+[CC9 Paya Lebar MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-cc9-paya-lebar-mrt-station-8104)
+
+[EW7 Eunos MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew7-eunos-mrt-station-26)
+
+Nearest Schools
+
+[Tanjong Katong Secondary School](https://www.propertyguru.com.sg/condo-for-rent/near-tanjong-katong-secondary-school-1028)
+
+[Haig Girls' School](https://www.propertyguru.com.sg/condo-for-rent/near-haig-girls-school-350)
+
+[Tanjong Katong Girls' School](https://www.propertyguru.com.sg/condo-for-rent/near-tanjong-katong-girls-school-1025)
+
+[\\
+\\
+Muhammed Ayub\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R015749C / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/muhammed-ayub-19441#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/muhammed-ayub-19441)
+
+[Muhammed Ayub](https://www.propertyguru.com.sg/agent/muhammed-ayub-19441)
+
+Contact Agent
+
+BESbswy
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25614761.md b/examples/memory_service/client/data/crawled_listings/25614761.md
new file mode 100644
index 00000000..140bcdb0
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25614761.md
@@ -0,0 +1,573 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/16
+
+Show all media
+
+# 181 Stirling Road
+
+181 Stirling Road
+
+# S$ 4,300 /mo
+
+View to Offer
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,023
+
+sqft
+
+* * *
+
+280 m (3 mins) from EW19 Queenstown MRT
+
+
+
+Ready to move in HDB Flat
+
+* * *
+
+
+
+Photos
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  4A HDB for rent |  Fully furnished |
+|  TOP in 1998 |  Listed on 10 May 2025 |
+|  Welcome all races, religions, genders, and sexual orientations. |  Listing ID - 25614761 |
+
+See all details
+
+## About this property
+
+### Whole Unit for Rent 4 Room HDB at Blk 181 Stirling Road
+
+Rental Price: S$4,300/month (Negotiable)
+
+Availability: Immediate
+
+Lease Term: 2 years preferred
+
+Property Type: 4A HDB Flat
+
+Size: Approximately 1,023 sqft
+
+Furnishing: Fully Furnished
+
+Bedrooms: 3 (All Air-Conditioned)
+
+Bathrooms: 2
+
+TOP Year: 1998
+
+Tenure: 99-year Leasehold
+
+Prime Location
+
+• Just a 3-minute walk (280m) to Queenstown MRT (EW19)
+
+• Excellent connectivity to major expressways and public transport
+
+Features & Inclusions
+
+• Spacious and well-maintained unit
+
+• Fully furnished with:
+
+• Living and dining room furniture
+
+• Beds in all bedrooms
+
+• Air-conditioning in all bedrooms
+
+• Television
+
+• Washing machine
+
+• Refrigerator
+
+• Cooker hob/hood
+
+• Bright and breezy with ample natural light
+
+Nearby Amenities
+
+• Supermarkets:
+
+• NTUC FairPrice
+
+• Sheng Siong
+
+• Shopping & Dining:
+
+• IKEA Alexandra
+
+• Anchorpoint Shopping Centre
+
+• Queensway Shopping Centre
+
+• Mei Ling Market & Food Centre
+
+• Education:
+
+• Queenstown Primary School
+
+• Queensway Secondary School
+
+• Queenstown Secondary School
+
+• Parks & Recreation:
+
+• Commonwealth Park
+
+For more details or to arrange a viewing, please contact:
+
+Shafi
+
+Phone:
+9\*\*\*\*\*
+
+#hdbrental #queenstownmrt #wholehouserental
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+
+
+
+
+
+
+
+
+Queenstown MRT
+
+EW19
+
+
+
+3 mins
+
+280 m
+
+
+
+##### Amenities
+
+
+
+Bed
+
+
+
+Cabinets
+
+
+
+Coffee table
+
+
+
+Dining table
+
+See all 10 amenities
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#)
+
+[Rent](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#)
+
+Filters
+
+4 Room Flat [](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## 181 Stirling Road
+
+
+
+181 Stirling Road
+
+[View project details](https://www.propertyguru.com.sg/project/181-stirling-road-10476)
+
+[5/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/181-stirling-road-10476#greenscore)
+
+## More listings in this HDB
+
+[\\
+\\
+**181 Stirling Road** \\
+\\
+181 Stirling Road\\
+\\
+S$ 1,800 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-23516056)
+
+[\\
+\\
+Shafi .\\
+\\
+5.0(72 Reviews)\\
+\\
+ORANGETEE & TIE PTE. LTD.\\
+\\
+CEA: R016538J / L3009250K\\
+\\
+](https://www.propertyguru.com.sg/agent/shafi--47204#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**83 Redhill Lane** \\
+\\
+83 Redhill Lane\\
+\\
+S$ 1,100 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-83-redhill-lane-22037058)
+
+[\\
+\\
+**44 Moh Guan Terrace** \\
+\\
+44 Moh Guan Terrace\\
+\\
+S$ 2,199 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-44-moh-guan-terrace-25108235)
+
+[\\
+\\
+**127D Kim Tian Road** \\
+\\
+127D Kim Tian Road\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-127d-kim-tian-road-25484708)
+
+[\\
+\\
+**20 Queen's Close** \\
+\\
+20 Queen's Close\\
+\\
+S$ 3,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-20-queen-s-close-25019519)
+
+[\\
+\\
+**20 Queen's Close** \\
+\\
+20 Queen's Close\\
+\\
+S$ 3,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-20-queen-s-close-25019519)
+
+[\\
+\\
+**97 Commonwealth Crescent** \\
+\\
+97 Commonwealth Crescent\\
+\\
+S$ 2,900 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-97-commonwealth-crescent-25576478)
+
+[\\
+\\
+**87 Dawson Road** \\
+\\
+87 Dawson Road\\
+\\
+S$ 3,999 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-87-dawson-road-24435566)
+
+[\\
+\\
+**65 Tiong Poh Road** \\
+\\
+65 Tiong Poh Road\\
+\\
+S$ 3,592 /mo\\
+\\
+ 2Bedrooms 1Bathroom\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-65-tiong-poh-road-25521575)
+
+[\\
+\\
+**65 Tiong Poh Road** \\
+\\
+65 Tiong Poh Road\\
+\\
+S$ 3,592 /mo\\
+\\
+ 2Bedrooms 1Bathroom\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-65-tiong-poh-road-25521575)
+
+[\\
+\\
+**7A Commonwealth Avenue** \\
+\\
+7A Commonwealth Avenue\\
+\\
+S$ 4,300 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-7a-commonwealth-avenue-24475234)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#) [\\
+Next](https://www.propertyguru.com.sg/listing/hdb-for-rent-181-stirling-road-25614761#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in 181 Stirling Road?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at 181 Stirling Road?
+
+The rent of this unit at 181 Stirling Road is about S$ 4,300 /mo.
+
+##### What is the current rental PSF at 181 Stirling Road?
+
+The current rental PSF at 181 Stirling Road is about S$ 4.20 psf.
+
+##### What is the address of 181 Stirling Road?
+
+181 Stirling Road is located at 181 Stirling Road Alexandra / Commonwealth City & South West (D01-08).
+
+##### What is the floor size of this unit at 181 Stirling Road?
+
+Floor size of this unit at 181 Stirling Road is 1023 sqft.
+
+Explore other options in and around Alexandra / Commonwealth
+
+Based on the property criteria, you might be interested on the following
+
+HDB Flat For Rent
+
+[At 181 Stirling Road](https://www.propertyguru.com.sg/property-for-rent/at-181-stirling-road-10476)
+
+[In Stirling Road](https://www.propertyguru.com.sg/singapore-property-listing/hdb/queenstown/stirling-road_109570)
+
+[In Queenstown](https://www.propertyguru.com.sg/hdb-for-rent/in-queenstown)
+
+[Under 5K S$](https://www.propertyguru.com.sg/hdb-for-rent/in-queenstown/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/hdb-for-rent/in-queenstown/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[EW19 Queenstown MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew19-queenstown-mrt-station-62)
+
+[EW20 Commonwealth MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew20-commonwealth-mrt-station-65)
+
+[EW18 Redhill MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew18-redhill-mrt-station-59)
+
+Nearest Schools
+
+[Queenstown Primary School](https://www.propertyguru.com.sg/hdb-for-rent/near-queenstown-primary-school-467)
+
+[Queensway Secondary School](https://www.propertyguru.com.sg/hdb-for-rent/near-queensway-secondary-school-980)
+
+[Queenstown Secondary School](https://www.propertyguru.com.sg/hdb-for-rent/near-queenstown-secondary-school-977)
+
+[\\
+\\
+Shafi .\\
+\\
+5.0(72 Reviews)\\
+\\
+ORANGETEE & TIE PTE. LTD.\\
+\\
+CEA: R016538J / L3009250K\\
+\\
+](https://www.propertyguru.com.sg/agent/shafi--47204#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/shafi--47204)
+
+[Shafi .](https://www.propertyguru.com.sg/agent/shafi--47204)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25614795.md b/examples/memory_service/client/data/crawled_listings/25614795.md
new file mode 100644
index 00000000..95b2dbd3
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25614795.md
@@ -0,0 +1,528 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/18
+
+Show all media
+
+# 4B Boon Tiong Road
+
+4B Boon Tiong Road
+
+# S$ 4,400 /mo
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,076
+
+sqft
+
+* * *
+
+400 m (5 mins) from TE16 Havelock MRT
+
+
+
+Available from 28 Jun 2025
+
+* * *
+
+
+
+Photos
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  4A HDB for rent |  Fully furnished |
+|  TOP in 2003 |  2 years lease |
+|  Listed on 10 May 2025 |  Welcome all races, religions, genders, and sexual orientations. |
+
+See all details
+
+## About this property
+
+### Havelock HDB 4rm flat whole unit for rent!
+
+Postal code: 165004
+
+7 mins walk to Havelock MRT
+
+11 mins walk to Tiong Bahru MRT.
+
+3 bedrooms and 2 bathrooms in the unit.
+
+Fully furnished for convenient move in.
+
+The unit is available 28th June 2025 onwards.
+
+2 year lease preferred.
+
+Contact me to arrange for viewing!
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+
+
+
+
+
+
+
+
+Havelock MRT
+
+TE16
+
+
+
+5 mins
+
+400 m
+
+Tiong Bahru MRT
+
+EW17
+
+
+
+7 mins
+
+610 m
+
+Great World MRT
+
+TE15
+
+
+
+17 mins
+
+1.4 km
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Bed
+
+
+
+Cooker hob/hood
+
+
+
+Dining room furniture
+
+See all 9 amenities
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#)
+
+[Rent](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#)
+
+Filters
+
+4 Room Flat [](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## 4B Boon Tiong Road
+
+
+
+4B Boon Tiong Road
+
+[View project details](https://www.propertyguru.com.sg/project/4b-boon-tiong-road-4076)
+
+[4/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/4b-boon-tiong-road-4076#greenscore)
+
+## More listings in this HDB
+
+[\\
+\\
+**4B Boon Tiong Road** \\
+\\
+4B Boon Tiong Road\\
+\\
+S$ 4,390 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066)
+
+[\\
+\\
+Aloisa Lua (嘉嘉)\\
+\\
+5.0(4 Reviews)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R069760Z / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/aloisa-lua-(%E5%98%89%E5%98%89%EF%BC%89-16718513#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**83 Redhill Lane** \\
+\\
+83 Redhill Lane\\
+\\
+S$ 1,100 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-83-redhill-lane-22037058)
+
+[\\
+\\
+**44 Moh Guan Terrace** \\
+\\
+44 Moh Guan Terrace\\
+\\
+S$ 2,199 /mo\\
+\\
+Room\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-44-moh-guan-terrace-25108235)
+
+[\\
+\\
+**127D Kim Tian Road** \\
+\\
+127D Kim Tian Road\\
+\\
+S$ 4,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-127d-kim-tian-road-25484708)
+
+[\\
+\\
+**20 Queen's Close** \\
+\\
+20 Queen's Close\\
+\\
+S$ 3,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-20-queen-s-close-25019519)
+
+[\\
+\\
+**20 Queen's Close** \\
+\\
+20 Queen's Close\\
+\\
+S$ 3,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-20-queen-s-close-25019519)
+
+[\\
+\\
+**97 Commonwealth Crescent** \\
+\\
+97 Commonwealth Crescent\\
+\\
+S$ 2,900 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-97-commonwealth-crescent-25576478)
+
+[\\
+\\
+**87 Dawson Road** \\
+\\
+87 Dawson Road\\
+\\
+S$ 3,999 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-87-dawson-road-24435566)
+
+[\\
+\\
+**65 Tiong Poh Road** \\
+\\
+65 Tiong Poh Road\\
+\\
+S$ 3,592 /mo\\
+\\
+ 2Bedrooms 1Bathroom\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-65-tiong-poh-road-25521575)
+
+[\\
+\\
+**65 Tiong Poh Road** \\
+\\
+65 Tiong Poh Road\\
+\\
+S$ 3,592 /mo\\
+\\
+ 2Bedrooms 1Bathroom\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-65-tiong-poh-road-25521575)
+
+[\\
+\\
+**7A Commonwealth Avenue** \\
+\\
+7A Commonwealth Avenue\\
+\\
+S$ 4,300 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-7a-commonwealth-avenue-24475234)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#) [\\
+Next](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in 4B Boon Tiong Road?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at 4B Boon Tiong Road?
+
+The rent of this unit at 4B Boon Tiong Road is about S$ 4,400 /mo.
+
+##### What is the current rental PSF at 4B Boon Tiong Road?
+
+The current rental PSF at 4B Boon Tiong Road is about S$ 4.09 psf.
+
+##### What is the address of 4B Boon Tiong Road?
+
+4B Boon Tiong Road is located at 4B Boon Tiong Road Alexandra / Commonwealth City & South West (D01-08).
+
+##### What is the floor size of this unit at 4B Boon Tiong Road?
+
+Floor size of this unit at 4B Boon Tiong Road is 1076 sqft.
+
+Explore other options in and around Alexandra / Commonwealth
+
+Based on the property criteria, you might be interested on the following
+
+HDB Flat For Rent
+
+[At 4B Boon Tiong Road](https://www.propertyguru.com.sg/property-for-rent/at-4b-boon-tiong-road-4076)
+
+[In Boon Tiong Road](https://www.propertyguru.com.sg/singapore-property-listing/hdb/bukit-merah/boon-tiong-road_103170)
+
+[In Bukit Merah](https://www.propertyguru.com.sg/hdb-for-rent/in-bukit-merah)
+
+[Under 5K S$](https://www.propertyguru.com.sg/hdb-for-rent/in-bukit-merah/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/hdb-for-rent/in-bukit-merah/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[TE16 Havelock MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-te16-havelock-mrt-station-8186)
+
+[EW17 Tiong Bahru MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew17-tiong-bahru-mrt-station-56)
+
+[TE15 Great World MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-te15-great-world-mrt-station-8185)
+
+Nearest Schools
+
+[Outram Secondary School](https://www.propertyguru.com.sg/hdb-for-rent/near-outram-secondary-school-950)
+
+[Zhangde Primary School](https://www.propertyguru.com.sg/hdb-for-rent/near-zhangde-primary-school-587)
+
+[River Valley Primary School](https://www.propertyguru.com.sg/hdb-for-rent/near-river-valley-primary-school-476)
+
+[\\
+\\
+Aloisa Lua (嘉嘉)\\
+\\
+5.0(4 Reviews)\\
+\\
+ERA REALTY NETWORK PTE LTD\\
+\\
+CEA: R069760Z / L3002382K\\
+\\
+](https://www.propertyguru.com.sg/agent/aloisa-lua-(%E5%98%89%E5%98%89%EF%BC%89-16718513#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/aloisa-lua-(%E5%98%89%E5%98%89%EF%BC%89-16718513)
+
+[Aloisa Lua (嘉嘉)](https://www.propertyguru.com.sg/agent/aloisa-lua-(%E5%98%89%E5%98%89%EF%BC%89-16718513)
+
+5.0
+
+Contact Agent
+
+BESbswy
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25614895.md b/examples/memory_service/client/data/crawled_listings/25614895.md
new file mode 100644
index 00000000..31576979
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25614895.md
@@ -0,0 +1,700 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#)[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#)[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#)[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#)[](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/14
+
+Show all media
+
+# Spottiswoode Suites
+
+16 Spottiswoode Park Road
+
+# S$ 4,800 /mo
+
+Negotiable
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+797
+
+sqft
+
+* * *
+
+510 m (6 mins) from CC31 Cantonment MRT
+
+
+
+Ready to move in Condominium
+
+* * *
+
+
+
+Photos
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Condominium for rent |  Partially furnished |
+|  TOP in Dec 2017 |  Listed on 10 May 2025 |
+|  Welcome all races, religions, genders, and sexual orientations. |  Listing ID - 25614895 |
+
+See all details
+
+## About this property
+
+### High floor, unblock sea view, Modern City-Edge Living, near MRT
+
+\- District: D02
+
+\- Size: 797 sqft
+
+\- Bedrooms: 3
+
+\- Bathrooms: 2
+
+Key figures
+
+\- Corner Unit, level 25
+
+\- Fully equipped kitchen
+
+\- Washer & Dryer
+
+\- Rooms with air con
+
+\- Partially fitted, bring in your own furniture
+
+\- 2 parking lots
+
+\- vacant unit, available for move-in anytime.
+
+Over 50 recreational facilities across FIVE different levels providing all the comforts of a getaway, right on the home grounds.
+
+\*\*Tennis Court/ 30 m Lap Pool/ Indoor Gym/ Aqua Gym/ Massage Pavillions/ 6 Jacuzzis spread over 14/24 floor, Dinning Pavillion.\*\*
+
+Favorably located at the doorstep of CBD, which makes traveling to work or play hassle free!
+
+\- within the proximity of major roads and public transport
+
+\- 10mins Outram Park MRT Station.
+
+\- Major expressways like CTE and AYE are seamlessly and conveniently connected to every part of Singapore.
+
+Convenience:
+
+\- 4 min walk to the nearest bus stop (bus services: 61, 166, 196 etc.)
+
+\- 3 min walk to The Blair House shopping mall
+
+\- 2 min walk to the nearest eateries
+
+\- 7 min walk to Outram Park MRT (EW16
+
+\- Within 1-2km of these schools: Zhangde Primary School, River Valley Primary School, Radin Mas Primary School
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+
+
+
+
+
+
+
+
+Cantonment MRT
+
+CC31
+
+
+
+6 mins
+
+510 m
+
+Outram Park MRT
+
+EW16
+
+NE3
+
+TE17
+
+
+
+8 mins
+
+680 m
+
+Maxwell MRT
+
+TE18
+
+
+
+12 mins
+
+1 km
+
+
+
+##### Amenities
+
+
+
+Air conditioner
+
+
+
+Balcony
+
+
+
+Cabinets
+
+
+
+Covered car parking
+
+See all 5 amenities
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Barbeque pits
+
+
+
+Basement car park
+
+
+
+Children's playground
+
+See all 13 facilities
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Spottiswoode Suites
+
+
+
+Spottiswoode SuitesLocated in a relatively exclusive part of District 2, Spottiswoode Suites offers residents both variety in terms of dining and entertainment options, while also benefitting from its peaceful location near a large wooded area. The attention to detail in the apartments themselves and in the facilities, as well as the duplex options for 2 and 3 bed units helps this development to stand out. Currently Spottiswoode Suites are a ten minute walk to Outram MRT Station, though this will be halved with the opening of Cantonment Station in 2025. One further thing to note is that Spottiswoode Suites are freehold, meaning they are a more attractive option for investors.Spottiswoode Development Pte Ltd was formed in 2011 as a joint venture between Centurion Properties Ltd and Lian Beng Group Ltd.Spottiswoode Suites– Unique Selling PointsOne of the features of the apartments in Spottiswoode Suites is their high ceilings, which gives the impression of them having more room than they actually do. This coupled with the designer fixtures and fittings, and the large number of communal amenities and facilities within the development, is a big advantage. The area it is located in is the major plus for Spottiswoode Suites however. Though it is a fairly exclusive area, there are plenty of options when it comes to wining and dining within a very short walk, no matter what your budget or preference.Spottiswoode Suites- AccessibilityOutram Park, on the East West and North South Lines is the nearest MRT station to Spottiswoode Suites, and is a ten minute walk away (approx. 650 metres). There is a bus stop near the development for those not wishing or able to walk. When completed, Cantonment MRT station will be located at the site of the old Tanjong Pagar Railway Station, which means residents of Spottiswoode Suites will have a walk of only 5 minutes to access the MRT network. Access to the MCE and CTE is straightforward and it is a short distance to Sentosa.Spottiswoode Suites- Amenities & AttractionsDining near Spottiswoode Suites:Majestic RestaurantNicolas Le RestaurantEtna Italian RestaurantTaratata BistrotMariner’s Corner RestaurantShopping near Spottiswoode Suites:100 AMAmara Shopping CentreTanjong Pagar PlazaIcon VillageSchools and Education near Spottiswoode Suites:Cantonment Primary SchoolRadin Mas Primary SchoolZhangde Primary SchoolSpottiswoode Suites- Project informationSpottiswoode Suites consist of a single 36 storey block. It has 183 units in total, and offers a wide choice of unit type. Ranging from 1 up to 3 bedrooms, the 2 and 3 bedroom units also come in either standard, duplex or penthouse options. As well as a tennis court, Spottiswoode Suites also has a swimming pool, children’s adventure and separate water play area, indoor and aqua gyms and 4 Jacuzzis.It is the location that will draw most people to the development however. Flanked by a park and wooded area, Spottiswoode Suites will give residents the feel that they have escaped the city, despite it only being a few minutes’ walk away.Project Name: Spottiswoode SuitesAddress: 16 Spottiswoode Park RoadType: CondominiumSite area: 40,259.18 sqftTenure: FreeholdDistrict: 2Configuration: 183 unitsUnit types:19 x 1 Bedroom: 452 – 463 sqft58 x 1 Bedroom + Study: 441 – 484 sqft45 x 2 Bedroom: 495 – 667 sqft28 x 3 Bedroom: 743 – 797 sqft12 x 2 Bedroom Duplex: 840 – 872 sqft12 x 3 Bedroom Duplex: 1012 – 1119 sqft7 x Penthouse 2 Bedroom: 1109 – 1259 sqft2 x Penthouse 3 bedroom: 1378 – 1410 sqftTOP: 21st June 2017(How many towers/ blocks/ storeys + how big is the land + how many units in total + howmany units per floor + how many lifts + what are the layouts available + how big are theunits + how many rooms, etc)Spottiswoode Suites - Historical DataSales for all units at the Spottiswoode Suites were brisk to start with, though they did slow. The vast majority of sales coming in the $1 to $1.5 million range. The median PSF of the transacted units up to August 2016 were:Bedroom Type$PSF1 Bedroom$2,3001 + 1 Bedroom$2,3122 Bedroom$2,2533 Bedroom$2,1772 Bedroom Duplex$2,3183 Bedroom Duplex$2,20302 Bedroom Penthouse$2,1093 Bedroom Penthouse$1,802Spottiswoode Suites - Related ProjectsThe following projects are by the same developer as Spottiswoode Suites:8 @ Mount SophiaGrand DuchessSixth Avenue ResidencesSpottiswoode Suites - Nearby ProjectsThe following developments are in the same neighbourhood as Spottiswoode Suites:Asia GardensIconCraig PlaceEON Shenton
+
+[View project details](https://www.propertyguru.com.sg/project/spottiswoode-suites-21364)
+
+[3.8\\
+\\
+\\
+\\
+2 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/spottiswoode-suites-21364) [3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/spottiswoode-suites-21364#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25608821)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-21944982)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25594515)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25218214)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 5,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614154)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25258043)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25605046)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,900 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25605046)
+
+[\\
+\\
+**Spottiswoode Suites** \\
+\\
+16 Spottiswoode Park Road\\
+\\
+S$ 4,800 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25613030)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#)
+
+See all listings
+
+[\\
+\\
+Max Koh\\
+\\
+5.0(3 Reviews)\\
+\\
+HUTTONS ASIA PTE LTD\\
+\\
+CEA: R068964E / L3008899K\\
+\\
+](https://www.propertyguru.com.sg/agent/max-koh-16075120#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+## Recommendations
+
+[\\
+\\
+**Rent In Singapore Housing Condominium Apartment Hotel Accommodation For Expat Short Term Rental** \\
+\\
+Chinatown / Tanjong Pagar\\
+\\
+S$ 3,000 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-rent-in-singapore-housing-condominium-apartment-hotel-accommodation-for-expat-short-term-rental-25186959)
+
+[\\
+\\
+**Library House, Figment Boutique Homes. Move-in Ready, All-inclusive, Flexible Contract, Central SG** \\
+\\
+Emerald Hill Road\\
+\\
+S$ 2,999 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-library-house-figment-boutique-homes-move-in-ready-all-inclusive-flexible-contract-central-sg-25095566)
+
+[\\
+\\
+**49 Tras Street**\\
+\\
+S$ 2,700 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Walk-up Apartment](https://www.propertyguru.com.sg/listing/for-rent-49-tras-street-24243628)
+
+[\\
+\\
+**Peninsula House, Figment Boutique Homes. Move-in Ready, All-inclusive, Flexible Contract, Central SG** \\
+\\
+Jalan Besar / Petain Road / Farrer Park MRT\\
+\\
+S$ 3,000 /mo\\
+\\
+Studio\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-peninsula-house-figment-boutique-homes-move-in-ready-all-inclusive-flexible-contract-central-sg-25185336)
+
+[\\
+\\
+**Peninsula House, Figment Boutique Homes. Move-in Ready, All-inclusive, Flexible Contract, Central SG** \\
+\\
+Jalan Besar / Petain Road / Farrer Park MRT\\
+\\
+S$ 3,000 /mo\\
+\\
+Studio\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-peninsula-house-figment-boutique-homes-move-in-ready-all-inclusive-flexible-contract-central-sg-25185336)
+
+[\\
+\\
+**The Platinum** \\
+\\
+46 Upper Cross Street\\
+\\
+S$ 3,400 /mo\\
+\\
+Studio\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-the-platinum-20678502)
+
+[\\
+\\
+**Lumiere** \\
+\\
+2 Mistri Road\\
+\\
+S$ 4,850 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-lumiere-25591950)
+
+[\\
+\\
+**Icon** \\
+\\
+10 Gopeng Street\\
+\\
+S$ 6,200 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-icon-18664640)
+
+[\\
+\\
+**Icon** \\
+\\
+10 Gopeng Street\\
+\\
+S$ 6,200 /mo\\
+\\
+ 2Bedrooms 2Bathrooms\\
+\\
+Condominium](https://www.propertyguru.com.sg/listing/for-rent-icon-18664640)
+
+[\\
+\\
+**Icon** \\
+\\
+10 Gopeng Street\\
+\\
+S$ 4,000 /mo\\
+\\
+ 1Bedroom 1Bathroom\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-icon-19778471)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-spottiswoode-suites-25614895#)
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Spottiswoode Suites?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at Spottiswoode Suites?
+
+The rent of this unit at Spottiswoode Suites is about S$ 4,800 /mo.
+
+##### What is the current rental PSF at Spottiswoode Suites?
+
+The current rental PSF at Spottiswoode Suites is about S$ 6.02 psf.
+
+##### What is the address of Spottiswoode Suites?
+
+Spottiswoode Suites is located at 16 Spottiswoode Park Road Chinatown / Tanjong Pagar City & South West (D01-08).
+
+##### What is the floor size of this unit at Spottiswoode Suites?
+
+Floor size of this unit at Spottiswoode Suites is 797 sqft.
+
+Explore other options in and around Chinatown / Tanjong Pagar
+
+Based on the property criteria, you might be interested on the following
+
+Condominium For Rent
+
+[At Spottiswoode Suites](https://www.propertyguru.com.sg/project-listings/spottiswoode-suites-21364/rent/1)
+
+[In Chinatown / Tanjong Pagar](https://www.propertyguru.com.sg/condos/chinatown-tanjong-pagar)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=CONDO&hdb_estate%5B0%5D=0)
+
+[Under 5K S$](https://www.propertyguru.com.sg/condo-for-rent/in-chinatown-tanjong-pagar-d02/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/condo-for-rent/in-chinatown-tanjong-pagar-d02/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[CC31 Cantonment MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-cc31-cantonment-mrt-station-8266)
+
+[EW16 Outram Park MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ew16-outram-park-mrt-station-53)
+
+[NE3 Outram Park MRT Station](https://www.propertyguru.com.sg/condo-for-rent/near-ne3-outram-park-mrt-station-8099)
+
+Nearest Schools
+
+[K¹² International Academy Singapore](https://www.propertyguru.com.sg/condo-for-rent/near-k-international-academy-singapore-8088)
+
+[Inspiration Design School](https://www.propertyguru.com.sg/condo-for-rent/near-inspiration-design-school-2747)
+
+[CHIJ (Kellock)](https://www.propertyguru.com.sg/condo-for-rent/near-chij-kellock-614)
+
+[\\
+\\
+Max Koh\\
+\\
+5.0(3 Reviews)\\
+\\
+HUTTONS ASIA PTE LTD\\
+\\
+CEA: R068964E / L3008899K\\
+\\
+](https://www.propertyguru.com.sg/agent/max-koh-16075120#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/max-koh-16075120)
+
+[Max Koh](https://www.propertyguru.com.sg/agent/max-koh-16075120)
+
+5.0
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25614934.md b/examples/memory_service/client/data/crawled_listings/25614934.md
new file mode 100644
index 00000000..9522b3b7
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25614934.md
@@ -0,0 +1,557 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#)[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#)[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#)[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#)[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/21
+
+Show all media
+
+# Neptune Court
+
+1 Marine Vista
+
+# S$ 5,000 /mo
+
+Negotiable
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,269
+
+sqft
+
+* * *
+
+850 m (10 mins) from TE27 Marine Terrace MRT
+
+
+
+Ready to move in Apartment
+
+* * *
+
+
+
+Photos
+
+
+
+Video
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  Apartment for rent |  Partially furnished |
+|  TOP in Dec 1975 |  2 years lease |
+|  Listed on 10 May 2025 |  Listing ID - 25614934 |
+
+See all details
+
+## About this property
+
+### Vacant Possession. Moved In immediately!
+
+Calling for Foreign Teachers/Students/Doctors for immediate move in!
+
+3 bedroom Condo Apartments at East Coast Neptune Court.
+
+2 bathrooms.
+
+Amenities:-
+
+\- within 1Km to Siglap MRT
+
+\- 1 to 2 mins walk to bus stop nearer to Neptune Court
+
+\- 6 mins walk to CHIJ Katong Convent
+
+\- 5 mins walk to Cold Storage
+
+\- Within 10 to 15mins drive to Parkway Parade
+
+\- 4 mins walk to Park Connector (between Neptune Court and Mandarin Garden)
+
+\- 4 mins drive to East Coast Terrace Park
+
+\- 7 mins walk to East Coast Park
+
+Schools:-
+
+\- 2 mins drive to Victoria Junior College
+
+\- 2 mins drive to CHIJ Katong Convent
+
+\- 4 mins drive to St Patrick’s School
+
+\- 5 mins drive to Tao Nan Primary School
+
+Viewing appt please contact Justina @
+9\*\*\*\*\*
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#)
+
+
+
+
+
+
+
+
+
+Marine Terrace MRT
+
+TE27
+
+
+
+10 mins
+
+850 m
+
+
+
+##### Amenities
+
+
+
+Air conditioner
+
+
+
+Balcony
+
+
+
+Basic lights
+
+
+
+Bed
+
+See all 17 amenities
+
+##### Common facilities
+
+
+
+24 hours security
+
+
+
+Multi-purpose hall
+
+
+
+Open car park
+
+
+
+Playground
+
+##### Price insights
+
+
+
+
+
+
+
+
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#)
+
+[Rent](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#)
+
+Filters
+
+3 Bedroom [](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## Neptune Court
+
+
+
+Neptune Court is a leasehold condominium development that is located at Marine Vista in District 15. It is a condominium project that was completed a while back. The project was completed in 1975 with a total of 752 units available for sale or rent. The condominium development is located close to public transportation that allows residents to move easily from one place to another from the condominium. There are many shops and amenities close to the condominium development which would ease the process for residents and they do not need to go far to find what they need. It was a pilot project for housing civil servants. - Neptune Court is a beautiful condominium development that has many charms to it. There are various facilities that residents can enjoy while living in Neptune Court. Residents of Neptune Court would not have to travel far to get their basic necessities as everything is close within their reach. Residents can enjoy making use of the multi-purpose hall and playground. The condominium comes equipped with open car parks and 24 hours security system that ensures the safety of residents is well taken care of. There is a number of public transportation close to Neptune Court that residents can make use of. The closest bus stops are located at Neptune Court, CHIJ Katong Convent, Mandarin Gardens, St Patrick’s Secondary School, Marine Terrace and Raintree Cove. For those with vehicles, the shopping district located at Orchard Road can be easily accessed via the Central Expressway, Marine Parade and Stamford Road in 15 to 20 minutes. Thai Pan RestaurantIndian Wok132 Mee Pok Kway TeowRong Kee Roasted Delights – Marine TerraceGeorges Beach Club My Prep School @ Mandarin GardensNgee Ann Primary SchoolRosemount International SchoolSt Patrick's Secondary SchoolVictoria School Liang ClinicFrankel ClinicBurlinson Dental SurgeryNuffield Medical SiglapLeong & Tan Clinic & Surgery Giant Express – Marine TerraceCold Storage Siglap VFairPrice Siglap New Market Neptune Court is a condominium development that is made up of a total of 752 units. There is only 1 type of unit available with various layouts that residents can browse through. The size for the unit ranges between 1,270 square feet to 1,636 square feet. The layouts for the units in Neptune Court aim to provide residents with homes that is comfortable for working adults, couples or families looking to own a spacious and manageable condominium unit. The sale price for the units ranges between S$ 950,000 to S$ 1,800,000. The rental price for the units ranges between S$ 850 to S$ 3,300. Project Name: Neptune CourtType: CondominiumDistrict: 15Configuration: 752 residential units Unit Types:3 bedrooms (1,270 sqft - 1,636 sqft) The following developments are in the same neighborhood as Neptune Court:Amber ParkMeyer MansionSeaside ResidencesSilverseaAmber 45Frankel Estate
+
+[View project details](https://www.propertyguru.com.sg/project/neptune-court-307)
+
+[2.4\\
+\\
+\\
+\\
+11 Reviews](https://www.propertyguru.com.sg/singapore-condo-reviews/neptune-court-307) [3/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/neptune-court-307#greenscore)
+
+## More listings in this project
+
+[\\
+\\
+**Neptune Court** \\
+\\
+1 Marine Vista\\
+\\
+S$ 4,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-21883783)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+9 Marine Vista\\
+\\
+S$ 4,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-13539291)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+1 Marine Vista\\
+\\
+S$ 5,500 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25530455)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+4 Marine Vista\\
+\\
+S$ 5,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-21301913)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+4 Marine Vista\\
+\\
+S$ 5,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-21301913)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+8 Marine Vista\\
+\\
+S$ 4,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-21879551)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+2 Marine Vista\\
+\\
+S$ 5,600 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-24116059)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+1 Marine Vista\\
+\\
+S$ 6,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-24437059)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+1 Marine Vista\\
+\\
+S$ 6,000 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-24437059)
+
+[\\
+\\
+**Neptune Court** \\
+\\
+6 Marine Vista\\
+\\
+S$ 4,200 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+Apartment](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-19383782)
+
+[\\
+Previous](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#) [\\
+Next](https://www.propertyguru.com.sg/listing/for-rent-neptune-court-25614934#)
+
+See all listings
+
+[\\
+\\
+Justina Seet\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R047972E / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/justina-seet-233011#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in Neptune Court?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at Neptune Court?
+
+The rent of this unit at Neptune Court is about S$ 5,000 /mo.
+
+##### What is the current rental PSF at Neptune Court?
+
+The current rental PSF at Neptune Court is about S$ 3.94 psf.
+
+##### What is the address of Neptune Court?
+
+Neptune Court is located at 1 Marine Vista East Coast / Marine Parade East Coast (D15-16).
+
+##### What is the floor size of this unit at Neptune Court?
+
+Floor size of this unit at Neptune Court is 1269 sqft.
+
+Explore other options in and around East Coast / Marine Parade
+
+Based on the property criteria, you might be interested on the following
+
+Apartment For Rent
+
+[At Neptune Court](https://www.propertyguru.com.sg/project-listings/neptune-court-307/rent/1)
+
+[In East Coast / Marine Parade](https://www.propertyguru.com.sg/apartment/east-coast-marine-parade/property-for-rent)
+
+[In](https://www.propertyguru.com.sg/property-for-rent?property_type=N&property_type_code%5B0%5D=APT&hdb_estate%5B0%5D=0)
+
+[Over 5K S$](https://www.propertyguru.com.sg/apartment-for-rent/in-east-coast-marine-parade-d15/priced-over-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/apartment-for-rent/in-east-coast-marine-parade-d15/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[TE27 Marine Terrace MRT Station](https://www.propertyguru.com.sg/apartment-for-rent/near-te27-marine-terrace-mrt-station-8323)
+
+[TE28 Siglap MRT Station](https://www.propertyguru.com.sg/apartment-for-rent/near-te28-siglap-mrt-station-8324)
+
+[TE26 Marine Parade MRT Station](https://www.propertyguru.com.sg/apartment-for-rent/near-te26-marine-parade-mrt-station-8322)
+
+Nearest Schools
+
+[Ngee Ann Primary School](https://www.propertyguru.com.sg/apartment-for-rent/near-ngee-ann-primary-school-677)
+
+[CHIJ Katong Convent](https://www.propertyguru.com.sg/apartment-for-rent/near-chij-katong-convent-1103)
+
+[St Patrick's School](https://www.propertyguru.com.sg/apartment-for-rent/near-st-patrick-s-school-1175)
+
+[\\
+\\
+Justina Seet\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R047972E / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/justina-seet-233011#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/justina-seet-233011)
+
+[Justina Seet](https://www.propertyguru.com.sg/agent/justina-seet-233011)
+
+Contact Agent
+
+BESbswy
\ No newline at end of file
diff --git a/examples/memory_service/client/data/crawled_listings/25615066.md b/examples/memory_service/client/data/crawled_listings/25615066.md
new file mode 100644
index 00000000..73fbb548
--- /dev/null
+++ b/examples/memory_service/client/data/crawled_listings/25615066.md
@@ -0,0 +1,419 @@
+Discrimination has no place on PropertyGuru.We believe everyone deserves a place to call home and will not tolerate discrimination of any form. If you experience discrimination from our agent partners, please report it to us so that we can work with them accordingly. [Learn More.](https://www.propertyguru.com.sg/property-guides/discrimination-in-singapore-property-market-62840)
+
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1/14
+
+Show all media
+
+# 4B Boon Tiong Road
+
+4B Boon Tiong Road
+
+# S$ 4,390 /mo
+
+Starting From
+
+* * *
+
+
+
+3
+
+Beds
+
+
+
+2
+
+Baths
+
+
+
+1,076
+
+sqft
+
+* * *
+
+400 m (5 mins) from TE16 Havelock MRT
+
+* * *
+
+
+
+Photos
+
+
+
+Videos
+
+
+
+Virtual Tour
+
+[\\
+\\
+Map View](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#location-section)
+
+## Property details
+
+| | |
+| --- | --- |
+|  4A HDB for rent |  Fully furnished |
+|  TOP in 2003 |  Listed on 11 May 2025 |
+|  Listing ID - 25615066 |  1076 sqft floor area |
+
+See all details
+
+## About this property
+
+### Nice reno 4a near tiong bahru for rent
+
+\[For Rent\] Fully Furnished 3-Bedroom HDB at 4B Boon Tiong Road – Prime City Fringe Living!
+
+Step into comfort and convenience with this spacious 4A HDB unit (1,076 sqft) featuring 3 bedrooms 1 living room a fully equipped kitchen — perfect for families, professionals, or tenants seeking space in a highly sought-after location.
+
+Unit Highlights:
+
+• Fully Furnished – Comes with air-conditioned bedrooms, comfy beds, a TV, washing machine, fridge & more
+
+• Well-Maintained Kitchen – Ideal for home cooking with essential appliances
+
+• Move-in Date – Ready from 1st July
+
+Location Perks:
+
+• Only 500m to Havelock & Tiong Bahru MRT stations
+
+• Walking distance to Tiong Bahru Plaza & Great World City – offering dining, shopping & groceries all within minutes
+
+Situated in a peaceful, vibrant neighborhood with great transport connectivity, this home is a rare find in a mature estate.
+
+DM Xavier at
+9\*\*\*\*\*
+now to book your exclusive VIP viewing!
+
+Don’t miss out on this prime rental opportunity!
+
+Xavier main line
+9\*\*\*\*\*
+,
+www.w\*\*\*\*\*9\*\*\*\*\*
+
+## What's nearby
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+Saved Places
+
+MRT/LRT
+
+Bus
+
+Schools
+
+Shopping
+
+Healthcare
+
+Food & Drink
+
+Parks
+
+Places of Worship
+
+
+
+
+
+To navigate, press the arrow keys.
+
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)
+
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)
+
+[](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)
+
+
+
+
+
+
+
+
+
+Havelock MRT
+
+TE16
+
+
+
+5 mins
+
+400 m
+
+Tiong Bahru MRT
+
+EW17
+
+
+
+7 mins
+
+610 m
+
+Great World MRT
+
+TE15
+
+
+
+17 mins
+
+1.4 km
+
+
+
+##### Amenities
+
+
+
+Air-conditioning
+
+
+
+Bed
+
+
+
+Bombshelter
+
+
+
+City view
+
+See all 13 amenities
+
+##### Price history
+
+[Buy](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)
+
+[Rent](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#)
+
+Filters
+
+4 Room Flat [](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25615066#price-history)
+
+
+
+No transactions found
+
+Try removing or changing the filters to show price history data
+
+
+
+Track this home's value
+
+Get access to home valuation, mortgage tracking and home services all in one place.
+
+[Track now](https://www.propertyguru.com.sg/my-home)
+
+## 4B Boon Tiong Road
+
+
+
+4B Boon Tiong Road
+
+[View project details](https://www.propertyguru.com.sg/project/4b-boon-tiong-road-4076)
+
+[4/5\\
+\\
+Green Score\\
+](https://www.propertyguru.com.sg/project/4b-boon-tiong-road-4076#greenscore)
+
+## More listings in this HDB
+
+[\\
+\\
+**4B Boon Tiong Road** \\
+\\
+4B Boon Tiong Road\\
+\\
+S$ 4,400 /mo\\
+\\
+ 3Bedrooms 2Bathrooms\\
+\\
+HDB Flat](https://www.propertyguru.com.sg/listing/hdb-for-rent-4b-boon-tiong-road-25614795)
+
+[\\
+\\
+Xavier Ng\\
+\\
+3.5(2 Reviews)\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R019312J / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/xavier-ng-137230#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+##### FAQs
+
+##### How many bedrooms and bathrooms are in this unit in 4B Boon Tiong Road?
+
+There are 3 bedrooms with 2 bathrooms in this unit.
+
+##### What is the rental price of this unit at 4B Boon Tiong Road?
+
+The rent of this unit at 4B Boon Tiong Road is about S$ 4,390 /mo.
+
+##### What is the current rental PSF at 4B Boon Tiong Road?
+
+The current rental PSF at 4B Boon Tiong Road is about S$ 4.08 psf.
+
+##### What is the address of 4B Boon Tiong Road?
+
+4B Boon Tiong Road is located at 4B Boon Tiong Road Alexandra / Commonwealth City & South West (D01-08).
+
+##### What is the floor size of this unit at 4B Boon Tiong Road?
+
+Floor size of this unit at 4B Boon Tiong Road is 1076 sqft.
+
+Explore other options in and around Alexandra / Commonwealth
+
+Based on the property criteria, you might be interested on the following
+
+HDB Flat For Rent
+
+[At 4B Boon Tiong Road](https://www.propertyguru.com.sg/property-for-rent/at-4b-boon-tiong-road-4076)
+
+[In Boon Tiong Road](https://www.propertyguru.com.sg/singapore-property-listing/hdb/bukit-merah/boon-tiong-road_103170)
+
+[In Bukit Merah](https://www.propertyguru.com.sg/hdb-for-rent/in-bukit-merah)
+
+[Under 5K S$](https://www.propertyguru.com.sg/hdb-for-rent/in-bukit-merah/priced-under-5k-sgd)
+
+[3 bedroom(s)](https://www.propertyguru.com.sg/hdb-for-rent/in-bukit-merah/with-3-bedrooms)
+
+Show More
+
+Nearest MRT Stations
+
+[TE16 Havelock MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-te16-havelock-mrt-station-8186)
+
+[EW17 Tiong Bahru MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-ew17-tiong-bahru-mrt-station-56)
+
+[TE15 Great World MRT Station](https://www.propertyguru.com.sg/hdb-for-rent/near-te15-great-world-mrt-station-8185)
+
+Nearest Schools
+
+[Outram Secondary School](https://www.propertyguru.com.sg/hdb-for-rent/near-outram-secondary-school-950)
+
+[Zhangde Primary School](https://www.propertyguru.com.sg/hdb-for-rent/near-zhangde-primary-school-587)
+
+[River Valley Primary School](https://www.propertyguru.com.sg/hdb-for-rent/near-river-valley-primary-school-476)
+
+[\\
+\\
+Xavier Ng\\
+\\
+3.5(2 Reviews)\\
+\\
+PROPNEX REALTY PTE. LTD.\\
+\\
+CEA: R019312J / L3008022J\\
+\\
+](https://www.propertyguru.com.sg/agent/xavier-ng-137230#Agent-RightSideProfile)
+
+WhatsApp Web
+
+Chat on WhatsApp
+
+
+
+Send Enquiry
+
+
+
+Call
+
+Other ways to enquire
+
+
+
+We've updated our privacy policy to reflect our commitment to ensuring the security of your data. Please check out our updated [Privacy Policy](https://www.propertyguru.com.sg/customer-service/privacy) for more details. By continuing browsing this website, you are giving consent towards the same.
+
+Accept
+
+[](https://www.propertyguru.com.sg/agent/xavier-ng-137230)
+
+[Xavier Ng](https://www.propertyguru.com.sg/agent/xavier-ng-137230)
+
+3.5
+
+Contact Agent
\ No newline at end of file
diff --git a/examples/memory_service/client/data/page_dump.html b/examples/memory_service/client/data/page_dump.html
new file mode 100644
index 00000000..8cc1b433
--- /dev/null
+++ b/examples/memory_service/client/data/page_dump.html
@@ -0,0 +1,8018 @@
+
+
+
+ There are
+
+ 434
+
+ Properties for Rent, under S$ 5 K 3 Bedrooms. You can use our
+ elegant Property Search Tool to find the right
+ HDB Flat,
+ Condominium,
+ Apartment,
+ Executive Condominium,
+ Terraced
+ House,
+ Detached
+ House,
+ Semi-Detached
+ House and
+ Bungalow
+ House
+ that is currently for Rent.
+ The options in our database are limitless.
+ Our Property Evaluation Tool makes the market transparent for you,
+ so that you can make a confident decision to
+ Rent
+ your Property in Singapore.
+ Start your Property Search above, or refine your search using these
+ most popular searches on Property for Rent.
+
We've updated our privacy policy to reflect our commitment
+ to ensuring the security of your data. Please check out our updated Privacy Policy for more details. By
+ continuing browsing this website, you are giving consent towards the same.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Introducing Verified Listings
These properties have been verified for address accuracy and
+ genuine intent to sell or rent out.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Hide Listing
Click to hide this listing from your search results.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/memory_service/client/data/parse_html_data.py b/examples/memory_service/client/data/parse_html_data.py
new file mode 100644
index 00000000..387cae60
--- /dev/null
+++ b/examples/memory_service/client/data/parse_html_data.py
@@ -0,0 +1,97 @@
+import json
+
+from bs4 import BeautifulSoup
+
+
+def extract_listings_from_html(
+ html_filepath="page_dump.html", output_json_filepath="listings.json"
+):
+ """
+ Parses an HTML file to find a