Help
RSS
API
Feed
Maltego
Contact
Domain > fi.product.sapia.ai
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-02-15
18.164.124.127
(
ClassC
)
2025-11-03
3.175.34.129
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Mon, 03 Nov 2025 18:52:56 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://fi.product.sapia.ai/X-Cache: Redirect from cloudfrontVia: 1.1 122c3ada56617c24649677d3b2f50200.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P3X-Amz-Cf-Id: li277AlVD-YtBGQrZVNMSjIeEZor_WpgBd_hTpPaCTlqhtqfO5HZKQ html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 11031Connection: keep-aliveDate: Mon, 03 Nov 2025 18:52:57 GMTLast-Modified: Wed, 01 Oct 2025 07:43:23 GMTETag: a81ea33482c0c9c04509fe91975ead05x-amz-server-side-encryption: AES256Cache-Control: max-age0,no-cache,no-store,must-revalidatex-amz-version-id: nullAccept-Ranges: bytesServer: AmazonS3Via: 1.1 08193d741a1ee26c807b4f48b77fcd40.cloudfront.net (CloudFront)Strict-Transport-Security: max-age31536000; includeSubdomains; preloadX-Content-Type-Options: nosniffX-XSS-Protection: 1; modeblockReferrer-Policy: same-originPermissions-Policy: payment()Content-Security-Policy: default-src self; style-src * unsafe-inline; script-src * unsafe-inline; connect-src *; img-src * data:; font-src * data:; frame-src *; media-src data: blob: *X-Cache: Miss from cloudfrontX-Amz-Cf-Pop: HIO52-P3X-Amz-Cf-Id: rN2PCe1kJj1iXRsAHYcgYT26dFtG_S1_joyV4WQskFH2tPE08oBh6w !doctype html>html langen>head>meta charsetutf-8/>link relicon href/static/favicon.ico/>meta nameviewport contentwidthdevice-width,initial-scale1,maximum-scale1/>meta nametheme-color content#000000/>meta namedescription contentFaster, Fairer, and better/>link relapple-touch-icon href/static/favicon.png/>link relmanifest href/manifest.json/>title>Sapia.ai - Interview/title>style>#reciteme-button{top:5px;right:5px;position:fixed;z-index:100;cursor:pointer}#reciteme-button img{width:50px;height:50px}#recite-modal{z-index:1000000}/style>link href/static/css/2.4e3c4956.chunk.css relstylesheet>link href/static/css/main.7397acdd.chunk.css relstylesheet>/head>body>script>//class name of entire chatbot const CHATBOT_APP_SELECTOR .ph-chatbot-body // This function is copy from recite me script https://downloads.reciteme.com/hubfs/float_button_implementation%20(1).txt, we need to modify it to make it work with our app function _loadReciteMe() { var buttonSrc /static/reciteme_button.png var serviceUrl //api.reciteme.com/asset/js?v3.3.12parser&key var serviceKey 0d35e688999a90fa8f5258484519113c93af5a25 // This is recommended options from recite me team to avoid conflict with our css var options { FrameUpdater: { enabled: false }, // Keep this false to alow out app using recite me when turn it on without need to reload page parser: js, Style: { wrapElements: false }, PlayerControls: { Tooltip: { highlightSelected: true } } } var autoLoad false var enableFragment #reciteme-button var loaded , frag !1 window.location.hash enableFragment && (frag !0) function loadScript(c, b) { var a document.createElement(script) a.type text/javascript a.readyState ? (a.onreadystatechange function () { if (loaded a.readyState || complete a.readyState) (a.onreadystatechange null), void 0 ! b && b() }) : void 0 ! b && (a.onload function () { b() }) a.src c document.getElementsByTagName(head)0.appendChild(a) } function _rc(c) { c + for (var b document.cookie.split(;), a 0; a b.length; a++) { for (var d ba; d.charAt(0); ) d d.substring(1, d.length) if (0 d.indexOf(c)) return d.substring(c.length, d.length) } return null } function loadService(c) { for (var b serviceUrl + serviceKey, a 0; a loaded.length; a++) if (loadeda b) return loaded.push(b) loadScript(serviceUrl + serviceKey, function () { function typeof _reciteLoaded && _reciteLoaded() function typeof c && c() Recite.load(options) Recite.Event.subscribe(Recite:load, function () { Recite.enable() }) }) } true _rc(Recite.Persist) && loadService() if ((autoLoad && false ! _rc(Recite.Persist)) || frag) document.addEventListener ? document.addEventListener(DOMContentLoaded, function (c) { loadService() }) : loadService() function _removeReciteButtons(buttons) { Recite.Util.each(buttons, function (id, button) { Recite.Util.each(Recite.Sizzle(.recite-sprite-button- + button), function (id, element) { element.remove() }) }) } // Allow mobile user to change background color, font color, link color, focus color https://predictivehire.atlassian.net/browse/TG-13553 // This function is fully provided by recite me team function fixChangeBackgroundColorDoesNotWorkOnMobile() { document .querySelectorAll( .recite-swatch.recite-preference-set.recite-standard-border-radius, #recite-swatch-reset-default ) .forEach(function (e) { e.addEventListener(touchstart, function (event) { console.log(event) if (event.relatedTarget) { var getEvent event.relatedTarget } else { var getEvent event.srcElement } var getValues getEvent.getAttribute(data-value) var parseValues getValues.split( ) var _resetBackground { style: { backgroundColor: parseValues0, font: { color: parseValues1, link: parseValues2, focus: parseValues3 } } } Recite.Util.each(_resetBackground, function (key, value) { Recite.Preferences.set(key, value) }) }) }) } function handleMobile() { fixChangeBackgroundColorDoesNotWorkOnMobile() } function _reciteLoaded() { if (reciteMeButton && reciteMeButton.parentNode) { reciteMeButton.parentNode.removeChild(reciteMeButton) } Recite.Event.subscribe(Controls:loaded, function () { // recite me auto add some style for body which work well with our app, we need to remove it document.querySelector(body).setAttribute(style, ) // When recite me is enabled, recite me buttons will be located on top with height is 60px // adding out chatbot to have padding top 60px to make sure our chatbot is not hidden by recite me buttons document .querySelector(.chat-bot-box) ?.setAttribute(style, height: calc(100% - 60px); top: 60px; bottom: 0px;) if (Recite.Browser.isMobile()) { handleMobile() } let hasUpdatedDialogBoxContent false const observer new MutationObserver(mutations > { // in mobile, recite me tooltip (with class name as recite-tooltip-fixed class name) is added in bottom (also add some style in our body) which will overlap with our FTQ response // in Desktop, recite me sometimes treat entire app as 1 element and tooltips appear causes extra space in bottom of the app // Remove that tooltip for now until we have better solution from recite me team const reciteMeTooltip document.querySelector(#recite-tooltip) if (reciteMeTooltip) { document.querySelector(body).setAttribute(style, ) reciteMeTooltip.remove() } // Because of dialog box content height is replied on header height (config in fi-widget) // When we enable Recite me, we add 60px on top, so we need to reduce 60px from dialog content box // Handle it here to make sure dialog-box-content is available in DOM if(!hasUpdatedDialogBoxContent){ const dialogBoxContent document.getElementsByClassName(dialog-box-content)0; const style window.getComputedStyle(dialogBoxContent) const minHeight style.getPropertyValue(min-height) const newMinHeight Number(minHeight.split(px)0) - 60 dialogBoxContent.style.minHeight `${newMinHeight}px` hasUpdatedDialogBoxContent true } }) observer.observe(document.body, { childList: true, subtree: true }) // Remove translate button // We wanna our candidate use original language _removeReciteButtons(translate, magnifier) }) } var reciteMeButton function _createReciteButton() { var buttonParentSelector body var buttonContainer document.createElement(div) var buttonImage document.createElement(img) var buttonAlt Recite Me accessibility and Language Support var buttonTitle Launch Recite Me buttonContainer.setAttribute(id, reciteme-button) buttonContainer.setAttribute(alt, buttonAlt) buttonContainer.setAttribute(title, buttonTitle) buttonImage.setAttribute(alt, buttonAlt) buttonImage.setAttribute(title, buttonTitle) buttonImage.setAttribute(src, buttonSrc) buttonContainer.appendChild(buttonImage) var buttonParent document.querySelector(buttonParentSelector) buttonParent.appendChild(buttonContainer) buttonContainer.addEventListener(click, function () { loadService() return false }) reciteMeButton buttonContainer } _createReciteButton() } _loadReciteMe()/script>noscript>You need to enable JavaScript to run this app./noscript>div idroot>/div>script>!function(e){function t(t){for(var n,l,at0,pt1,ft2,c0,s;ca.length;c++)lac,Object.prototype.hasOwnProperty.call(o,l)&&ol&&s.push(ol0),ol0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(enpn);for(i&&i(t);s.length;)s.shift()();return u.push.apply(u,f||),r()}function r(){for(var e,t0;tu.length;t++){for(var rut,n!0,a1;ar.length;a++){var pra;0!op&&(n!1)}n&&(u.splice(t--,1),el(l.sr0))}return e}var n{},o{1:0},u;function l(t){if(nt)return nt.exports;var rnt{i:t,l:!1,exports:{}};return et.call(r.exports,r,r.exports,l),r.l!0,r.exports}l.me,l.cn,l.dfunction(e,t,r){l.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},l.rfunction(e){undefined!typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:Module}),Object.defineProperty(e,__esModule,{value:!0})},l.tfunction(e,t){if(1&t&&(el(e)),8&t)return e;if(4&t&&objecttypeof e&&e&&e.__esModule)return e;var rObject.create(null);if(l.r(r),Object.defineProperty(r,default,{enumerable:!0,value:e}),2&t&&string!typeof e)for(var n in e)l.d(r,n,function(t){return et}.bind(null,n));return r},l.nfunction(e){var te&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,a,t),t},l.ofunction(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.p/;var athis.webpackJsonpphchatbotthis.webpackJsonpphchatbot||,pa.push.bind(a);a.pusht,aa.slice();for(var f0;fa.length;f++)t(af);var ip;r()}()/script>script src/static/js/2.14f6f3ce.chunk.js>/script>script src/static/js/main.4a08d74e.chunk.js>/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]