d&&(e.series.addPoint(C(a.options,{plotX:a.plotX,plotY:a.plotY}),
153 | !1),c.removeElementFromCollection(a,c.nodes),a.remove()))});k.onMouseUp.apply(this,arguments)}},destroy:function(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(function(a){a.removeElementFromCollection(this,a.series)},this);this.parentNode&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy()));a.Series.prototype.destroy.apply(this,arguments)},
154 | alignDataLabel:a.Series.prototype.alignDataLabel},{destroy:function(){this.series.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes);return f.prototype.destroy.apply(this,arguments)},firePointEvent:function(a,b,c){var d=this.series.options;if(this.isParentNode&&d.parentNode){var e=d.allowPointSelect;d.allowPointSelect=d.parentNode.allowPointSelect;f.prototype.firePointEvent.apply(this,arguments);d.allowPointSelect=e}else f.prototype.firePointEvent.apply(this,arguments)},
155 | select:function(a,c){var d=this.series.chart;this.isParentNode?(d.getSelectedPoints=d.getSelectedParentNodes,f.prototype.select.apply(this,arguments),d.getSelectedPoints=b.prototype.getSelectedPoints):f.prototype.select.apply(this,arguments)}});z(b,"beforeRedraw",function(){this.allDataPoints&&delete this.allDataPoints});""});A(c,"Extensions/Polar.js",[c["Core/Animation/AnimationUtilities.js"],c["Core/Chart/Chart.js"],c["Core/Globals.js"],c["Extensions/Pane.js"],c["Core/Pointer.js"],c["Core/Renderer/SVG/SVGRenderer.js"],
156 | c["Core/Utilities.js"]],function(c,b,h,a,f,q,u){var z=c.animObject,E=u.addEvent,B=u.defined,e=u.find,x=u.isNumber,w=u.pick,m=u.splat,C=u.uniqueKey;c=u.wrap;var v=h.Series,p=h.seriesTypes,l=v.prototype;f=f.prototype;l.searchPointByAngle=function(a){var b=this.chart,d=this.xAxis.pane.center;return this.searchKDTree({clientX:180+-180/Math.PI*Math.atan2(a.chartX-d[0]-b.plotLeft,a.chartY-d[1]-b.plotTop)})};l.getConnectors=function(a,b,c,e){var d=e?1:0;var f=0<=b&&b<=a.length-1?b:0>b?a.length-1+b:0;b=0>
157 | f-1?a.length-(1+d):f-1;d=f+1>a.length-1?d:f+1;var g=a[b];d=a[d];var h=g.plotX;g=g.plotY;var k=d.plotX;var l=d.plotY;d=a[f].plotX;f=a[f].plotY;h=(1.5*d+h)/2.5;g=(1.5*f+g)/2.5;k=(1.5*d+k)/2.5;var r=(1.5*f+l)/2.5;l=Math.sqrt(Math.pow(h-d,2)+Math.pow(g-f,2));var m=Math.sqrt(Math.pow(k-d,2)+Math.pow(r-f,2));h=Math.atan2(g-f,h-d);r=Math.PI/2+(h+Math.atan2(r-f,k-d))/2;Math.abs(h-r)>Math.PI/2&&(r-=Math.PI);h=d+Math.cos(r)*l;g=f+Math.sin(r)*l;k=d+Math.cos(Math.PI+r)*m;r=f+Math.sin(Math.PI+r)*m;d={rightContX:k,
158 | rightContY:r,leftContX:h,leftContY:g,plotX:d,plotY:f};c&&(d.prevPointCont=this.getConnectors(a,b,!1,e));return d};l.toXY=function(a){var b=this.chart,d=this.xAxis;var c=this.yAxis;var e=a.plotX,f=a.plotY,h=a.series,k=b.inverted,l=a.y,m=k?e:c.len-f;k&&h&&!h.isRadialBar&&(a.plotY=f="number"===typeof l?c.translate(l)||0:0);a.rectPlotX=e;a.rectPlotY=f;c.center&&(m+=c.center[3]/2);c=k?c.postTranslate(f,m):d.postTranslate(e,m);a.plotX=a.polarPlotX=c.x-b.plotLeft;a.plotY=a.polarPlotY=c.y-b.plotTop;this.kdByAngle?
159 | (b=(e/Math.PI*180+d.pane.options.startAngle)%360,0>b&&(b+=360),a.clientX=b):a.clientX=a.plotX};p.spline&&(c(p.spline.prototype,"getPointSpline",function(a,b,c,e){this.chart.polar?e?(a=this.getConnectors(b,e,!0,this.connectEnds),a=["C",a.prevPointCont.rightContX,a.prevPointCont.rightContY,a.leftContX,a.leftContY,a.plotX,a.plotY]):a=["M",c.plotX,c.plotY]:a=a.call(this,b,c,e);return a}),p.areasplinerange&&(p.areasplinerange.prototype.getPointSpline=p.spline.prototype.getPointSpline));E(v,"afterTranslate",
160 | function(){var a=this.chart;if(a.polar&&this.xAxis){(this.kdByAngle=a.tooltip&&a.tooltip.shared)?this.searchPoint=this.searchPointByAngle:this.options.findNearestPointBy="xy";if(!this.preventPostTranslate)for(var b=this.points,c=b.length;c--;)this.toXY(b[c]),!a.hasParallelCoordinates&&!this.yAxis.reversed&&b[c].yb&&(b=
164 | g),0>a&&(a=g));return{x:d[0],y:d[1],r:b,innerR:a,start:c,end:e}},c(p,"animate",k),c(p,"translate",function(a){var b=this.options,c=b.stacking,d=this.chart,e=this.xAxis,f=this.yAxis,h=f.reversed,k=f.center,l=e.startAngleRad,m=e.endAngleRad-l;this.preventPostTranslate=!0;a.call(this);if(e.isRadial){a=this.points;e=a.length;var p=f.translate(f.min);var q=f.translate(f.max);b=b.threshold||0;if(d.inverted&&x(b)){var v=f.translate(b);B(v)&&(0>v?v=0:v>m&&(v=m),this.translatedThreshold=v+l)}for(;e--;){b=
165 | a[e];var w=b.barX;var z=b.x;var E=b.y;b.shapeType="arc";if(d.inverted){b.plotY=f.translate(E);if(c&&f.stacking){if(E=f.stacking.stacks[(0>E?"-":"")+this.stackKey],this.visible&&E&&E[z]&&!b.isNull){var C=E[z].points[this.getStackIndicator(void 0,z,this.index).key];var A=f.translate(C[0]);C=f.translate(C[1]);B(A)&&(A=u.clamp(A,0,m))}}else A=v,C=b.plotY;A>C&&(C=[A,A=C][0]);if(!h)if(Aq)C=q;else{if(C
q)A=C=0}else if(C>p)C=p;else if(Ap||Cf.max&&(A=C=
166 | h?m:0);A+=l;C+=l;k&&(b.barX=w+=k[3]/2);z=Math.max(w,0);E=Math.max(w+b.pointWidth,0);b.shapeArgs={x:k&&k[0],y:k&&k[1],r:E,innerR:z,start:A,end:C};b.opacity=A===C?0:void 0;b.plotY=(B(this.translatedThreshold)&&(Ak[1])}}}),p.findAlignments=
167 | function(a,b){null===b.align&&(b.align=20a?"left":200a?"right":"center");null===b.verticalAlign&&(b.verticalAlign=45>a||315a?"top":"middle");return b},v&&(v.findAlignments=p.findAlignments),c(p,"alignDataLabel",function(a,b,c,e,f,h){var d=this.chart,g=w(e.inside,!!this.options.stacking);d.polar?(a=b.rectPlotX/Math.PI*180,d.inverted?(this.forceDL=d.isInsidePlot(b.plotX,Math.round(b.plotY),!1),g&&b.shapeArgs?(f=b.shapeArgs,f=this.yAxis.postTranslate((f.start+f.end)/
168 | 2-this.xAxis.startAngleRad,b.barX+b.pointWidth/2),f={x:f.x-d.plotLeft,y:f.y-d.plotTop}):b.tooltipPos&&(f={x:b.tooltipPos[0],y:b.tooltipPos[1]}),e.align=w(e.align,"center"),e.verticalAlign=w(e.verticalAlign,"middle")):this.findAlignments&&(e=this.findAlignments(a,e)),l.alignDataLabel.call(this,b,c,e,f,h),this.isRadialBar&&b.shapeArgs&&b.shapeArgs.start===b.shapeArgs.end&&c.hide(!0)):a.call(this,b,c,e,f,h)}));c(f,"getCoordinates",function(a,b){var c=this.chart,d={xAxis:[],yAxis:[]};c.polar?c.axes.forEach(function(a){var e=
169 | a.isXAxis,f=a.center;if("colorAxis"!==a.coll){var g=b.chartX-f[0]-c.plotLeft;f=b.chartY-f[1]-c.plotTop;d[e?"xAxis":"yAxis"].push({axis:a,value:a.translate(e?Math.PI-Math.atan2(g,f):Math.sqrt(Math.pow(g,2)+Math.pow(f,2)),!0)})}}):d=a.call(this,b);return d});q.prototype.clipCircle=function(a,b,c,e){var d=C(),f=this.createElement("clipPath").attr({id:d}).add(this.defs);a=e?this.arc(a,b,c,e,0,2*Math.PI).add(f):this.circle(a,b,c).add(f);a.id=d;a.clipPath=f;return a};E(b,"getAxes",function(){this.pane||
170 | (this.pane=[]);m(this.options.pane).forEach(function(b){new a(b,this)},this)});E(b,"afterDrawChartBox",function(){this.pane.forEach(function(a){a.render()})});E(h.Series,"afterInit",function(){var a=this.chart;a.inverted&&a.polar&&(this.isRadialSeries=!0,this.is("column")&&(this.isRadialBar=!0))});c(b.prototype,"get",function(a,b){return e(this.pane,function(a){return a.options.id===b})||a.call(this,b)})});A(c,"masters/highcharts-more.src.js",[],function(){})});
171 | //# sourceMappingURL=highcharts-more.js.map
--------------------------------------------------------------------------------
/bosszp/web/static/highcharts/oldie.js:
--------------------------------------------------------------------------------
1 | /*
2 | Highcharts JS v8.2.2 (2020-10-22)
3 |
4 | Old IE (v6, v7, v8) module for Highcharts v6+.
5 |
6 | (c) 2010-2019 Highsoft AS
7 | Author: Torstein Honsi
8 |
9 | License: www.highcharts.com/license
10 | */
11 | (function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/modules/oldie",["highcharts"],function(A){a(A);a.Highcharts=A;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function A(a,z,p,u){a.hasOwnProperty(z)||(a[z]=u.apply(null,p))}a=a?a._modules:{};A(a,"Extensions/Math3D.js",[a["Core/Globals.js"],a["Core/Utilities.js"]],function(a,z){var p=z.pick,v=a.deg2rad,h=a.perspective3D=function(g,
12 | a,h){a=0t&&l-t>Math.PI/2+.0001?(m=m.concat(g(k,
15 | a,b,d,t,t+Math.PI/2,c,e)),m=m.concat(g(k,a,b,d,t+Math.PI/2,l,c,e))):lMath.PI/2+.0001?(m=m.concat(g(k,a,b,d,t,t-Math.PI/2,c,e)),m=m.concat(g(k,a,b,d,t-Math.PI/2,l,c,e))):[["C",k+b*Math.cos(t)-b*N*n*Math.sin(t)+c,a+d*Math.sin(t)+d*N*n*Math.cos(t)+e,k+b*Math.cos(l)+b*N*n*Math.sin(l)+c,a+d*Math.sin(l)-d*N*n*Math.cos(l)+e,k+b*Math.cos(l)+c,a+d*Math.sin(l)+e]]}var v=a.animObject,D=z.parse,r=u.perspective,A=u.shapeArea,F=q.defined,y=q.extend,J=q.merge,M=q.objectEach,C=q.pick,L=Math.cos,G=Math.PI,
16 | I=Math.sin,H=p.charts,O=p.deg2rad;var N=4*(Math.sqrt(2)-1)/3/(G/2);f.prototype.toLinePath=function(k,a){var b=[];k.forEach(function(d){b.push(["L",d.x,d.y])});k.length&&(b[0][0]="M",a&&b.push(["Z"]));return b};f.prototype.toLineSegments=function(a){var k=[],b=!0;a.forEach(function(d){k.push(b?["M",d.x,d.y]:["L",d.x,d.y]);b=!b});return k};f.prototype.face3d=function(a){var k=this,b=this.createElement("path");b.vertexes=[];b.insidePlotArea=!1;b.enabled=!0;b.attr=function(b){if("object"===typeof b&&
17 | (F(b.enabled)||F(b.vertexes)||F(b.insidePlotArea))){this.enabled=C(b.enabled,this.enabled);this.vertexes=C(b.vertexes,this.vertexes);this.insidePlotArea=C(b.insidePlotArea,this.insidePlotArea);delete b.enabled;delete b.vertexes;delete b.insidePlotArea;var d=r(this.vertexes,H[k.chartIndex],this.insidePlotArea),l=k.toLinePath(d,!0);d=A(d);d=this.enabled&&0d.faces.length;)b.faces.pop().destroy();for(;b.faces.lengthd.faces.length;)b.faces.pop().destroy();for(;b.faces.lengthe?{x:h[e].x,y:h[e].y+10,z:h[e].z}:h[0].x===h[7].x&&4<=e?{x:h[e].x+10,y:h[e].y,z:h[e].z}:0===m&&2>e||5A(d)?a=[d,0]:0>A(n)?a=[n,1]:m&&(K.push(m),a=0>A(c)?[d,0]:0>A(e)?[n,1]:[d,0]);return a};var B=x([3,2,1,0],[7,6,5,4],"front");a=B[0];var q=B[1];B=x([1,6,7,0],[4,5,2,3],"top");
26 | e=B[0];var E=B[1];B=x([1,2,5,6],[0,7,4,3],"side");x=B[0];B=B[1];1===B?g+=1E6*(n.plotWidth-d):B||(g+=1E6*d);g+=10*(!E||0<=w&&180>=w||360>w&&357.5Math.PI&&(c=2*Math.PI-c);return c}var b=a.x,d=a.y,h=a.start,l=a.end-.00001,c=a.r,e=a.innerR||0,m=a.depth||0,n=a.alpha,w=a.beta,k=Math.cos(h),
32 | q=Math.sin(h);a=Math.cos(l);var K=Math.sin(l),x=c*Math.cos(w);c*=Math.cos(n);var B=e*Math.cos(w),p=e*Math.cos(n);e=m*Math.sin(w);var E=m*Math.sin(n);m=[["M",b+x*k,d+c*q]];m=m.concat(g(b,d,x,c,h,l,0,0));m.push(["L",b+B*a,d+p*K]);m=m.concat(g(b,d,B,p,l,h,0,0));m.push(["Z"]);var r=0-r?h:l>-r?-r:h;var v=lu&&hG-w&&h/g,"<$1title>").replace(/height=([^" ]+)/g,'height="$1"').replace(/width=([^" ]+)/g,'width="$1"').replace(/hc-svg-href="([^"]+)">/g,'xlink:href="$1"/>').replace(/ id=([^" >]+)/g,' id="$1"').replace(/class=([^" >]+)/g,'class="$1"').replace(/ transform /g," ").replace(/:(path|rect)/g,"$1").replace(/style="([^"]+)"/g,
41 | function(c){return c.toLowerCase()})},a.prototype.isReadyToRender=function(){var c=this;return F||y!=y.top||"complete"===r.readyState?!0:(r.attachEvent("onreadystatechange",function(){r.detachEvent("onreadystatechange",c.firstRender);"complete"===r.readyState&&c.firstRender()}),!1)},r.createElementNS||(r.createElementNS=function(c,a){return r.createElement(a)}),p.addEventListenerPolyfill=function(c,a){function e(c){c.target=c.srcElement||y;a.call(b,c)}var b=this;b.attachEvent&&(b.hcEventsIE||(b.hcEventsIE=
42 | {}),a.hcKey||(a.hcKey=l()),b.hcEventsIE[a.hcKey]=e,b.attachEvent("on"+c,e))},p.removeEventListenerPolyfill=function(c,a){this.detachEvent&&(a=this.hcEventsIE[a.hcKey],this.detachEvent("on"+c,a))},a={docMode8:r&&8===r.documentMode,init:function(c,a){var e=["<",a,' filled="f" stroked="f"'],b=["position: ","absolute",";"],d="div"===a;("shape"===a||d)&&b.push("left:0;top:0;width:1px;height:1px;");b.push("visibility: ",d?"hidden":"visible");e.push(' style="',b.join(""),'"/>');a&&(e=d||"span"===a||"img"===
43 | a?e.join(""):c.prepVML(e),this.element=M(e));this.renderer=c},add:function(c){var a=this.renderer,b=this.element,d=a.box,f=c&&c.inverted;d=c?c.element||c:d;c&&(this.parentGroup=c);f&&a.invertChild(b,d);d.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:h.prototype.htmlUpdateTransform,setSpanRotation:function(){var c=this.rotation,a=Math.cos(c*D),
44 | b=Math.sin(c*D);C(this.element,{filter:c?["progid:DXImageTransform.Microsoft.Matrix(M11=",a,", M12=",-b,", M21=",b,", M22=",a,", sizingMethod='auto expand')"].join(""):"none"})},getSpanCorrection:function(c,a,b,n,f){var e=n?Math.cos(n*D):1,m=n?Math.sin(n*D):0,h=d(this.elemHeight,this.element.offsetHeight);this.xCorr=0>e&&-c;this.yCorr=0>m&&-h;var g=0>e*m;this.xCorr+=m*a*(g?1-b:b);this.yCorr-=e*a*(n?g?b:1-b:1);f&&"left"!==f&&(this.xCorr-=c*b*(0>e?-1:1),n&&(this.yCorr-=h*b*(0>m?-1:1)),C(this.element,
45 | {textAlign:f}))},pathToVML:function(c){for(var a=c.length,b=[];a--;)k(c[a])?b[a]=Math.round(10*c[a])-5:"Z"===c[a]?b[a]="x":(b[a]=c[a],!c.isArc||"wa"!==c[a]&&"at"!==c[a]||(b[a+5]===b[a+7]&&(b[a+7]+=c[a+7]>c[a+5]?1:-1),b[a+6]===b[a+8]&&(b[a+8]+=c[a+8]>c[a+6]?1:-1)));return b.join(" ")||"x"},clip:function(c){var a=this;if(c){var b=c.members;I(b,a);b.push(a);a.destroyClip=function(){I(b,a)};c=c.getCSS(a)}else a.destroyClip&&a.destroyClip(),c={clip:a.docMode8?"inherit":"rect(auto)"};return a.css(c)},css:h.prototype.htmlCss,
46 | safeRemoveChild:function(c){c.parentNode&&G(c)},destroy:function(){this.destroyClip&&this.destroyClip();return h.prototype.destroy.apply(this)},on:function(c,a){this.element["on"+c]=function(){var c=y.event;c.target=c.srcElement;a(c)};return this},cutOffPath:function(c,a){c=c.split(/[ ,]/);var b=c.length;if(9===b||11===b)c[b-4]=c[b-2]=t(c[b-2])-10*a;return c.join(" ")},shadow:function(c,a,b){var e=[],m,f=this.element,h=this.renderer,g=f.style,l=f.path;l&&"string"!==typeof l.value&&(l="x");var k=l;
47 | if(c){var p=d(c.width,3);var q=(c.opacity||.15)/p;for(m=1;3>=m;m++){var r=2*p+1-2*m;b&&(k=this.cutOffPath(l.value,r+.5));var v=[''];var u=M(h.prepVML(v),null,{left:t(g.left)+d(c.offsetX,1),top:t(g.top)+d(c.offsetY,1)});b&&(u.cutOff=r+1);v=[''];M(h.prepVML(v),null,null,u);a?a.element.appendChild(u):f.parentNode.insertBefore(u,
48 | f);e.push(u)}this.shadows=e}return this},updateShadows:A,setAttr:function(c,a){this.docMode8?this.element[c]=a:this.element.setAttribute(c,a)},getAttr:function(c){return this.docMode8?this.element[c]:this.element.getAttribute(c)},classSetter:function(c){(this.added?this.element:this).className=c},dashstyleSetter:function(c,a,b){(b.getElementsByTagName("stroke")[0]||M(this.renderer.prepVML([""]),null,null,b))[a]=c||"solid";this[a]=c},dSetter:function(c,a,b){var e=this.shadows;c=c||[];this.d=
49 | c.join&&c.join(" ");b.path=c=this.pathToVML(c);if(e)for(b=e.length;b--;)e[b].path=e[b].cutOff?this.cutOffPath(c,e[b].cutOff):c;this.setAttr(a,c)},fillSetter:function(c,a,b){var e=b.nodeName;"SPAN"===e?b.style.color=c:"IMG"!==e&&(b.filled="none"!==c,this.setAttr("fillcolor",this.renderer.color(c,b,a,this)))},"fill-opacitySetter":function(c,a,b){M(this.renderer.prepVML(["<",a.split("-")[0],' opacity="',c,'"/>']),null,null,b)},opacitySetter:A,rotationSetter:function(c,a,b){b=b.style;this[a]=b[a]=c;b.left=
50 | -Math.round(Math.sin(c*D)+1)+"px";b.top=Math.round(Math.cos(c*D))+"px"},strokeSetter:function(c,a,b){this.setAttr("strokecolor",this.renderer.color(c,b,a,this))},"stroke-widthSetter":function(c,a,b){b.stroked=!!c;this[a]=c;k(c)&&(c+="px");this.setAttr("strokeweight",c)},titleSetter:function(c,a){this.setAttr(a,c)},visibilitySetter:function(c,a,b){"inherit"===c&&(c="visible");this.shadows&&this.shadows.forEach(function(b){b.style[a]=c});"DIV"===b.nodeName&&(c="hidden"===c?"-999em":0,this.docMode8||
51 | (b.style[a]=c?"visible":"hidden"),a="top");b.style[a]=c},xSetter:function(c,a,b){this[a]=c;"x"===a?a="left":"y"===a&&(a="top");this.updateClipping?(this[a]=c,this.updateClipping()):b.style[a]=c},zIndexSetter:function(a,b,d){d.style[b]=a},fillGetter:function(){return this.getAttr("fillcolor")||""},strokeGetter:function(){return this.getAttr("strokecolor")||""},classGetter:function(){return this.getAttr("className")||""}},a["stroke-opacitySetter"]=a["fill-opacitySetter"],p.VMLElement=a=O(h,a),a.prototype.ySetter=
52 | a.prototype.widthSetter=a.prototype.heightSetter=a.prototype.xSetter,u={Element:a,isIE8:-1'];M(c.prepVML(m),null,null,b)};var z=a[0];var C=a[a.length-1];0C[0]&&a.push([1,C[1]]);a.forEach(function(a,c){e.test(a[1])?(J=v(a[1]),l=J.get("rgb"),n=J.get("a")):(l=a[1],n=1);y.push(100*a[0]+"% "+l);c?(q=n,r=l):
56 | (p=n,t=l)});if("fill"===d)if("gradient"===h)d=k.x1||k[0]||0,a=k.y1||k[1]||0,z=k.x2||k[2]||0,k=k.y2||k[3]||0,u='angle="'+(90-180*Math.atan((k-a)/(z-d))/Math.PI)+'"',A();else{g=k.r;var D=2*g,F=2*g,G=k.cx,L=k.cy,I=b.radialReference,H;g=function(){I&&(H=f.getBBox(),G+=(I[0]-H.x)/H.width-.5,L+=(I[1]-H.y)/H.height-.5,D*=I[2]/H.width,F*=I[2]/H.height);u='src="'+N().global.VMLRadialGradientURL+'" size="'+D+","+F+'" origin="0.5,0.5" position="'+G+","+L+'" color2="'+t+'" ';A()};f.added?g():f.onAdd=g;g=r}else g=
57 | l}else if(e.test(a)&&"IMG"!==b.tagName){var J=v(a);f[d+"-opacitySetter"](J.get("a"),d,b);g=J.get("rgb")}else g=b.getElementsByTagName(d),g.length&&(g[0].opacity=1,g[0].type="solid"),g=a;return g},prepVML:function(a){var c=this.isIE8;a=a.join("");c?(a=a.replace("/>",' xmlns="urn:schemas-microsoft-com:vml" />'),a=-1===a.indexOf('style="')?a.replace("/>",' style="display:inline-block;behavior:url(#default#VML);" />'):a.replace('style="','style="display:inline-block;behavior:url(#default#VML);')):a=a.replace("<",
58 | "g.max||a.maxa.right||e.righta.bottom||e.bottom=f&&("boolean"===typeof c&&d>=b-a&&(c={x:e-(b-d),y:-e}),b-=a,"boolean"===typeof c&&d>=b-a&&(c={x:-e,y:-e+(b-d)}),b-=a,"boolean"===typeof c&&(c=d>=b-a?{x:-e+(b-d),y:e}:{x:e,y:e-(b-d-a)}),c.x*=5,c.y*=5);return c}function F(f,d,e){var a=2*Math.max(Math.abs(e.top),Math.abs(e.bottom));e=2*Math.max(Math.abs(e.left),Math.abs(e.right));return Math.min(0d?f/d:1;f=d>f?d/f:1;return{width:e*a,height:e*f,ratioX:a,ratioY:f}}function q(f,d,a,c){var e=!1;u(f)&&u(d)&&u(a)&&u(c)&&0a&&(e=a+d%f*((c-a)/(f-1||1)));return e}function y(f,d){var a,c=[];for(a=1;1E4>a;a++)c.push(f(a,d));return function(f){return 1E4>=f?c[f-1]:!1}}function t(f,a){var d=
17 | a.width/2,c=-(a.height/2),b=a.height/2;return!(-(a.width/2)f.right&&cf.bottom)}function C(a,d){var f=d.placed,c=d.field,b=d.rectangle,g=d.polygon,h=d.spiral,l=1,k={x:0,y:0},m=a.rect=z({},b);a.polygon=g;for(a.rotation=d.rotation;!1!==k&&(p(a,f)||t(m,c));)k=h(l),A(k)&&(m.left=b.left+k.x,m.right=b.right+k.x,m.top=b.top+k.y,m.bottom=b.bottom+k.y,a.polygon=G(k.x,k.y,g)),l++;return k}function c(a,d){if(A(a)&&A(d)){var f=d.bottom-d.top;var c=d.right-d.left;d=a.ratioX;var b=a.ratioY;
18 | f=c*d>f*b?c:f;a=L(a,{width:a.width+f*d*2,height:a.height+f*b*2})}return a}var b=h.noop,J=l.getBoundingBoxFromPolygon,m=l.getPolygon,B=l.isPolygonsColliding,G=l.movePolygon,z=k.extend,K=k.find,M=k.isArray,u=k.isNumber,A=k.isObject,L=k.merge,D=h.Series;l={animate:D.prototype.animate,animateDrilldown:b,animateDrillupFrom:b,setClip:b,bindAxes:function(){var a={endOnTick:!1,gridLineWidth:0,lineWidth:0,maxPadding:0,startOnTick:!1,title:null,tickPositions:[]};D.prototype.bindAxes.call(this);z(this.yAxis.options,
19 | a);z(this.xAxis.options,a)},pointAttribs:function(a,d){a=h.seriesTypes.column.prototype.pointAttribs.call(this,a,d);delete a.stroke;delete a["stroke-width"];return a},deriveFontSize:function(a,d,c){a=u(a)?a:0;d=u(d)?d:1;c=u(c)?c:1;return Math.floor(Math.max(c,a*d))},drawPoints:function(){var a=this,d=a.hasRendered,b=a.xAxis,g=a.yAxis,k=a.group,h=a.options,l=h.animation,p=h.allowExtendPlayingField,r=a.chart.renderer,q=r.text().add(k),t=[],B=a.placementStrategy[h.placementStrategy],D=h.rotation,G=a.points.map(function(a){return a.weight}),
20 | H=Math.max.apply(null,G),E=a.points.concat().sort(function(a,d){return d.weight-a.weight});a.group.attr({scaleX:1,scaleY:1});E.forEach(function(d){var c=a.deriveFontSize(1/H*d.weight,h.maxFontSize,h.minFontSize);c=z({fontSize:c+"px"},h.style);q.css(c).attr({x:0,y:0,text:d.name});c=q.getBBox(!0);d.dimensions={height:c.height,width:c.width}});var v=x(b.len,g.len,E);var I=y(a.spirals[h.spiral],{field:v});E.forEach(function(b){var f=a.deriveFontSize(1/H*b.weight,h.maxFontSize,h.minFontSize);f=z({fontSize:f+
21 | "px"},h.style);var e=B(b,{data:E,field:v,placed:t,rotation:D}),g=z(a.pointAttribs(b,b.selected&&"select"),{align:"center","alignment-baseline":"middle",x:e.x,y:e.y,text:b.name,rotation:e.rotation}),q=m(e.x,e.y,b.dimensions.width,b.dimensions.height,e.rotation),n=J(q),w=C(b,{rectangle:n,polygon:q,field:v,placed:t,spiral:I,rotation:e.rotation});!w&&p&&(v=c(v,n),w=C(b,{rectangle:n,polygon:q,field:v,placed:t,spiral:I,rotation:e.rotation}));if(A(w)){g.x+=w.x;g.y+=w.y;n.left+=w.x;n.right+=w.x;n.top+=w.y;
22 | n.bottom+=w.y;e=v;if(!u(e.left)||e.left>n.left)e.left=n.left;if(!u(e.right)||e.rightn.top)e.top=n.top;if(!u(e.bottom)||e.bottom=a&&(b={x:d*Math.cos(d),y:d*Math.sin(d)},Math.min(Math.abs(b.x),Math.abs(b.y))\u25cf {series.name}: {point.weight}
'}},l,g)});p(a,"masters/modules/wordcloud.src.js",[],function(){})});
27 | //# sourceMappingURL=wordcloud.js.map
--------------------------------------------------------------------------------
/bosszp/web/static/img/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jhcoco/bosszp/522250ff097909439bd72a58d2433bfc1a5bdab3/bosszp/web/static/img/bg.png
--------------------------------------------------------------------------------
/bosszp/web/static/img/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jhcoco/bosszp/522250ff097909439bd72a58d2433bfc1a5bdab3/bosszp/web/static/img/favicon.png
--------------------------------------------------------------------------------
/bosszp/web/static/js/cylindrical.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | $.ajax({
3 | url: '/getjobnum',
4 | type: 'GET',
5 | datatype: 'json',
6 | success: function (data) {
7 | var obj2 = JSON.parse(data);
8 | if (obj2.status == 201){
9 | this.error(xhr=obj2)
10 | return
11 | }
12 | var d = new Date(),str = '';
13 | str += d.getFullYear() + '年'; //获取当前年份
14 | str += d.getMonth() + 1 + '月'; //获取当前月份(0——11)
15 | var chart = Highcharts.chart('cylindrical', {
16 | chart: {
17 | type: 'column',
18 | backgroundColor: 'rgba(0,0,0,0)'
19 | },
20 | title: {
21 | text: '全国各大城市岗位数量'
22 | },
23 | subtitle: {
24 | text: '数据截止 '+str+',来源: Boss直聘'
25 | },
26 | xAxis: {
27 | type: 'category',
28 | labels: {
29 | rotation: -45 // 设置轴标签旋转角度
30 | }
31 | },
32 | yAxis: {
33 | min: 0,
34 | title: {
35 | text: '岗位数 (个)'
36 | }
37 | },
38 | legend: {
39 | enabled: false
40 | },
41 | tooltip: {
42 | pointFormat: '岗位总量: {point.y} 个'
43 | },
44 | series: [{
45 | name: '总岗位数',
46 | data: obj2.data,
47 | dataLabels: {
48 | enabled: true,
49 | rotation: -90,
50 | color: '#FFFFFF',
51 | align: 'right',
52 | format: '{point.y}', // :.1f 为保留 1 位小数
53 | y: 10
54 | }
55 | }]
56 | });
57 | },
58 | error: function (xhr, type, errorThrown) {
59 | alert(xhr.data)
60 | }
61 | });
62 | });
--------------------------------------------------------------------------------
/bosszp/web/static/js/fan.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | $.ajax({
3 | url: '/geteducationnum',
4 | type: 'GET',
5 | datatype: 'json',
6 | success: function (data) {
7 | var obj3 = JSON.parse(data)
8 | if (obj3.status == 201){
9 | this.error(xhr=obj3)
10 | }
11 | var chart = Highcharts.chart('fan', {
12 | chart: {
13 | backgroundColor: 'rgba(0,0,0,0)'
14 | },
15 | title: {
16 | text: '学历
占比',
17 | align: 'center',
18 | verticalAlign: 'middle',
19 | y: 50
20 | },
21 | tooltip: {
22 | headerFormat: '{series.name}
',
23 | pointFormat: '{point.name}: {point.percentage:.1f}%'
24 | },
25 | plotOptions: {
26 | pie: {
27 | dataLabels: {
28 | enabled: true,
29 | distance: -50,
30 | style: {
31 | fontWeight: 'bold',
32 | color: 'white',
33 | textShadow: '0px 1px 2px black'
34 | }
35 | },
36 | startAngle: -90, // 圆环的开始角度
37 | endAngle: 90, // 圆环的结束角度
38 | center: ['50%', '75%']
39 | }
40 | },
41 | series: [{
42 | type: 'pie',
43 | name: '学历占比',
44 | innerSize: '50%',
45 | data: obj3.data
46 | }]
47 | });
48 | },
49 | error: function (xhr, type, errorThrown) {
50 | alert(xhr.data)
51 | }
52 | })
53 | })
--------------------------------------------------------------------------------
/bosszp/web/static/js/order.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | $.ajax({
3 | url: '/getorder',
4 | type: 'GET',
5 | datatype: 'json',
6 | success: function (data) {
7 | var obj = JSON.parse(data);
8 | if (obj.status == 201){
9 | this.error(xhr=obj);
10 | return
11 | }
12 | $(function () {
13 | // var obj1 = JSON.parse(data);
14 | $("#J_TbData").empty();
15 | for (var i = 0; i < obj.data.length; i++) {
16 | //动态创建一个tr行标签,并且转换成jQuery对象
17 | var $trTemp = $("
");
18 | //往行里面追加 td单元格
19 | $trTemp.append("" + obj.data[i].id + " | ");
20 | $trTemp.append("" + obj.data[i].name + " | ");
21 | $trTemp.append("" + obj.data[i].num + " | ");
22 | // $("#J_TbData").append($trTemp);
23 | $trTemp.appendTo("#J_TbData");
24 | }
25 | });
26 | }, error: function (xhr, type, errorThrown) {
27 | alert(xhr.data)
28 | }
29 | })
30 | })
--------------------------------------------------------------------------------
/bosszp/web/static/js/packgebubble.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | $.ajax({
3 | url: '/getjobinfo',
4 | type: 'GET',
5 | datatype: 'json',
6 | success: function (data) {
7 | var obj = JSON.parse(data);
8 | if (obj.status == 201){
9 | this.error(xhr=obj)
10 | return
11 | }
12 | Highcharts.chart('packedbubble', {
13 | chart: {
14 | type: 'packedbubble',
15 | height: '100%',
16 | backgroundColor: 'rgba(0,0,0,0)'
17 | },
18 | title: {
19 | text: '2020年热门岗位招聘区域分布'
20 | },
21 | tooltip: {
22 | useHTML: true,
23 | pointFormat: '{point.name}: {point.y}'
24 | },
25 | plotOptions: {
26 | packedbubble: {
27 | minSize: '30%',
28 | maxSize: '120%',
29 | zMin: 0,
30 | zMax: 1000,
31 | layoutAlgorithm: {
32 | splitSeries: false,
33 | gravitationalConstant: 0.02
34 | },
35 | dataLabels: {
36 | enabled: true,
37 | format: '{point.name}',
38 | filter: {
39 | property: 'y',
40 | operator: '>=',
41 | value: 5
42 | },
43 | style: {
44 | color: 'black',
45 | textOutline: 'none',
46 | fontWeight: 'normal'
47 | }
48 | }
49 | }
50 | },
51 | series:obj.data
52 | });
53 | },
54 | error: function (xhr, type, errorThrown) {
55 | alert(xhr.data)
56 | }
57 | });
58 |
59 |
60 | });
--------------------------------------------------------------------------------
/bosszp/web/static/js/pie.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | $.ajax({
3 | url: '/getcomtypenum',
4 | dataType: 'json',//服务器返回json格式数据
5 | type: 'GET',//HTTP请求类型
6 | timeout: 10000,//超时时间设置为10秒;
7 | success: function (data) {
8 | // var obj2 = JSON.parse(data)
9 | if (data.status == 201){
10 | this.error(xhr=data)
11 | return
12 | }
13 | Highcharts.chart('pie', {
14 | chart: {
15 | plotBackgroundColor: null,
16 | plotBorderWidth: null,
17 | plotShadow: false,
18 | type: 'pie',
19 | backgroundColor: 'rgba(0,0,0,0)'
20 | },
21 | title: {
22 | text: '企业类型占比'
23 | },
24 | tooltip: {
25 | pointFormat: '{series.name}: {point.percentage:.1f}%'
26 | },
27 | plotOptions: {
28 | pie: {
29 | allowPointSelect: true,
30 | cursor: 'pointer',
31 | dataLabels: {
32 | enabled: true,
33 | format: '{point.name}: {point.percentage:.1f} %',
34 | style: {
35 | color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
36 | }
37 | }
38 | }
39 | },
40 | series: [{
41 | name: 'Brands',
42 | colorByPoint: true,
43 | data: data.data,
44 | }],
45 | });
46 |
47 | },
48 | error: function (xhr, type, errorThrown) {
49 | alert(xhr.data)
50 | }
51 | });
52 | })
--------------------------------------------------------------------------------
/bosszp/web/static/js/word.js:
--------------------------------------------------------------------------------
1 | $(document).ready(function () {
2 | $.ajax({
3 | type: "GET",
4 | url: "/getwordcloud",
5 | // data: "name=John&location=Boston",
6 | success: function (msg) {
7 | var obj1 = JSON.parse(msg)
8 | if (obj1.status == 201) {
9 | this.erro(xhr = obj1)
10 | return
11 | }
12 | var data = obj1.data.split(/[,\. ]+/g)
13 | .reduce(function (arr, word) {
14 | var obj = arr.find(function (obj) {
15 | return obj.name === word;
16 | });
17 | if (obj) {
18 | obj.weight += 1;
19 | } else {
20 | obj = {
21 | name: word,
22 | weight: 1
23 | };
24 | arr.push(obj);
25 | }
26 | return arr;
27 | }, []);
28 | Highcharts.chart('word_cloud', {
29 | chart: {
30 | backgroundColor: 'rgba(0,0,0,0)'
31 | },
32 | series: [{
33 | type: 'wordcloud',
34 | data: data
35 | }],
36 | title: {
37 | text: '企业福利词云图'
38 | }
39 | });
40 | },
41 | erro: function (xhr, type, errorThrown) {
42 | alert(xhr.data)
43 | }
44 | });
45 | });
46 |
--------------------------------------------------------------------------------
/bosszp/web/templates/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Boss岗位分析可视化
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
32 |
33 |
47 |
48 |
51 |
52 |
55 |
56 |
57 |
58 | 企业招聘Top 10
59 |
60 |
61 |
62 | 排名 |
63 | 公司名称 |
64 | 岗位数量 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
78 |
79 |
82 |
83 |
--------------------------------------------------------------------------------
/runspider.py:
--------------------------------------------------------------------------------
1 | # -*- coding:utf-8 -*-
2 | """
3 | 作者:jhzhong
4 | """
5 | """
6 | 运行爬虫
7 | """
8 | from scrapy import cmdline
9 |
10 | cmdline.execute('scrapy crawl boss'.split())
--------------------------------------------------------------------------------
/scrapy.cfg:
--------------------------------------------------------------------------------
1 | # Automatically created by: scrapy startproject
2 | #
3 | # For more information about the [deploy] section see:
4 | # https://scrapyd.readthedocs.io/en/latest/deploy.html
5 |
6 | [settings]
7 | default = bosszp.settings
8 |
9 | [deploy]
10 | #url = http://localhost:6800/
11 | project = bosszp
12 |
--------------------------------------------------------------------------------
/全国-热门城市岗位数据.csv:
--------------------------------------------------------------------------------
1 | job_name,job_area,job_salary,com_name,com_type,com_size,finance_stage,work_year,education,job_benefits
2 | 自然语言处理研究员,上海·长宁区·北新泾,25-50K,携程旅行网,互联网,10000人以上,已上市,经验不限,硕士,员工旅游,带薪年假,餐补,五险一金,加班补助,绩效奖金,年终奖,定期体检,节日福利,股票期权,补充医疗保险
3 | BI工程师,北京·大兴区,20-40K,京东集团,电子商务,10000人以上,已上市,5-10年,本科,交通补助,定期体检,年终奖,带薪年假,补充医疗保险,免费班车,五险一金,零食下午茶,员工旅游,股票期权,餐补,包吃,节日福利
4 | 腾讯北京区域招聘—后台开发(C++/JAVA/GO),北京·海淀区·中关村,20-40K·16薪,腾讯,互联网,10000人以上,已上市,3-5年,本科,带薪年假,员工旅游,年终奖,定期体检,补充医疗保险,节日福利,五险一金,免费班车
5 | Flutter研发工程师-企业平台,北京·海淀区·上地,14-28K·16薪,网易,移动互联网,10000人以上,已上市,1-3年,本科,五险一金,补充医疗保险,带薪年假,全勤奖,定期体检,年终奖,节日福利,免费班车,包吃
6 | 前端工程师-【用户增长】,北京,20-40K·16薪,快手,社交网络,10000人以上,D轮及以上,3-5年,本科,带薪年假,补充医疗保险,住房补贴,零食下午茶,节日福利,年终奖,包吃,定期体检,加班补助,五险一金,股票期
7 | 权高级Java开发工程师,北京·朝阳区·酒仙桥,25-40K·15薪,车好多集团,互联网,10000人以上,D轮及以上,3-5年,本科,补充医疗保险,定期体检,五险一金,股票期权,带薪年假
8 | 公有云运维工程师,上海,20-40K,SAP Labs,互联网,10000人以上,已上市,3-5年,本科,住房补贴,加班补助,五险一金,餐补,带薪年假,节日福利,员工旅游,补充医疗保险,定期体检,股票期权,年终奖
9 | 服务端开发工程师 — 音视频,上海·闵行区·虹梅路,25-50K,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,补充医疗保险,住房补贴,餐补,节日福利,五险一金,带薪年假,交通补助,试用期同薪,零食下午茶,定期体检,年终奖,加班补助
10 | Java技术专家,上海·浦东新区·陆家嘴,28-45K,盒马生鲜,生活服务,10000人以上,不需要融资,3-5年,硕士,节日福利,五险一金,年终奖,带薪年假,全勤奖,餐补,加班补助
11 | 阿里影业-B端团队-Java开发高级工程师,北京·朝阳区·望京,25-40K,阿里巴巴集团,互联网,10000人以上,已上市,3-5年,本科,员工旅游,餐补,带薪年假,交通补助,加班补助,年终奖,补充医疗保险,五险一金,免费班车,节日福利,股票期权,定期体检
12 | 教育行业售前,北京·朝阳区·望京,12-24K·13薪,东华云通,计算机软件,10000人以上,已上市,3-5年,本科,None
13 | Java开发工程师,北京·海淀区·上地,15-23K,京北方,互联网金融,10000人以上,已上市,3-5年,本科,定期体检,年终奖,餐补,节日福利,带薪年假,加班补助,员工旅游,五险一金
14 | 深度学习算法工程师,北京·海淀区·西北旺,35-65K·16薪,百度,互联网,10000人以上,已上市,3-5年,本科,年终奖,老板Nice,零食下午茶,加班补助,定期体检,包吃,五险一金,餐补,带薪年假,交通补助,补充医疗保险,住房补贴,节日福利,通讯补贴,免费班车,团队氛围好,股票期权,员工旅游
15 | C++(北京),北京·大兴区·亦庄,16-25K,文思海辉,计算机软件,10000人以上,已上市,1-3年,本科,员工旅游,带薪年假,五险一金,节日福利,定期体检,加班补助,年终奖,优惠券,交通补助
16 | 大数据开发工程师,上海·青浦区·华新,20-40K,中通快递,物流/仓储,10000人以上,已上市,5-10年,本科,定期体检,加班补助,五险一金,员工旅游,节日福利,餐补,年终奖,补充医疗保险,免费班车,零食下午茶
17 | 测试开发工程师,北京·朝阳区·团结湖,20-30K·16薪,蚂蚁金服,互联网,10000人以上,不需要融资,3-5年,本科,员工旅游,定期体检,餐补,补充医疗保险,股票期权,包吃,带薪年假,五险一金,节日福利,年终奖,免费班车
18 | 应用架构师,北京·大兴区·亦庄,40-60K·14薪,京东世纪贸易有限公司,互联网,10000人以上,已上市,10年以上,本科,补充医疗保险,定期体检,年终奖,五险一金,餐补,全勤奖机器视觉嵌入式
19 | 软件开发工程师,北京·昌平区·回龙观,25-50K,三一重工,企业服务,10000人以上,已上市,经验不限,硕士,五险一金,餐补,节日福利,免费班车,定期体检,股票期权,专利奖金,带薪年假,年终奖,包吃,员工旅游,通讯补贴,提供食宿
20 | 移动APP高级测试开发,北京·朝阳区·石佛营,30-40K,VIPKID,移动互联网,10000人以上,D轮及以上,3-5年,本科,带薪年假,定期体检,住房补贴,六险一金,五险一金,节日福利,通讯补贴,餐补,补充医疗保险,交通补助,免费班车
21 | Java开发工程师,上海·浦东新区·张江,20-40K·13薪,叮咚买菜,互联网,10000人以上,C轮,经验不限,本科,扁平化管理,交通补助,餐补,零食下午茶,节日福利,五险一金
22 | 后端开发工程师-飞书,北京·海淀区·五道口,30-60K·15薪,北京字节跳动,移动互联网,10000人以上,D轮及以上,经验不限,本科,交通补助,住房补贴,节日福利,带薪年假,定期体检,五险一金,包吃,股票期权,零食下午茶,六险一金,餐补,年终奖,员工旅游,补充医疗保险,通讯补贴
23 | C++/Java 后端开发,上海·长宁区·北新泾,25-50K·15薪,美团点评,O2O,10000人以上,不需要融资,1-3年,本科,定期体检,住房补贴,五险一金,包吃,节假日休,五险一金,通讯补贴,员工旅游,补充医疗保险,全勤奖,餐补,股票期权,交通补助,季度奖金,加班补助,双休,年终奖,全薪病假,带薪年假,节日福利,团建聚餐
24 | 资深项目管理 (MJ006014),北京·海淀区·上地,15-25K·14薪,作业帮,互联网,10000人以上,D轮及以上,3-5年,本科,五险一金,定期体检,包吃,交通补助,带薪年假,补充医疗保险,节日福利,零食下午茶,年终奖
25 | 风控策略岗(数据模型),北京·海淀区·清河,50-70K·14薪,小米,互联网,10000人以上,已上市,3-5年,学历不限,年终奖,节日福利,全勤奖,12%公积金,带薪年假,餐补,定期体检,五险一金,加班补助,补充医疗保险
26 | 前端开发工程师,北京·海淀区·上地,20-40K·20薪,华为,计算机软件,10000人以上,不需要融资,经验不限,本科,年终奖,五险一金,节日福利,零食下午茶,股票期权,宵夜,加班补助,通讯补贴,补充医疗保险,住房补贴,交通补助,免费班车,定期体检,带薪年假,员工旅游
27 | BI数据分析,上海·普陀区·长征,28-35K·13薪,饿了么,O2O,10000人以上,不需要融资,3-5年,本科,餐补,节日福利,股票期权,五险一金,年终奖,免费班车,公司团建,带薪年假,通讯补贴,定期体检,零食下午茶,员工旅游,补充医疗保险,包吃,交通补助
28 | 高级测试工程师,上海·长宁区·北新泾,20-30K·16薪,携程集团,互联网,10000人以上,已上市,3-5年,本科,年终奖,五险一金
29 | .Net开发工程师,上海·浦东新区·外高桥,15-25K·14薪,药明康德,医疗健康,10000人以上,已上市,3-5年,本科,五险一金,餐补,股票期权,带薪年假,节日福利,加班补助,定期体检,员工旅游,年终奖,交通补助,免费班车
30 | 3D机器视觉算法开发工程师,上海·松江区·小昆山,28-35K·20薪,美的,其他行业,10000人以上,已上市,3-5年,本科,年终奖,股票期权,免费班车,住房补贴,零食下午茶,补充医疗保险,加班补助,五险一金,交通补助,餐补,员工旅游,通讯补贴,带薪年假,节日福利,包吃,全勤奖,重大消息,定期体检
31 | 百度地图高级研发工程师,北京·海淀区·上地,25-35K·15薪,百度在线,互联网,10000人以上,已上市,3-5年,本科,补充医疗保险,股票期权,带薪年假,通讯补贴,五险一金,年终奖,定期体检
32 | 百度地图高级研发工程师,北京·海淀区·上地,25-35K·15薪,百度在线,互联网,10000人以上,已上市,3-5年,本科,补充医疗保险,股票期权,带薪年假,通讯补贴,五险一金,年终奖,定期体检
33 | 顺丰同城科技基础架构高级工程师,北京·海淀区·学院路,20-40K·15薪,顺丰快递,生活服务,10000人以上,已上市,1-3年,本科,五险一金,加班补助,员工旅游,餐补,通讯补贴,节日福利,补充医疗保险,住房补贴
34 | support engineer—LInux&network,上海·闵行区·吴泾,20-35K,微软中国,计算机软件,10000人以上,不需要融资,经验不限,本科,零食下午茶,带薪年假,免费班车,股票期权,餐补,年终奖,五险一金,节日福利,定期体检,补充医疗保险,员工旅游
35 | 高级技术专家 (财账方向),北京·朝阳区·望京,30-45K,ALIYUN,互联网,10000人以上,不需要融资,5-10年,本科,None
36 | 系统维护工程师(.Net&SQL),上海·浦东新区·外高桥,13-21K·14薪,药明康德,医疗健康,10000人以上,已上市,3-5年,本科,五险一金,免费班车,交通补助,加班补助,餐补,员工旅游,年终奖,带薪年假,节日福利,股票期权,定期体检
37 | Java,上海·虹口区·海伦路,18-35K·14薪,掌门1对1,互联网,10000人以上,D轮及以上,3-5年,本科,零食下午茶,孝心奖,节日福利,五险一金,定期体检
38 | web前端,上海·浦东新区·张江,20-30K·15薪,叮咚买菜,互联网,10000人以上,C轮,5-10年,本科,扁平化管理,节日福利,五险一金,零食下午茶,交通补助,餐补
39 | 资深业务DBA(MySQL),北京·海淀区·苏州街,40-60K·16薪,腾讯,互联网,10000人以上,已上市,5-10年,本科,免费班车,补充医疗保险,定期体检,年终奖,节日福利,员工旅游,五险一金,带薪年假
40 | SRE工程师/专家 — 音视频,上海,25-50K,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,住房补贴,五险一金,零食下午茶,交通补助,补充医疗保险,年终奖,带薪年假,餐补,节日福利,定期体检,加班补助,试用期同薪
41 | java高级开发工程师,北京·大兴区·亦庄,20-40K·14薪,京东集团,电子商务,10000人以上,已上市,5-10年,本科,节日福利,带薪年假,零食下午茶,年终奖,补充医疗保险,五险一金,员工旅游,包吃,定期体检,免费班车,股票期权,交通补助,餐补
42 | 高级/资深测试工程师,北京·海淀区·上地,30-60K·16薪,快手,社交网络,10000人以上,D轮及以上,3-5年,本科,五险一金,定期体检,股票期权,加班补助,带薪年假,节日福利,包吃,零食下午茶,住房补贴,年终奖,补充医疗保险
43 | 语音算法工程师,上海·长宁区·北新泾,25-50K,携程旅行网,互联网,10000人以上,已上市,1年以内,硕士,带薪年假,年终奖,员工旅游,节日福利,定期体检,补充医疗保险,五险一金,绩效奖金,加班补助,股票期权,餐补
44 | 测试开发工程师,北京·朝阳区·团结湖,20-30K·16薪,蚂蚁金服,互联网,10000人以上,不需要融资,3-5年,本科,员工旅游,定期体检,餐补,补充医疗保险,股票期权,包吃,带薪年假,五险一金,节日福利,年终奖,免费班车
45 | 广告平台研发专家,北京·朝阳区·望京,30-60K,阿里巴巴集团,互联网,10000人以上,已上市,经验不限,本科,员工旅游,免费班车,股票期权,节日福利,带薪年假,年终奖,补充医疗保险,交通补助,五险一金,定期体检,餐补,加班补助
46 | 应用架构师,北京·大兴区·亦庄,40-60K·14薪,京东世纪贸易有限公司,互联网,10000人以上,已上市,10年以上,本科,补充医疗保险,定期体检,年终奖,五险一金,餐补,全勤奖
47 | 存储虚拟化高级研发工程师,上海·浦东新区·张江,20-40K·15薪,百度,互联网,10000人以上,已上市,经验不限,本科,包吃,免费班车,年终奖,定期体检,补充医疗保险,加班补助,股票期权,员工旅游,老板Nice,团队氛围好,零食下午茶,餐补,住房补贴,五险一金,通讯补贴,交通补助,带薪年假,节日福利
48 | 软件工程师,北京·海淀区·知春路,25-50K·15薪,北京字节跳动,移动互联网,10000人以上,D轮及以上,经验不限,本科,带薪年假,补充医疗保险,零食下午茶,餐补,股票期权,交通补助,住房补贴,包吃,年终奖,定期体检,员工旅游,六险一金,节日福利,五险一金,通讯补贴
49 | Java,北京·海淀区·西北旺,12-24K,华为,计算机软件,10000人以上,不需要融资,经验不限,本科,年终奖,补充医疗保险,节日福利,五险一金,宵夜,股票期权,加班补助,零食下午茶,带薪年假,住房补贴,定期体检,交通补助,免费班车,员工旅游,通讯补贴
50 | 高级/资深iOS开发工程师,北京·海淀区·西北旺,30-60K·16薪,网易,移动互联网,10000人以上,已上市,3-5年,本科,免费班车,年终奖,补充医疗保险,带薪年假,五险一金,包吃,全勤奖,定期体检,节日福利
51 | 大数据研发工程师(资深),北京·海淀区·清河,70-80K·14薪,小米,互联网,10000人以上,已上市,5-10年,本科,定期体检,带薪年假,五险一金,12%公积金,全勤奖,补充医疗保险,节日福利,年终奖,加班补助,餐补
52 | Java专家-上海,上海·浦东新区·联洋,20-40K·16薪,饿了么,O2O,10000人以上,不需要融资,5-10年,本科,股票期权,补充医疗保险,交通补助,年终奖,公司团建,包吃,定期体检,节日福利,免费班车,员工旅游,通讯补贴,零食下午茶,餐补,五险一金,带薪年假
53 | iOS客户端开发工程师,上海·闵行区·虹梅路,20-40K,腾讯,互联网,10000人以上,已上市,1-3年,本科,补充医疗保险,定期体检,员工旅游,带薪年假,年终奖,免费班车,五险一金,节日福利
54 | 软件开发工程师,北京·朝阳区·奥林匹克公园,30-60K,京东集团,电子商务,10000人以上,已上市,3-5年,本科,员工旅游,免费班车,股票期权,节日福利,五险一金,带薪年假,补充医疗保险,年终奖,餐补,零食下午茶,包吃,定期体检,交通补助
55 | 服务端开发工程师 — 音视频,上海·闵行区·虹梅路,25-50K,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,补充医疗保险,住房补贴,餐补,节日福利,五险一金,带薪年假,交通补助,试用期同薪,零食下午茶,定期体检,年终奖,加班补助
56 | Java开发工程师,上海·长宁区·北新泾,15-30K,携程旅行网,互联网,10000人以上,已上市,1-3年,硕士,定期体检,股票期权,五险一金,节日福利,餐补,年终奖,绩效奖金,补充医疗保险,带薪年假,员工旅游,加班补助
57 | Java,北京·朝阳区·团结湖,17-25K·13薪,蚂蚁金服,互联网,10000人以上,不需要融资,1-3年,本科,年终奖,五险一金,免费班车,餐补,定期体检,包吃,节日福利,股票期权,补充医疗保险,员工旅游,带薪年假
58 | 高级前端工程师,上海·浦东新区·陆家嘴,25-50K,阿里巴巴集团,互联网,10000人以上,已上市,3-5年,本科,股票期权,节日福利,五险一金,餐补,员工旅游,年终奖,加班补助,免费班车,补充医疗保险,定期体检,交通补助,带薪年假
59 | Java开发工程师,上海·浦东新区·张江,20-40K·13薪,叮咚买菜,互联网,10000人以上,C轮,经验不限,本科,扁平化管理,交通补助,餐补,零食下午茶,节日福利,五险一金
60 | Linux内核研发工程师,上海·浦东新区·张江,20-40K·15薪,百度,互联网,10000人以上,已上市,经验不限,本科,餐补,老板Nice,免费班车,加班补助,零食下午茶,团队氛围好,员工旅游,定期体检,节日福利,交通补助,补充医疗保险,包吃,住房补贴,股票期权,年终奖,通讯补贴,带薪年假,五险一金
61 | 视觉算法工程师(检测分割方向),北京·朝阳区·奥林匹克公园,30-45K,京东世纪贸易有限公司,互联网,10000人以上,已上市,3-5年,硕士,餐补,五险一金,全勤奖,定期体检,年终奖,补充医疗保险
62 | 安卓开发工程师-飞书,北京·海淀区·五道口,30-60K·15薪,北京字节跳动,移动互联网,10000人以上,D轮及以上,经验不限,本科,补充医疗保险,包吃,年终奖,通讯补贴,五险一金,餐补,带薪年假,零食下午茶,定期体检,员工旅游,住房补贴,六险一金,交通补助,节日福利,股票期权
63 | 测试工程师,北京·海淀区·上地,30-50K·16薪,快手,社交网络,10000人以上,D轮及以上,3-5年,本科,包吃,年终奖,补充医疗保险,节日福利,住房补贴,零食下午茶,定期体检,加班补助,五险一金,股票期权,带薪年假
64 | 业务分析专家,上海·普陀区·长征,25-40K·14薪,饿了么,O2O,10000人以上,不需要融资,5-10年,本科,五险一金,免费班车,通讯补贴,节日福利,餐补,带薪年假,定期体检,年终奖,员工旅游,包吃,补充医疗保险,零食下午茶,股票期权,公司团建,交通补助
65 | 安全开发工程师,北京·海淀区·西二旗,20-40K·14薪,小米,互联网,10000人以上,已上市,3-5年,本科,五险一金,定期体检,加班补助,节日福利,补充医疗保险,12%公积金,带薪年假,餐补,全勤奖,年终奖
66 | iOS高级开发工程师,北京·大兴区·亦庄,30-50K,京东集团,电子商务,10000人以上,已上市,3-5年,本科,带薪年假,年终奖,节日福利,五险一金,股票期权,零食下午茶,包吃,餐补,补充医疗保险,免费班车,定期体检,交通补助,员工旅游
67 | 证券产品后台测试开发专家(北京海淀),北京·海淀区·中关村,20-40K·16薪,腾讯,互联网,10000人以上,已上市,3-5年,本科,五险一金,年终奖,补充医疗保险,免费班车,定期体检,节日福利,员工旅游,带薪年假
68 | PaaS平台开发,上海,25-50K,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,带薪年假,节日福利,五险一金,零食下午茶,餐补,补充医疗保险,试用期同薪,住房补贴,加班补助,年终奖,定期体检,交通补助
69 | 测试开发专家/开发专家,北京·朝阳区·团结湖,15-30K·13薪,蚂蚁金服,互联网,10000人以上,不需要融资,3-5年,本科,股票期权,补充医疗保险,节日福利,年终奖,员工旅游,定期体检,五险一金,餐补,免费班车,包吃,带薪年假
70 | 基础平台研发工程师,北京·海淀区·西北旺,15-30K·15薪,百度,互联网,10000人以上,已上市,经验不限,本科,团队氛围好,五险一金,股票期权,包吃,餐补,零食下午茶,通讯补贴,交通补助,带薪年假,节日福利,定期体检,年终奖,补充医疗保险,老板Nice,住房补贴,加班补助,员工旅游,免费班车
71 | iOS技术专家,北京·朝阳区·望京,30-50K,阿里巴巴集团,互联网,10000人以上,已上市,3-5年,本科,节日福利,餐补,加班补助,补充医疗保险,交通补助,带薪年假,五险一金,员工旅游,股票期权,年终奖,免费班车,定期体检
72 | 高级前端研发工程师【急招】,北京·海淀区·中关村,30-60K·15薪,北京字节跳动,移动互联网,10000人以上,D轮及以上,3-5年,本科,补充医疗保险,带薪年假,五险一金,年终奖,定期体检,员工旅游,节日福利,住房补贴,零食下午茶,交通补助,通讯补贴,包吃,股票期权,六险一金,餐补
73 | 视频特效算法工程师,北京·朝阳区·小营,18-30K,京东世纪贸易有限公司,互联网,10000人以上,已上市,3-5年,本科,定期体检,补充医疗保险,五险一金,年终奖,全勤奖,餐补
74 | 后端开发JAVA(供应链),上海·浦东新区·张江,25-50K·15薪,叮咚买菜,互联网,10000人以上,C轮,3-5年,本科,零食下午茶,扁平化管理,交通补助,餐补,节日福利,五险一金
75 | Android开发工程师,北京·海淀区·上地,25-50K·16薪,快手,社交网络,10000人以上,D轮及以上,3-5年,本科,年终奖,五险一金,包吃,零食下午茶,住房补贴,节日福利,加班补助,补充医疗保险,定期体检,股票期权,带薪年假
76 | 混合云专线运维工程师,北京·朝阳区·鸟巢,20-40K·14薪,京东集团,电子商务,10000人以上,已上市,3-5年,本科,餐补,员工旅游,定期体检,零食下午茶,补充医疗保险,年终奖,交通补助,节日福利,免费班车,带薪年假,五险一金,股票期权,包吃
77 | 图像视频特效SDK开发工程师,上海·闵行区·虹梅路,20-40K·14薪,腾讯,互联网,10000人以上,已上市,1-3年,本科,年终奖,五险一金,节日福利,带薪年假,定期体检,员工旅游,补充医疗保险,免费班车
78 | 资深服务端开发工程师,北京·海淀区·知春路,40-70K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,3-5年,本科,节日福利,交通补助,试用期同薪,住房补贴,补充医疗保险,餐补,零食下午茶,五险一金,带薪年假,年终奖,加班补助,定期体检
79 | 蚂蚁金服-java研发高级工程师/专家,上海·浦东新区·陆家嘴,25-50K,蚂蚁金服,互联网,10000人以上,不需要融资,3-5年,本科,餐补,补充医疗保险,定期体检,五险一金,员工旅游,节日福利,包吃,免费班车,年终奖,带薪年假,股票期权
80 | 车联网事业部_安卓研发工程师,北京·海淀区·西北旺,20-40K,百度,互联网,10000人以上,已上市,3-5年,本科,年终奖,补充医疗保险,交通补助,员工旅游,定期体检,住房补贴,节日福利,通讯补贴,免费班车,带薪年假,包吃,团队氛围好,股票期权,零食下午茶,老板Nice,餐补,加班补助,五险一金
81 | 阿里巴巴淘系技术 技术专家,北京·朝阳区·望京,30-60K·16薪,阿里巴巴集团,互联网,10000人以上,已上市,3-5年,本科,补充医疗保险,餐补,年终奖,免费班车,股票期权,定期体检,交通补助,五险一金,带薪年假,节日福利,加班补助,员工旅游
82 | 前端开发工程师-【用户增长】,北京·海淀区·上地,20-40K·16薪,快手,社交网络,10000人以上,D轮及以上,经验不限,本科,定期体检,住房补贴,加班补助,节日福利,带薪年假,年终奖,零食下午茶,五险一金,包吃,补充医疗保险,股票期权
83 | 安卓开发工程师,上海·浦东新区·张江,20-40K·14薪,叮咚买菜,互联网,10000人以上,C轮,5-10年,本科,五险一金,扁平化管理,节日福利,餐补,交通补助,零食下午茶
84 | Android高级开发工程师,北京·大兴区·亦庄,25-45K,京东集团,电子商务,10000人以上,已上市,5-10年,本科,股票期权,零食下午茶,免费班车,补充医疗保险,交通补助,五险一金,带薪年假,定期体检,节日福利,年终奖,员工旅游,包吃,餐补
85 | 云网络研发高级工程师,北京·海淀区·西北旺,18-35K,腾讯,互联网,10000人以上,已上市,经验不限,本科,定期体检,免费班车,五险一金,员工旅游,年终奖,带薪年假,补充医疗保险,节日福利
86 | TTS模型运营专家,北京·海淀区·五道口,15-25K,今日头条,移动互联网,1000-9999人,不需要融资,1-3年,本科,试用期同薪,补充医疗保险,零食下午茶,五险一金,餐补,交通补助,带薪年假,年终奖,节日福利,加班补助,定期体检,住房补贴
87 | DPDK 研发工程师,北京·海淀区·上地,20-40K·15薪,百度,互联网,10000人以上,已上市,经验不限,本科,住房补贴,包吃,交通补助,补充医疗保险,加班补助,员工旅游,餐补,带薪年假,老板Nice,免费班车,五险一金,股票期权,年终奖,通讯补贴,团队氛围好,定期体检,零食下午茶,节日福利
88 | java高级开发工程师/技术专家,上海·浦东新区·陆家嘴,30-60K·16薪,蚂蚁金服,互联网,10000人以上,不需要融资,3-5年,本科,股票期权,包吃,年终奖,免费班车,补充医疗保险,带薪年假,节日福利,员工旅游,定期体检,餐补,五险一金
89 | 高级Java开发工程师(电商),北京·海淀区·上地,20-40K·16薪,快手,社交网络,10000人以上,D轮及以上,3-5年,本科,加班补助,包吃,带薪年假,年终奖,住房补贴,五险一金,定期体检,补充医疗保险,零食下午茶,股票期权,节日福利
90 | 阿里巴巴Java研发-北京,北京·朝阳区·望京,25-50K,阿里巴巴集团,互联网,10000人以上,已上市,3-5年,本科,节日福利,加班补助,股票期权,餐补,员工旅游,免费班车,定期体检,带薪年假,补充医疗保险,交通补助,年终奖,五险一金
91 | HTML5高级级开发工程师,北京·大兴区·亦庄,25-50K,京东集团,电子商务,10000人以上,已上市,5-10年,本科,交通补助,补充医疗保险,带薪年假,股票期权,免费班车,定期体检,年终奖,零食下午茶,餐补,包吃,五险一金,员工旅游,节日福利
92 | AI反爬虫-高级工程师(云WAF),北京·海淀区·中关村,27-50K·16薪,腾讯,互联网,10000人以上,已上市,3-5年,本科,五险一金,免费班车,员工旅游,补充医疗保险,带薪年假,年终奖,定期体检,节日福利
93 | 测试开发工程师,北京·海淀区·中关村,30-60K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,3-5年,本科,带薪年假,五险一金,餐补,年终奖,试用期同薪,住房补贴,定期体检,交通补助,节日福利,加班补助,零食下午茶,补充医疗保险
94 | 后端开发工程师,北京·海淀区·西北旺,20-40K·16薪,百度,互联网,10000人以上,已上市,3-5年,本科,老板Nice,包吃,年终奖,住房补贴,节日福利,零食下午茶,带薪年假,补充医疗保险,餐补,股票期权,定期体检,员工旅游,加班补助,五险一金,交通补助,通讯补贴,免费班车,团队氛围好
95 | 资深数据研发工程师/技术专家,上海·浦东新区·陆家嘴,25-45K,蚂蚁金服,互联网,10000人以上,不需要融资,5-10年,本科,节日福利,带薪年假,股票期权,包吃,免费班车,补充医疗保险,五险一金,年终奖,餐补,定期体检,员工旅游
96 | 高级运维专家-电商SRE,北京·海淀区·西二旗,40-60K·16薪,快手,社交网络,10000人以上,D轮及以上,5-10年,本科,股票期权,补充医疗保险,加班补助,五险一金,年终奖,节日福利,定期体检,带薪年假,零食下午茶,包吃,住房补贴
97 | C/C++服务端研发工程师,上海·宝山区·通河,20-40K·14薪,京东集团,电子商务,10000人以上,已上市,经验不限,本科,零食下午茶,股票期权,带薪年假,五险一金,定期体检,年终奖,免费班车,交通补助,节日福利,包吃,餐补,员工旅游,补充医疗保险
98 | 大数据开发工程师,北京·海淀区·中关村,25-50K·16薪,今日头条,移动互联网,1000-9999人,不需要融资,5-10年,本科,加班补助,节日福利,定期体检,年终奖,五险一金,零食下午茶,带薪年假,住房补贴,试用期同薪,补充医疗保险,餐补,交通补助
99 | 智慧零售研发中心高级后台开发工程师,上海·徐汇区·漕河泾,25-50K,腾讯,互联网,10000人以上,已上市,3-5年,本科,补充医疗保险,五险一金,年终奖,员工旅游,节日福利,免费班车,定期体检,带薪年假
100 | 高级测试开发工程师,北京·海淀区·西北旺,15-30K,百度,互联网,10000人以上,已上市,1-3年,硕士,住房补贴,带薪年假,包吃,节日福利,年终奖,定期体检,通讯补贴,免费班车,零食下午茶,交通补助,五险一金,团队氛围好,餐补,加班补助,股票期权,补充医疗保险,员工旅游,老板Nice
101 | Java开发工程师-用户增长,北京·海淀区·上地,20-40K·16薪,快手,社交网络,10000人以上,D轮及以上,经验不限,本科,五险一金,包吃,带薪年假,补充医疗保险,加班补助,住房补贴,节日福利,定期体检,年终奖,股票期权,零食下午茶
102 | 软件开发工程师,北京·大兴区·亦庄,25-40K·14薪,京东集团,电子商务,10000人以上,已上市,5-10年,本科,五险一金,定期体检,年终奖,节日福利,员工旅游,零食下午茶,补充医疗保险,餐补,包吃,免费班车,带薪年假,交通补助,股票期权
103 | 后端开发工程师-飞书,北京·海淀区·学院路,30-60K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,餐补,零食下午茶,节日福利,五险一金,年终奖,带薪年假,补充医疗保险,交通补助,住房补贴,加班补助,试用期同薪,定期体检
104 | 腾讯上海后台高级开发工程师,上海,25-50K,腾讯,互联网,10000人以上,已上市,5-10年,本科,员工旅游,五险一金,节日福利,年终奖,定期体检,补充医疗保险,带薪年假,免费班车
105 | iOS开发工程师,北京·海淀区·上地,25-50K·16薪,快手,社交网络,10000人以上,D轮及以上,3-5年,本科,带薪年假,定期体检,年终奖,股票期权,节日福利,加班补助,零食下午茶,补充医疗保险,五险一金,包吃,住房补贴
106 | 大数据开发工程师,北京·朝阳区·鸟巢,30-60K,京东集团,电子商务,10000人以上,已上市,3-5年,硕士,股票期权,零食下午茶,年终奖,定期体检,免费班车,包吃,餐补,五险一金,交通补助,节日福利,带薪年假,员工旅游,补充医疗保险
107 | 数据分析师(上海),上海·闵行区·虹梅路,15-30K·18薪,今日头条,移动互联网,1000-9999人,不需要融资,1-3年,本科,加班补助,年终奖,交通补助,节日福利,零食下午茶,带薪年假,五险一金,住房补贴,补充医疗保险,定期体检,试用期同薪,餐补
108 | C++,北京·海淀区·西北旺,20-40K·16薪,腾讯,互联网,10000人以上,已上市,经验不限,本科,五险一金,年终奖,带薪年假,补充医疗保险,节日福利,定期体检,员工旅游,免费班车
109 | Java,北京·大兴区·亦庄,20-40K·14薪,京东集团,电子商务,10000人以上,已上市,5-10年,本科,包吃,节日福利,补充医疗保险,股票期权,零食下午茶,定期体检,年终奖,带薪年假,交通补助,餐补,免费班车,五险一金,员工旅游
110 | 【急招】测试工程师-支付,北京·海淀区·双榆树,18-35K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,带薪年假,节日福利,补充医疗保险,五险一金,定期体检,加班补助,住房补贴,餐补,交通补助,试用期同薪,零食下午茶,年终奖
111 | 高级Android开发工程师,北京·海淀区·双榆树,30-60K,腾讯,互联网,10000人以上,已上市,5-10年,本科,免费班车,年终奖,员工旅游,五险一金,带薪年假,定期体检,补充医疗保险,节日福利
112 | k8s高级研发工程师/技术专家,北京·朝阳区·鸟巢,30-60K·14薪,京东集团,电子商务,10000人以上,已上市,3-5年,本科,节日福利,员工旅游,带薪年假,补充医疗保险,餐补,零食下午茶,交通补助,五险一金,包吃,定期体检,免费班车,年终奖,股票期权
113 | Android 开发工程师-飞书,北京·海淀区·学院路,30-60K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,交通补助,补充医疗保险,五险一金,定期体检,试用期同薪,餐补,节日福利,住房补贴,年终奖,加班补助,零食下午茶,带薪年假
114 | 高级后台工程师,北京·海淀区·双榆树,30-60K,腾讯,互联网,10000人以上,已上市,5-10年,本科,年终奖,带薪年假,员工旅游,五险一金,补充医疗保险,定期体检,免费班车,节日福利
115 | 测试工程师,北京·朝阳区·奥林匹克公园,21-40K,京东集团,电子商务,10000人以上,已上市,3-5年,本科,定期体检,年终奖,交通补助,带薪年假,零食下午茶,包吃,股票期权,节日福利,五险一金,补充医疗保险,免费班车,员工旅游,餐补
116 | iOS开发工程师-飞书,北京·海淀区·学院路,30-60K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,定期体检,住房补贴,交通补助,补充医疗保险,年终奖,加班补助,五险一金,节日福利,带薪年假,餐补,零食下午茶,试用期同薪
117 | 字节电商-高级前端工程师,北京·海淀区·中关村,25-50K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,3-5年,本科,零食下午茶,餐补,交通补助,节日福利,定期体检,带薪年假,住房补贴,试用期同薪,五险一金,年终奖,加班补助,补充医疗保险
118 | 软件测试工程师,上海·宝山区·通河,15-25K·14薪,京东集团,电子商务,10000人以上,已上市,5-10年,本科,零食下午茶,免费班车,年终奖,股票期权,餐补,补充医疗保险,员工旅游,交通补助,五险一金,定期体检,带薪年假,包吃,节日福利
119 | 番茄小说后端开发工程师,北京·海淀区·皂君庙,30-60K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,3-5年,本科,零食下午茶,定期体检,试用期同薪,带薪年假,五险一金,交通补助,年终奖,加班补助,餐补,住房补贴,节日福利,补充医疗保险
120 | Java高级开发工程师,北京·大兴区·亦庄,20-40K·14薪,京东集团,电子商务,10000人以上,已上市,5-10年,本科,员工旅游,股票期权,节日福利,定期体检,交通补助,包吃,零食下午茶,免费班车,补充医疗保险,五险一金,带薪年假,餐补,年终奖
121 | .net高级工程师,北京·海淀区·学院路,30-50K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,3-5年,本科,带薪年假,零食下午茶,餐补,试用期同薪,年终奖,补充医疗保险,五险一金,定期体检,加班补助,节日福利,住房补贴,交通补助
122 | 测试开发工程师,北京,20-40K·14薪,京东集团,电子商务,10000人以上,已上市,3-5年,本科,免费班车,补充医疗保险,年终奖,股票期权,节日福利,包吃,交通补助,五险一金,定期体检,零食下午茶,员工旅游,带薪年假,餐补
123 | 前端开发工程师-飞书,北京·海淀区·学院路,30-60K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,定期体检,住房补贴,加班补助,零食下午茶,餐补,节日福利,补充医疗保险,五险一金,交通补助,带薪年假,试用期同薪,年终奖
124 | 大数据开发工程师,北京·朝阳区·鸟巢,25-50K,京东集团,电子商务,10000人以上,已上市,3-5年,本科,定期体检,免费班车,年终奖,员工旅游,交通补助,节日福利,零食下午茶,餐补,补充医疗保险,五险一金,股票期权,带薪年假,包吃
125 | 高级安全研究员,上海·闵行区·虹梅路,25-50K·16薪,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,带薪年假,餐补,节日福利,补充医疗保险,加班补助,试用期同薪,定期体检,交通补助,零食下午茶,年终奖,住房补贴,五险一金
126 | 测试开发工程师,北京·大兴区·亦庄,20-40K,京东集团,电子商务,10000人以上,已上市,5-10年,本科,补充医疗保险,零食下午茶,年终奖,包吃,餐补,五险一金,股票期权,定期体检,带薪年假,员工旅游,免费班车,交通补助,节日福利
127 | 【急招】NLP算法工程师 — 国际化,北京·海淀区·双榆树,30-60K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,3-5年,本科,试用期同薪,带薪年假,餐补,五险一金,零食下午茶,住房补贴,加班补助,交通补助,年终奖,定期体检,补充医疗保险,节日福利
128 | 算法工程师(机器学习/深度学习),北京·朝阳区·鸟巢,35-65K·14薪,京东集团,电子商务,10000人以上,已上市,3-5年,硕士,交通补助,股票期权,带薪年假,五险一金,年终奖,员工旅游,补充医疗保险,餐补,零食下午茶,免费班车,包吃,节日福利,定期体检
129 | 前端工程师-线上教育,北京·海淀区·中关村,25-50K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,1-3年,本科,五险一金,定期体检,餐补,交通补助,零食下午茶,试用期同薪,补充医疗保险,住房补贴,节日福利,年终奖,加班补助,带薪年假
130 | 后台研发工程师 - 抖音,北京·海淀区·中关村,25-45K,今日头条,移动互联网,1000-9999人,不需要融资,3-5年,本科,补充医疗保险,年终奖,零食下午茶,定期体检,加班补助,带薪年假,住房补贴,五险一金,试用期同薪,餐补,节日福利,交通补助
131 | 高级前端开发工程师,北京·海淀区·中关村,30-60K·15薪,今日头条,移动互联网,1000-9999人,不需要融资,经验不限,本科,五险一金,年终奖,节日福利,住房补贴,带薪年假,餐补,交通补助,定期体检,试用期同薪,加班补助,零食下午茶,补充医疗保险
--------------------------------------------------------------------------------